diff --git a/docs/dyn/analyticsadmin_v1alpha.accounts.html b/docs/dyn/analyticsadmin_v1alpha.accounts.html
index 07e34b5..781473f 100644
--- a/docs/dyn/analyticsadmin_v1alpha.accounts.html
+++ b/docs/dyn/analyticsadmin_v1alpha.accounts.html
@@ -420,6 +420,7 @@
               &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
               &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
               &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
+              &quot;serviceLevel&quot;: &quot;A String&quot;, # Output only. The Google Analytics service level that applies to this property.
               &quot;timeZone&quot;: &quot;A String&quot;, # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
               &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
             },
@@ -514,6 +515,7 @@
               &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
               &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
               &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
+              &quot;serviceLevel&quot;: &quot;A String&quot;, # Output only. The Google Analytics service level that applies to this property.
               &quot;timeZone&quot;: &quot;A String&quot;, # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
               &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
             },
diff --git a/docs/dyn/analyticsadmin_v1alpha.properties.html b/docs/dyn/analyticsadmin_v1alpha.properties.html
index 73fedf1..a3b587a 100644
--- a/docs/dyn/analyticsadmin_v1alpha.properties.html
+++ b/docs/dyn/analyticsadmin_v1alpha.properties.html
@@ -169,6 +169,7 @@
   &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
   &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
+  &quot;serviceLevel&quot;: &quot;A String&quot;, # Output only. The Google Analytics service level that applies to this property.
   &quot;timeZone&quot;: &quot;A String&quot;, # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
   &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
 }
@@ -190,6 +191,7 @@
   &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
   &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
+  &quot;serviceLevel&quot;: &quot;A String&quot;, # Output only. The Google Analytics service level that applies to this property.
   &quot;timeZone&quot;: &quot;A String&quot;, # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
   &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
 }</pre>
@@ -218,6 +220,7 @@
   &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
   &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
+  &quot;serviceLevel&quot;: &quot;A String&quot;, # Output only. The Google Analytics service level that applies to this property.
   &quot;timeZone&quot;: &quot;A String&quot;, # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
   &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
 }</pre>
@@ -246,6 +249,7 @@
   &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
   &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
+  &quot;serviceLevel&quot;: &quot;A String&quot;, # Output only. The Google Analytics service level that applies to this property.
   &quot;timeZone&quot;: &quot;A String&quot;, # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
   &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
 }</pre>
@@ -301,6 +305,7 @@
       &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
       &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
       &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
+      &quot;serviceLevel&quot;: &quot;A String&quot;, # Output only. The Google Analytics service level that applies to this property.
       &quot;timeZone&quot;: &quot;A String&quot;, # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
       &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
     },
@@ -340,6 +345,7 @@
   &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
   &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
+  &quot;serviceLevel&quot;: &quot;A String&quot;, # Output only. The Google Analytics service level that applies to this property.
   &quot;timeZone&quot;: &quot;A String&quot;, # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
   &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
 }
@@ -362,6 +368,7 @@
   &quot;industryCategory&quot;: &quot;A String&quot;, # Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of this property. Format: properties/{property_id} Example: &quot;properties/1000&quot;
   &quot;parent&quot;: &quot;A String&quot;, # Immutable. Resource name of this property&#x27;s logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account} Example: &quot;accounts/100&quot;
+  &quot;serviceLevel&quot;: &quot;A String&quot;, # Output only. The Google Analytics service level that applies to this property.
   &quot;timeZone&quot;: &quot;A String&quot;, # Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: &quot;America/Los_Angeles&quot;
   &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when entity payload fields were last updated.
 }</pre>
diff --git a/docs/dyn/calendar_v3.events.html b/docs/dyn/calendar_v3.events.html
index 33e4475..2a37427 100644
--- a/docs/dyn/calendar_v3.events.html
+++ b/docs/dyn/calendar_v3.events.html
@@ -155,7 +155,7 @@
   An object of the form:
 
     {
-  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
   &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
       # In order to modify attachments the supportsAttachments request parameter should be set to true.
       # There can be at most 25 attachments per event,
@@ -177,7 +177,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
       &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
           # Required when adding an attendee.
-      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
       &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
       &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
       &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -194,7 +194,7 @@
   &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
     &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
         # Can be used by developers to keep track of conferences, should not be displayed to users.
-        # The ID value is formed differently for each conference solution type: `
+        # The ID value is formed differently for each conference solution type:
         # - eventHangout: ID is not set.
         # - eventNamedHangout: ID is the name of the Hangout.
         # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -296,7 +296,7 @@
   &quot;creator&quot;: { # The creator of the event. Read-only.
     &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -335,7 +335,7 @@
   &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
   &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
   &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
   &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
   &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
       # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -351,7 +351,7 @@
   &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
     &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -420,7 +420,7 @@
     The object takes the form of:
 
 {
-  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
   &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
       # In order to modify attachments the supportsAttachments request parameter should be set to true.
       # There can be at most 25 attachments per event,
@@ -442,7 +442,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
       &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
           # Required when adding an attendee.
-      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
       &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
       &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
       &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -459,7 +459,7 @@
   &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
     &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
         # Can be used by developers to keep track of conferences, should not be displayed to users.
-        # The ID value is formed differently for each conference solution type: `
+        # The ID value is formed differently for each conference solution type:
         # - eventHangout: ID is not set.
         # - eventNamedHangout: ID is the name of the Hangout.
         # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -561,7 +561,7 @@
   &quot;creator&quot;: { # The creator of the event. Read-only.
     &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -600,7 +600,7 @@
   &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
   &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
   &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
   &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
   &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
       # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -616,7 +616,7 @@
   &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
     &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -681,7 +681,7 @@
   An object of the form:
 
     {
-  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
   &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
       # In order to modify attachments the supportsAttachments request parameter should be set to true.
       # There can be at most 25 attachments per event,
@@ -703,7 +703,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
       &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
           # Required when adding an attendee.
-      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
       &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
       &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
       &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -720,7 +720,7 @@
   &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
     &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
         # Can be used by developers to keep track of conferences, should not be displayed to users.
-        # The ID value is formed differently for each conference solution type: `
+        # The ID value is formed differently for each conference solution type:
         # - eventHangout: ID is not set.
         # - eventNamedHangout: ID is the name of the Hangout.
         # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -822,7 +822,7 @@
   &quot;creator&quot;: { # The creator of the event. Read-only.
     &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -861,7 +861,7 @@
   &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
   &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
   &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
   &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
   &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
       # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -877,7 +877,7 @@
   &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
     &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -946,7 +946,7 @@
     The object takes the form of:
 
 {
-  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
   &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
       # In order to modify attachments the supportsAttachments request parameter should be set to true.
       # There can be at most 25 attachments per event,
@@ -968,7 +968,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
       &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
           # Required when adding an attendee.
-      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
       &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
       &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
       &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -985,7 +985,7 @@
   &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
     &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
         # Can be used by developers to keep track of conferences, should not be displayed to users.
-        # The ID value is formed differently for each conference solution type: `
+        # The ID value is formed differently for each conference solution type:
         # - eventHangout: ID is not set.
         # - eventNamedHangout: ID is the name of the Hangout.
         # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -1087,7 +1087,7 @@
   &quot;creator&quot;: { # The creator of the event. Read-only.
     &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -1126,7 +1126,7 @@
   &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
   &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
   &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
   &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
   &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
       # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -1142,7 +1142,7 @@
   &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
     &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -1216,7 +1216,7 @@
   An object of the form:
 
     {
-  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
   &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
       # In order to modify attachments the supportsAttachments request parameter should be set to true.
       # There can be at most 25 attachments per event,
@@ -1238,7 +1238,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
       &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
           # Required when adding an attendee.
-      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
       &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
       &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
       &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -1255,7 +1255,7 @@
   &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
     &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
         # Can be used by developers to keep track of conferences, should not be displayed to users.
-        # The ID value is formed differently for each conference solution type: `
+        # The ID value is formed differently for each conference solution type:
         # - eventHangout: ID is not set.
         # - eventNamedHangout: ID is the name of the Hangout.
         # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -1357,7 +1357,7 @@
   &quot;creator&quot;: { # The creator of the event. Read-only.
     &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -1396,7 +1396,7 @@
   &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
   &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
   &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
   &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
   &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
       # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -1412,7 +1412,7 @@
   &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
     &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -1512,7 +1512,7 @@
   &quot;etag&quot;: &quot;A String&quot;, # ETag of the collection.
   &quot;items&quot;: [ # List of events on the calendar.
     {
-      &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+      &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
       &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
           # In order to modify attachments the supportsAttachments request parameter should be set to true.
           # There can be at most 25 attachments per event,
@@ -1534,7 +1534,7 @@
           &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
           &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
               # Required when adding an attendee.
-          &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+          &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
           &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
           &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
           &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -1551,7 +1551,7 @@
       &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
         &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
             # Can be used by developers to keep track of conferences, should not be displayed to users.
-            # The ID value is formed differently for each conference solution type: `
+            # The ID value is formed differently for each conference solution type:
             # - eventHangout: ID is not set.
             # - eventNamedHangout: ID is the name of the Hangout.
             # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -1653,7 +1653,7 @@
       &quot;creator&quot;: { # The creator of the event. Read-only.
         &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
         &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-        &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+        &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
         &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
       },
       &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -1692,7 +1692,7 @@
       &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
       &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
       &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-      &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+      &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
       &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
       &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
           # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -1708,7 +1708,7 @@
       &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
         &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
         &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-        &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+        &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
         &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
       },
       &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -1853,7 +1853,7 @@
   &quot;etag&quot;: &quot;A String&quot;, # ETag of the collection.
   &quot;items&quot;: [ # List of events on the calendar.
     {
-      &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+      &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
       &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
           # In order to modify attachments the supportsAttachments request parameter should be set to true.
           # There can be at most 25 attachments per event,
@@ -1875,7 +1875,7 @@
           &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
           &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
               # Required when adding an attendee.
-          &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+          &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
           &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
           &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
           &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -1892,7 +1892,7 @@
       &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
         &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
             # Can be used by developers to keep track of conferences, should not be displayed to users.
-            # The ID value is formed differently for each conference solution type: `
+            # The ID value is formed differently for each conference solution type:
             # - eventHangout: ID is not set.
             # - eventNamedHangout: ID is the name of the Hangout.
             # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -1994,7 +1994,7 @@
       &quot;creator&quot;: { # The creator of the event. Read-only.
         &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
         &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-        &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+        &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
         &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
       },
       &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -2033,7 +2033,7 @@
       &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
       &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
       &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-      &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+      &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
       &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
       &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
           # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -2049,7 +2049,7 @@
       &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
         &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
         &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-        &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+        &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
         &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
       },
       &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -2151,7 +2151,7 @@
   An object of the form:
 
     {
-  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
   &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
       # In order to modify attachments the supportsAttachments request parameter should be set to true.
       # There can be at most 25 attachments per event,
@@ -2173,7 +2173,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
       &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
           # Required when adding an attendee.
-      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
       &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
       &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
       &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -2190,7 +2190,7 @@
   &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
     &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
         # Can be used by developers to keep track of conferences, should not be displayed to users.
-        # The ID value is formed differently for each conference solution type: `
+        # The ID value is formed differently for each conference solution type:
         # - eventHangout: ID is not set.
         # - eventNamedHangout: ID is the name of the Hangout.
         # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -2292,7 +2292,7 @@
   &quot;creator&quot;: { # The creator of the event. Read-only.
     &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -2331,7 +2331,7 @@
   &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
   &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
   &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
   &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
   &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
       # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -2347,7 +2347,7 @@
   &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
     &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -2417,7 +2417,7 @@
     The object takes the form of:
 
 {
-  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
   &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
       # In order to modify attachments the supportsAttachments request parameter should be set to true.
       # There can be at most 25 attachments per event,
@@ -2439,7 +2439,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
       &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
           # Required when adding an attendee.
-      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
       &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
       &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
       &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -2456,7 +2456,7 @@
   &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
     &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
         # Can be used by developers to keep track of conferences, should not be displayed to users.
-        # The ID value is formed differently for each conference solution type: `
+        # The ID value is formed differently for each conference solution type:
         # - eventHangout: ID is not set.
         # - eventNamedHangout: ID is the name of the Hangout.
         # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -2558,7 +2558,7 @@
   &quot;creator&quot;: { # The creator of the event. Read-only.
     &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -2597,7 +2597,7 @@
   &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
   &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
   &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
   &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
   &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
       # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -2613,7 +2613,7 @@
   &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
     &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -2688,7 +2688,7 @@
   An object of the form:
 
     {
-  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
   &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
       # In order to modify attachments the supportsAttachments request parameter should be set to true.
       # There can be at most 25 attachments per event,
@@ -2710,7 +2710,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
       &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
           # Required when adding an attendee.
-      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
       &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
       &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
       &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -2727,7 +2727,7 @@
   &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
     &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
         # Can be used by developers to keep track of conferences, should not be displayed to users.
-        # The ID value is formed differently for each conference solution type: `
+        # The ID value is formed differently for each conference solution type:
         # - eventHangout: ID is not set.
         # - eventNamedHangout: ID is the name of the Hangout.
         # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -2829,7 +2829,7 @@
   &quot;creator&quot;: { # The creator of the event. Read-only.
     &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -2868,7 +2868,7 @@
   &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
   &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
   &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
   &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
   &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
       # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -2884,7 +2884,7 @@
   &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
     &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -2963,7 +2963,7 @@
   An object of the form:
 
     {
-  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
   &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
       # In order to modify attachments the supportsAttachments request parameter should be set to true.
       # There can be at most 25 attachments per event,
@@ -2985,7 +2985,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
       &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
           # Required when adding an attendee.
-      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
       &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
       &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
       &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -3002,7 +3002,7 @@
   &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
     &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
         # Can be used by developers to keep track of conferences, should not be displayed to users.
-        # The ID value is formed differently for each conference solution type: `
+        # The ID value is formed differently for each conference solution type:
         # - eventHangout: ID is not set.
         # - eventNamedHangout: ID is the name of the Hangout.
         # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -3104,7 +3104,7 @@
   &quot;creator&quot;: { # The creator of the event. Read-only.
     &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -3143,7 +3143,7 @@
   &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
   &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
   &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
   &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
   &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
       # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -3159,7 +3159,7 @@
   &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
     &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -3229,7 +3229,7 @@
     The object takes the form of:
 
 {
-  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
   &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
       # In order to modify attachments the supportsAttachments request parameter should be set to true.
       # There can be at most 25 attachments per event,
@@ -3251,7 +3251,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
       &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
           # Required when adding an attendee.
-      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
       &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
       &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
       &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -3268,7 +3268,7 @@
   &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
     &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
         # Can be used by developers to keep track of conferences, should not be displayed to users.
-        # The ID value is formed differently for each conference solution type: `
+        # The ID value is formed differently for each conference solution type:
         # - eventHangout: ID is not set.
         # - eventNamedHangout: ID is the name of the Hangout.
         # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -3370,7 +3370,7 @@
   &quot;creator&quot;: { # The creator of the event. Read-only.
     &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -3409,7 +3409,7 @@
   &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
   &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
   &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
   &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
   &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
       # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -3425,7 +3425,7 @@
   &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
     &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
@@ -3500,7 +3500,7 @@
   An object of the form:
 
     {
-  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (currently works for Google+ events only). Optional. The default is False.
+  &quot;anyoneCanAddSelf&quot;: false, # Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
   &quot;attachments&quot;: [ # File attachments for the event. Currently only Google Drive attachments are supported.
       # In order to modify attachments the supportsAttachments request parameter should be set to true.
       # There can be at most 25 attachments per event,
@@ -3522,7 +3522,7 @@
       &quot;displayName&quot;: &quot;A String&quot;, # The attendee&#x27;s name, if available. Optional.
       &quot;email&quot;: &quot;A String&quot;, # The attendee&#x27;s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322.
           # Required when adding an attendee.
-      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+      &quot;id&quot;: &quot;A String&quot;, # The attendee&#x27;s Profile ID, if available.
       &quot;optional&quot;: false, # Whether this is an optional attendee. Optional. The default is False.
       &quot;organizer&quot;: True or False, # Whether the attendee is the organizer of the event. Read-only. The default is False.
       &quot;resource&quot;: false, # Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
@@ -3539,7 +3539,7 @@
   &quot;conferenceData&quot;: { # The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
     &quot;conferenceId&quot;: &quot;A String&quot;, # The ID of the conference.
         # Can be used by developers to keep track of conferences, should not be displayed to users.
-        # The ID value is formed differently for each conference solution type: `
+        # The ID value is formed differently for each conference solution type:
         # - eventHangout: ID is not set.
         # - eventNamedHangout: ID is the name of the Hangout.
         # - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc.
@@ -3641,7 +3641,7 @@
   &quot;creator&quot;: { # The creator of the event. Read-only.
     &quot;displayName&quot;: &quot;A String&quot;, # The creator&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The creator&#x27;s email address, if available.
-    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The creator&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;description&quot;: &quot;A String&quot;, # Description of the event. Can contain HTML. Optional.
@@ -3680,7 +3680,7 @@
   &quot;guestsCanInviteOthers&quot;: true, # Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
   &quot;guestsCanModify&quot;: false, # Whether attendees other than the organizer can modify the event. Optional. The default is False.
   &quot;guestsCanSeeOtherGuests&quot;: true, # Whether attendees other than the organizer can see who the event&#x27;s attendees are. Optional. The default is True.
-  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google+ hangout associated with this event. Read-only.
+  &quot;hangoutLink&quot;: &quot;A String&quot;, # An absolute link to the Google Hangout associated with this event. Read-only.
   &quot;htmlLink&quot;: &quot;A String&quot;, # An absolute link to this event in the Google Calendar Web UI. Read-only.
   &quot;iCalUID&quot;: &quot;A String&quot;, # Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method.
       # Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
@@ -3696,7 +3696,7 @@
   &quot;organizer&quot;: { # The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
     &quot;displayName&quot;: &quot;A String&quot;, # The organizer&#x27;s name, if available.
     &quot;email&quot;: &quot;A String&quot;, # The organizer&#x27;s email address, if available. It must be a valid email address as per RFC5322.
-    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available. It corresponds to the id field in the People collection of the Google+ API
+    &quot;id&quot;: &quot;A String&quot;, # The organizer&#x27;s Profile ID, if available.
     &quot;self&quot;: false, # Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
   },
   &quot;originalStartTime&quot;: { # For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
diff --git a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
index 266bb2e..47f7131 100644
--- a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
+++ b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.html
@@ -122,7 +122,7 @@
 
 { # Request message for KeyManagementService.AsymmetricDecrypt.
   &quot;ciphertext&quot;: &quot;A String&quot;, # Required. The data encrypted with the named CryptoKeyVersion&#x27;s public key using OAEP.
-  &quot;ciphertextCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the AsymmetricDecryptRequest.ciphertext. If specified, KeyManagementService will verify the integrity of the received AsymmetricDecryptRequest.ciphertext using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(AsymmetricDecryptRequest.ciphertext) is equal to AsymmetricDecryptRequest.ciphertext_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.
+  &quot;ciphertextCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the AsymmetricDecryptRequest.ciphertext. If specified, KeyManagementService will verify the integrity of the received AsymmetricDecryptRequest.ciphertext using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(AsymmetricDecryptRequest.ciphertext) is equal to AsymmetricDecryptRequest.ciphertext_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.
 }
 
   x__xgafv: string, V1 error format.
@@ -135,9 +135,9 @@
 
     { # Response message for KeyManagementService.AsymmetricDecrypt.
   &quot;plaintext&quot;: &quot;A String&quot;, # The decrypted data originally encrypted with the matching public key.
-  &quot;plaintextCrc32c&quot;: &quot;A String&quot;, # Integrity verification field. A CRC32C checksum of the returned AsymmetricDecryptResponse.plaintext. An integrity check of AsymmetricDecryptResponse.plaintext can be performed by computing the CRC32C checksum of AsymmetricDecryptResponse.plaintext and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.
+  &quot;plaintextCrc32c&quot;: &quot;A String&quot;, # Integrity verification field. A CRC32C checksum of the returned AsymmetricDecryptResponse.plaintext. An integrity check of AsymmetricDecryptResponse.plaintext can be performed by computing the CRC32C checksum of AsymmetricDecryptResponse.plaintext and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.
   &quot;protectionLevel&quot;: &quot;A String&quot;, # The ProtectionLevel of the CryptoKeyVersion used in decryption.
-  &quot;verifiedCiphertextCrc32c&quot;: True or False, # Integrity verification field. A flag indicating whether AsymmetricDecryptRequest.ciphertext_crc32c was received by KeyManagementService and used for the integrity verification of the ciphertext. A false value of this field indicates either that AsymmetricDecryptRequest.ciphertext_crc32c was left unset or that it was not delivered to KeyManagementService. If you&#x27;ve set AsymmetricDecryptRequest.ciphertext_crc32c but this field is still false, discard the response and perform a limited number of retries. NOTE: This field is in Beta.
+  &quot;verifiedCiphertextCrc32c&quot;: True or False, # Integrity verification field. A flag indicating whether AsymmetricDecryptRequest.ciphertext_crc32c was received by KeyManagementService and used for the integrity verification of the ciphertext. A false value of this field indicates either that AsymmetricDecryptRequest.ciphertext_crc32c was left unset or that it was not delivered to KeyManagementService. If you&#x27;ve set AsymmetricDecryptRequest.ciphertext_crc32c but this field is still false, discard the response and perform a limited number of retries.
 }</pre>
 </div>
 
@@ -156,7 +156,7 @@
     &quot;sha384&quot;: &quot;A String&quot;, # A message digest produced with the SHA-384 algorithm.
     &quot;sha512&quot;: &quot;A String&quot;, # A message digest produced with the SHA-512 algorithm.
   },
-  &quot;digestCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the AsymmetricSignRequest.digest. If specified, KeyManagementService will verify the integrity of the received AsymmetricSignRequest.digest using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(AsymmetricSignRequest.digest) is equal to AsymmetricSignRequest.digest_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.
+  &quot;digestCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the AsymmetricSignRequest.digest. If specified, KeyManagementService will verify the integrity of the received AsymmetricSignRequest.digest using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(AsymmetricSignRequest.digest) is equal to AsymmetricSignRequest.digest_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.
 }
 
   x__xgafv: string, V1 error format.
@@ -168,11 +168,11 @@
   An object of the form:
 
     { # Response message for KeyManagementService.AsymmetricSign.
-  &quot;name&quot;: &quot;A String&quot;, # The resource name of the CryptoKeyVersion used for signing. Check this field to verify that the intended resource was used for signing. NOTE: This field is in Beta.
+  &quot;name&quot;: &quot;A String&quot;, # The resource name of the CryptoKeyVersion used for signing. Check this field to verify that the intended resource was used for signing.
   &quot;protectionLevel&quot;: &quot;A String&quot;, # The ProtectionLevel of the CryptoKeyVersion used for signing.
   &quot;signature&quot;: &quot;A String&quot;, # The created signature.
-  &quot;signatureCrc32c&quot;: &quot;A String&quot;, # Integrity verification field. A CRC32C checksum of the returned AsymmetricSignResponse.signature. An integrity check of AsymmetricSignResponse.signature can be performed by computing the CRC32C checksum of AsymmetricSignResponse.signature and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.
-  &quot;verifiedDigestCrc32c&quot;: True or False, # Integrity verification field. A flag indicating whether AsymmetricSignRequest.digest_crc32c was received by KeyManagementService and used for the integrity verification of the digest. A false value of this field indicates either that AsymmetricSignRequest.digest_crc32c was left unset or that it was not delivered to KeyManagementService. If you&#x27;ve set AsymmetricSignRequest.digest_crc32c but this field is still false, discard the response and perform a limited number of retries. NOTE: This field is in Beta.
+  &quot;signatureCrc32c&quot;: &quot;A String&quot;, # Integrity verification field. A CRC32C checksum of the returned AsymmetricSignResponse.signature. An integrity check of AsymmetricSignResponse.signature can be performed by computing the CRC32C checksum of AsymmetricSignResponse.signature and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.
+  &quot;verifiedDigestCrc32c&quot;: True or False, # Integrity verification field. A flag indicating whether AsymmetricSignRequest.digest_crc32c was received by KeyManagementService and used for the integrity verification of the digest. A false value of this field indicates either that AsymmetricSignRequest.digest_crc32c was left unset or that it was not delivered to KeyManagementService. If you&#x27;ve set AsymmetricSignRequest.digest_crc32c but this field is still false, discard the response and perform a limited number of retries.
 }</pre>
 </div>
 
diff --git a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html
index d9c6636..22e5f14 100644
--- a/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html
+++ b/docs/dyn/cloudkms_v1.projects.locations.keyRings.cryptoKeys.html
@@ -244,9 +244,9 @@
 
 { # Request message for KeyManagementService.Decrypt.
   &quot;additionalAuthenticatedData&quot;: &quot;A String&quot;, # Optional. Optional data that must match the data originally supplied in EncryptRequest.additional_authenticated_data.
-  &quot;additionalAuthenticatedDataCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the DecryptRequest.additional_authenticated_data. If specified, KeyManagementService will verify the integrity of the received DecryptRequest.additional_authenticated_data using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(DecryptRequest.additional_authenticated_data) is equal to DecryptRequest.additional_authenticated_data_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.
+  &quot;additionalAuthenticatedDataCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the DecryptRequest.additional_authenticated_data. If specified, KeyManagementService will verify the integrity of the received DecryptRequest.additional_authenticated_data using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(DecryptRequest.additional_authenticated_data) is equal to DecryptRequest.additional_authenticated_data_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.
   &quot;ciphertext&quot;: &quot;A String&quot;, # Required. The encrypted data originally returned in EncryptResponse.ciphertext.
-  &quot;ciphertextCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the DecryptRequest.ciphertext. If specified, KeyManagementService will verify the integrity of the received DecryptRequest.ciphertext using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(DecryptRequest.ciphertext) is equal to DecryptRequest.ciphertext_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.
+  &quot;ciphertextCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the DecryptRequest.ciphertext. If specified, KeyManagementService will verify the integrity of the received DecryptRequest.ciphertext using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(DecryptRequest.ciphertext) is equal to DecryptRequest.ciphertext_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.
 }
 
   x__xgafv: string, V1 error format.
@@ -259,7 +259,7 @@
 
     { # Response message for KeyManagementService.Decrypt.
   &quot;plaintext&quot;: &quot;A String&quot;, # The decrypted data originally supplied in EncryptRequest.plaintext.
-  &quot;plaintextCrc32c&quot;: &quot;A String&quot;, # Integrity verification field. A CRC32C checksum of the returned DecryptResponse.plaintext. An integrity check of DecryptResponse.plaintext can be performed by computing the CRC32C checksum of DecryptResponse.plaintext and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: receiving this response message indicates that KeyManagementService is able to successfully decrypt the ciphertext. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.
+  &quot;plaintextCrc32c&quot;: &quot;A String&quot;, # Integrity verification field. A CRC32C checksum of the returned DecryptResponse.plaintext. An integrity check of DecryptResponse.plaintext can be performed by computing the CRC32C checksum of DecryptResponse.plaintext and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: receiving this response message indicates that KeyManagementService is able to successfully decrypt the ciphertext. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.
   &quot;protectionLevel&quot;: &quot;A String&quot;, # The ProtectionLevel of the CryptoKeyVersion used in decryption.
   &quot;usedPrimary&quot;: True or False, # Whether the Decryption was performed using the primary key version.
 }</pre>
@@ -276,9 +276,9 @@
 
 { # Request message for KeyManagementService.Encrypt.
   &quot;additionalAuthenticatedData&quot;: &quot;A String&quot;, # Optional. Optional data that, if specified, must also be provided during decryption through DecryptRequest.additional_authenticated_data. The maximum size depends on the key version&#x27;s protection_level. For SOFTWARE keys, the AAD must be no larger than 64KiB. For HSM keys, the combined length of the plaintext and additional_authenticated_data fields must be no larger than 8KiB.
-  &quot;additionalAuthenticatedDataCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the EncryptRequest.additional_authenticated_data. If specified, KeyManagementService will verify the integrity of the received EncryptRequest.additional_authenticated_data using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(EncryptRequest.additional_authenticated_data) is equal to EncryptRequest.additional_authenticated_data_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.
+  &quot;additionalAuthenticatedDataCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the EncryptRequest.additional_authenticated_data. If specified, KeyManagementService will verify the integrity of the received EncryptRequest.additional_authenticated_data using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(EncryptRequest.additional_authenticated_data) is equal to EncryptRequest.additional_authenticated_data_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.
   &quot;plaintext&quot;: &quot;A String&quot;, # Required. The data to encrypt. Must be no larger than 64KiB. The maximum size depends on the key version&#x27;s protection_level. For SOFTWARE keys, the plaintext must be no larger than 64KiB. For HSM keys, the combined length of the plaintext and additional_authenticated_data fields must be no larger than 8KiB.
-  &quot;plaintextCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the EncryptRequest.plaintext. If specified, KeyManagementService will verify the integrity of the received EncryptRequest.plaintext using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(EncryptRequest.plaintext) is equal to EncryptRequest.plaintext_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.
+  &quot;plaintextCrc32c&quot;: &quot;A String&quot;, # Optional. An optional CRC32C checksum of the EncryptRequest.plaintext. If specified, KeyManagementService will verify the integrity of the received EncryptRequest.plaintext using this checksum. KeyManagementService will report an error if the checksum verification fails. If you receive a checksum error, your client should verify that CRC32C(EncryptRequest.plaintext) is equal to EncryptRequest.plaintext_crc32c, and if so, perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.
 }
 
   x__xgafv: string, V1 error format.
@@ -291,11 +291,11 @@
 
     { # Response message for KeyManagementService.Encrypt.
   &quot;ciphertext&quot;: &quot;A String&quot;, # The encrypted data.
-  &quot;ciphertextCrc32c&quot;: &quot;A String&quot;, # Integrity verification field. A CRC32C checksum of the returned EncryptResponse.ciphertext. An integrity check of EncryptResponse.ciphertext can be performed by computing the CRC32C checksum of EncryptResponse.ciphertext and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.
+  &quot;ciphertextCrc32c&quot;: &quot;A String&quot;, # Integrity verification field. A CRC32C checksum of the returned EncryptResponse.ciphertext. An integrity check of EncryptResponse.ciphertext can be performed by computing the CRC32C checksum of EncryptResponse.ciphertext and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type.
   &quot;name&quot;: &quot;A String&quot;, # The resource name of the CryptoKeyVersion used in encryption. Check this field to verify that the intended resource was used for encryption.
   &quot;protectionLevel&quot;: &quot;A String&quot;, # The ProtectionLevel of the CryptoKeyVersion used in encryption.
-  &quot;verifiedAdditionalAuthenticatedDataCrc32c&quot;: True or False, # Integrity verification field. A flag indicating whether EncryptRequest.additional_authenticated_data_crc32c was received by KeyManagementService and used for the integrity verification of the AAD. A false value of this field indicates either that EncryptRequest.additional_authenticated_data_crc32c was left unset or that it was not delivered to KeyManagementService. If you&#x27;ve set EncryptRequest.additional_authenticated_data_crc32c but this field is still false, discard the response and perform a limited number of retries. NOTE: This field is in Beta.
-  &quot;verifiedPlaintextCrc32c&quot;: True or False, # Integrity verification field. A flag indicating whether EncryptRequest.plaintext_crc32c was received by KeyManagementService and used for the integrity verification of the plaintext. A false value of this field indicates either that EncryptRequest.plaintext_crc32c was left unset or that it was not delivered to KeyManagementService. If you&#x27;ve set EncryptRequest.plaintext_crc32c but this field is still false, discard the response and perform a limited number of retries. NOTE: This field is in Beta.
+  &quot;verifiedAdditionalAuthenticatedDataCrc32c&quot;: True or False, # Integrity verification field. A flag indicating whether EncryptRequest.additional_authenticated_data_crc32c was received by KeyManagementService and used for the integrity verification of the AAD. A false value of this field indicates either that EncryptRequest.additional_authenticated_data_crc32c was left unset or that it was not delivered to KeyManagementService. If you&#x27;ve set EncryptRequest.additional_authenticated_data_crc32c but this field is still false, discard the response and perform a limited number of retries.
+  &quot;verifiedPlaintextCrc32c&quot;: True or False, # Integrity verification field. A flag indicating whether EncryptRequest.plaintext_crc32c was received by KeyManagementService and used for the integrity verification of the plaintext. A false value of this field indicates either that EncryptRequest.plaintext_crc32c was left unset or that it was not delivered to KeyManagementService. If you&#x27;ve set EncryptRequest.plaintext_crc32c but this field is still false, discard the response and perform a limited number of retries.
 }</pre>
 </div>
 
diff --git a/docs/dyn/composer_v1.projects.locations.environments.html b/docs/dyn/composer_v1.projects.locations.environments.html
index ea51143..f1ef85e 100644
--- a/docs/dyn/composer_v1.projects.locations.environments.html
+++ b/docs/dyn/composer_v1.projects.locations.environments.html
@@ -550,7 +550,7 @@
   &quot;uuid&quot;: &quot;A String&quot;, # Output only. The UUID (Universally Unique IDentifier) associated with this environment. This value is generated when the environment is created.
 }
 
-  updateMask: string, Required. A comma-separated list of paths, relative to `Environment`, of fields to update. For example, to set the version of scikit-learn to install in the environment to 0.19.0 and to remove an existing installation of numpy, the `updateMask` parameter would include the following two `paths` values: &quot;config.softwareConfig.pypiPackages.scikit-learn&quot; and &quot;config.softwareConfig.pypiPackages.numpy&quot;. The included patch environment would specify the scikit-learn version as follows: { &quot;config&quot;:{ &quot;softwareConfig&quot;:{ &quot;pypiPackages&quot;:{ &quot;scikit-learn&quot;:&quot;==0.19.0&quot; } } } } Note that in the above example, any existing PyPI packages other than scikit-learn and numpy will be unaffected. Only one update type may be included in a single request&#x27;s `updateMask`. For example, one cannot update both the PyPI packages and labels in the same request. However, it is possible to update multiple members of a map field simultaneously in the same request. For example, to set the labels &quot;label1&quot; and &quot;label2&quot; while clearing &quot;label3&quot; (assuming it already exists), one can provide the paths &quot;labels.label1&quot;, &quot;labels.label2&quot;, and &quot;labels.label3&quot; and populate the patch environment as follows: { &quot;labels&quot;:{ &quot;label1&quot;:&quot;new-label1-value&quot; &quot;label2&quot;:&quot;new-label2-value&quot; } } Note that in the above example, any existing labels that are not included in the `updateMask` will be unaffected. It is also possible to replace an entire map field by providing the map field&#x27;s path in the `updateMask`. The new value of the field will be that which is provided in the patch environment. For example, to delete all pre-existing user-specified PyPI packages and install botocore at version 1.7.14, the `updateMask` would contain the path &quot;config.softwareConfig.pypiPackages&quot;, and the patch environment would be the following: { &quot;config&quot;:{ &quot;softwareConfig&quot;:{ &quot;pypiPackages&quot;:{ &quot;botocore&quot;:&quot;==1.7.14&quot; } } } } **Note:** Only the following fields can be updated: *Mask* *Purpose* config.softwareConfig.pypiPackages Replace all custom custom PyPI packages. If a replacement package map is not included in `environment`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package. config.softwareConfig.pypiPackages.packagename Update the custom PyPI package packagename, preserving other packages. To delete the package, include it in `updateMask`, and omit the mapping for it in `environment.config.softwareConfig.pypiPackages`. It is an error to provide both a mask of this form and the &quot;config.softwareConfig.pypiPackages&quot; mask. labels Replace all environment labels. If a replacement labels map is not included in `environment`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels. labels.labelName Set the label named labelName, while preserving other labels. To delete the label, include it in `updateMask` and omit its mapping in `environment.labels`. It is an error to provide both a mask of this form and the &quot;labels&quot; mask. config.nodeCount Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the `config.nodeCount` field. config.webServerNetworkAccessControl Replace the environment&#x27;s current WebServerNetworkAccessControl. config.databaseConfig Replace the environment&#x27;s current DatabaseConfig. config.webServerConfig Replace the environment&#x27;s current WebServerConfig. config.softwareConfig.airflowConfigOverrides Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in `environment`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides. config.softwareConfig.airflowConfigOverrides.section-name Override the Apache Airflow config property name in the section named section, preserving other properties. To delete the property override, include it in `updateMask` and omit its mapping in `environment.config.softwareConfig.airflowConfigOverrides`. It is an error to provide both a mask of this form and the &quot;config.softwareConfig.airflowConfigOverrides&quot; mask. config.softwareConfig.envVariables Replace all environment variables. If a replacement environment variable map is not included in `environment`, all custom environment variables are cleared. It is an error to provide both this mask and a mask specifying one or more individual environment variables. 
+  updateMask: string, Required. A comma-separated list of paths, relative to `Environment`, of fields to update. For example, to set the version of scikit-learn to install in the environment to 0.19.0 and to remove an existing installation of numpy, the `updateMask` parameter would include the following two `paths` values: &quot;config.softwareConfig.pypiPackages.scikit-learn&quot; and &quot;config.softwareConfig.pypiPackages.numpy&quot;. The included patch environment would specify the scikit-learn version as follows: { &quot;config&quot;:{ &quot;softwareConfig&quot;:{ &quot;pypiPackages&quot;:{ &quot;scikit-learn&quot;:&quot;==0.19.0&quot; } } } } Note that in the above example, any existing PyPI packages other than scikit-learn and numpy will be unaffected. Only one update type may be included in a single request&#x27;s `updateMask`. For example, one cannot update both the PyPI packages and labels in the same request. However, it is possible to update multiple members of a map field simultaneously in the same request. For example, to set the labels &quot;label1&quot; and &quot;label2&quot; while clearing &quot;label3&quot; (assuming it already exists), one can provide the paths &quot;labels.label1&quot;, &quot;labels.label2&quot;, and &quot;labels.label3&quot; and populate the patch environment as follows: { &quot;labels&quot;:{ &quot;label1&quot;:&quot;new-label1-value&quot; &quot;label2&quot;:&quot;new-label2-value&quot; } } Note that in the above example, any existing labels that are not included in the `updateMask` will be unaffected. It is also possible to replace an entire map field by providing the map field&#x27;s path in the `updateMask`. The new value of the field will be that which is provided in the patch environment. For example, to delete all pre-existing user-specified PyPI packages and install botocore at version 1.7.14, the `updateMask` would contain the path &quot;config.softwareConfig.pypiPackages&quot;, and the patch environment would be the following: { &quot;config&quot;:{ &quot;softwareConfig&quot;:{ &quot;pypiPackages&quot;:{ &quot;botocore&quot;:&quot;==1.7.14&quot; } } } } **Note:** Only the following fields can be updated: * `config.softwareConfig.pypiPackages` * Replace all custom custom PyPI packages. If a replacement package map is not included in `environment`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package. * `config.softwareConfig.pypiPackages.`packagename * Update the custom PyPI package *packagename*, preserving other packages. To delete the package, include it in `updateMask`, and omit the mapping for it in `environment.config.softwareConfig.pypiPackages`. It is an error to provide both a mask of this form and the `config.softwareConfig.pypiPackages` mask. * `labels` * Replace all environment labels. If a replacement labels map is not included in `environment`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels. * `labels.`labelName * Set the label named *labelName*, while preserving other labels. To delete the label, include it in `updateMask` and omit its mapping in `environment.labels`. It is an error to provide both a mask of this form and the `labels` mask. * `config.nodeCount` * Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the `config.nodeCount` field. * `config.webServerNetworkAccessControl` * Replace the environment&#x27;s current `WebServerNetworkAccessControl`. * `config.databaseConfig` * Replace the environment&#x27;s current `DatabaseConfig`. * `config.webServerConfig` * Replace the environment&#x27;s current `WebServerConfig`. * `config.softwareConfig.airflowConfigOverrides` * Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in `environment`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides. * `config.softwareConfig.airflowConfigOverrides.`section-name * Override the Apache Airflow config property *name* in the section named *section*, preserving other properties. To delete the property override, include it in `updateMask` and omit its mapping in `environment.config.softwareConfig.airflowConfigOverrides`. It is an error to provide both a mask of this form and the `config.softwareConfig.airflowConfigOverrides` mask. * `config.softwareConfig.envVariables` * Replace all environment variables. If a replacement environment variable map is not included in `environment`, all custom environment variables are cleared. It is an error to provide both this mask and a mask specifying one or more individual environment variables.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/composer_v1beta1.projects.locations.environments.html b/docs/dyn/composer_v1beta1.projects.locations.environments.html
index 4543893..769a7f7 100644
--- a/docs/dyn/composer_v1beta1.projects.locations.environments.html
+++ b/docs/dyn/composer_v1beta1.projects.locations.environments.html
@@ -223,6 +223,7 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
+      &quot;schedulerCount&quot;: 42, # Optional. The number of schedulers for Airflow.
     },
     &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
       &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
@@ -409,6 +410,7 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
+      &quot;schedulerCount&quot;: 42, # Optional. The number of schedulers for Airflow.
     },
     &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
       &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
@@ -536,6 +538,7 @@
             &quot;a_key&quot;: &quot;A String&quot;,
           },
           &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
+          &quot;schedulerCount&quot;: 42, # Optional. The number of schedulers for Airflow.
         },
         &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
           &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
@@ -671,6 +674,7 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;pythonVersion&quot;: &quot;A String&quot;, # Optional. The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to &#x27;2&#x27; or &#x27;3&#x27;. If not specified, the default is &#x27;3&#x27;. Cannot be updated.
+      &quot;schedulerCount&quot;: 42, # Optional. The number of schedulers for Airflow.
     },
     &quot;webServerConfig&quot;: { # The configuration settings for the Airflow web server App Engine instance. # Optional. The configuration settings for the Airflow web server App Engine instance.
       &quot;machineType&quot;: &quot;A String&quot;, # Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.
@@ -714,7 +718,7 @@
   &quot;uuid&quot;: &quot;A String&quot;, # Output only. The UUID (Universally Unique IDentifier) associated with this environment. This value is generated when the environment is created.
 }
 
-  updateMask: string, Required. A comma-separated list of paths, relative to `Environment`, of fields to update. For example, to set the version of scikit-learn to install in the environment to 0.19.0 and to remove an existing installation of argparse, the `updateMask` parameter would include the following two `paths` values: &quot;config.softwareConfig.pypiPackages.scikit-learn&quot; and &quot;config.softwareConfig.pypiPackages.argparse&quot;. The included patch environment would specify the scikit-learn version as follows: { &quot;config&quot;:{ &quot;softwareConfig&quot;:{ &quot;pypiPackages&quot;:{ &quot;scikit-learn&quot;:&quot;==0.19.0&quot; } } } } Note that in the above example, any existing PyPI packages other than scikit-learn and argparse will be unaffected. Only one update type may be included in a single request&#x27;s `updateMask`. For example, one cannot update both the PyPI packages and labels in the same request. However, it is possible to update multiple members of a map field simultaneously in the same request. For example, to set the labels &quot;label1&quot; and &quot;label2&quot; while clearing &quot;label3&quot; (assuming it already exists), one can provide the paths &quot;labels.label1&quot;, &quot;labels.label2&quot;, and &quot;labels.label3&quot; and populate the patch environment as follows: { &quot;labels&quot;:{ &quot;label1&quot;:&quot;new-label1-value&quot; &quot;label2&quot;:&quot;new-label2-value&quot; } } Note that in the above example, any existing labels that are not included in the `updateMask` will be unaffected. It is also possible to replace an entire map field by providing the map field&#x27;s path in the `updateMask`. The new value of the field will be that which is provided in the patch environment. For example, to delete all pre-existing user-specified PyPI packages and install botocore at version 1.7.14, the `updateMask` would contain the path &quot;config.softwareConfig.pypiPackages&quot;, and the patch environment would be the following: { &quot;config&quot;:{ &quot;softwareConfig&quot;:{ &quot;pypiPackages&quot;:{ &quot;botocore&quot;:&quot;==1.7.14&quot; } } } } *Note:* Only the following fields can be updated: * config.softwareConfig.pypiPackages * Replace all custom custom PyPI packages. If a replacement package map is not included in `environment`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package. * config.softwareConfig.pypiPackages.packagename * Update the custom PyPI package packagename, preserving other packages. To delete the package, include it in `updateMask`, and omit the mapping for it in `environment.config.softwareConfig.pypiPackages`. It is an error to provide both a mask of this form and the &quot;config.softwareConfig.pypiPackages&quot; mask. * labels * Replace all environment labels. If a replacement labels map is not included in `environment`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels. * labels.labelName * Set the label named labelName, while preserving other labels. To delete the label, include it in `updateMask` and omit its mapping in `environment.labels`. It is an error to provide both a mask of this form and the &quot;labels&quot; mask. * config.nodeCount * Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the `config.nodeCount` field. * config.webServerNetworkAccessControl * Replace the environment&#x27;s current WebServerNetworkAccessControl. * config.softwareConfig.airflowConfigOverrides * Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in `environment`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides. * config.softwareConfig.airflowConfigOverrides.section- name * Override the Apache Airflow config property name in the section named section, preserving other properties. To delete the property override, include it in `updateMask` and omit its mapping in `environment.config.softwareConfig.airflowConfigOverrides`. It is an error to provide both a mask of this form and the &quot;config.softwareConfig.airflowConfigOverrides&quot; mask. * config.softwareConfig.envVariables * Replace all environment variables. If a replacement environment variable map is not included in `environment`, all custom environment variables are cleared. It is an error to provide both this mask and a mask specifying one or more individual environment variables. * config.softwareConfig.imageVersion * Upgrade the version of the environment in-place. Refer to `SoftwareConfig.image_version` for information on how to format the new image version. Additionally, the new image version cannot effect a version downgrade and must match the current image version&#x27;s Composer major version and Airflow major and minor versions. Consult the Cloud Composer Version List for valid values. * config.softwareConfig.schedulerCount * Horizontally scale the number of schedulers in Airflow. A positive integer not greater than the number of nodes must be provided in the `config.softwareConfig.schedulerCount` field. * config.databaseConfig.machineType * Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. * config.webServerConfig.machineType * Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. * config.maintenanceWindow * Maintenance window during which Cloud Composer components may be under maintenance.
+  updateMask: string, Required. A comma-separated list of paths, relative to `Environment`, of fields to update. For example, to set the version of scikit-learn to install in the environment to 0.19.0 and to remove an existing installation of argparse, the `updateMask` parameter would include the following two `paths` values: &quot;config.softwareConfig.pypiPackages.scikit-learn&quot; and &quot;config.softwareConfig.pypiPackages.argparse&quot;. The included patch environment would specify the scikit-learn version as follows: { &quot;config&quot;:{ &quot;softwareConfig&quot;:{ &quot;pypiPackages&quot;:{ &quot;scikit-learn&quot;:&quot;==0.19.0&quot; } } } } Note that in the above example, any existing PyPI packages other than scikit-learn and argparse will be unaffected. Only one update type may be included in a single request&#x27;s `updateMask`. For example, one cannot update both the PyPI packages and labels in the same request. However, it is possible to update multiple members of a map field simultaneously in the same request. For example, to set the labels &quot;label1&quot; and &quot;label2&quot; while clearing &quot;label3&quot; (assuming it already exists), one can provide the paths &quot;labels.label1&quot;, &quot;labels.label2&quot;, and &quot;labels.label3&quot; and populate the patch environment as follows: { &quot;labels&quot;:{ &quot;label1&quot;:&quot;new-label1-value&quot; &quot;label2&quot;:&quot;new-label2-value&quot; } } Note that in the above example, any existing labels that are not included in the `updateMask` will be unaffected. It is also possible to replace an entire map field by providing the map field&#x27;s path in the `updateMask`. The new value of the field will be that which is provided in the patch environment. For example, to delete all pre-existing user-specified PyPI packages and install botocore at version 1.7.14, the `updateMask` would contain the path &quot;config.softwareConfig.pypiPackages&quot;, and the patch environment would be the following: { &quot;config&quot;:{ &quot;softwareConfig&quot;:{ &quot;pypiPackages&quot;:{ &quot;botocore&quot;:&quot;==1.7.14&quot; } } } } **Note:** Only the following fields can be updated: * `config.softwareConfig.pypiPackages` * Replace all custom custom PyPI packages. If a replacement package map is not included in `environment`, all custom PyPI packages are cleared. It is an error to provide both this mask and a mask specifying an individual package. * `config.softwareConfig.pypiPackages.`packagename * Update the custom PyPI package *packagename*, preserving other packages. To delete the package, include it in `updateMask`, and omit the mapping for it in `environment.config.softwareConfig.pypiPackages`. It is an error to provide both a mask of this form and the `config.softwareConfig.pypiPackages` mask. * `labels` * Replace all environment labels. If a replacement labels map is not included in `environment`, all labels are cleared. It is an error to provide both this mask and a mask specifying one or more individual labels. * `labels.`labelName * Set the label named *labelName*, while preserving other labels. To delete the label, include it in `updateMask` and omit its mapping in `environment.labels`. It is an error to provide both a mask of this form and the `labels` mask. * `config.nodeCount` * Horizontally scale the number of nodes in the environment. An integer greater than or equal to 3 must be provided in the `config.nodeCount` field. * `config.webServerNetworkAccessControl` * Replace the environment&#x27;s current WebServerNetworkAccessControl. * `config.softwareConfig.airflowConfigOverrides` * Replace all Apache Airflow config overrides. If a replacement config overrides map is not included in `environment`, all config overrides are cleared. It is an error to provide both this mask and a mask specifying one or more individual config overrides. * `config.softwareConfig.airflowConfigOverrides.`section-name * Override the Apache Airflow config property *name* in the section named *section*, preserving other properties. To delete the property override, include it in `updateMask` and omit its mapping in `environment.config.softwareConfig.airflowConfigOverrides`. It is an error to provide both a mask of this form and the `config.softwareConfig.airflowConfigOverrides` mask. * `config.softwareConfig.envVariables` * Replace all environment variables. If a replacement environment variable map is not included in `environment`, all custom environment variables are cleared. It is an error to provide both this mask and a mask specifying one or more individual environment variables. * `config.softwareConfig.imageVersion` * Upgrade the version of the environment in-place. Refer to `SoftwareConfig.image_version` for information on how to format the new image version. Additionally, the new image version cannot effect a version downgrade and must match the current image version&#x27;s Composer major version and Airflow major and minor versions. Consult the [Cloud Composer Version List](https://cloud.google.com/composer/docs/concepts/versioning/composer-versions) for valid values. * `config.softwareConfig.schedulerCount` * Horizontally scale the number of schedulers in Airflow. A positive integer not greater than the number of nodes must be provided in the `config.softwareConfig.schedulerCount` field. * `config.databaseConfig.machineType` * Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. * `config.webServerConfig.machineType` * Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. * `config.maintenanceWindow` * Maintenance window during which Cloud Composer components may be under maintenance.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
diff --git a/docs/dyn/container_v1beta1.projects.locations.clusters.html b/docs/dyn/container_v1beta1.projects.locations.clusters.html
index b3c4498..1022f95 100644
--- a/docs/dyn/container_v1beta1.projects.locations.clusters.html
+++ b/docs/dyn/container_v1beta1.projects.locations.clusters.html
@@ -2907,6 +2907,9 @@
       },
       &quot;enableNetworkEgressMetering&quot;: True or False, # Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.
     },
+    &quot;desiredServiceExternalIpsConfig&quot;: { # Config to block services with externalIPs field. # ServiceExternalIPsConfig specifies the config for the use of Services with ExternalIPs field.
+      &quot;enabled&quot;: True or False, # Whether Services with ExternalIPs field are allowed or not.
+    },
     &quot;desiredShieldedNodes&quot;: { # Configuration of Shielded Nodes feature. # Configuration for Shielded Nodes.
       &quot;enabled&quot;: True or False, # Whether Shielded Nodes features are enabled on all nodes in this cluster.
     },
diff --git a/docs/dyn/container_v1beta1.projects.zones.clusters.html b/docs/dyn/container_v1beta1.projects.zones.clusters.html
index 509157d..2eda7fc 100644
--- a/docs/dyn/container_v1beta1.projects.zones.clusters.html
+++ b/docs/dyn/container_v1beta1.projects.zones.clusters.html
@@ -2968,6 +2968,9 @@
       },
       &quot;enableNetworkEgressMetering&quot;: True or False, # Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.
     },
+    &quot;desiredServiceExternalIpsConfig&quot;: { # Config to block services with externalIPs field. # ServiceExternalIPsConfig specifies the config for the use of Services with ExternalIPs field.
+      &quot;enabled&quot;: True or False, # Whether Services with ExternalIPs field are allowed or not.
+    },
     &quot;desiredShieldedNodes&quot;: { # Configuration of Shielded Nodes feature. # Configuration for Shielded Nodes.
       &quot;enabled&quot;: True or False, # Whether Shielded Nodes features are enabled on all nodes in this cluster.
     },
diff --git a/docs/dyn/content_v2_1.accounts.html b/docs/dyn/content_v2_1.accounts.html
index fc32abe..e184430 100644
--- a/docs/dyn/content_v2_1.accounts.html
+++ b/docs/dyn/content_v2_1.accounts.html
@@ -114,7 +114,7 @@
   <code><a href="#link">link(merchantId, accountId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Performs an action on a link between two Merchant Center accounts, namely accountId and linkedAccountId.</p>
 <p class="toc_element">
-  <code><a href="#list">list(merchantId, label=None, maxResults=None, pageToken=None, view=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(merchantId, label=None, maxResults=None, name=None, pageToken=None, view=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists the sub-accounts in your Merchant Center account.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -194,6 +194,7 @@
   &quot;entries&quot;: [ # The request entries to be processed in the batch.
     { # A batch entry encoding a single non-batch accounts request.
       &quot;account&quot;: { # Account data. After the creation of a new account it may take a few minutes before it is fully operational. The methods delete, insert, and update require the admin role. # The account to create or update. Only defined if the method is `insert` or `update`.
+        &quot;accountManagement&quot;: &quot;A String&quot;, # How the account is managed. Acceptable values are: - &quot;`manual`&quot; - &quot;`automatic`&quot;
         &quot;adsLinks&quot;: [ # Linked Ads accounts that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected either in the Ads interface or through the AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
           {
             &quot;adsId&quot;: &quot;A String&quot;, # Customer ID of the Ads account.
@@ -283,6 +284,7 @@
   &quot;entries&quot;: [ # The result of the execution of the batch requests.
     { # A batch entry encoding a single non-batch accounts response.
       &quot;account&quot;: { # Account data. After the creation of a new account it may take a few minutes before it is fully operational. The methods delete, insert, and update require the admin role. # The retrieved, created, or updated account. Not defined if the method was `delete`, `claimwebsite` or `link`.
+        &quot;accountManagement&quot;: &quot;A String&quot;, # How the account is managed. Acceptable values are: - &quot;`manual`&quot; - &quot;`automatic`&quot;
         &quot;adsLinks&quot;: [ # Linked Ads accounts that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected either in the Ads interface or through the AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
           {
             &quot;adsId&quot;: &quot;A String&quot;, # Customer ID of the Ads account.
@@ -392,6 +394,7 @@
   An object of the form:
 
     { # Account data. After the creation of a new account it may take a few minutes before it is fully operational. The methods delete, insert, and update require the admin role.
+  &quot;accountManagement&quot;: &quot;A String&quot;, # How the account is managed. Acceptable values are: - &quot;`manual`&quot; - &quot;`automatic`&quot;
   &quot;adsLinks&quot;: [ # Linked Ads accounts that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected either in the Ads interface or through the AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
     {
       &quot;adsId&quot;: &quot;A String&quot;, # Customer ID of the Ads account.
@@ -459,6 +462,7 @@
     The object takes the form of:
 
 { # Account data. After the creation of a new account it may take a few minutes before it is fully operational. The methods delete, insert, and update require the admin role.
+  &quot;accountManagement&quot;: &quot;A String&quot;, # How the account is managed. Acceptable values are: - &quot;`manual`&quot; - &quot;`automatic`&quot;
   &quot;adsLinks&quot;: [ # Linked Ads accounts that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected either in the Ads interface or through the AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
     {
       &quot;adsId&quot;: &quot;A String&quot;, # Customer ID of the Ads account.
@@ -524,6 +528,7 @@
   An object of the form:
 
     { # Account data. After the creation of a new account it may take a few minutes before it is fully operational. The methods delete, insert, and update require the admin role.
+  &quot;accountManagement&quot;: &quot;A String&quot;, # How the account is managed. Acceptable values are: - &quot;`manual`&quot; - &quot;`automatic`&quot;
   &quot;adsLinks&quot;: [ # Linked Ads accounts that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected either in the Ads interface or through the AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
     {
       &quot;adsId&quot;: &quot;A String&quot;, # Customer ID of the Ads account.
@@ -618,13 +623,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(merchantId, label=None, maxResults=None, pageToken=None, view=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(merchantId, label=None, maxResults=None, name=None, pageToken=None, view=None, x__xgafv=None)</code>
   <pre>Lists the sub-accounts in your Merchant Center account.
 
 Args:
   merchantId: string, The ID of the managing account. This must be a multi-client account. (required)
   label: string, If view is set to &quot;css&quot;, only return accounts that are assigned label with given ID.
   maxResults: integer, The maximum number of accounts to return in the response, used for paging.
+  name: string, If set, only the accounts with the given name (case sensitive) will be returned.
   pageToken: string, The token returned by the previous request.
   view: string, Controls which fields will be populated. Acceptable values are: &quot;merchant&quot; and &quot;css&quot;. The default value is &quot;merchant&quot;.
     Allowed values
@@ -643,6 +649,7 @@
   &quot;nextPageToken&quot;: &quot;A String&quot;, # The token for the retrieval of the next page of accounts.
   &quot;resources&quot;: [
     { # Account data. After the creation of a new account it may take a few minutes before it is fully operational. The methods delete, insert, and update require the admin role.
+      &quot;accountManagement&quot;: &quot;A String&quot;, # How the account is managed. Acceptable values are: - &quot;`manual`&quot; - &quot;`automatic`&quot;
       &quot;adsLinks&quot;: [ # Linked Ads accounts that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected either in the Ads interface or through the AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
         {
           &quot;adsId&quot;: &quot;A String&quot;, # Customer ID of the Ads account.
@@ -775,6 +782,7 @@
     The object takes the form of:
 
 { # Account data. After the creation of a new account it may take a few minutes before it is fully operational. The methods delete, insert, and update require the admin role.
+  &quot;accountManagement&quot;: &quot;A String&quot;, # How the account is managed. Acceptable values are: - &quot;`manual`&quot; - &quot;`automatic`&quot;
   &quot;adsLinks&quot;: [ # Linked Ads accounts that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected either in the Ads interface or through the AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
     {
       &quot;adsId&quot;: &quot;A String&quot;, # Customer ID of the Ads account.
@@ -840,6 +848,7 @@
   An object of the form:
 
     { # Account data. After the creation of a new account it may take a few minutes before it is fully operational. The methods delete, insert, and update require the admin role.
+  &quot;accountManagement&quot;: &quot;A String&quot;, # How the account is managed. Acceptable values are: - &quot;`manual`&quot; - &quot;`automatic`&quot;
   &quot;adsLinks&quot;: [ # Linked Ads accounts that are active or pending approval. To create a new link request, add a new link with status `active` to the list. It will remain in a `pending` state until approved or rejected either in the Ads interface or through the AdWords API. To delete an active link, or to cancel a link request, remove it from the list.
     {
       &quot;adsId&quot;: &quot;A String&quot;, # Customer ID of the Ads account.
diff --git a/docs/dyn/content_v2_1.accountstatuses.html b/docs/dyn/content_v2_1.accountstatuses.html
index fb0ed56..5c74fcd 100644
--- a/docs/dyn/content_v2_1.accountstatuses.html
+++ b/docs/dyn/content_v2_1.accountstatuses.html
@@ -84,7 +84,7 @@
   <code><a href="#get">get(merchantId, accountId, destinations=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Retrieves the status of a Merchant Center account. No itemLevelIssues are returned for multi-client accounts.</p>
 <p class="toc_element">
-  <code><a href="#list">list(merchantId, destinations=None, maxResults=None, pageToken=None, x__xgafv=None)</a></code></p>
+  <code><a href="#list">list(merchantId, destinations=None, maxResults=None, name=None, pageToken=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists the statuses of the sub-accounts in your Merchant Center account.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
@@ -141,6 +141,7 @@
             &quot;title&quot;: &quot;A String&quot;, # Short description of the issue.
           },
         ],
+        &quot;accountManagement&quot;: &quot;A String&quot;, # How the account is managed. Acceptable values are: - &quot;`manual`&quot; - &quot;`automatic`&quot;
         &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#accountStatus`&quot;
         &quot;products&quot;: [ # List of product-related data by channel, destination, and country. Data in this field may be delayed by up to 30 minutes.
           {
@@ -216,6 +217,7 @@
       &quot;title&quot;: &quot;A String&quot;, # Short description of the issue.
     },
   ],
+  &quot;accountManagement&quot;: &quot;A String&quot;, # How the account is managed. Acceptable values are: - &quot;`manual`&quot; - &quot;`automatic`&quot;
   &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#accountStatus`&quot;
   &quot;products&quot;: [ # List of product-related data by channel, destination, and country. Data in this field may be delayed by up to 30 minutes.
     {
@@ -247,13 +249,14 @@
 </div>
 
 <div class="method">
-    <code class="details" id="list">list(merchantId, destinations=None, maxResults=None, pageToken=None, x__xgafv=None)</code>
+    <code class="details" id="list">list(merchantId, destinations=None, maxResults=None, name=None, pageToken=None, x__xgafv=None)</code>
   <pre>Lists the statuses of the sub-accounts in your Merchant Center account.
 
 Args:
   merchantId: string, The ID of the managing account. This must be a multi-client account. (required)
   destinations: string, If set, only issues for the specified destinations are returned, otherwise only issues for the Shopping destination. (repeated)
   maxResults: integer, The maximum number of account statuses to return in the response, used for paging.
+  name: string, If set, only the accounts with the given name (case sensitive) will be returned.
   pageToken: string, The token returned by the previous request.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -280,6 +283,7 @@
           &quot;title&quot;: &quot;A String&quot;, # Short description of the issue.
         },
       ],
+      &quot;accountManagement&quot;: &quot;A String&quot;, # How the account is managed. Acceptable values are: - &quot;`manual`&quot; - &quot;`automatic`&quot;
       &quot;kind&quot;: &quot;A String&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;`content#accountStatus`&quot;
       &quot;products&quot;: [ # List of product-related data by channel, destination, and country. Data in this field may be delayed by up to 30 minutes.
         {
diff --git a/docs/dyn/content_v2_1.orderinvoices.html b/docs/dyn/content_v2_1.orderinvoices.html
index fdd3ce0..ac26fd2 100644
--- a/docs/dyn/content_v2_1.orderinvoices.html
+++ b/docs/dyn/content_v2_1.orderinvoices.html
@@ -138,7 +138,7 @@
       &quot;unitInvoice&quot;: { # [required] Invoice details for a single unit.
         &quot;additionalCharges&quot;: [ # Additional charges for a unit, e.g. shipping costs.
           {
-            &quot;additionalChargeAmount&quot;: { # [required] Amount of the additional charge.
+            &quot;additionalChargeAmount&quot;: { # [required] Amount of the additional charge per unit. *Note:* Invoicing works on a per unit bases. The `additionalChargeAmount` is the amount charged per unit, and will be multiplied by the number of entries in `shipmentUnitID`.
               &quot;priceAmount&quot;: { # [required] The pre-tax or post-tax price depending on the location of the order.
                 &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
                 &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
@@ -151,7 +151,7 @@
             &quot;type&quot;: &quot;A String&quot;, # [required] Type of the additional charge. Acceptable values are: - &quot;`shipping`&quot;
           },
         ],
-        &quot;unitPrice&quot;: { # [required] Pre-tax or post-tax price of the unit depending on the locality of the order.
+        &quot;unitPrice&quot;: { # [required] Pre-tax or post-tax price of one unit depending on the locality of the order. *Note:* Invoicing works on a per unit basis. The `unitPrice` is the price of a single unit, and will be multiplied by the number of entries in `shipmentUnitId`.
           &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
           &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
         },
@@ -246,7 +246,7 @@
           &quot;unitInvoice&quot;: { # [required] Invoice details for a single unit.
             &quot;additionalCharges&quot;: [ # Additional charges for a unit, e.g. shipping costs.
               {
-                &quot;additionalChargeAmount&quot;: { # [required] Amount of the additional charge.
+                &quot;additionalChargeAmount&quot;: { # [required] Amount of the additional charge per unit. *Note:* Invoicing works on a per unit bases. The `additionalChargeAmount` is the amount charged per unit, and will be multiplied by the number of entries in `shipmentUnitID`.
                   &quot;priceAmount&quot;: { # [required] The pre-tax or post-tax price depending on the location of the order.
                     &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
                     &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
@@ -259,7 +259,7 @@
                 &quot;type&quot;: &quot;A String&quot;, # [required] Type of the additional charge. Acceptable values are: - &quot;`shipping`&quot;
               },
             ],
-            &quot;unitPrice&quot;: { # [required] Pre-tax or post-tax price of the unit depending on the locality of the order.
+            &quot;unitPrice&quot;: { # [required] Pre-tax or post-tax price of one unit depending on the locality of the order. *Note:* Invoicing works on a per unit basis. The `unitPrice` is the price of a single unit, and will be multiplied by the number of entries in `shipmentUnitId`.
               &quot;currency&quot;: &quot;A String&quot;, # The currency of the price.
               &quot;value&quot;: &quot;A String&quot;, # The price represented as a number.
             },
diff --git a/docs/dyn/datacatalog_v1.catalog.html b/docs/dyn/datacatalog_v1.catalog.html
index 70d5f55..8c8477a 100644
--- a/docs/dyn/datacatalog_v1.catalog.html
+++ b/docs/dyn/datacatalog_v1.catalog.html
@@ -110,6 +110,7 @@
     &quot;includeProjectIds&quot;: [ # The list of project IDs to search within. For more information on the distinction between project names, IDs, and numbers, see [Projects](/docs/overview/#projects).
       &quot;A String&quot;,
     ],
+    &quot;includePublicTagTemplates&quot;: True or False, # Optional. If `true`, include public tag templates in the search results. By default, they are included only if you have explicit permissions on them to view them. For example, if you are the owner. Other scope fields, for example, ``include_org_ids``, still restrict the returned public tag templates and at least one of them is required.
     &quot;restrictedLocations&quot;: [ # Optional. The list of locations to search within. If empty, all locations are searched. Returns an error if any location in the list isn&#x27;t one of the [Supported regions](https://cloud.google.com/data-catalog/docs/concepts/regions#supported_regions). If a location is unreachable, its name is returned in the `SearchCatalogResponse.unreachable` field. To get additional information on the error, repeat the search request and set the location name as the value of this parameter.
       &quot;A String&quot;,
     ],
diff --git a/docs/dyn/datacatalog_v1.entries.html b/docs/dyn/datacatalog_v1.entries.html
index faf015c..1488063 100644
--- a/docs/dyn/datacatalog_v1.entries.html
+++ b/docs/dyn/datacatalog_v1.entries.html
@@ -121,6 +121,17 @@
     &quot;resource&quot;: &quot;A String&quot;, # Full name of a resource as defined by the service. For example: `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
     &quot;service&quot;: &quot;A String&quot;, # Service that physically stores the data.
   },
+  &quot;dataSourceConnectionSpec&quot;: { # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type. # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type.
+    &quot;bigqueryConnectionSpec&quot;: { # Specification for the BigQuery connection. # Fields specific to BigQuery connections.
+      &quot;cloudSql&quot;: { # Specification for the BigQuery connection to a Cloud SQL instance. # Specification for the BigQuery connection to a Cloud SQL instance.
+        &quot;database&quot;: &quot;A String&quot;, # Database name.
+        &quot;instanceId&quot;: &quot;A String&quot;, # Cloud SQL instance ID in the format of `project:location:instance`.
+        &quot;type&quot;: &quot;A String&quot;, # Type of the Cloud SQL database.
+      },
+      &quot;connectionType&quot;: &quot;A String&quot;, # The type of the BigQuery connection.
+      &quot;hasCredential&quot;: True or False, # True if there are credentials attached to the BigQuery connection; false otherwise.
+    },
+  },
   &quot;databaseTableSpec&quot;: { # Specification that applies to a table resource. Valid only for entries with the `TABLE` type. # Specification that applies to a table resource. Valid only for entries with the `TABLE` type.
     &quot;type&quot;: &quot;A String&quot;, # Type of this table.
   },
@@ -144,6 +155,9 @@
     ],
   },
   &quot;integratedSystem&quot;: &quot;A String&quot;, # Output only. Indicates the entry&#x27;s source system that Data Catalog integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.
+  &quot;labels&quot;: { # Cloud labels attached to the entry. In Data Catalog, you can create and modify labels attached only to custom entries. Synced entries have unmodifiable labels that come from the source system.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
   &quot;linkedResource&quot;: &quot;A String&quot;, # The resource this metadata entry refers to. For Google Cloud Platform resources, `linked_resource` is the [Full Resource Name] (https://cloud.google.com/apis/design/resource_names#full_resource_name). For example, the `linked_resource` for a table resource from BigQuery is: `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}` Output only when the entry is one of the types in the `EntryType` enum. For entries with a `user_specified_type`, this field is optional and defaults to an empty string. The resource string must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), periods (.), colons (:), slashes (/), dashes (-), and hashes (#). The maximum size is 200 bytes when encoded in UTF-8.
   &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.
   &quot;routineSpec&quot;: { # Specification that applies to a routine. Valid only for entries with the `ROUTINE` type. # Specification that applies to a user-defined function or procedure. Valid only for entries with the `ROUTINE` type.
diff --git a/docs/dyn/datacatalog_v1.projects.locations.entryGroups.entries.html b/docs/dyn/datacatalog_v1.projects.locations.entryGroups.entries.html
index 9f7915d..6c060e0 100644
--- a/docs/dyn/datacatalog_v1.projects.locations.entryGroups.entries.html
+++ b/docs/dyn/datacatalog_v1.projects.locations.entryGroups.entries.html
@@ -140,6 +140,17 @@
     &quot;resource&quot;: &quot;A String&quot;, # Full name of a resource as defined by the service. For example: `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
     &quot;service&quot;: &quot;A String&quot;, # Service that physically stores the data.
   },
+  &quot;dataSourceConnectionSpec&quot;: { # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type. # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type.
+    &quot;bigqueryConnectionSpec&quot;: { # Specification for the BigQuery connection. # Fields specific to BigQuery connections.
+      &quot;cloudSql&quot;: { # Specification for the BigQuery connection to a Cloud SQL instance. # Specification for the BigQuery connection to a Cloud SQL instance.
+        &quot;database&quot;: &quot;A String&quot;, # Database name.
+        &quot;instanceId&quot;: &quot;A String&quot;, # Cloud SQL instance ID in the format of `project:location:instance`.
+        &quot;type&quot;: &quot;A String&quot;, # Type of the Cloud SQL database.
+      },
+      &quot;connectionType&quot;: &quot;A String&quot;, # The type of the BigQuery connection.
+      &quot;hasCredential&quot;: True or False, # True if there are credentials attached to the BigQuery connection; false otherwise.
+    },
+  },
   &quot;databaseTableSpec&quot;: { # Specification that applies to a table resource. Valid only for entries with the `TABLE` type. # Specification that applies to a table resource. Valid only for entries with the `TABLE` type.
     &quot;type&quot;: &quot;A String&quot;, # Type of this table.
   },
@@ -163,6 +174,9 @@
     ],
   },
   &quot;integratedSystem&quot;: &quot;A String&quot;, # Output only. Indicates the entry&#x27;s source system that Data Catalog integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.
+  &quot;labels&quot;: { # Cloud labels attached to the entry. In Data Catalog, you can create and modify labels attached only to custom entries. Synced entries have unmodifiable labels that come from the source system.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
   &quot;linkedResource&quot;: &quot;A String&quot;, # The resource this metadata entry refers to. For Google Cloud Platform resources, `linked_resource` is the [Full Resource Name] (https://cloud.google.com/apis/design/resource_names#full_resource_name). For example, the `linked_resource` for a table resource from BigQuery is: `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}` Output only when the entry is one of the types in the `EntryType` enum. For entries with a `user_specified_type`, this field is optional and defaults to an empty string. The resource string must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), periods (.), colons (:), slashes (/), dashes (-), and hashes (#). The maximum size is 200 bytes when encoded in UTF-8.
   &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.
   &quot;routineSpec&quot;: { # Specification that applies to a routine. Valid only for entries with the `ROUTINE` type. # Specification that applies to a user-defined function or procedure. Valid only for entries with the `ROUTINE` type.
@@ -245,6 +259,17 @@
     &quot;resource&quot;: &quot;A String&quot;, # Full name of a resource as defined by the service. For example: `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
     &quot;service&quot;: &quot;A String&quot;, # Service that physically stores the data.
   },
+  &quot;dataSourceConnectionSpec&quot;: { # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type. # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type.
+    &quot;bigqueryConnectionSpec&quot;: { # Specification for the BigQuery connection. # Fields specific to BigQuery connections.
+      &quot;cloudSql&quot;: { # Specification for the BigQuery connection to a Cloud SQL instance. # Specification for the BigQuery connection to a Cloud SQL instance.
+        &quot;database&quot;: &quot;A String&quot;, # Database name.
+        &quot;instanceId&quot;: &quot;A String&quot;, # Cloud SQL instance ID in the format of `project:location:instance`.
+        &quot;type&quot;: &quot;A String&quot;, # Type of the Cloud SQL database.
+      },
+      &quot;connectionType&quot;: &quot;A String&quot;, # The type of the BigQuery connection.
+      &quot;hasCredential&quot;: True or False, # True if there are credentials attached to the BigQuery connection; false otherwise.
+    },
+  },
   &quot;databaseTableSpec&quot;: { # Specification that applies to a table resource. Valid only for entries with the `TABLE` type. # Specification that applies to a table resource. Valid only for entries with the `TABLE` type.
     &quot;type&quot;: &quot;A String&quot;, # Type of this table.
   },
@@ -268,6 +293,9 @@
     ],
   },
   &quot;integratedSystem&quot;: &quot;A String&quot;, # Output only. Indicates the entry&#x27;s source system that Data Catalog integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.
+  &quot;labels&quot;: { # Cloud labels attached to the entry. In Data Catalog, you can create and modify labels attached only to custom entries. Synced entries have unmodifiable labels that come from the source system.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
   &quot;linkedResource&quot;: &quot;A String&quot;, # The resource this metadata entry refers to. For Google Cloud Platform resources, `linked_resource` is the [Full Resource Name] (https://cloud.google.com/apis/design/resource_names#full_resource_name). For example, the `linked_resource` for a table resource from BigQuery is: `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}` Output only when the entry is one of the types in the `EntryType` enum. For entries with a `user_specified_type`, this field is optional and defaults to an empty string. The resource string must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), periods (.), colons (:), slashes (/), dashes (-), and hashes (#). The maximum size is 200 bytes when encoded in UTF-8.
   &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.
   &quot;routineSpec&quot;: { # Specification that applies to a routine. Valid only for entries with the `ROUTINE` type. # Specification that applies to a user-defined function or procedure. Valid only for entries with the `ROUTINE` type.
@@ -374,6 +402,17 @@
     &quot;resource&quot;: &quot;A String&quot;, # Full name of a resource as defined by the service. For example: `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
     &quot;service&quot;: &quot;A String&quot;, # Service that physically stores the data.
   },
+  &quot;dataSourceConnectionSpec&quot;: { # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type. # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type.
+    &quot;bigqueryConnectionSpec&quot;: { # Specification for the BigQuery connection. # Fields specific to BigQuery connections.
+      &quot;cloudSql&quot;: { # Specification for the BigQuery connection to a Cloud SQL instance. # Specification for the BigQuery connection to a Cloud SQL instance.
+        &quot;database&quot;: &quot;A String&quot;, # Database name.
+        &quot;instanceId&quot;: &quot;A String&quot;, # Cloud SQL instance ID in the format of `project:location:instance`.
+        &quot;type&quot;: &quot;A String&quot;, # Type of the Cloud SQL database.
+      },
+      &quot;connectionType&quot;: &quot;A String&quot;, # The type of the BigQuery connection.
+      &quot;hasCredential&quot;: True or False, # True if there are credentials attached to the BigQuery connection; false otherwise.
+    },
+  },
   &quot;databaseTableSpec&quot;: { # Specification that applies to a table resource. Valid only for entries with the `TABLE` type. # Specification that applies to a table resource. Valid only for entries with the `TABLE` type.
     &quot;type&quot;: &quot;A String&quot;, # Type of this table.
   },
@@ -397,6 +436,9 @@
     ],
   },
   &quot;integratedSystem&quot;: &quot;A String&quot;, # Output only. Indicates the entry&#x27;s source system that Data Catalog integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.
+  &quot;labels&quot;: { # Cloud labels attached to the entry. In Data Catalog, you can create and modify labels attached only to custom entries. Synced entries have unmodifiable labels that come from the source system.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
   &quot;linkedResource&quot;: &quot;A String&quot;, # The resource this metadata entry refers to. For Google Cloud Platform resources, `linked_resource` is the [Full Resource Name] (https://cloud.google.com/apis/design/resource_names#full_resource_name). For example, the `linked_resource` for a table resource from BigQuery is: `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}` Output only when the entry is one of the types in the `EntryType` enum. For entries with a `user_specified_type`, this field is optional and defaults to an empty string. The resource string must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), periods (.), colons (:), slashes (/), dashes (-), and hashes (#). The maximum size is 200 bytes when encoded in UTF-8.
   &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.
   &quot;routineSpec&quot;: { # Specification that applies to a routine. Valid only for entries with the `ROUTINE` type. # Specification that applies to a user-defined function or procedure. Valid only for entries with the `ROUTINE` type.
@@ -533,6 +575,17 @@
         &quot;resource&quot;: &quot;A String&quot;, # Full name of a resource as defined by the service. For example: `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
         &quot;service&quot;: &quot;A String&quot;, # Service that physically stores the data.
       },
+      &quot;dataSourceConnectionSpec&quot;: { # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type. # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type.
+        &quot;bigqueryConnectionSpec&quot;: { # Specification for the BigQuery connection. # Fields specific to BigQuery connections.
+          &quot;cloudSql&quot;: { # Specification for the BigQuery connection to a Cloud SQL instance. # Specification for the BigQuery connection to a Cloud SQL instance.
+            &quot;database&quot;: &quot;A String&quot;, # Database name.
+            &quot;instanceId&quot;: &quot;A String&quot;, # Cloud SQL instance ID in the format of `project:location:instance`.
+            &quot;type&quot;: &quot;A String&quot;, # Type of the Cloud SQL database.
+          },
+          &quot;connectionType&quot;: &quot;A String&quot;, # The type of the BigQuery connection.
+          &quot;hasCredential&quot;: True or False, # True if there are credentials attached to the BigQuery connection; false otherwise.
+        },
+      },
       &quot;databaseTableSpec&quot;: { # Specification that applies to a table resource. Valid only for entries with the `TABLE` type. # Specification that applies to a table resource. Valid only for entries with the `TABLE` type.
         &quot;type&quot;: &quot;A String&quot;, # Type of this table.
       },
@@ -556,6 +609,9 @@
         ],
       },
       &quot;integratedSystem&quot;: &quot;A String&quot;, # Output only. Indicates the entry&#x27;s source system that Data Catalog integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.
+      &quot;labels&quot;: { # Cloud labels attached to the entry. In Data Catalog, you can create and modify labels attached only to custom entries. Synced entries have unmodifiable labels that come from the source system.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
       &quot;linkedResource&quot;: &quot;A String&quot;, # The resource this metadata entry refers to. For Google Cloud Platform resources, `linked_resource` is the [Full Resource Name] (https://cloud.google.com/apis/design/resource_names#full_resource_name). For example, the `linked_resource` for a table resource from BigQuery is: `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}` Output only when the entry is one of the types in the `EntryType` enum. For entries with a `user_specified_type`, this field is optional and defaults to an empty string. The resource string must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), periods (.), colons (:), slashes (/), dashes (-), and hashes (#). The maximum size is 200 bytes when encoded in UTF-8.
       &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.
       &quot;routineSpec&quot;: { # Specification that applies to a routine. Valid only for entries with the `ROUTINE` type. # Specification that applies to a user-defined function or procedure. Valid only for entries with the `ROUTINE` type.
@@ -656,6 +712,17 @@
     &quot;resource&quot;: &quot;A String&quot;, # Full name of a resource as defined by the service. For example: `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
     &quot;service&quot;: &quot;A String&quot;, # Service that physically stores the data.
   },
+  &quot;dataSourceConnectionSpec&quot;: { # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type. # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type.
+    &quot;bigqueryConnectionSpec&quot;: { # Specification for the BigQuery connection. # Fields specific to BigQuery connections.
+      &quot;cloudSql&quot;: { # Specification for the BigQuery connection to a Cloud SQL instance. # Specification for the BigQuery connection to a Cloud SQL instance.
+        &quot;database&quot;: &quot;A String&quot;, # Database name.
+        &quot;instanceId&quot;: &quot;A String&quot;, # Cloud SQL instance ID in the format of `project:location:instance`.
+        &quot;type&quot;: &quot;A String&quot;, # Type of the Cloud SQL database.
+      },
+      &quot;connectionType&quot;: &quot;A String&quot;, # The type of the BigQuery connection.
+      &quot;hasCredential&quot;: True or False, # True if there are credentials attached to the BigQuery connection; false otherwise.
+    },
+  },
   &quot;databaseTableSpec&quot;: { # Specification that applies to a table resource. Valid only for entries with the `TABLE` type. # Specification that applies to a table resource. Valid only for entries with the `TABLE` type.
     &quot;type&quot;: &quot;A String&quot;, # Type of this table.
   },
@@ -679,6 +746,9 @@
     ],
   },
   &quot;integratedSystem&quot;: &quot;A String&quot;, # Output only. Indicates the entry&#x27;s source system that Data Catalog integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.
+  &quot;labels&quot;: { # Cloud labels attached to the entry. In Data Catalog, you can create and modify labels attached only to custom entries. Synced entries have unmodifiable labels that come from the source system.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
   &quot;linkedResource&quot;: &quot;A String&quot;, # The resource this metadata entry refers to. For Google Cloud Platform resources, `linked_resource` is the [Full Resource Name] (https://cloud.google.com/apis/design/resource_names#full_resource_name). For example, the `linked_resource` for a table resource from BigQuery is: `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}` Output only when the entry is one of the types in the `EntryType` enum. For entries with a `user_specified_type`, this field is optional and defaults to an empty string. The resource string must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), periods (.), colons (:), slashes (/), dashes (-), and hashes (#). The maximum size is 200 bytes when encoded in UTF-8.
   &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.
   &quot;routineSpec&quot;: { # Specification that applies to a routine. Valid only for entries with the `ROUTINE` type. # Specification that applies to a user-defined function or procedure. Valid only for entries with the `ROUTINE` type.
@@ -761,6 +831,17 @@
     &quot;resource&quot;: &quot;A String&quot;, # Full name of a resource as defined by the service. For example: `//bigquery.googleapis.com/projects/{PROJECT_ID}/locations/{LOCATION}/datasets/{DATASET_ID}/tables/{TABLE_ID}`
     &quot;service&quot;: &quot;A String&quot;, # Service that physically stores the data.
   },
+  &quot;dataSourceConnectionSpec&quot;: { # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type. # Specification that applies to a data source connection. Valid only for entries with the `DATA_SOURCE_CONNECTION` type.
+    &quot;bigqueryConnectionSpec&quot;: { # Specification for the BigQuery connection. # Fields specific to BigQuery connections.
+      &quot;cloudSql&quot;: { # Specification for the BigQuery connection to a Cloud SQL instance. # Specification for the BigQuery connection to a Cloud SQL instance.
+        &quot;database&quot;: &quot;A String&quot;, # Database name.
+        &quot;instanceId&quot;: &quot;A String&quot;, # Cloud SQL instance ID in the format of `project:location:instance`.
+        &quot;type&quot;: &quot;A String&quot;, # Type of the Cloud SQL database.
+      },
+      &quot;connectionType&quot;: &quot;A String&quot;, # The type of the BigQuery connection.
+      &quot;hasCredential&quot;: True or False, # True if there are credentials attached to the BigQuery connection; false otherwise.
+    },
+  },
   &quot;databaseTableSpec&quot;: { # Specification that applies to a table resource. Valid only for entries with the `TABLE` type. # Specification that applies to a table resource. Valid only for entries with the `TABLE` type.
     &quot;type&quot;: &quot;A String&quot;, # Type of this table.
   },
@@ -784,6 +865,9 @@
     ],
   },
   &quot;integratedSystem&quot;: &quot;A String&quot;, # Output only. Indicates the entry&#x27;s source system that Data Catalog integrates with, such as BigQuery, Pub/Sub, or Dataproc Metastore.
+  &quot;labels&quot;: { # Cloud labels attached to the entry. In Data Catalog, you can create and modify labels attached only to custom entries. Synced entries have unmodifiable labels that come from the source system.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
   &quot;linkedResource&quot;: &quot;A String&quot;, # The resource this metadata entry refers to. For Google Cloud Platform resources, `linked_resource` is the [Full Resource Name] (https://cloud.google.com/apis/design/resource_names#full_resource_name). For example, the `linked_resource` for a table resource from BigQuery is: `//bigquery.googleapis.com/projects/{PROJECT_ID}/datasets/{DATASET_ID}/tables/{TABLE_ID}` Output only when the entry is one of the types in the `EntryType` enum. For entries with a `user_specified_type`, this field is optional and defaults to an empty string. The resource string must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), periods (.), colons (:), slashes (/), dashes (-), and hashes (#). The maximum size is 200 bytes when encoded in UTF-8.
   &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.
   &quot;routineSpec&quot;: { # Specification that applies to a routine. Valid only for entries with the `ROUTINE` type. # Specification that applies to a user-defined function or procedure. Valid only for entries with the `ROUTINE` type.
diff --git a/docs/dyn/datacatalog_v1.projects.locations.tagTemplates.html b/docs/dyn/datacatalog_v1.projects.locations.tagTemplates.html
index 46865c3..34d756f 100644
--- a/docs/dyn/datacatalog_v1.projects.locations.tagTemplates.html
+++ b/docs/dyn/datacatalog_v1.projects.locations.tagTemplates.html
@@ -139,6 +139,7 @@
       },
     },
   },
+  &quot;isPubliclyReadable&quot;: True or False, # Indicates whether this is a public tag template. Every user has view access to a *public* tag template by default. This means that: * Every user can use this tag template to tag an entry. * If an entry is tagged using the tag template, the tag is always shown in the response to ``ListTags`` called on the entry. * To get the template using the GetTagTemplate method, you need view access either on the project or the organization the tag template resides in but no other permission is needed. * Operations on the tag template other than viewing (for example, editing IAM policies) follow standard IAM structures. Tags created with a public tag template are referred to as public tags. You can search for a public tag by value with a simple search query instead of using a ``tag:`` predicate. Public tag templates may not appear in search results depending on scope, see: include_public_tag_templates
   &quot;name&quot;: &quot;A String&quot;, # The resource name of the tag template in URL format. Note: The tag template itself and its child resources might not be stored in the location specified in its name.
 }
 
@@ -172,6 +173,7 @@
       },
     },
   },
+  &quot;isPubliclyReadable&quot;: True or False, # Indicates whether this is a public tag template. Every user has view access to a *public* tag template by default. This means that: * Every user can use this tag template to tag an entry. * If an entry is tagged using the tag template, the tag is always shown in the response to ``ListTags`` called on the entry. * To get the template using the GetTagTemplate method, you need view access either on the project or the organization the tag template resides in but no other permission is needed. * Operations on the tag template other than viewing (for example, editing IAM policies) follow standard IAM structures. Tags created with a public tag template are referred to as public tags. You can search for a public tag by value with a simple search query instead of using a ``tag:`` predicate. Public tag templates may not appear in search results depending on scope, see: include_public_tag_templates
   &quot;name&quot;: &quot;A String&quot;, # The resource name of the tag template in URL format. Note: The tag template itself and its child resources might not be stored in the location specified in its name.
 }</pre>
 </div>
@@ -230,6 +232,7 @@
       },
     },
   },
+  &quot;isPubliclyReadable&quot;: True or False, # Indicates whether this is a public tag template. Every user has view access to a *public* tag template by default. This means that: * Every user can use this tag template to tag an entry. * If an entry is tagged using the tag template, the tag is always shown in the response to ``ListTags`` called on the entry. * To get the template using the GetTagTemplate method, you need view access either on the project or the organization the tag template resides in but no other permission is needed. * Operations on the tag template other than viewing (for example, editing IAM policies) follow standard IAM structures. Tags created with a public tag template are referred to as public tags. You can search for a public tag by value with a simple search query instead of using a ``tag:`` predicate. Public tag templates may not appear in search results depending on scope, see: include_public_tag_templates
   &quot;name&quot;: &quot;A String&quot;, # The resource name of the tag template in URL format. Note: The tag template itself and its child resources might not be stored in the location specified in its name.
 }</pre>
 </div>
@@ -307,6 +310,7 @@
       },
     },
   },
+  &quot;isPubliclyReadable&quot;: True or False, # Indicates whether this is a public tag template. Every user has view access to a *public* tag template by default. This means that: * Every user can use this tag template to tag an entry. * If an entry is tagged using the tag template, the tag is always shown in the response to ``ListTags`` called on the entry. * To get the template using the GetTagTemplate method, you need view access either on the project or the organization the tag template resides in but no other permission is needed. * Operations on the tag template other than viewing (for example, editing IAM policies) follow standard IAM structures. Tags created with a public tag template are referred to as public tags. You can search for a public tag by value with a simple search query instead of using a ``tag:`` predicate. Public tag templates may not appear in search results depending on scope, see: include_public_tag_templates
   &quot;name&quot;: &quot;A String&quot;, # The resource name of the tag template in URL format. Note: The tag template itself and its child resources might not be stored in the location specified in its name.
 }
 
@@ -340,6 +344,7 @@
       },
     },
   },
+  &quot;isPubliclyReadable&quot;: True or False, # Indicates whether this is a public tag template. Every user has view access to a *public* tag template by default. This means that: * Every user can use this tag template to tag an entry. * If an entry is tagged using the tag template, the tag is always shown in the response to ``ListTags`` called on the entry. * To get the template using the GetTagTemplate method, you need view access either on the project or the organization the tag template resides in but no other permission is needed. * Operations on the tag template other than viewing (for example, editing IAM policies) follow standard IAM structures. Tags created with a public tag template are referred to as public tags. You can search for a public tag by value with a simple search query instead of using a ``tag:`` predicate. Public tag templates may not appear in search results depending on scope, see: include_public_tag_templates
   &quot;name&quot;: &quot;A String&quot;, # The resource name of the tag template in URL format. Note: The tag template itself and its child resources might not be stored in the location specified in its name.
 }</pre>
 </div>
diff --git a/docs/dyn/dataflow_v1b3.projects.locations.flexTemplates.html b/docs/dyn/dataflow_v1b3.projects.locations.flexTemplates.html
index c4eb64f..eb6293c 100644
--- a/docs/dyn/dataflow_v1b3.projects.locations.flexTemplates.html
+++ b/docs/dyn/dataflow_v1b3.projects.locations.flexTemplates.html
@@ -106,11 +106,13 @@
         &quot;additionalUserLabels&quot;: { # Additional user labels to be specified for the job. Keys and values must follow the restrictions specified in the [labeling restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) page. An object containing a list of &quot;key&quot;: value pairs. Example: { &quot;name&quot;: &quot;wrench&quot;, &quot;mass&quot;: &quot;1kg&quot;, &quot;count&quot;: &quot;3&quot; }.
           &quot;a_key&quot;: &quot;A String&quot;,
         },
+        &quot;diskSizeGb&quot;: 42, # Worker disk size, in gigabytes.
         &quot;enableStreamingEngine&quot;: True or False, # Whether to enable Streaming Engine for the job.
         &quot;flexrsGoal&quot;: &quot;A String&quot;, # Set FlexRS goal for the job. https://cloud.google.com/dataflow/docs/guides/flexrs
         &quot;ipConfiguration&quot;: &quot;A String&quot;, # Configuration for VM IPs.
         &quot;kmsKeyName&quot;: &quot;A String&quot;, # Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings//cryptoKeys/
         &quot;machineType&quot;: &quot;A String&quot;, # The machine type to use for the job. Defaults to the value from the template if not specified.
+        &quot;maxNumWorkers&quot;: 42, # The maximum number of workers to cap scaling at.
         &quot;maxWorkers&quot;: 42, # The maximum number of Google Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000.
         &quot;network&quot;: &quot;A String&quot;, # Network to which VMs will be assigned. If empty or unspecified, the service will use the network &quot;default&quot;.
         &quot;numWorkers&quot;: 42, # The initial number of Google Compute Engine instances for the job.
@@ -156,11 +158,13 @@
       &quot;additionalUserLabels&quot;: { # Additional user labels to be specified for the job. Keys and values must follow the restrictions specified in the [labeling restrictions](https://cloud.google.com/compute/docs/labeling-resources#restrictions) page. An object containing a list of &quot;key&quot;: value pairs. Example: { &quot;name&quot;: &quot;wrench&quot;, &quot;mass&quot;: &quot;1kg&quot;, &quot;count&quot;: &quot;3&quot; }.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
+      &quot;diskSizeGb&quot;: 42, # Worker disk size, in gigabytes.
       &quot;enableStreamingEngine&quot;: True or False, # Whether to enable Streaming Engine for the job.
       &quot;flexrsGoal&quot;: &quot;A String&quot;, # Set FlexRS goal for the job. https://cloud.google.com/dataflow/docs/guides/flexrs
       &quot;ipConfiguration&quot;: &quot;A String&quot;, # Configuration for VM IPs.
       &quot;kmsKeyName&quot;: &quot;A String&quot;, # Name for the Cloud KMS key for the job. Key format is: projects//locations//keyRings//cryptoKeys/
       &quot;machineType&quot;: &quot;A String&quot;, # The machine type to use for the job. Defaults to the value from the template if not specified.
+      &quot;maxNumWorkers&quot;: 42, # The maximum number of workers to cap scaling at.
       &quot;maxWorkers&quot;: 42, # The maximum number of Google Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000.
       &quot;network&quot;: &quot;A String&quot;, # Network to which VMs will be assigned. If empty or unspecified, the service will use the network &quot;default&quot;.
       &quot;numWorkers&quot;: 42, # The initial number of Google Compute Engine instances for the job.
diff --git a/docs/dyn/datastore_v1.projects.html b/docs/dyn/datastore_v1.projects.html
index 4f71a3f..96acf9c 100644
--- a/docs/dyn/datastore_v1.projects.html
+++ b/docs/dyn/datastore_v1.projects.html
@@ -248,7 +248,40 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: # Object with schema name: Value
+          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                # Object with schema name: Value
+              ],
+            },
+            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+            &quot;booleanValue&quot;: True or False, # A boolean value.
+            &quot;doubleValue&quot;: 3.14, # A double value.
+            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+          },
         },
       },
       &quot;update&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # The entity to update. The entity must already exist. Must have a complete key path.
@@ -266,7 +299,40 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: # Object with schema name: Value
+          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                # Object with schema name: Value
+              ],
+            },
+            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+            &quot;booleanValue&quot;: True or False, # A boolean value.
+            &quot;doubleValue&quot;: 3.14, # A double value.
+            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+          },
         },
       },
       &quot;upsert&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # The entity to upsert. The entity may or may not already exist. The entity key&#x27;s final path element may be incomplete.
@@ -284,7 +350,40 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: # Object with schema name: Value
+          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                # Object with schema name: Value
+              ],
+            },
+            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+            &quot;booleanValue&quot;: True or False, # A boolean value.
+            &quot;doubleValue&quot;: 3.14, # A double value.
+            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+          },
         },
       },
     },
@@ -503,7 +602,40 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: # Object with schema name: Value
+          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                # Object with schema name: Value
+              ],
+            },
+            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+            &quot;booleanValue&quot;: True or False, # A boolean value.
+            &quot;doubleValue&quot;: 3.14, # A double value.
+            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+          },
         },
       },
       &quot;version&quot;: &quot;A String&quot;, # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.
@@ -527,7 +659,40 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: # Object with schema name: Value
+          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                # Object with schema name: Value
+              ],
+            },
+            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+            &quot;booleanValue&quot;: True or False, # A boolean value.
+            &quot;doubleValue&quot;: 3.14, # A double value.
+            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+            },
+            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+          },
         },
       },
       &quot;version&quot;: &quot;A String&quot;, # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.
@@ -625,24 +790,7 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-              &quot;a_key&quot;: # Object with schema name: Value
-            },
-          },
+          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -681,24 +829,7 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-              &quot;a_key&quot;: # Object with schema name: Value
-            },
-          },
+          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -759,24 +890,7 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-              &quot;a_key&quot;: # Object with schema name: Value
-            },
-          },
+          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -863,7 +977,40 @@
             ],
           },
           &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-            &quot;a_key&quot;: # Object with schema name: Value
+            &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
+                &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
+                  # Object with schema name: Value
+                ],
+              },
+              &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
+              &quot;booleanValue&quot;: True or False, # A boolean value.
+              &quot;doubleValue&quot;: 3.14, # A double value.
+              &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+              &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
+              &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
+                &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
+                &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
+              },
+              &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
+              &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
+                &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                  &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                  &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+                },
+                &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                  { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                    &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
+                    &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                    &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  },
+                ],
+              },
+              &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
+              &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
+              &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
+              &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
+            },
           },
         },
         &quot;version&quot;: &quot;A String&quot;, # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.
@@ -902,24 +1049,7 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-              &quot;a_key&quot;: # Object with schema name: Value
-            },
-          },
+          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
diff --git a/docs/dyn/datastore_v1beta3.projects.html b/docs/dyn/datastore_v1beta3.projects.html
index 6813001..5bd9b36 100644
--- a/docs/dyn/datastore_v1beta3.projects.html
+++ b/docs/dyn/datastore_v1beta3.projects.html
@@ -232,40 +232,7 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
-              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
-                # Object with schema name: Value
-              ],
-            },
-            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
-            &quot;booleanValue&quot;: True or False, # A boolean value.
-            &quot;doubleValue&quot;: 3.14, # A double value.
-            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
-            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-            },
-            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
-            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
-            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
-          },
+          &quot;a_key&quot;: # Object with schema name: Value
         },
       },
       &quot;update&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # The entity to update. The entity must already exist. Must have a complete key path.
@@ -283,40 +250,7 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
-              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
-                # Object with schema name: Value
-              ],
-            },
-            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
-            &quot;booleanValue&quot;: True or False, # A boolean value.
-            &quot;doubleValue&quot;: 3.14, # A double value.
-            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
-            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-            },
-            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
-            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
-            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
-          },
+          &quot;a_key&quot;: # Object with schema name: Value
         },
       },
       &quot;upsert&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # The entity to upsert. The entity may or may not already exist. The entity key&#x27;s final path element may be incomplete.
@@ -334,40 +268,7 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
-              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
-                # Object with schema name: Value
-              ],
-            },
-            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
-            &quot;booleanValue&quot;: True or False, # A boolean value.
-            &quot;doubleValue&quot;: 3.14, # A double value.
-            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
-            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-            },
-            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
-            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
-            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
-          },
+          &quot;a_key&quot;: # Object with schema name: Value
         },
       },
     },
@@ -480,40 +381,7 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
-              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
-                # Object with schema name: Value
-              ],
-            },
-            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
-            &quot;booleanValue&quot;: True or False, # A boolean value.
-            &quot;doubleValue&quot;: 3.14, # A double value.
-            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
-            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-            },
-            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
-            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
-            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
-          },
+          &quot;a_key&quot;: # Object with schema name: Value
         },
       },
       &quot;version&quot;: &quot;A String&quot;, # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.
@@ -537,40 +405,7 @@
           ],
         },
         &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-          &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
-            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
-              &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
-                # Object with schema name: Value
-              ],
-            },
-            &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
-            &quot;booleanValue&quot;: True or False, # A boolean value.
-            &quot;doubleValue&quot;: 3.14, # A double value.
-            &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-            &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
-            &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-              &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-              &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-            },
-            &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-            &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
-              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-              },
-              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
-                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                },
-              ],
-            },
-            &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
-            &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-            &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
-            &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
-          },
+          &quot;a_key&quot;: # Object with schema name: Value
         },
       },
       &quot;version&quot;: &quot;A String&quot;, # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.
@@ -668,7 +503,24 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
+              &quot;a_key&quot;: # Object with schema name: Value
+            },
+          },
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -707,7 +559,24 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
+              &quot;a_key&quot;: # Object with schema name: Value
+            },
+          },
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -768,7 +637,24 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
+              &quot;a_key&quot;: # Object with schema name: Value
+            },
+          },
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
@@ -855,40 +741,7 @@
             ],
           },
           &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
-            &quot;a_key&quot;: { # A message that can hold any of the supported value types and associated metadata.
-              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot contain another array value. A `Value` instance that sets field `array_value` must not set fields `meaning` or `exclude_from_indexes`.
-                &quot;values&quot;: [ # Values in the array. The order of values in an array is preserved as long as all values have identical settings for &#x27;exclude_from_indexes&#x27;.
-                  # Object with schema name: Value
-                ],
-              },
-              &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
-              &quot;booleanValue&quot;: True or False, # A boolean value.
-              &quot;doubleValue&quot;: 3.14, # A double value.
-              &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
-              &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
-              &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-              },
-              &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-              &quot;keyValue&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # A key value.
-                &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
-                  &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
-                  &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
-                },
-                &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
-                  { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
-                    &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
-                    &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                    &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
-                  },
-                ],
-              },
-              &quot;meaning&quot;: 42, # The `meaning` field should only be populated for backwards compatibility.
-              &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-              &quot;stringValue&quot;: &quot;A String&quot;, # A UTF-8 encoded string value. When `exclude_from_indexes` is false (it is indexed) , may have at most 1500 bytes. Otherwise, may be set to at most 1,000,000 bytes.
-              &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. When stored in the Datastore, precise only to microseconds; any additional precision is rounded down.
-            },
+            &quot;a_key&quot;: # Object with schema name: Value
           },
         },
         &quot;version&quot;: &quot;A String&quot;, # The version of the entity, a strictly positive number that monotonically increases with changes to the entity. This field is set for `FULL` entity results. For missing entities in `LookupResponse`, this is the version of the snapshot that was used to look up the entity, and it is always set except for eventually consistent reads.
@@ -927,7 +780,24 @@
           &quot;blobValue&quot;: &quot;A String&quot;, # A blob value. May have at most 1,000,000 bytes. When `exclude_from_indexes` is false, may have at most 1500 bytes. In JSON requests, must be base64-encoded.
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;doubleValue&quot;: 3.14, # A double value.
-          &quot;entityValue&quot;: # Object with schema name: Entity # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+          &quot;entityValue&quot;: { # A Datastore data object. An entity is limited to 1 megabyte when stored. That _roughly_ corresponds to a limit of 1 megabyte for the serialized form of this message. # An entity value. - May have no key. - May have a key with an incomplete key path. - May have a reserved/read-only key.
+            &quot;key&quot;: { # A unique identifier for an entity. If a key&#x27;s partition ID or any of its path kinds or names are reserved/read-only, the key is reserved/read-only. A reserved/read-only key is forbidden in certain documented contexts. # The entity&#x27;s key. An entity must have a key, unless otherwise documented (for example, an entity in `Value.entity_value` may have no key). An entity&#x27;s kind is its key path&#x27;s last element&#x27;s kind, or null if it has no key.
+              &quot;partitionId&quot;: { # A partition ID identifies a grouping of entities. The grouping is always by project and namespace, however the namespace ID may be empty. A partition ID contains several dimensions: project ID and namespace ID. Partition dimensions: - May be `&quot;&quot;`. - Must be valid UTF-8 bytes. - Must have values that match regex `[A-Za-z\d\.\-_]{1,100}` If the value of any dimension matches regex `__.*__`, the partition is reserved/read-only. A reserved/read-only partition ID is forbidden in certain documented contexts. Foreign partition IDs (in which the project ID does not match the context project ID ) are discouraged. Reads and writes of foreign partition IDs may fail if the project is not in an active state. # Entities are partitioned into subsets, currently identified by a project ID and namespace ID. Queries are scoped to a single partition.
+                &quot;namespaceId&quot;: &quot;A String&quot;, # If not empty, the ID of the namespace to which the entities belong.
+                &quot;projectId&quot;: &quot;A String&quot;, # The ID of the project to which the entities belong.
+              },
+              &quot;path&quot;: [ # The entity path. An entity path consists of one or more elements composed of a kind and a string or numerical identifier, which identify entities. The first element identifies a _root entity_, the second element identifies a _child_ of the root entity, the third element identifies a child of the second entity, and so forth. The entities identified by all prefixes of the path are called the element&#x27;s _ancestors_. An entity path is always fully complete: *all* of the entity&#x27;s ancestors are required to be in the path along with the entity identifier itself. The only exception is that in some documented cases, the identifier in the last path element (for the entity) itself may be omitted. For example, the last path element of the key of `Mutation.insert` may have no identifier. A path can never be empty, and a path can have at most 100 elements.
+                { # A (kind, ID/name) pair used to construct a key path. If either name or ID is set, the element is complete. If neither is set, the element is incomplete.
+                  &quot;id&quot;: &quot;A String&quot;, # The auto-allocated ID of the entity. Never equal to zero. Values less than zero are discouraged and may not be supported in the future.
+                  &quot;kind&quot;: &quot;A String&quot;, # The kind of the entity. A kind matching regex `__.*__` is reserved/read-only. A kind must not contain more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                  &quot;name&quot;: &quot;A String&quot;, # The name of the entity. A name matching regex `__.*__` is reserved/read-only. A name must not be more than 1500 bytes when UTF-8 encoded. Cannot be `&quot;&quot;`.
+                },
+              ],
+            },
+            &quot;properties&quot;: { # The entity&#x27;s properties. The map&#x27;s keys are property names. A property name matching regex `__.*__` is reserved. A reserved property name is forbidden in certain documented contexts. The name must not contain more than 500 characters. The name cannot be `&quot;&quot;`.
+              &quot;a_key&quot;: # Object with schema name: Value
+            },
+          },
           &quot;excludeFromIndexes&quot;: True or False, # If the value should be excluded from all indexes including those defined explicitly.
           &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
             &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
diff --git a/docs/dyn/dialogflow_v2.projects.agent.environments.html b/docs/dyn/dialogflow_v2.projects.agent.environments.html
index 47de8ae..386aa7a 100644
--- a/docs/dyn/dialogflow_v2.projects.agent.environments.html
+++ b/docs/dyn/dialogflow_v2.projects.agent.environments.html
@@ -104,13 +104,13 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns the list of all non-draft environments of the specified agent.</p>
+<p class="firstline">Returns the list of all non-default environments of the specified agent.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(name, allowLoadToDraftAndDiscardChanges=None, body=None, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified agent environment. This method allows you to deploy new agent versions into the environment. When an environment is pointed to a new agent version by setting `environment.agent_version`, the environment is temporarily set to the `LOADING` state. During that time, the environment keeps on serving the previous version of the agent. After the new agent version is done loading, the environment is set back to the `RUNNING` state. You can use "-" as Environment ID in environment name to update version in "draft" environment. WARNING: this will negate all recent changes to draft and can't be undone. You may want to save the draft to a version before calling this function.</p>
+<p class="firstline">Updates the specified agent environment. This method allows you to deploy new agent versions into the environment. When an environment is pointed to a new agent version by setting `environment.agent_version`, the environment is temporarily set to the `LOADING` state. During that time, the environment continues serving the previous version of the agent. After the new agent version is done loading, the environment is set back to the `RUNNING` state. You can use "-" as Environment ID in environment name to update an agent version in the default environment. WARNING: this will negate all recent changes to the draft agent and can't be undone. You may want to save the draft agent to a version before calling this method.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="close">close()</code>
@@ -148,7 +148,7 @@
     },
     &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
   &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
     &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
@@ -203,7 +203,7 @@
     },
     &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
   &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
     &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
@@ -233,7 +233,7 @@
   <pre>Deletes the specified agent environment.
 
 Args:
-  name: string, Required. The name of the environment to delete. / Format: - `projects//agent/environments/` - `projects//locations//agent/environments/` (required)
+  name: string, Required. The name of the environment to delete. / Format: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -251,7 +251,7 @@
   <pre>Retrieves the specified agent environment.
 
 Args:
-  name: string, Required. The name of the environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` (required)
+  name: string, Required. The name of the environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -282,7 +282,7 @@
     },
     &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
   &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
     &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
@@ -312,7 +312,7 @@
   <pre>Gets the history of the specified environment.
 
 Args:
-  parent: string, Required. The name of the environment to retrieve history for. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` (required)
+  parent: string, Required. The name of the environment to retrieve history for. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`. (required)
   pageSize: integer, Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.
   pageToken: string, Optional. The next_page_token value returned from a previous list request.
   x__xgafv: string, V1 error format.
@@ -332,7 +332,7 @@
     },
   ],
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Output only. Token to retrieve the next page of results, or empty if there are no more results in the list.
-  &quot;parent&quot;: &quot;A String&quot;, # Output only. The name of the environment this history is for. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;parent&quot;: &quot;A String&quot;, # Output only. The name of the environment this history is for. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
 }</pre>
 </div>
 
@@ -352,7 +352,7 @@
 
 <div class="method">
     <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Returns the list of all non-draft environments of the specified agent.
+  <pre>Returns the list of all non-default environments of the specified agent.
 
 Args:
   parent: string, Required. The agent to list all environments from. Format: - `projects//agent` - `projects//locations//agent` (required)
@@ -390,7 +390,7 @@
         },
         &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
       },
-      &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
       &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
       &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
         &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
@@ -434,10 +434,10 @@
 
 <div class="method">
     <code class="details" id="patch">patch(name, allowLoadToDraftAndDiscardChanges=None, body=None, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates the specified agent environment. This method allows you to deploy new agent versions into the environment. When an environment is pointed to a new agent version by setting `environment.agent_version`, the environment is temporarily set to the `LOADING` state. During that time, the environment keeps on serving the previous version of the agent. After the new agent version is done loading, the environment is set back to the `RUNNING` state. You can use &quot;-&quot; as Environment ID in environment name to update version in &quot;draft&quot; environment. WARNING: this will negate all recent changes to draft and can&#x27;t be undone. You may want to save the draft to a version before calling this function.
+  <pre>Updates the specified agent environment. This method allows you to deploy new agent versions into the environment. When an environment is pointed to a new agent version by setting `environment.agent_version`, the environment is temporarily set to the `LOADING` state. During that time, the environment continues serving the previous version of the agent. After the new agent version is done loading, the environment is set back to the `RUNNING` state. You can use &quot;-&quot; as Environment ID in environment name to update an agent version in the default environment. WARNING: this will negate all recent changes to the draft agent and can&#x27;t be undone. You may want to save the draft agent to a version before calling this method.
 
 Args:
-  name: string, Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` (required)
+  name: string, Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`. (required)
   body: object, The request body.
     The object takes the form of:
 
@@ -463,7 +463,7 @@
     },
     &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
   &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
     &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
@@ -487,7 +487,7 @@
   &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update time of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
 }
 
-  allowLoadToDraftAndDiscardChanges: boolean, Optional. This field is used to prevent accidental overwrite of the draft environment, which is an operation that cannot be undone. To confirm that the caller desires this overwrite, this field must be explicitly set to true when updating the draft environment (environment ID = `-`).
+  allowLoadToDraftAndDiscardChanges: boolean, Optional. This field is used to prevent accidental overwrite of the default environment, which is an operation that cannot be undone. To confirm that the caller desires this overwrite, this field must be explicitly set to true when updating the default environment (environment ID = `-`).
   updateMask: string, Required. The mask to control which fields get updated.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -519,7 +519,7 @@
     },
     &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
   &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
     &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
diff --git a/docs/dyn/dialogflow_v2.projects.locations.agent.environments.html b/docs/dyn/dialogflow_v2.projects.locations.agent.environments.html
index 453186b..ffbb9d0 100644
--- a/docs/dyn/dialogflow_v2.projects.locations.agent.environments.html
+++ b/docs/dyn/dialogflow_v2.projects.locations.agent.environments.html
@@ -104,13 +104,13 @@
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Returns the list of all non-draft environments of the specified agent.</p>
+<p class="firstline">Returns the list of all non-default environments of the specified agent.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
 <p class="toc_element">
   <code><a href="#patch">patch(name, allowLoadToDraftAndDiscardChanges=None, body=None, updateMask=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Updates the specified agent environment. This method allows you to deploy new agent versions into the environment. When an environment is pointed to a new agent version by setting `environment.agent_version`, the environment is temporarily set to the `LOADING` state. During that time, the environment keeps on serving the previous version of the agent. After the new agent version is done loading, the environment is set back to the `RUNNING` state. You can use "-" as Environment ID in environment name to update version in "draft" environment. WARNING: this will negate all recent changes to draft and can't be undone. You may want to save the draft to a version before calling this function.</p>
+<p class="firstline">Updates the specified agent environment. This method allows you to deploy new agent versions into the environment. When an environment is pointed to a new agent version by setting `environment.agent_version`, the environment is temporarily set to the `LOADING` state. During that time, the environment continues serving the previous version of the agent. After the new agent version is done loading, the environment is set back to the `RUNNING` state. You can use "-" as Environment ID in environment name to update an agent version in the default environment. WARNING: this will negate all recent changes to the draft agent and can't be undone. You may want to save the draft agent to a version before calling this method.</p>
 <h3>Method Details</h3>
 <div class="method">
     <code class="details" id="close">close()</code>
@@ -148,7 +148,7 @@
     },
     &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
   &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
     &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
@@ -203,7 +203,7 @@
     },
     &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
   &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
     &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
@@ -233,7 +233,7 @@
   <pre>Deletes the specified agent environment.
 
 Args:
-  name: string, Required. The name of the environment to delete. / Format: - `projects//agent/environments/` - `projects//locations//agent/environments/` (required)
+  name: string, Required. The name of the environment to delete. / Format: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -251,7 +251,7 @@
   <pre>Retrieves the specified agent environment.
 
 Args:
-  name: string, Required. The name of the environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` (required)
+  name: string, Required. The name of the environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`. (required)
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -282,7 +282,7 @@
     },
     &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
   &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
     &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
@@ -312,7 +312,7 @@
   <pre>Gets the history of the specified environment.
 
 Args:
-  parent: string, Required. The name of the environment to retrieve history for. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` (required)
+  parent: string, Required. The name of the environment to retrieve history for. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`. (required)
   pageSize: integer, Optional. The maximum number of items to return in a single page. By default 100 and at most 1000.
   pageToken: string, Optional. The next_page_token value returned from a previous list request.
   x__xgafv: string, V1 error format.
@@ -332,7 +332,7 @@
     },
   ],
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Output only. Token to retrieve the next page of results, or empty if there are no more results in the list.
-  &quot;parent&quot;: &quot;A String&quot;, # Output only. The name of the environment this history is for. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;parent&quot;: &quot;A String&quot;, # Output only. The name of the environment this history is for. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
 }</pre>
 </div>
 
@@ -352,7 +352,7 @@
 
 <div class="method">
     <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Returns the list of all non-draft environments of the specified agent.
+  <pre>Returns the list of all non-default environments of the specified agent.
 
 Args:
   parent: string, Required. The agent to list all environments from. Format: - `projects//agent` - `projects//locations//agent` (required)
@@ -390,7 +390,7 @@
         },
         &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
       },
-      &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+      &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
       &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
       &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
         &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
@@ -434,10 +434,10 @@
 
 <div class="method">
     <code class="details" id="patch">patch(name, allowLoadToDraftAndDiscardChanges=None, body=None, updateMask=None, x__xgafv=None)</code>
-  <pre>Updates the specified agent environment. This method allows you to deploy new agent versions into the environment. When an environment is pointed to a new agent version by setting `environment.agent_version`, the environment is temporarily set to the `LOADING` state. During that time, the environment keeps on serving the previous version of the agent. After the new agent version is done loading, the environment is set back to the `RUNNING` state. You can use &quot;-&quot; as Environment ID in environment name to update version in &quot;draft&quot; environment. WARNING: this will negate all recent changes to draft and can&#x27;t be undone. You may want to save the draft to a version before calling this function.
+  <pre>Updates the specified agent environment. This method allows you to deploy new agent versions into the environment. When an environment is pointed to a new agent version by setting `environment.agent_version`, the environment is temporarily set to the `LOADING` state. During that time, the environment continues serving the previous version of the agent. After the new agent version is done loading, the environment is set back to the `RUNNING` state. You can use &quot;-&quot; as Environment ID in environment name to update an agent version in the default environment. WARNING: this will negate all recent changes to the draft agent and can&#x27;t be undone. You may want to save the draft agent to a version before calling this method.
 
 Args:
-  name: string, Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` (required)
+  name: string, Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`. (required)
   body: object, The request body.
     The object takes the form of:
 
@@ -463,7 +463,7 @@
     },
     &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
   &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
     &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
@@ -487,7 +487,7 @@
   &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The last update time of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
 }
 
-  allowLoadToDraftAndDiscardChanges: boolean, Optional. This field is used to prevent accidental overwrite of the draft environment, which is an operation that cannot be undone. To confirm that the caller desires this overwrite, this field must be explicitly set to true when updating the draft environment (environment ID = `-`).
+  allowLoadToDraftAndDiscardChanges: boolean, Optional. This field is used to prevent accidental overwrite of the default environment, which is an operation that cannot be undone. To confirm that the caller desires this overwrite, this field must be explicitly set to true when updating the default environment (environment ID = `-`).
   updateMask: string, Required. The mask to control which fields get updated.
   x__xgafv: string, V1 error format.
     Allowed values
@@ -519,7 +519,7 @@
     },
     &quot;name&quot;: &quot;A String&quot;, # Required. The unique identifier of the fulfillment. Supported formats: - `projects//agent/fulfillment` - `projects//locations//agent/fulfillment` This field is not used for Fulfillment in an Environment.
   },
-  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/`
+  &quot;name&quot;: &quot;A String&quot;, # Output only. The unique identifier of this agent environment. Supported formats: - `projects//agent/environments/` - `projects//locations//agent/environments/` The environment ID for the default environment is `-`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The state of this environment. This field is read-only, i.e., it cannot be set by create and update methods.
   &quot;textToSpeechSettings&quot;: { # Instructs the speech synthesizer on how to generate the output audio content. # Optional. Text to speech settings for this environment.
     &quot;enableTextToSpeech&quot;: True or False, # Optional. Indicates whether text to speech is enabled. Even when this field is false, other settings in this proto are still retained.
diff --git a/docs/dyn/dialogflow_v3.projects.locations.agents.environments.experiments.html b/docs/dyn/dialogflow_v3.projects.locations.agents.environments.experiments.html
index 004199a..bedf720 100644
--- a/docs/dyn/dialogflow_v3.projects.locations.agents.environments.experiments.html
+++ b/docs/dyn/dialogflow_v3.projects.locations.agents.environments.experiments.html
@@ -133,7 +133,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -160,7 +160,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -202,7 +202,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -229,7 +229,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -296,7 +296,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -323,7 +323,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -376,7 +376,7 @@
       &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
       &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
       &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-      &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+      &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
       &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
       &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
       &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -403,7 +403,7 @@
         ],
       },
       &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-      &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+      &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
       &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
         { # The history of variants update.
           &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -464,7 +464,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -491,7 +491,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -534,7 +534,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -561,7 +561,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -616,7 +616,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -643,7 +643,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -698,7 +698,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -725,7 +725,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
diff --git a/docs/dyn/dialogflow_v3beta1.projects.locations.agents.environments.experiments.html b/docs/dyn/dialogflow_v3beta1.projects.locations.agents.environments.experiments.html
index e857e00..03ed07d 100644
--- a/docs/dyn/dialogflow_v3beta1.projects.locations.agents.environments.experiments.html
+++ b/docs/dyn/dialogflow_v3beta1.projects.locations.agents.environments.experiments.html
@@ -133,7 +133,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -160,7 +160,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -202,7 +202,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -229,7 +229,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -296,7 +296,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -323,7 +323,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -376,7 +376,7 @@
       &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
       &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
       &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-      &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+      &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
       &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
       &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
       &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -403,7 +403,7 @@
         ],
       },
       &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-      &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+      &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
       &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
         { # The history of variants update.
           &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -464,7 +464,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -491,7 +491,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -534,7 +534,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -561,7 +561,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -616,7 +616,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -643,7 +643,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
@@ -698,7 +698,7 @@
   &quot;description&quot;: &quot;A String&quot;, # The human-readable description of the experiment.
   &quot;displayName&quot;: &quot;A String&quot;, # Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.
   &quot;endTime&quot;: &quot;A String&quot;, # End time of this experiment.
-  &quot;experimentLength&quot;: &quot;A String&quot;, # Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.
+  &quot;experimentLength&quot;: &quot;A String&quot;, # LINT.IfChange(default_experiment_length) Maximum number of days to run the experiment. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days. LINT.ThenChange(//depot/google3/cloud/ml/api/conversation/analytics/compute.cc:default_experiment_length)
   &quot;lastUpdateTime&quot;: &quot;A String&quot;, # Last update time of this experiment.
   &quot;name&quot;: &quot;A String&quot;, # The name of the experiment. Format: projects//locations//agents//environments//experiments/..
   &quot;result&quot;: { # The inference result which includes an objective metric to optimize and the confidence interval. # Inference result of the experiment.
@@ -725,7 +725,7 @@
     ],
   },
   &quot;startTime&quot;: &quot;A String&quot;, # Start time of this experiment.
-  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Expriments.StartExperiment: PENDING-&gt;RUNNING. Transition triggered by Expriments.CancelExperiment: PENDING-&gt;CANCELLED or RUNNING-&gt;CANCELLED.
+  &quot;state&quot;: &quot;A String&quot;, # The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT-&gt;RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT-&gt;DONE or RUNNING-&gt;DONE.
   &quot;variantsHistory&quot;: [ # The history of updates to the experiment variants.
     { # The history of variants update.
       &quot;updateTime&quot;: &quot;A String&quot;, # Update time of the variants.
diff --git a/docs/dyn/displayvideo_v1.advertisers.campaigns.targetingTypes.assignedTargetingOptions.html b/docs/dyn/displayvideo_v1.advertisers.campaigns.targetingTypes.assignedTargetingOptions.html
index 0155591..9a97a86 100644
--- a/docs/dyn/displayvideo_v1.advertisers.campaigns.targetingTypes.assignedTargetingOptions.html
+++ b/docs/dyn/displayvideo_v1.advertisers.campaigns.targetingTypes.assignedTargetingOptions.html
@@ -467,7 +467,7 @@
       TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position.
   filter: string, Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId=&quot;1&quot; OR assignedTargetingOptionId=&quot;2&quot;` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance=&quot;NOT_INHERITED&quot; OR inheritance=&quot;INHERITED_FROM_PARTNER&quot;` The length of this field should be no more than 500 characters.
   orderBy: string, Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix &quot;desc&quot; should be added to the field name. Example: `assignedTargetingOptionId desc`.
-  pageSize: integer, Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.
+  pageSize: integer, Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.
   pageToken: string, A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCampaignAssignedTargetingOptions` method. If not specified, the first page of results will be returned.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/displayvideo_v1.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.html b/docs/dyn/displayvideo_v1.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.html
index a1d7bb9..5b1ce80 100644
--- a/docs/dyn/displayvideo_v1.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.html
+++ b/docs/dyn/displayvideo_v1.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.html
@@ -467,7 +467,7 @@
       TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position.
   filter: string, Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId=&quot;1&quot; OR assignedTargetingOptionId=&quot;2&quot;` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance=&quot;NOT_INHERITED&quot; OR inheritance=&quot;INHERITED_FROM_PARTNER&quot;` The length of this field should be no more than 500 characters.
   orderBy: string, Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix &quot;desc&quot; should be added to the field name. Example: `assignedTargetingOptionId desc`.
-  pageSize: integer, Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.
+  pageSize: integer, Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.
   pageToken: string, A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInsertionOrderAssignedTargetingOptions` method. If not specified, the first page of results will be returned.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/displayvideo_v1.advertisers.lineItems.targetingTypes.assignedTargetingOptions.html b/docs/dyn/displayvideo_v1.advertisers.lineItems.targetingTypes.assignedTargetingOptions.html
index bb4ce12..0b5365d 100644
--- a/docs/dyn/displayvideo_v1.advertisers.lineItems.targetingTypes.assignedTargetingOptions.html
+++ b/docs/dyn/displayvideo_v1.advertisers.lineItems.targetingTypes.assignedTargetingOptions.html
@@ -1128,7 +1128,7 @@
       TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position.
   filter: string, Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` - `inheritance` Examples: * AssignedTargetingOptions with ID 1 or 2 `assignedTargetingOptionId=&quot;1&quot; OR assignedTargetingOptionId=&quot;2&quot;` * AssignedTargetingOptions with inheritance status of NOT_INHERITED or INHERITED_FROM_PARTNER `inheritance=&quot;NOT_INHERITED&quot; OR inheritance=&quot;INHERITED_FROM_PARTNER&quot;` The length of this field should be no more than 500 characters.
   orderBy: string, Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix &quot;desc&quot; should be added to the field name. Example: `assignedTargetingOptionId desc`.
-  pageSize: integer, Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.
+  pageSize: integer, Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.
   pageToken: string, A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLineItemAssignedTargetingOptions` method. If not specified, the first page of results will be returned.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/displayvideo_v1.advertisers.targetingTypes.assignedTargetingOptions.html b/docs/dyn/displayvideo_v1.advertisers.targetingTypes.assignedTargetingOptions.html
index 602d0d5..2815d6f 100644
--- a/docs/dyn/displayvideo_v1.advertisers.targetingTypes.assignedTargetingOptions.html
+++ b/docs/dyn/displayvideo_v1.advertisers.targetingTypes.assignedTargetingOptions.html
@@ -1124,7 +1124,7 @@
       TARGETING_TYPE_NATIVE_CONTENT_POSITION - Target ads to a specific native content position.
   filter: string, Allows filtering by assigned targeting option properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `assignedTargetingOptionId` Examples: * AssignedTargetingOption with ID 123456 `assignedTargetingOptionId=&quot;123456&quot;` The length of this field should be no more than 500 characters.
   orderBy: string, Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix &quot;desc&quot; should be added to the field name. Example: `assignedTargetingOptionId desc`.
-  pageSize: integer, Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.
+  pageSize: integer, Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.
   pageToken: string, A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAdvertiserAssignedTargetingOptions` method. If not specified, the first page of results will be returned.
   x__xgafv: string, V1 error format.
     Allowed values
diff --git a/docs/dyn/docs_v1.documents.html b/docs/dyn/docs_v1.documents.html
index ed0cbe8..edd04dd 100644
--- a/docs/dyn/docs_v1.documents.html
+++ b/docs/dyn/docs_v1.documents.html
@@ -1634,6 +1634,115 @@
                   },
                 },
               },
+              &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                  &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                  &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                  &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                },
+                &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                  &quot;A String&quot;,
+                ],
+                &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                  &quot;A String&quot;,
+                ],
+                &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                  &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                    &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                      &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                        &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                          &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                            &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                            &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                      &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                      &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                      &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                        &quot;magnitude&quot;: 3.14, # The magnitude.
+                        &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                      },
+                      &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                        &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                          &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                            &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                            &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                      &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                      &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                        &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                        &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                        &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                      },
+                      &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                      &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                      &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                      &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                        &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                        &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                      },
+                    },
+                    &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                      &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                      &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                      &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                      &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                      &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                      &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                      &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                      &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                      &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                      &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                      &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                    },
+                  },
+                },
+                &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                  &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                    &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                      &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                        &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                        &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                  },
+                  &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                  &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                  &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                    &quot;magnitude&quot;: 3.14, # The magnitude.
+                    &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                  },
+                  &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                    &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                      &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                        &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                        &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                  },
+                  &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                  &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                    &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                    &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                    &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                  },
+                  &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                  &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                  &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                  &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                    &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                    &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                  },
+                },
+              },
               &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
               &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                 &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
@@ -3339,6 +3448,115 @@
                     },
                   },
                 },
+                &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                  &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                  &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                    &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                    &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                    &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                  },
+                  &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                    &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                      &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                        &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                        &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                        &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                          &quot;magnitude&quot;: 3.14, # The magnitude.
+                          &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                        },
+                        &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                        &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                          &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                          &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                          &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                        },
+                        &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                        &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                        &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                        &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                          &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                          &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                        },
+                      },
+                      &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                        &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                        &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                        &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                        &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                        &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                        &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                        &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                        &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                        &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                        &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                        &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                      },
+                    },
+                  },
+                  &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                    &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                    &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                    &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                      &quot;magnitude&quot;: 3.14, # The magnitude.
+                      &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                    },
+                    &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                    &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                      &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                      &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                      &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                    },
+                    &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                    &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                    &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                    &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                      &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                      &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                    },
+                  },
+                },
                 &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
                 &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                   &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
@@ -4988,6 +5206,115 @@
                     },
                   },
                 },
+                &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                  &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                  &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                    &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                    &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                    &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                  },
+                  &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                    &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                      &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                        &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                        &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                        &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                          &quot;magnitude&quot;: 3.14, # The magnitude.
+                          &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                        },
+                        &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                        &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                          &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                          &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                          &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                        },
+                        &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                        &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                        &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                        &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                          &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                          &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                        },
+                      },
+                      &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                        &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                        &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                        &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                        &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                        &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                        &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                        &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                        &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                        &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                        &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                        &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                      },
+                    },
+                  },
+                  &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                    &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                    &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                    &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                      &quot;magnitude&quot;: 3.14, # The magnitude.
+                      &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                    },
+                    &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                    &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                      &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                      &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                      &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                    },
+                    &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                    &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                    &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                    &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                      &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                      &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                    },
+                  },
+                },
                 &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
                 &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                   &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
@@ -6637,6 +6964,115 @@
                     },
                   },
                 },
+                &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                  &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                  &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                    &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                    &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                    &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                  },
+                  &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                    &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                      &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                        &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                        &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                        &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                          &quot;magnitude&quot;: 3.14, # The magnitude.
+                          &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                        },
+                        &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                        &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                          &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                          &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                          &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                        },
+                        &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                        &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                        &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                        &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                          &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                          &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                        },
+                      },
+                      &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                        &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                        &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                        &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                        &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                        &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                        &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                        &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                        &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                        &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                        &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                        &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                      },
+                    },
+                  },
+                  &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                    &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                    &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                    &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                      &quot;magnitude&quot;: 3.14, # The magnitude.
+                      &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                    },
+                    &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                    &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                      &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                      &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                      &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                    },
+                    &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                    &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                    &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                    &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                      &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                      &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                    },
+                  },
+                },
                 &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
                 &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                   &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
@@ -9426,6 +9862,115 @@
                   },
                 },
               },
+              &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                  &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                  &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                  &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                },
+                &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                  &quot;A String&quot;,
+                ],
+                &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                  &quot;A String&quot;,
+                ],
+                &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                  &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                    &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                      &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                        &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                          &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                            &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                            &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                      &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                      &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                      &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                        &quot;magnitude&quot;: 3.14, # The magnitude.
+                        &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                      },
+                      &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                        &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                          &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                            &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                            &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                      &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                      &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                        &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                        &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                        &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                      },
+                      &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                      &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                      &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                      &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                        &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                        &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                      },
+                    },
+                    &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                      &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                      &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                      &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                      &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                      &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                      &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                      &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                      &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                      &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                      &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                      &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                    },
+                  },
+                },
+                &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                  &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                    &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                      &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                        &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                        &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                  },
+                  &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                  &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                  &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                    &quot;magnitude&quot;: 3.14, # The magnitude.
+                    &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                  },
+                  &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                    &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                      &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                        &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                        &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                  },
+                  &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                  &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                    &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                    &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                    &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                  },
+                  &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                  &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                  &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                  &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                    &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                    &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                  },
+                },
+              },
               &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
               &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                 &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
@@ -11131,6 +11676,115 @@
                     },
                   },
                 },
+                &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                  &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                  &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                    &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                    &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                    &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                  },
+                  &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                    &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                      &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                        &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                        &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                        &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                          &quot;magnitude&quot;: 3.14, # The magnitude.
+                          &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                        },
+                        &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                        &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                          &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                          &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                          &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                        },
+                        &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                        &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                        &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                        &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                          &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                          &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                        },
+                      },
+                      &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                        &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                        &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                        &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                        &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                        &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                        &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                        &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                        &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                        &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                        &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                        &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                      },
+                    },
+                  },
+                  &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                    &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                    &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                    &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                      &quot;magnitude&quot;: 3.14, # The magnitude.
+                      &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                    },
+                    &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                    &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                      &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                      &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                      &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                    },
+                    &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                    &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                    &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                    &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                      &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                      &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                    },
+                  },
+                },
                 &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
                 &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                   &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
@@ -12780,6 +13434,115 @@
                     },
                   },
                 },
+                &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                  &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                  &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                    &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                    &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                    &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                  },
+                  &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                    &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                      &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                        &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                        &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                        &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                          &quot;magnitude&quot;: 3.14, # The magnitude.
+                          &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                        },
+                        &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                        &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                          &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                          &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                          &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                        },
+                        &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                        &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                        &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                        &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                          &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                          &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                        },
+                      },
+                      &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                        &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                        &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                        &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                        &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                        &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                        &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                        &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                        &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                        &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                        &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                        &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                      },
+                    },
+                  },
+                  &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                    &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                    &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                    &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                      &quot;magnitude&quot;: 3.14, # The magnitude.
+                      &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                    },
+                    &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                    &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                      &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                      &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                      &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                    },
+                    &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                    &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                    &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                    &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                      &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                      &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                    },
+                  },
+                },
                 &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
                 &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                   &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
@@ -14429,6 +15192,115 @@
                     },
                   },
                 },
+                &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                  &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                  &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                    &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                    &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                    &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                  },
+                  &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                    &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                      &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                        &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                        &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                        &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                          &quot;magnitude&quot;: 3.14, # The magnitude.
+                          &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                        },
+                        &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                        &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                          &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                          &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                          &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                        },
+                        &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                        &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                        &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                        &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                          &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                          &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                        },
+                      },
+                      &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                        &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                        &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                        &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                        &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                        &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                        &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                        &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                        &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                        &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                        &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                        &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                      },
+                    },
+                  },
+                  &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                    &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                    &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                    &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                      &quot;magnitude&quot;: 3.14, # The magnitude.
+                      &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                    },
+                    &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                    &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                      &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                      &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                      &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                    },
+                    &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                    &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                    &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                    &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                      &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                      &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                    },
+                  },
+                },
                 &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
                 &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                   &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
@@ -17231,6 +18103,115 @@
                   },
                 },
               },
+              &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                  &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                  &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                  &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                },
+                &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                  &quot;A String&quot;,
+                ],
+                &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                  &quot;A String&quot;,
+                ],
+                &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                  &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                    &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                      &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                        &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                          &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                            &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                            &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                      &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                      &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                      &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                        &quot;magnitude&quot;: 3.14, # The magnitude.
+                        &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                      },
+                      &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                        &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                          &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                            &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                            &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                            &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                          },
+                        },
+                      },
+                      &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                      &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                        &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                        &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                        &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                      },
+                      &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                      &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                      &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                      &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                        &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                        &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                      },
+                    },
+                    &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                      &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                      &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                      &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                      &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                      &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                      &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                      &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                      &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                      &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                      &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                      &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                    },
+                  },
+                },
+                &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                  &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                    &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                      &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                        &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                        &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                  },
+                  &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                  &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                  &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                    &quot;magnitude&quot;: 3.14, # The magnitude.
+                    &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                  },
+                  &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                    &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                      &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                        &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                        &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                        &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                      },
+                    },
+                  },
+                  &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                  &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                    &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                    &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                    &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                  },
+                  &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                  &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                  &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                  &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                    &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                    &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                  },
+                },
+              },
               &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
               &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                 &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
@@ -18936,6 +19917,115 @@
                     },
                   },
                 },
+                &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                  &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                  &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                    &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                    &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                    &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                  },
+                  &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                    &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                      &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                        &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                        &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                        &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                          &quot;magnitude&quot;: 3.14, # The magnitude.
+                          &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                        },
+                        &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                        &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                          &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                          &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                          &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                        },
+                        &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                        &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                        &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                        &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                          &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                          &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                        },
+                      },
+                      &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                        &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                        &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                        &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                        &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                        &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                        &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                        &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                        &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                        &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                        &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                        &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                      },
+                    },
+                  },
+                  &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                    &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                    &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                    &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                      &quot;magnitude&quot;: 3.14, # The magnitude.
+                      &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                    },
+                    &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                    &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                      &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                      &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                      &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                    },
+                    &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                    &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                    &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                    &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                      &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                      &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                    },
+                  },
+                },
                 &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
                 &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                   &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
@@ -20585,6 +21675,115 @@
                     },
                   },
                 },
+                &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                  &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                  &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                    &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                    &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                    &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                  },
+                  &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                    &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                      &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                        &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                        &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                        &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                          &quot;magnitude&quot;: 3.14, # The magnitude.
+                          &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                        },
+                        &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                        &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                          &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                          &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                          &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                        },
+                        &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                        &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                        &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                        &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                          &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                          &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                        },
+                      },
+                      &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                        &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                        &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                        &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                        &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                        &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                        &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                        &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                        &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                        &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                        &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                        &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                      },
+                    },
+                  },
+                  &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                    &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                    &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                    &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                      &quot;magnitude&quot;: 3.14, # The magnitude.
+                      &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                    },
+                    &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                    &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                      &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                      &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                      &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                    },
+                    &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                    &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                    &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                    &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                      &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                      &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                    },
+                  },
+                },
                 &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
                 &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                   &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
@@ -22234,6 +23433,115 @@
                     },
                   },
                 },
+                &quot;richLink&quot;: { # A link to a Google resource (e.g., a file in Drive, a YouTube video, a Calendar event, etc.). # A paragraph element that links to a Google resource (such as a file in Drive, a Youtube video, a Calendar event, etc.)
+                  &quot;richLinkId&quot;: &quot;A String&quot;, # Output only. The ID of this link.
+                  &quot;richLinkProperties&quot;: { # Properties specific to a RichLink. # Output only. The properties of this RichLink. This field is always present.
+                    &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there is one (i.e., when it is a file in Drive).
+                    &quot;title&quot;: &quot;A String&quot;, # Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.
+                    &quot;uri&quot;: &quot;A String&quot;, # Output only. The URI to the RichLink. This is always present.
+                  },
+                  &quot;suggestedDeletionIds&quot;: [ # IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest to delete it. If empty, then this person link isn&#x27;t suggested for deletion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedInsertionIds&quot;: [ # IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it is a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn&#x27;t a suggested insertion.
+                    &quot;A String&quot;,
+                  ],
+                  &quot;suggestedTextStyleChanges&quot;: { # The suggested text style changes to this RichLink, keyed by suggestion ID.
+                    &quot;a_key&quot;: { # A suggested change to a TextStyle.
+                      &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values.
+                        &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                        &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                        &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                          &quot;magnitude&quot;: 3.14, # The magnitude.
+                          &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                        },
+                        &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                          &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                            &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                              &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                              &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                              &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                            },
+                          },
+                        },
+                        &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                        &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                          &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                          &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                          &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                        },
+                        &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                        &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                        &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                        &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                          &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                          &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                        },
+                      },
+                      &quot;textStyleSuggestionState&quot;: { # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there is a new suggested value. # A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion.
+                        &quot;backgroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to background_color.
+                        &quot;baselineOffsetSuggested&quot;: True or False, # Indicates if there was a suggested change to baseline_offset.
+                        &quot;boldSuggested&quot;: True or False, # Indicates if there was a suggested change to bold.
+                        &quot;fontSizeSuggested&quot;: True or False, # Indicates if there was a suggested change to font_size.
+                        &quot;foregroundColorSuggested&quot;: True or False, # Indicates if there was a suggested change to foreground_color.
+                        &quot;italicSuggested&quot;: True or False, # Indicates if there was a suggested change to italic.
+                        &quot;linkSuggested&quot;: True or False, # Indicates if there was a suggested change to link.
+                        &quot;smallCapsSuggested&quot;: True or False, # Indicates if there was a suggested change to small_caps.
+                        &quot;strikethroughSuggested&quot;: True or False, # Indicates if there was a suggested change to strikethrough.
+                        &quot;underlineSuggested&quot;: True or False, # Indicates if there was a suggested change to underline.
+                        &quot;weightedFontFamilySuggested&quot;: True or False, # Indicates if there was a suggested change to weighted_font_family.
+                      },
+                    },
+                  },
+                  &quot;textStyle&quot;: { # Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style&#x27;s parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph&#x27;s corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that is contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor. # The text style of this RichLink.
+                    &quot;backgroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;baselineOffset&quot;: &quot;A String&quot;, # The text&#x27;s vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. The `font_size` itself is not affected by changes in this field.
+                    &quot;bold&quot;: True or False, # Whether or not the text is rendered as bold.
+                    &quot;fontSize&quot;: { # A magnitude in a single direction in the specified units. # The size of the text&#x27;s font.
+                      &quot;magnitude&quot;: 3.14, # The magnitude.
+                      &quot;unit&quot;: &quot;A String&quot;, # The units for magnitude.
+                    },
+                    &quot;foregroundColor&quot;: { # A color that can either be fully opaque or fully transparent. # The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field.
+                      &quot;color&quot;: { # A solid color. # If set, this will be used as an opaque color. If unset, this represents a transparent color.
+                        &quot;rgbColor&quot;: { # An RGB color. # The RGB color value.
+                          &quot;blue&quot;: 3.14, # The blue component of the color, from 0.0 to 1.0.
+                          &quot;green&quot;: 3.14, # The green component of the color, from 0.0 to 1.0.
+                          &quot;red&quot;: 3.14, # The red component of the color, from 0.0 to 1.0.
+                        },
+                      },
+                    },
+                    &quot;italic&quot;: True or False, # Whether or not the text is italicized.
+                    &quot;link&quot;: { # A reference to another portion of a document or an external URL resource. # The hyperlink destination of the text. If unset, there is no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated to the default link color and the text will be underlined. If these fields are modified in the same request, those values will be used instead of the link defaults. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `&quot;ABC\n123&quot;`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request.
+                      &quot;bookmarkId&quot;: &quot;A String&quot;, # The ID of a bookmark in this document.
+                      &quot;headingId&quot;: &quot;A String&quot;, # The ID of a heading in this document.
+                      &quot;url&quot;: &quot;A String&quot;, # An external URL.
+                    },
+                    &quot;smallCaps&quot;: True or False, # Whether or not the text is in small capital letters.
+                    &quot;strikethrough&quot;: True or False, # Whether or not the text is struck through.
+                    &quot;underline&quot;: True or False, # Whether or not the text is underlined.
+                    &quot;weightedFontFamily&quot;: { # Represents a font family and weight of text. # The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned.
+                      &quot;fontFamily&quot;: &quot;A String&quot;, # The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.
+                      &quot;weight&quot;: 42, # The weight of the font. This field can have any value that is a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (&quot;normal&quot;). The font weight makes up just one component of the rendered font weight. The rendered weight is determined by a combination of the `weight` and the text style&#x27;s resolved `bold` value, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.
+                    },
+                  },
+                },
                 &quot;startIndex&quot;: 42, # The zero-based start index of this paragraph element, in UTF-16 code units.
                 &quot;textRun&quot;: { # A ParagraphElement that represents a run of text that all has the same styling. # A text run paragraph element.
                   &quot;content&quot;: &quot;A String&quot;, # The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.
diff --git a/docs/dyn/drive_v2.permissions.html b/docs/dyn/drive_v2.permissions.html
index ffd1e65..24f4acb 100644
--- a/docs/dyn/drive_v2.permissions.html
+++ b/docs/dyn/drive_v2.permissions.html
@@ -692,7 +692,7 @@
   removeExpiration: boolean, Whether to remove the expiration date.
   supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
   supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
-  transferOwnership: boolean, Whether changing a role to &#x27;owner&#x27; downgrades the current owners to writers. Does nothing if the specified role is not &#x27;owner&#x27;.
+  transferOwnership: boolean, Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect. File owners can only transfer ownership of files existing on My Drive. Files existing in a shared drive are owned by the organization that owns that shared drive. Ownership transfers are not supported for files and folders in shared drives. Organizers of a shared drive can move items from that shared drive into their My Drive which transfers the ownership to them.
   useDomainAdminAccess: boolean, Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.
 
 Returns:
diff --git a/docs/dyn/drive_v3.permissions.html b/docs/dyn/drive_v3.permissions.html
index d23de19..0b46d51 100644
--- a/docs/dyn/drive_v3.permissions.html
+++ b/docs/dyn/drive_v3.permissions.html
@@ -171,7 +171,7 @@
   sendNotificationEmail: boolean, Whether to send a notification email when sharing to users or groups. This defaults to true for users and groups, and is not allowed for other requests. It must not be disabled for ownership transfers.
   supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
   supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
-  transferOwnership: boolean, Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect.
+  transferOwnership: boolean, Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect. File owners can only transfer ownership of files existing on My Drive. Files existing in a shared drive are owned by the organization that owns that shared drive. Ownership transfers are not supported for files and folders in shared drives. Organizers of a shared drive can move items from that shared drive into their My Drive which transfers the ownership to them.
   useDomainAdminAccess: boolean, Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.
 
 Returns:
@@ -476,7 +476,7 @@
   removeExpiration: boolean, Whether to remove the expiration date.
   supportsAllDrives: boolean, Whether the requesting application supports both My Drives and shared drives.
   supportsTeamDrives: boolean, Deprecated use supportsAllDrives instead.
-  transferOwnership: boolean, Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect.
+  transferOwnership: boolean, Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect. File owners can only transfer ownership of files existing on My Drive. Files existing in a shared drive are owned by the organization that owns that shared drive. Ownership transfers are not supported for files and folders in shared drives. Organizers of a shared drive can move items from that shared drive into their My Drive which transfers the ownership to them.
   useDomainAdminAccess: boolean, Issue the request as a domain administrator; if set to true, then the requester will be granted access if the file ID parameter refers to a shared drive and the requester is an administrator of the domain to which the shared drive belongs.
 
 Returns:
diff --git a/docs/dyn/firebasehosting_v1beta1.projects.sites.channels.html b/docs/dyn/firebasehosting_v1beta1.projects.sites.channels.html
index dce0f05..26c36e2 100644
--- a/docs/dyn/firebasehosting_v1beta1.projects.sites.channels.html
+++ b/docs/dyn/firebasehosting_v1beta1.projects.sites.channels.html
@@ -190,10 +190,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
@@ -288,10 +284,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
@@ -410,10 +402,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
@@ -518,10 +506,6 @@
             &quot;a_key&quot;: &quot;A String&quot;,
           },
           &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-          &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-            &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-            &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-          },
           &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
           &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
         },
@@ -634,10 +618,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
@@ -732,10 +712,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
diff --git a/docs/dyn/firebasehosting_v1beta1.projects.sites.channels.releases.html b/docs/dyn/firebasehosting_v1beta1.projects.sites.channels.releases.html
index 08dd85d..d154cfb 100644
--- a/docs/dyn/firebasehosting_v1beta1.projects.sites.channels.releases.html
+++ b/docs/dyn/firebasehosting_v1beta1.projects.sites.channels.releases.html
@@ -169,10 +169,6 @@
       &quot;a_key&quot;: &quot;A String&quot;,
     },
     &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-    &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-      &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-      &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-    },
     &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
     &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
   },
@@ -255,10 +251,6 @@
       &quot;a_key&quot;: &quot;A String&quot;,
     },
     &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-    &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-      &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-      &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-    },
     &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
     &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
   },
@@ -352,10 +344,6 @@
           &quot;a_key&quot;: &quot;A String&quot;,
         },
         &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-        &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-          &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-          &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-        },
         &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
         &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
       },
diff --git a/docs/dyn/firebasehosting_v1beta1.projects.sites.releases.html b/docs/dyn/firebasehosting_v1beta1.projects.sites.releases.html
index d0b0bae..c6d5146 100644
--- a/docs/dyn/firebasehosting_v1beta1.projects.sites.releases.html
+++ b/docs/dyn/firebasehosting_v1beta1.projects.sites.releases.html
@@ -169,10 +169,6 @@
       &quot;a_key&quot;: &quot;A String&quot;,
     },
     &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-    &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-      &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-      &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-    },
     &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
     &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
   },
@@ -255,10 +251,6 @@
       &quot;a_key&quot;: &quot;A String&quot;,
     },
     &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-    &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-      &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-      &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-    },
     &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
     &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
   },
@@ -352,10 +344,6 @@
           &quot;a_key&quot;: &quot;A String&quot;,
         },
         &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-        &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-          &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-          &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-        },
         &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
         &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
       },
diff --git a/docs/dyn/firebasehosting_v1beta1.projects.sites.versions.html b/docs/dyn/firebasehosting_v1beta1.projects.sites.versions.html
index 34000c4..1f7355a 100644
--- a/docs/dyn/firebasehosting_v1beta1.projects.sites.versions.html
+++ b/docs/dyn/firebasehosting_v1beta1.projects.sites.versions.html
@@ -230,10 +230,6 @@
     &quot;a_key&quot;: &quot;A String&quot;,
   },
   &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-  &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-    &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-    &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-  },
   &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
   &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
 }
@@ -307,10 +303,6 @@
     &quot;a_key&quot;: &quot;A String&quot;,
   },
   &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-  &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-    &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-    &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-  },
   &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
   &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
 }</pre>
@@ -413,10 +405,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
@@ -506,10 +494,6 @@
     &quot;a_key&quot;: &quot;A String&quot;,
   },
   &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-  &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-    &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-    &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-  },
   &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
   &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
 }
@@ -582,10 +566,6 @@
     &quot;a_key&quot;: &quot;A String&quot;,
   },
   &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-  &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-    &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-    &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-  },
   &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
   &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
 }</pre>
diff --git a/docs/dyn/firebasehosting_v1beta1.sites.channels.html b/docs/dyn/firebasehosting_v1beta1.sites.channels.html
index 8999801..4bf5434 100644
--- a/docs/dyn/firebasehosting_v1beta1.sites.channels.html
+++ b/docs/dyn/firebasehosting_v1beta1.sites.channels.html
@@ -190,10 +190,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
@@ -288,10 +284,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
@@ -410,10 +402,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
@@ -518,10 +506,6 @@
             &quot;a_key&quot;: &quot;A String&quot;,
           },
           &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-          &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-            &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-            &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-          },
           &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
           &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
         },
@@ -634,10 +618,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
@@ -732,10 +712,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
diff --git a/docs/dyn/firebasehosting_v1beta1.sites.channels.releases.html b/docs/dyn/firebasehosting_v1beta1.sites.channels.releases.html
index 4e1367a..d5f320b 100644
--- a/docs/dyn/firebasehosting_v1beta1.sites.channels.releases.html
+++ b/docs/dyn/firebasehosting_v1beta1.sites.channels.releases.html
@@ -169,10 +169,6 @@
       &quot;a_key&quot;: &quot;A String&quot;,
     },
     &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-    &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-      &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-      &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-    },
     &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
     &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
   },
@@ -255,10 +251,6 @@
       &quot;a_key&quot;: &quot;A String&quot;,
     },
     &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-    &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-      &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-      &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-    },
     &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
     &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
   },
@@ -352,10 +344,6 @@
           &quot;a_key&quot;: &quot;A String&quot;,
         },
         &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-        &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-          &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-          &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-        },
         &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
         &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
       },
diff --git a/docs/dyn/firebasehosting_v1beta1.sites.releases.html b/docs/dyn/firebasehosting_v1beta1.sites.releases.html
index 61b5900..fd0bd66 100644
--- a/docs/dyn/firebasehosting_v1beta1.sites.releases.html
+++ b/docs/dyn/firebasehosting_v1beta1.sites.releases.html
@@ -169,10 +169,6 @@
       &quot;a_key&quot;: &quot;A String&quot;,
     },
     &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-    &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-      &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-      &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-    },
     &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
     &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
   },
@@ -255,10 +251,6 @@
       &quot;a_key&quot;: &quot;A String&quot;,
     },
     &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-    &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-      &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-      &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-    },
     &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
     &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
   },
@@ -352,10 +344,6 @@
           &quot;a_key&quot;: &quot;A String&quot;,
         },
         &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-        &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-          &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-          &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-        },
         &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
         &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
       },
diff --git a/docs/dyn/firebasehosting_v1beta1.sites.versions.html b/docs/dyn/firebasehosting_v1beta1.sites.versions.html
index 254d562..648844f 100644
--- a/docs/dyn/firebasehosting_v1beta1.sites.versions.html
+++ b/docs/dyn/firebasehosting_v1beta1.sites.versions.html
@@ -230,10 +230,6 @@
     &quot;a_key&quot;: &quot;A String&quot;,
   },
   &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-  &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-    &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-    &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-  },
   &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
   &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
 }
@@ -307,10 +303,6 @@
     &quot;a_key&quot;: &quot;A String&quot;,
   },
   &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-  &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-    &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-    &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-  },
   &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
   &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
 }</pre>
@@ -413,10 +405,6 @@
         &quot;a_key&quot;: &quot;A String&quot;,
       },
       &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-      &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-        &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-        &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-      },
       &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
       &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
     },
@@ -506,10 +494,6 @@
     &quot;a_key&quot;: &quot;A String&quot;,
   },
   &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-  &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-    &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-    &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-  },
   &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
   &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
 }
@@ -582,10 +566,6 @@
     &quot;a_key&quot;: &quot;A String&quot;,
   },
   &quot;name&quot;: &quot;A String&quot;, # The fully-qualified resource name for the version, in the format: sites/ SITE_ID/versions/VERSION_ID This name is provided in the response body when you call [`CreateVersion`](sites.versions/create).
-  &quot;preview&quot;: { # Deprecated in favor of [site channels](sites.channels). # Deprecated in favor of [site channels](sites.channels).
-    &quot;active&quot;: True or False, # If true, preview URLs are enabled for this version.
-    &quot;expireTime&quot;: &quot;A String&quot;, # Indicates the expiration time for previewing this version; preview URL requests received after this time will 404.
-  },
   &quot;status&quot;: &quot;A String&quot;, # The deploy status of the version. For a successful deploy, call [`CreateVersion`](sites.versions/create) to make a new version (`CREATED` status), [upload all desired files](sites.versions/populateFiles) to the version, then [update](sites.versions/patch) the version to the `FINALIZED` status. Note that if you leave the version in the `CREATED` state for more than 12 hours, the system will automatically mark the version as `ABANDONED`. You can also change the status of a version to `DELETED` by calling [`DeleteVersion`](sites.versions/delete).
   &quot;versionBytes&quot;: &quot;A String&quot;, # Output only. The total stored bytesize of the version. This value is calculated after a version is `FINALIZED`.
 }</pre>
diff --git a/docs/dyn/firestore_v1beta1.projects.databases.documents.html b/docs/dyn/firestore_v1beta1.projects.databases.documents.html
index 712832b..352fb52 100644
--- a/docs/dyn/firestore_v1beta1.projects.databases.documents.html
+++ b/docs/dyn/firestore_v1beta1.projects.databases.documents.html
@@ -175,7 +175,11 @@
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
     &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
       &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-        &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;values&quot;: [ # Values in the array.
+            # Object with schema name: Value
+          ],
+        },
         &quot;booleanValue&quot;: True or False, # A boolean value.
         &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
         &quot;doubleValue&quot;: 3.14, # A double value.
@@ -230,31 +234,16 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -274,7 +263,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -294,7 +287,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -315,26 +312,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -345,7 +323,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -377,31 +359,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -421,7 +388,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -441,7 +412,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -462,26 +437,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -515,7 +471,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -603,31 +563,16 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -647,7 +592,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -667,7 +616,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -688,26 +641,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -718,7 +652,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -750,31 +688,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -794,7 +717,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -814,7 +741,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -835,26 +766,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -878,7 +790,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -918,7 +834,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -956,7 +876,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1022,7 +946,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1075,7 +1003,11 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
       &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
         &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1185,7 +1117,11 @@
           &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
           &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
             { # A message that can hold any of the supported value types.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1233,7 +1169,11 @@
           &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
           &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
             { # A message that can hold any of the supported value types.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1267,7 +1207,11 @@
             },
             &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
             &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1320,7 +1264,11 @@
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
       &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
         &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1406,7 +1354,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1454,7 +1406,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1488,7 +1444,11 @@
         },
         &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
         &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1533,7 +1493,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1585,7 +1549,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1625,7 +1593,11 @@
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
   &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
     &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-      &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+      &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;values&quot;: [ # Values in the array.
+          # Object with schema name: Value
+        ],
+      },
       &quot;booleanValue&quot;: True or False, # A boolean value.
       &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
       &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1699,7 +1671,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1747,7 +1723,11 @@
       &quot;before&quot;: True or False, # If the position is just before or just after the given values, relative to the sort order defined by the query.
       &quot;values&quot;: [ # The values that represent a position, in the order they appear in the order by clause of a query. Can contain fewer values than specified in the order by clause.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1781,7 +1761,11 @@
         },
         &quot;op&quot;: &quot;A String&quot;, # The operator to filter by.
         &quot;value&quot;: { # A message that can hold any of the supported value types. # The value to compare to.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1825,7 +1809,11 @@
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
     &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
       &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-        &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+        &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;values&quot;: [ # Values in the array.
+            # Object with schema name: Value
+          ],
+        },
         &quot;booleanValue&quot;: True or False, # A boolean value.
         &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
         &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1882,31 +1870,16 @@
           { # A transformation of a field of the document.
             &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
             &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1926,7 +1899,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1946,7 +1923,11 @@
               &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
             },
             &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-              &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+                &quot;values&quot;: [ # Values in the array.
+                  # Object with schema name: Value
+                ],
+              },
               &quot;booleanValue&quot;: True or False, # A boolean value.
               &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
               &quot;doubleValue&quot;: 3.14, # A double value.
@@ -1967,26 +1948,7 @@
             },
             &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
               &quot;values&quot;: [ # Values in the array.
-                { # A message that can hold any of the supported value types.
-                  &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                  &quot;booleanValue&quot;: True or False, # A boolean value.
-                  &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                  &quot;doubleValue&quot;: 3.14, # A double value.
-                  &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                    &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                    &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                  },
-                  &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                  &quot;mapValue&quot;: { # A map value. # A map value.
-                    &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                      &quot;a_key&quot;: # Object with schema name: Value
-                    },
-                  },
-                  &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                  &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                  &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                  &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-                },
+                # Object with schema name: Value
               ],
             },
             &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -1997,7 +1959,11 @@
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time at which the document was created. This value increases monotonically when a document is deleted then recreated. It can also be compared to values from other documents and the `read_time` of a query.
         &quot;fields&quot;: { # The document&#x27;s fields. The map keys represent field names. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by the simple or quoted field names of the containing fields, delimited by `.`. For example, the structured field `&quot;foo&quot; : { map_value: { &quot;x&amp;y&quot; : { string_value: &quot;hello&quot; }}}` would be represented by the field path `foo.x&amp;y`. Within a field path, a quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\`. For example, `` `x&amp;y` `` represents `x&amp;y` and `` `bak\`tik` `` represents `` bak`tik ``.
           &quot;a_key&quot;: { # A message that can hold any of the supported value types.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2029,31 +1995,16 @@
         { # A transformation of a field of the document.
           &quot;appendMissingElements&quot;: { # An array value. # Append the given elements in order if they are not already present in the current field value. If the field is not an array, or if the field does not yet exist, it is first set to the empty array. Equivalent numbers of different types (e.g. 3L and 3.0) are considered equal when checking if a value is missing. NaN is equal to NaN, and Null is equal to Null. If the input contains multiple equivalent values, only the first will be considered. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;fieldPath&quot;: &quot;A String&quot;, # The path of the field. See Document.fields for the field path syntax reference.
           &quot;increment&quot;: { # A message that can hold any of the supported value types. # Adds the given value to the field&#x27;s current value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If either of the given value or the current field value are doubles, both values will be interpreted as doubles. Double arithmetic and representation of double values follow IEEE 754 semantics. If there is positive/negative integer overflow, the field is resolved to the largest magnitude positive/negative integer.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2073,7 +2024,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;maximum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the maximum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the given value. If a maximum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the larger operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The maximum of a zero stored value and zero input value is always the stored value. The maximum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2093,7 +2048,11 @@
             &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
           },
           &quot;minimum&quot;: { # A message that can hold any of the supported value types. # Sets the field to the minimum of its current value and the given value. This must be an integer or a double value. If the field is not an integer or double, or if the field does not yet exist, the transformation will set the field to the input value. If a minimum operation is applied where the field and the input value are of mixed types (that is - one is an integer and one is a double) the field takes on the type of the smaller operand. If the operands are equivalent (e.g. 3 and 3.0), the field does not change. 0, 0.0, and -0.0 are all zero. The minimum of a zero stored value and zero input value is always the stored value. The minimum of any numeric value x and NaN is NaN.
-            &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+              &quot;values&quot;: [ # Values in the array.
+                # Object with schema name: Value
+              ],
+            },
             &quot;booleanValue&quot;: True or False, # A boolean value.
             &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
             &quot;doubleValue&quot;: 3.14, # A double value.
@@ -2114,26 +2073,7 @@
           },
           &quot;removeAllFromArray&quot;: { # An array value. # Remove all of the given elements from the array in the field. If the field is not an array, or if the field does not yet exist, it is set to the empty array. Equivalent numbers of the different types (e.g. 3L and 3.0) are considered equal when deciding whether an element should be removed. NaN is equal to NaN, and Null is equal to Null. This will remove all equivalent values if there are duplicates. The corresponding transform_result will be the null value.
             &quot;values&quot;: [ # Values in the array.
-              { # A message that can hold any of the supported value types.
-                &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
-                &quot;booleanValue&quot;: True or False, # A boolean value.
-                &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
-                &quot;doubleValue&quot;: 3.14, # A double value.
-                &quot;geoPointValue&quot;: { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # A geo point value representing a point on the surface of Earth.
-                  &quot;latitude&quot;: 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
-                  &quot;longitude&quot;: 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
-                },
-                &quot;integerValue&quot;: &quot;A String&quot;, # An integer value.
-                &quot;mapValue&quot;: { # A map value. # A map value.
-                  &quot;fields&quot;: { # The map&#x27;s fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The map keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty.
-                    &quot;a_key&quot;: # Object with schema name: Value
-                  },
-                },
-                &quot;nullValue&quot;: &quot;A String&quot;, # A null value.
-                &quot;referenceValue&quot;: &quot;A String&quot;, # A reference to a document. For example: `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
-                &quot;stringValue&quot;: &quot;A String&quot;, # A string value. The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes of the UTF-8 representation are considered by queries.
-                &quot;timestampValue&quot;: &quot;A String&quot;, # A timestamp value. Precise only to microseconds. When stored, any additional precision is rounded down.
-              },
+              # Object with schema name: Value
             ],
           },
           &quot;setToServerValue&quot;: &quot;A String&quot;, # Sets the field to the given server value.
@@ -2159,7 +2099,11 @@
     { # The result of applying a write.
       &quot;transformResults&quot;: [ # The results of applying each DocumentTransform.FieldTransform, in the same order.
         { # A message that can hold any of the supported value types.
-          &quot;arrayValue&quot;: # Object with schema name: ArrayValue # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+          &quot;arrayValue&quot;: { # An array value. # An array value. Cannot directly contain another array value, though can contain an map which contains another array.
+            &quot;values&quot;: [ # Values in the array.
+              # Object with schema name: Value
+            ],
+          },
           &quot;booleanValue&quot;: True or False, # A boolean value.
           &quot;bytesValue&quot;: &quot;A String&quot;, # A bytes value. Must not exceed 1 MiB - 89 bytes. Only the first 1,500 bytes are considered by queries.
           &quot;doubleValue&quot;: 3.14, # A double value.
diff --git a/docs/dyn/gkehub_v1beta.projects.locations.features.html b/docs/dyn/gkehub_v1beta.projects.locations.features.html
index cb55d2d..0e5e60d 100644
--- a/docs/dyn/gkehub_v1beta.projects.locations.features.html
+++ b/docs/dyn/gkehub_v1beta.projects.locations.features.html
@@ -125,7 +125,7 @@
   &quot;labels&quot;: { # GCP labels for this Feature.
     &quot;a_key&quot;: &quot;A String&quot;,
   },
-  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
+  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: `projects/{p}/locations/{l}/memberships/{m}` Where {p} is the project, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
     &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
       &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
         &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
@@ -163,7 +163,7 @@
       },
     },
   },
-  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: `projects/{p}/locations/{l}/memberships/{m}` Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
     &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
       &quot;configmanagement&quot;: { # **Anthos Config Management**: State for a single cluster. # Config Management-specific state.
         &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
@@ -297,7 +297,7 @@
   },
   &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
     &quot;multiclusteringress&quot;: { # **Multi-cluster Ingress**: The configuration for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
-      &quot;billing&quot;: &quot;A String&quot;, # Customer&#x27;s billing structure
+      &quot;billing&quot;: &quot;A String&quot;, # Deprecated: This field will be ignored and should not be set. Customer&#x27;s billing structure.
       &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
     },
   },
@@ -399,7 +399,7 @@
   &quot;labels&quot;: { # GCP labels for this Feature.
     &quot;a_key&quot;: &quot;A String&quot;,
   },
-  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
+  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: `projects/{p}/locations/{l}/memberships/{m}` Where {p} is the project, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
     &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
       &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
         &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
@@ -437,7 +437,7 @@
       },
     },
   },
-  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: `projects/{p}/locations/{l}/memberships/{m}` Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
     &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
       &quot;configmanagement&quot;: { # **Anthos Config Management**: State for a single cluster. # Config Management-specific state.
         &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
@@ -571,7 +571,7 @@
   },
   &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
     &quot;multiclusteringress&quot;: { # **Multi-cluster Ingress**: The configuration for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
-      &quot;billing&quot;: &quot;A String&quot;, # Customer&#x27;s billing structure
+      &quot;billing&quot;: &quot;A String&quot;, # Deprecated: This field will be ignored and should not be set. Customer&#x27;s billing structure.
       &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
     },
   },
@@ -661,7 +661,7 @@
       &quot;labels&quot;: { # GCP labels for this Feature.
         &quot;a_key&quot;: &quot;A String&quot;,
       },
-      &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
+      &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: `projects/{p}/locations/{l}/memberships/{m}` Where {p} is the project, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
         &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
           &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
             &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
@@ -699,7 +699,7 @@
           },
         },
       },
-      &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+      &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: `projects/{p}/locations/{l}/memberships/{m}` Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
         &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
           &quot;configmanagement&quot;: { # **Anthos Config Management**: State for a single cluster. # Config Management-specific state.
             &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
@@ -833,7 +833,7 @@
       },
       &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
         &quot;multiclusteringress&quot;: { # **Multi-cluster Ingress**: The configuration for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
-          &quot;billing&quot;: &quot;A String&quot;, # Customer&#x27;s billing structure
+          &quot;billing&quot;: &quot;A String&quot;, # Deprecated: This field will be ignored and should not be set. Customer&#x27;s billing structure.
           &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
         },
       },
@@ -879,7 +879,7 @@
   &quot;labels&quot;: { # GCP labels for this Feature.
     &quot;a_key&quot;: &quot;A String&quot;,
   },
-  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
+  &quot;membershipSpecs&quot;: { # Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: `projects/{p}/locations/{l}/memberships/{m}` Where {p} is the project, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature&#x27;s project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.
     &quot;a_key&quot;: { # MembershipFeatureSpec contains configuration information for a single Membership.
       &quot;configmanagement&quot;: { # **Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR. # Config Management-specific spec.
         &quot;binauthz&quot;: { # Configuration for Binauthz # Binauthz conifguration for the cluster.
@@ -917,7 +917,7 @@
       },
     },
   },
-  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: projects/{p}/locations/{l}/memberships/{m} Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
+  &quot;membershipStates&quot;: { # Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: `projects/{p}/locations/{l}/memberships/{m}` Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature&#x27;s project number.
     &quot;a_key&quot;: { # MembershipFeatureState contains Feature status information for a single Membership.
       &quot;configmanagement&quot;: { # **Anthos Config Management**: State for a single cluster. # Config Management-specific state.
         &quot;binauthzState&quot;: { # State for Binauthz # Binauthz status
@@ -1051,7 +1051,7 @@
   },
   &quot;spec&quot;: { # CommonFeatureSpec contains Hub-wide configuration information # Optional. Hub-wide Feature configuration. If this Feature does not support any Hub-wide configuration, this field may be unused.
     &quot;multiclusteringress&quot;: { # **Multi-cluster Ingress**: The configuration for the MultiClusterIngress feature. # Multicluster Ingress-specific spec.
-      &quot;billing&quot;: &quot;A String&quot;, # Customer&#x27;s billing structure
+      &quot;billing&quot;: &quot;A String&quot;, # Deprecated: This field will be ignored and should not be set. Customer&#x27;s billing structure.
       &quot;configMembership&quot;: &quot;A String&quot;, # Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`
     },
   },
diff --git a/docs/dyn/healthcare_v1beta1.projects.locations.datasets.dicomStores.html b/docs/dyn/healthcare_v1beta1.projects.locations.datasets.dicomStores.html
index 213afeb..6f58bdd 100644
--- a/docs/dyn/healthcare_v1beta1.projects.locations.datasets.dicomStores.html
+++ b/docs/dyn/healthcare_v1beta1.projects.locations.datasets.dicomStores.html
@@ -152,6 +152,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # Notification destination for new DICOM instances. Supplied by the client.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;streamConfigs&quot;: [ # A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.
     { # StreamConfig specifies configuration for a streaming DICOM export.
@@ -180,6 +181,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # Notification destination for new DICOM instances. Supplied by the client.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;streamConfigs&quot;: [ # A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.
     { # StreamConfig specifies configuration for a streaming DICOM export.
@@ -385,6 +387,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # Notification destination for new DICOM instances. Supplied by the client.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;streamConfigs&quot;: [ # A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.
     { # StreamConfig specifies configuration for a streaming DICOM export.
@@ -516,6 +519,7 @@
       &quot;name&quot;: &quot;A String&quot;, # Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.
       &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # Notification destination for new DICOM instances. Supplied by the client.
         &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+        &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
       },
       &quot;streamConfigs&quot;: [ # A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.
         { # StreamConfig specifies configuration for a streaming DICOM export.
@@ -562,6 +566,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # Notification destination for new DICOM instances. Supplied by the client.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;streamConfigs&quot;: [ # A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.
     { # StreamConfig specifies configuration for a streaming DICOM export.
@@ -590,6 +595,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # Notification destination for new DICOM instances. Supplied by the client.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;streamConfigs&quot;: [ # A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.
     { # StreamConfig specifies configuration for a streaming DICOM export.
diff --git a/docs/dyn/healthcare_v1beta1.projects.locations.datasets.fhirStores.html b/docs/dyn/healthcare_v1beta1.projects.locations.datasets.fhirStores.html
index c288fe6..448f0bc 100644
--- a/docs/dyn/healthcare_v1beta1.projects.locations.datasets.fhirStores.html
+++ b/docs/dyn/healthcare_v1beta1.projects.locations.datasets.fhirStores.html
@@ -192,6 +192,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the FHIR store, of the form `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, &quot;action&quot;:&quot;CreateResource&quot;.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;searchConfig&quot;: { # Contains the configuration for FHIR search. # Configuration for how FHIR resource can be searched.
     &quot;searchParameters&quot;: [ # A list of search parameters in this FHIR store that are used to configure this FHIR store.
@@ -246,6 +247,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the FHIR store, of the form `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, &quot;action&quot;:&quot;CreateResource&quot;.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;searchConfig&quot;: { # Contains the configuration for FHIR search. # Configuration for how FHIR resource can be searched.
     &quot;searchParameters&quot;: [ # A list of search parameters in this FHIR store that are used to configure this FHIR store.
@@ -483,6 +485,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the FHIR store, of the form `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, &quot;action&quot;:&quot;CreateResource&quot;.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;searchConfig&quot;: { # Contains the configuration for FHIR search. # Configuration for how FHIR resource can be searched.
     &quot;searchParameters&quot;: [ # A list of search parameters in this FHIR store that are used to configure this FHIR store.
@@ -641,6 +644,7 @@
       &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the FHIR store, of the form `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.
       &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, &quot;action&quot;:&quot;CreateResource&quot;.
         &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+        &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
       },
       &quot;searchConfig&quot;: { # Contains the configuration for FHIR search. # Configuration for how FHIR resource can be searched.
         &quot;searchParameters&quot;: [ # A list of search parameters in this FHIR store that are used to configure this FHIR store.
@@ -713,6 +717,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the FHIR store, of the form `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, &quot;action&quot;:&quot;CreateResource&quot;.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;searchConfig&quot;: { # Contains the configuration for FHIR search. # Configuration for how FHIR resource can be searched.
     &quot;searchParameters&quot;: [ # A list of search parameters in this FHIR store that are used to configure this FHIR store.
@@ -767,6 +772,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Output only. Resource name of the FHIR store, of the form `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, &quot;action&quot;:&quot;CreateResource&quot;.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;searchConfig&quot;: { # Contains the configuration for FHIR search. # Configuration for how FHIR resource can be searched.
     &quot;searchParameters&quot;: [ # A list of search parameters in this FHIR store that are used to configure this FHIR store.
diff --git a/docs/dyn/healthcare_v1beta1.projects.locations.datasets.hl7V2Stores.html b/docs/dyn/healthcare_v1beta1.projects.locations.datasets.hl7V2Stores.html
index 8d9b7dc..1bf48bf 100644
--- a/docs/dyn/healthcare_v1beta1.projects.locations.datasets.hl7V2Stores.html
+++ b/docs/dyn/healthcare_v1beta1.projects.locations.datasets.hl7V2Stores.html
@@ -137,6 +137,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Resource name of the HL7v2 store, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # The notification destination all messages (both Ingest &amp; Create) are published on. Only the message name is sent as part of the notification. If this is unset, no notifications are sent. Supplied by the client.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;notificationConfigs&quot;: [ # A list of notification configs. Each configuration uses a filter to determine whether to publish a message (both Ingest &amp; Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client.
     { # Specifies where and whether to send notifications upon changes to a data store.
@@ -226,6 +227,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Resource name of the HL7v2 store, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # The notification destination all messages (both Ingest &amp; Create) are published on. Only the message name is sent as part of the notification. If this is unset, no notifications are sent. Supplied by the client.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;notificationConfigs&quot;: [ # A list of notification configs. Each configuration uses a filter to determine whether to publish a message (both Ingest &amp; Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client.
     { # Specifies where and whether to send notifications upon changes to a data store.
@@ -387,6 +389,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Resource name of the HL7v2 store, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # The notification destination all messages (both Ingest &amp; Create) are published on. Only the message name is sent as part of the notification. If this is unset, no notifications are sent. Supplied by the client.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;notificationConfigs&quot;: [ # A list of notification configs. Each configuration uses a filter to determine whether to publish a message (both Ingest &amp; Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client.
     { # Specifies where and whether to send notifications upon changes to a data store.
@@ -579,6 +582,7 @@
       &quot;name&quot;: &quot;A String&quot;, # Resource name of the HL7v2 store, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.
       &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # The notification destination all messages (both Ingest &amp; Create) are published on. Only the message name is sent as part of the notification. If this is unset, no notifications are sent. Supplied by the client.
         &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+        &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
       },
       &quot;notificationConfigs&quot;: [ # A list of notification configs. Each configuration uses a filter to determine whether to publish a message (both Ingest &amp; Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client.
         { # Specifies where and whether to send notifications upon changes to a data store.
@@ -686,6 +690,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Resource name of the HL7v2 store, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # The notification destination all messages (both Ingest &amp; Create) are published on. Only the message name is sent as part of the notification. If this is unset, no notifications are sent. Supplied by the client.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;notificationConfigs&quot;: [ # A list of notification configs. Each configuration uses a filter to determine whether to publish a message (both Ingest &amp; Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client.
     { # Specifies where and whether to send notifications upon changes to a data store.
@@ -775,6 +780,7 @@
   &quot;name&quot;: &quot;A String&quot;, # Resource name of the HL7v2 store, of the form `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.
   &quot;notificationConfig&quot;: { # Specifies where to send notifications upon changes to a data store. # The notification destination all messages (both Ingest &amp; Create) are published on. Only the message name is sent as part of the notification. If this is unset, no notifications are sent. Supplied by the client.
     &quot;pubsubTopic&quot;: &quot;A String&quot;, # The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can&#x27;t be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren&#x27;t submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.
+    &quot;sendForBulkImport&quot;: True or False, # Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.
   },
   &quot;notificationConfigs&quot;: [ # A list of notification configs. Each configuration uses a filter to determine whether to publish a message (both Ingest &amp; Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client.
     { # Specifies where and whether to send notifications upon changes to a data store.
diff --git a/docs/dyn/ideahub_v1alpha.platforms.properties.html b/docs/dyn/ideahub_v1alpha.platforms.properties.html
index 6a102c7..9e638a4 100644
--- a/docs/dyn/ideahub_v1alpha.platforms.properties.html
+++ b/docs/dyn/ideahub_v1alpha.platforms.properties.html
@@ -75,6 +75,11 @@
 <h1><a href="ideahub_v1alpha.html">Idea Hub API</a> . <a href="ideahub_v1alpha.platforms.html">platforms</a> . <a href="ideahub_v1alpha.platforms.properties.html">properties</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="ideahub_v1alpha.platforms.properties.ideaActivities.html">ideaActivities()</a></code>
+</p>
+<p class="firstline">Returns the ideaActivities Resource.</p>
+
+<p class="toc_element">
   <code><a href="ideahub_v1alpha.platforms.properties.ideaStates.html">ideaStates()</a></code>
 </p>
 <p class="firstline">Returns the ideaStates Resource.</p>
diff --git a/docs/dyn/ideahub_v1alpha.platforms.properties.ideaActivities.html b/docs/dyn/ideahub_v1alpha.platforms.properties.ideaActivities.html
new file mode 100644
index 0000000..89536e0
--- /dev/null
+++ b/docs/dyn/ideahub_v1alpha.platforms.properties.ideaActivities.html
@@ -0,0 +1,131 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="ideahub_v1alpha.html">Idea Hub API</a> . <a href="ideahub_v1alpha.platforms.html">platforms</a> . <a href="ideahub_v1alpha.platforms.properties.html">properties</a> . <a href="ideahub_v1alpha.platforms.properties.ideaActivities.html">ideaActivities</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates an idea activity entry.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
+  <pre>Creates an idea activity entry.
+
+Args:
+  parent: string, Required. The parent resource where this idea activity will be created. Format: platforms/{platform}/property/{property} (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # An idea activity entry.
+  &quot;ideaIds&quot;: [ # The Idea IDs for this entry.
+    &quot;A String&quot;,
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Unique identifier for the idea activity. Format: platforms/{platform}/properties/{property}/ideaActivities/{idea_activity}
+  &quot;topicIds&quot;: [ # The Topic IDs for this entry.
+    &quot;A String&quot;,
+  ],
+  &quot;type&quot;: &quot;A String&quot;, # The type of activity performed.
+  &quot;uri&quot;: &quot;A String&quot;, # The uri the activity relates to.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An idea activity entry.
+  &quot;ideaIds&quot;: [ # The Idea IDs for this entry.
+    &quot;A String&quot;,
+  ],
+  &quot;name&quot;: &quot;A String&quot;, # Unique identifier for the idea activity. Format: platforms/{platform}/properties/{property}/ideaActivities/{idea_activity}
+  &quot;topicIds&quot;: [ # The Topic IDs for this entry.
+    &quot;A String&quot;,
+  ],
+  &quot;type&quot;: &quot;A String&quot;, # The type of activity performed.
+  &quot;uri&quot;: &quot;A String&quot;, # The uri the activity relates to.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/index.md b/docs/dyn/index.md
index c8a6c4c..33eba2f 100644
--- a/docs/dyn/index.md
+++ b/docs/dyn/index.md
@@ -120,7 +120,6 @@
 
 ## baremetalsolution
 * [v1](http://googleapis.github.io/google-api-python-client/docs/dyn/baremetalsolution_v1.html)
-* [v1alpha1](http://googleapis.github.io/google-api-python-client/docs/dyn/baremetalsolution_v1alpha1.html)
 
 
 ## bigquery
diff --git a/docs/dyn/managedidentities_v1.projects.locations.global_.domains.html b/docs/dyn/managedidentities_v1.projects.locations.global_.domains.html
index f1b964f..4ee1044 100644
--- a/docs/dyn/managedidentities_v1.projects.locations.global_.domains.html
+++ b/docs/dyn/managedidentities_v1.projects.locations.global_.domains.html
@@ -203,6 +203,7 @@
 
 { # Represents a managed Microsoft Active Directory domain. If the domain is being changed, it will be placed into the UPDATING state, which indicates that the resource is being reconciled. At this point, Get will reflect an intermediate state.
   &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of delegated administrator account used to perform Active Directory operations. If not specified, `setupadmin` will be used.
+  &quot;auditLogsEnabled&quot;: True or False, # Optional. Configuration for audit logs. True if audit logs are enabled, else false. Default is audit logs disabled.
   &quot;authorizedNetworks&quot;: [ # Optional. The full names of the Google Compute Engine [networks](/compute/docs/networks-and-firewalls#networks) the domain instance is connected to. Networks can be added using UpdateDomain. The domain is only available on networks listed in `authorized_networks`. If CIDR subnets overlap between networks, domain creation will fail.
     &quot;A String&quot;,
   ],
@@ -375,6 +376,7 @@
 
     { # Represents a managed Microsoft Active Directory domain. If the domain is being changed, it will be placed into the UPDATING state, which indicates that the resource is being reconciled. At this point, Get will reflect an intermediate state.
   &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of delegated administrator account used to perform Active Directory operations. If not specified, `setupadmin` will be used.
+  &quot;auditLogsEnabled&quot;: True or False, # Optional. Configuration for audit logs. True if audit logs are enabled, else false. Default is audit logs disabled.
   &quot;authorizedNetworks&quot;: [ # Optional. The full names of the Google Compute Engine [networks](/compute/docs/networks-and-firewalls#networks) the domain instance is connected to. Networks can be added using UpdateDomain. The domain is only available on networks listed in `authorized_networks`. If CIDR subnets overlap between networks, domain creation will fail.
     &quot;A String&quot;,
   ],
@@ -470,7 +472,7 @@
     ],
     &quot;thumbprint&quot;: &quot;A String&quot;, # The certificate thumbprint which uniquely identifies the certificate.
   },
-  &quot;certificatePassword&quot;: &quot;A String&quot;, # Input only. The password used to encrypt the uploaded pfx certificate.
+  &quot;certificatePassword&quot;: &quot;A String&quot;, # Input only. The password used to encrypt the uploaded PFX certificate.
   &quot;certificatePfx&quot;: &quot;A String&quot;, # Input only. The uploaded PKCS12-formatted certificate to configure LDAPS with. It will enable the domain controllers in this domain to accept LDAPS connections (either LDAP over SSL/TLS or the StartTLS operation). A valid certificate chain must form a valid x.509 certificate chain (or be comprised of a single self-signed certificate. It must be encrypted with either: 1) PBES2 + PBKDF2 + AES256 encryption and SHA256 PRF; or 2) pbeWithSHA1And3-KeyTripleDES-CBC Private key must be included for the leaf / single self-signed certificate. Note: For a fqdn your-example-domain.com, the wildcard fqdn is *.your-example-domain.com. Specifically the leaf certificate must have: - Either a blank subject or a subject with CN matching the wildcard fqdn. - Exactly two SANs - the fqdn and wildcard fqdn. - Encipherment and digital key signature key usages. - Server authentication extended key usage (OID=1.3.6.1.5.5.7.3.1) - Private key must be in one of the following formats: RSA, ECDSA, ED25519. - Private key must have appropriate key length: 2048 for RSA, 256 for ECDSA - Signature algorithm of the leaf certificate cannot be MD2, MD5 or SHA1.
   &quot;name&quot;: &quot;A String&quot;, # The resource name of the LDAPS settings. Uses the form: `projects/{project}/locations/{location}/domains/{domain}`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of this LDAPS settings.
@@ -500,6 +502,7 @@
   &quot;domains&quot;: [ # A list of Managed Identities Service domains in the project.
     { # Represents a managed Microsoft Active Directory domain. If the domain is being changed, it will be placed into the UPDATING state, which indicates that the resource is being reconciled. At this point, Get will reflect an intermediate state.
       &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of delegated administrator account used to perform Active Directory operations. If not specified, `setupadmin` will be used.
+      &quot;auditLogsEnabled&quot;: True or False, # Optional. Configuration for audit logs. True if audit logs are enabled, else false. Default is audit logs disabled.
       &quot;authorizedNetworks&quot;: [ # Optional. The full names of the Google Compute Engine [networks](/compute/docs/networks-and-firewalls#networks) the domain instance is connected to. Networks can be added using UpdateDomain. The domain is only available on networks listed in `authorized_networks`. If CIDR subnets overlap between networks, domain creation will fail.
         &quot;A String&quot;,
       ],
@@ -567,6 +570,7 @@
 
 { # Represents a managed Microsoft Active Directory domain. If the domain is being changed, it will be placed into the UPDATING state, which indicates that the resource is being reconciled. At this point, Get will reflect an intermediate state.
   &quot;admin&quot;: &quot;A String&quot;, # Optional. The name of delegated administrator account used to perform Active Directory operations. If not specified, `setupadmin` will be used.
+  &quot;auditLogsEnabled&quot;: True or False, # Optional. Configuration for audit logs. True if audit logs are enabled, else false. Default is audit logs disabled.
   &quot;authorizedNetworks&quot;: [ # Optional. The full names of the Google Compute Engine [networks](/compute/docs/networks-and-firewalls#networks) the domain instance is connected to. Networks can be added using UpdateDomain. The domain is only available on networks listed in `authorized_networks`. If CIDR subnets overlap between networks, domain creation will fail.
     &quot;A String&quot;,
   ],
@@ -809,7 +813,7 @@
     ],
     &quot;thumbprint&quot;: &quot;A String&quot;, # The certificate thumbprint which uniquely identifies the certificate.
   },
-  &quot;certificatePassword&quot;: &quot;A String&quot;, # Input only. The password used to encrypt the uploaded pfx certificate.
+  &quot;certificatePassword&quot;: &quot;A String&quot;, # Input only. The password used to encrypt the uploaded PFX certificate.
   &quot;certificatePfx&quot;: &quot;A String&quot;, # Input only. The uploaded PKCS12-formatted certificate to configure LDAPS with. It will enable the domain controllers in this domain to accept LDAPS connections (either LDAP over SSL/TLS or the StartTLS operation). A valid certificate chain must form a valid x.509 certificate chain (or be comprised of a single self-signed certificate. It must be encrypted with either: 1) PBES2 + PBKDF2 + AES256 encryption and SHA256 PRF; or 2) pbeWithSHA1And3-KeyTripleDES-CBC Private key must be included for the leaf / single self-signed certificate. Note: For a fqdn your-example-domain.com, the wildcard fqdn is *.your-example-domain.com. Specifically the leaf certificate must have: - Either a blank subject or a subject with CN matching the wildcard fqdn. - Exactly two SANs - the fqdn and wildcard fqdn. - Encipherment and digital key signature key usages. - Server authentication extended key usage (OID=1.3.6.1.5.5.7.3.1) - Private key must be in one of the following formats: RSA, ECDSA, ED25519. - Private key must have appropriate key length: 2048 for RSA, 256 for ECDSA - Signature algorithm of the leaf certificate cannot be MD2, MD5 or SHA1.
   &quot;name&quot;: &quot;A String&quot;, # The resource name of the LDAPS settings. Uses the form: `projects/{project}/locations/{location}/domains/{domain}`.
   &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of this LDAPS settings.
diff --git a/docs/dyn/managedidentities_v1.projects.locations.global_.domains.sqlIntegrations.html b/docs/dyn/managedidentities_v1.projects.locations.global_.domains.sqlIntegrations.html
index a2bb283..1b985f6 100644
--- a/docs/dyn/managedidentities_v1.projects.locations.global_.domains.sqlIntegrations.html
+++ b/docs/dyn/managedidentities_v1.projects.locations.global_.domains.sqlIntegrations.html
@@ -106,12 +106,12 @@
 Returns:
   An object of the form:
 
-    { # Represents the Sql instance integrated with AD.
-  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was created. Synthetic field is populated automatically by CCFE.
-  &quot;name&quot;: &quot;A String&quot;, # The unique name of the sql integration in the form of `projects/{project_id}/locations/global/domains/{domain_name}/sqlIntegrations/{sql_integration}`
-  &quot;sqlInstance&quot;: &quot;A String&quot;, # The full resource name of an integrated sql instance
-  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the sql integration.
-  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was updated. Synthetic field is populated automatically by CCFE.
+    { # Represents the SQL instance integrated with Managed AD.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the SQL integration was created.
+  &quot;name&quot;: &quot;A String&quot;, # The unique name of the SQL integration in the form of `projects/{project_id}/locations/global/domains/{domain_name}/sqlIntegrations/{sql_integration}`
+  &quot;sqlInstance&quot;: &quot;A String&quot;, # The full resource name of an integrated SQL instance
+  &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the SQL integration.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time the SQL integration was updated.
 }</pre>
 </div>
 
@@ -136,12 +136,12 @@
     { # ListSqlIntegrationsResponse is the response message for ListSqlIntegrations method.
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results in the list.
   &quot;sqlIntegrations&quot;: [ # A list of SQLIntegrations of a domain.
-    { # Represents the Sql instance integrated with AD.
-      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was created. Synthetic field is populated automatically by CCFE.
-      &quot;name&quot;: &quot;A String&quot;, # The unique name of the sql integration in the form of `projects/{project_id}/locations/global/domains/{domain_name}/sqlIntegrations/{sql_integration}`
-      &quot;sqlInstance&quot;: &quot;A String&quot;, # The full resource name of an integrated sql instance
-      &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the sql integration.
-      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was updated. Synthetic field is populated automatically by CCFE.
+    { # Represents the SQL instance integrated with Managed AD.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the SQL integration was created.
+      &quot;name&quot;: &quot;A String&quot;, # The unique name of the SQL integration in the form of `projects/{project_id}/locations/global/domains/{domain_name}/sqlIntegrations/{sql_integration}`
+      &quot;sqlInstance&quot;: &quot;A String&quot;, # The full resource name of an integrated SQL instance
+      &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the SQL integration.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time the SQL integration was updated.
     },
   ],
   &quot;unreachable&quot;: [ # A list of locations that could not be reached.
diff --git a/docs/dyn/managedidentities_v1alpha1.projects.locations.global_.domains.sqlIntegrations.html b/docs/dyn/managedidentities_v1alpha1.projects.locations.global_.domains.sqlIntegrations.html
index fc0e079..c49f9e8 100644
--- a/docs/dyn/managedidentities_v1alpha1.projects.locations.global_.domains.sqlIntegrations.html
+++ b/docs/dyn/managedidentities_v1alpha1.projects.locations.global_.domains.sqlIntegrations.html
@@ -107,11 +107,11 @@
   An object of the form:
 
     { # Represents the SQL instance integrated with AD.
-  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the instance was created. Synthetic field is populated automatically by CCFE. go/ccfe-synthetic-field-user-guide
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the instance was created.
   &quot;name&quot;: &quot;A String&quot;, # The unique name of the sql integration in the form of `projects/{project_id}/locations/global/domains/{domain_name}/sqlIntegrations/{sql_integration}`
   &quot;sqlInstance&quot;: &quot;A String&quot;, # The full resource name of an integrated sql instance
   &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the managed OU.
-  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last update time. Synthetic field is populated automatically by CCFE.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last update time for this SQL instance.
 }</pre>
 </div>
 
@@ -137,11 +137,11 @@
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results in the list.
   &quot;sqlIntegrations&quot;: [ # A list of SQLIntegrations of a domain.
     { # Represents the SQL instance integrated with AD.
-      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the instance was created. Synthetic field is populated automatically by CCFE. go/ccfe-synthetic-field-user-guide
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the instance was created.
       &quot;name&quot;: &quot;A String&quot;, # The unique name of the sql integration in the form of `projects/{project_id}/locations/global/domains/{domain_name}/sqlIntegrations/{sql_integration}`
       &quot;sqlInstance&quot;: &quot;A String&quot;, # The full resource name of an integrated sql instance
       &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the managed OU.
-      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last update time. Synthetic field is populated automatically by CCFE.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. Last update time for this SQL instance.
     },
   ],
   &quot;unreachable&quot;: [ # A list of locations that could not be reached.
diff --git a/docs/dyn/managedidentities_v1beta1.projects.locations.global_.domains.sqlIntegrations.html b/docs/dyn/managedidentities_v1beta1.projects.locations.global_.domains.sqlIntegrations.html
index 6db4662..7f46943 100644
--- a/docs/dyn/managedidentities_v1beta1.projects.locations.global_.domains.sqlIntegrations.html
+++ b/docs/dyn/managedidentities_v1beta1.projects.locations.global_.domains.sqlIntegrations.html
@@ -107,11 +107,11 @@
   An object of the form:
 
     { # Represents the Sql instance integrated with AD.
-  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was created. Synthetic field is populated automatically by CCFE.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was created.
   &quot;name&quot;: &quot;A String&quot;, # The unique name of the sql integration in the form of `projects/{project_id}/locations/global/domains/{domain_name}/sqlIntegrations/{sql_integration}`
   &quot;sqlInstance&quot;: &quot;A String&quot;, # The full resource name of an integrated sql instance
   &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the sql integration.
-  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was updated. Synthetic field is populated automatically by CCFE.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was updated.
 }</pre>
 </div>
 
@@ -137,11 +137,11 @@
   &quot;nextPageToken&quot;: &quot;A String&quot;, # Token to retrieve the next page of results, or empty if there are no more results in the list.
   &quot;sqlIntegrations&quot;: [ # A list of SqlIntegrations of a domain.
     { # Represents the Sql instance integrated with AD.
-      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was created. Synthetic field is populated automatically by CCFE.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was created.
       &quot;name&quot;: &quot;A String&quot;, # The unique name of the sql integration in the form of `projects/{project_id}/locations/global/domains/{domain_name}/sqlIntegrations/{sql_integration}`
       &quot;sqlInstance&quot;: &quot;A String&quot;, # The full resource name of an integrated sql instance
       &quot;state&quot;: &quot;A String&quot;, # Output only. The current state of the sql integration.
-      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was updated. Synthetic field is populated automatically by CCFE.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time sql integration was updated.
     },
   ],
   &quot;unreachable&quot;: [ # A list of locations that could not be reached.
diff --git a/docs/dyn/metastore_v1alpha.projects.locations.services.backups.html b/docs/dyn/metastore_v1alpha.projects.locations.services.backups.html
index d54b89d..e870ec4 100644
--- a/docs/dyn/metastore_v1alpha.projects.locations.services.backups.html
+++ b/docs/dyn/metastore_v1alpha.projects.locations.services.backups.html
@@ -124,6 +124,9 @@
   &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
     &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+    &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+      &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+    },
     &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
     &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
       &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
@@ -273,6 +276,9 @@
   &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
     &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+    &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+      &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+    },
     &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
     &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
       &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
@@ -410,6 +416,9 @@
       &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
         &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+        &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+          &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+        },
         &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
         &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
           &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
diff --git a/docs/dyn/metastore_v1alpha.projects.locations.services.html b/docs/dyn/metastore_v1alpha.projects.locations.services.html
index 8ea6d23..47018bb 100644
--- a/docs/dyn/metastore_v1alpha.projects.locations.services.html
+++ b/docs/dyn/metastore_v1alpha.projects.locations.services.html
@@ -138,6 +138,9 @@
 { # A managed metastore service that serves metadata queries.
   &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+    &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+  },
   &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
   &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
     &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
@@ -324,6 +327,9 @@
     { # A managed metastore service that serves metadata queries.
   &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+    &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+  },
   &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
   &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
     &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
@@ -455,6 +461,9 @@
     { # A managed metastore service that serves metadata queries.
       &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+      &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+        &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+      },
       &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
       &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
         &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
@@ -545,6 +554,9 @@
 { # A managed metastore service that serves metadata queries.
   &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+    &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+  },
   &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
   &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
     &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
diff --git a/docs/dyn/metastore_v1beta.projects.locations.services.backups.html b/docs/dyn/metastore_v1beta.projects.locations.services.backups.html
index 2f966cf..6cae1f4 100644
--- a/docs/dyn/metastore_v1beta.projects.locations.services.backups.html
+++ b/docs/dyn/metastore_v1beta.projects.locations.services.backups.html
@@ -124,6 +124,9 @@
   &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
     &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+    &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+      &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+    },
     &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
     &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
       &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
@@ -273,6 +276,9 @@
   &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
     &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
     &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+    &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+      &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+    },
     &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
     &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
       &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
@@ -410,6 +416,9 @@
       &quot;serviceRevision&quot;: { # A managed metastore service that serves metadata queries. # Output only. The revision of the service at the time of backup.
         &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
         &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+        &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+          &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+        },
         &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
         &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
           &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
diff --git a/docs/dyn/metastore_v1beta.projects.locations.services.html b/docs/dyn/metastore_v1beta.projects.locations.services.html
index 130eaaa..f831b55 100644
--- a/docs/dyn/metastore_v1beta.projects.locations.services.html
+++ b/docs/dyn/metastore_v1beta.projects.locations.services.html
@@ -138,6 +138,9 @@
 { # A managed metastore service that serves metadata queries.
   &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+    &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+  },
   &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
   &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
     &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
@@ -324,6 +327,9 @@
     { # A managed metastore service that serves metadata queries.
   &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+    &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+  },
   &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
   &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
     &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
@@ -455,6 +461,9 @@
     { # A managed metastore service that serves metadata queries.
       &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
       &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+      &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+        &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+      },
       &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
       &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
         &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
@@ -545,6 +554,9 @@
 { # A managed metastore service that serves metadata queries.
   &quot;artifactGcsUri&quot;: &quot;A String&quot;, # Output only. A Cloud Storage URI (starting with gs://) that specifies where artifacts related to the metastore service are stored.
   &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time when the metastore service was created.
+  &quot;encryptionConfig&quot;: { # Encryption settings for the service. # Immutable. Information used to configure the Dataproc Metastore service to encrypt customer data at rest. Cannot be updated.
+    &quot;kmsKey&quot;: &quot;A String&quot;, # The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.
+  },
   &quot;endpointUri&quot;: &quot;A String&quot;, # Output only. The URI of the endpoint used to access the metastore service.
   &quot;hiveMetastoreConfig&quot;: { # Specifies configuration information specific to running Hive metastore software as the metastore service. # Configuration information specific to running Hive metastore software as the metastore service.
     &quot;configOverrides&quot;: { # A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml). The mappings override system defaults (some keys cannot be overridden).
diff --git a/docs/dyn/networksecurity_v1beta1.html b/docs/dyn/networksecurity_v1beta1.html
new file mode 100644
index 0000000..800946e
--- /dev/null
+++ b/docs/dyn/networksecurity_v1beta1.html
@@ -0,0 +1,111 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networksecurity_v1beta1.html">Network Security API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="networksecurity_v1beta1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networksecurity_v1beta1.projects.html b/docs/dyn/networksecurity_v1beta1.projects.html
new file mode 100644
index 0000000..b6e2ef6
--- /dev/null
+++ b/docs/dyn/networksecurity_v1beta1.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networksecurity_v1beta1.html">Network Security API</a> . <a href="networksecurity_v1beta1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="networksecurity_v1beta1.projects.locations.html">locations()</a></code>
+</p>
+<p class="firstline">Returns the locations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networksecurity_v1beta1.projects.locations.authorizationPolicies.html b/docs/dyn/networksecurity_v1beta1.projects.locations.authorizationPolicies.html
new file mode 100644
index 0000000..268e844
--- /dev/null
+++ b/docs/dyn/networksecurity_v1beta1.projects.locations.authorizationPolicies.html
@@ -0,0 +1,608 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networksecurity_v1beta1.html">Network Security API</a> . <a href="networksecurity_v1beta1.projects.html">projects</a> . <a href="networksecurity_v1beta1.projects.locations.html">locations</a> . <a href="networksecurity_v1beta1.projects.locations.authorizationPolicies.html">authorizationPolicies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, authorizationPolicyId=None, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new AuthorizationPolicy in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a single AuthorizationPolicy.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets details of a single AuthorizationPolicy.</p>
+<p class="toc_element">
+  <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. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists AuthorizationPolicies in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the parameters of a single AuthorizationPolicy.</p>
+<p class="toc_element">
+  <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 existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <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. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, authorizationPolicyId=None, body=None, x__xgafv=None)</code>
+  <pre>Creates a new AuthorizationPolicy in a given project and location.
+
+Args:
+  parent: string, Required. The parent resource of the AuthorizationPolicy. Must be in the format `projects/{project}/locations/{location}`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # AuthorizationPolicy is a resource that specifies how a server should authorize incoming connections. This resource in itself does not change the configuration unless it&#x27;s attached to a target https proxy or endpoint config selector resource.
+  &quot;action&quot;: &quot;A String&quot;, # Required. The action to take when a rule match is found. Possible values are &quot;ALLOW&quot; or &quot;DENY&quot;.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+  &quot;labels&quot;: { # Optional. Set of label tags associated with the AuthorizationPolicy resource.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Name of the AuthorizationPolicy resource. It matches pattern `projects/{project}/locations/{location}/authorizationPolicies/`.
+  &quot;rules&quot;: [ # Optional. List of rules to match. Note that at least one of the rules must match in order for the action specified in the &#x27;action&#x27; field to be taken. A rule is a match if there is a matching source and destination. If left blank, the action specified in the `action` field will be applied on every request.
+    { # Specification of rules.
+      &quot;destinations&quot;: [ # Optional. List of attributes for the traffic destination. All of the destinations must match. A destination is a match if a request matches all the specified hosts, ports, methods and headers. If not set, the action specified in the &#x27;action&#x27; field will be applied without any rule checks for the destination.
+        { # Specification of traffic destination attributes.
+          &quot;hosts&quot;: [ # Required. List of host names to match. Matched against HOST header in http requests. At least one host should match. Each host can be an exact match, or a prefix match (example &quot;mydomain.*&quot;) or a suffix match (example // *.myorg.com&quot;) or a presence(any) match &quot;*&quot;.
+            &quot;A String&quot;,
+          ],
+          &quot;httpHeaderMatch&quot;: { # Specification of HTTP header match atrributes. # Optional. Match against key:value pair in http header. Provides a flexible match based on HTTP headers, for potentially advanced use cases. At least one header should match.
+            &quot;headerName&quot;: &quot;A String&quot;, # Required. The name of the HTTP header to match. For matching against the HTTP request&#x27;s authority, use a headerMatch with the header name &quot;:authority&quot;. For matching a request&#x27;s method, use the headerName &quot;:method&quot;.
+            &quot;regexMatch&quot;: &quot;A String&quot;, # Required. The value of the header must match the regular expression specified in regexMatch. For regular expression grammar, please see: en.cppreference.com/w/cpp/regex/ecmascript For matching against a port specified in the HTTP request, use a headerMatch with headerName set to Host and a regular expression that satisfies the RFC2616 Host header&#x27;s port specifier.
+          },
+          &quot;methods&quot;: [ # Optional. A list of HTTP methods to match. At least one method should match. Should not be set for gRPC services.
+            &quot;A String&quot;,
+          ],
+          &quot;ports&quot;: [ # Required. List of destination ports to match. At least one port should match.
+            42,
+          ],
+        },
+      ],
+      &quot;sources&quot;: [ # Optional. List of attributes for the traffic source. All of the sources must match. A source is a match if both principals and ip_blocks match. If not set, the action specified in the &#x27;action&#x27; field will be applied without any rule checks for the source.
+        { # Specification of traffic source attributes.
+          &quot;ipBlocks&quot;: [ # Optional. List of CIDR ranges to match based on source IP address. At least one IP block should match. Single IP (e.g., &quot;1.2.3.4&quot;) and CIDR (e.g., &quot;1.2.3.0/24&quot;) are supported.
+            &quot;A String&quot;,
+          ],
+          &quot;principals&quot;: [ # Optional. List of peer identities to match for authorization. At least one principal should match. Each peer can be an exact match, or a prefix match (example, &quot;namespace/*&quot;) or a suffix match (example, // */service-account&quot;) or a presence match &quot;*&quot;.
+            &quot;A String&quot;,
+          ],
+        },
+      ],
+    },
+  ],
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+}
+
+  authorizationPolicyId: string, Required. Short name of the AuthorizationPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. &quot;authz_policy&quot;.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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}`.
+  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a single AuthorizationPolicy.
+
+Args:
+  name: string, Required. A name of the AuthorizationPolicy to delete. Must be in the format `projects/{project}/locations/{location}/authorizationPolicies/*`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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}`.
+  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single AuthorizationPolicy.
+
+Args:
+  name: string, Required. A name of the AuthorizationPolicy to get. Must be in the format `projects/{project}/locations/{location}/authorizationPolicies/*`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # AuthorizationPolicy is a resource that specifies how a server should authorize incoming connections. This resource in itself does not change the configuration unless it&#x27;s attached to a target https proxy or endpoint config selector resource.
+  &quot;action&quot;: &quot;A String&quot;, # Required. The action to take when a rule match is found. Possible values are &quot;ALLOW&quot; or &quot;DENY&quot;.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+  &quot;labels&quot;: { # Optional. Set of label tags associated with the AuthorizationPolicy resource.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Name of the AuthorizationPolicy resource. It matches pattern `projects/{project}/locations/{location}/authorizationPolicies/`.
+  &quot;rules&quot;: [ # Optional. List of rules to match. Note that at least one of the rules must match in order for the action specified in the &#x27;action&#x27; field to be taken. A rule is a match if there is a matching source and destination. If left blank, the action specified in the `action` field will be applied on every request.
+    { # Specification of rules.
+      &quot;destinations&quot;: [ # Optional. List of attributes for the traffic destination. All of the destinations must match. A destination is a match if a request matches all the specified hosts, ports, methods and headers. If not set, the action specified in the &#x27;action&#x27; field will be applied without any rule checks for the destination.
+        { # Specification of traffic destination attributes.
+          &quot;hosts&quot;: [ # Required. List of host names to match. Matched against HOST header in http requests. At least one host should match. Each host can be an exact match, or a prefix match (example &quot;mydomain.*&quot;) or a suffix match (example // *.myorg.com&quot;) or a presence(any) match &quot;*&quot;.
+            &quot;A String&quot;,
+          ],
+          &quot;httpHeaderMatch&quot;: { # Specification of HTTP header match atrributes. # Optional. Match against key:value pair in http header. Provides a flexible match based on HTTP headers, for potentially advanced use cases. At least one header should match.
+            &quot;headerName&quot;: &quot;A String&quot;, # Required. The name of the HTTP header to match. For matching against the HTTP request&#x27;s authority, use a headerMatch with the header name &quot;:authority&quot;. For matching a request&#x27;s method, use the headerName &quot;:method&quot;.
+            &quot;regexMatch&quot;: &quot;A String&quot;, # Required. The value of the header must match the regular expression specified in regexMatch. For regular expression grammar, please see: en.cppreference.com/w/cpp/regex/ecmascript For matching against a port specified in the HTTP request, use a headerMatch with headerName set to Host and a regular expression that satisfies the RFC2616 Host header&#x27;s port specifier.
+          },
+          &quot;methods&quot;: [ # Optional. A list of HTTP methods to match. At least one method should match. Should not be set for gRPC services.
+            &quot;A String&quot;,
+          ],
+          &quot;ports&quot;: [ # Required. List of destination ports to match. At least one port should match.
+            42,
+          ],
+        },
+      ],
+      &quot;sources&quot;: [ # Optional. List of attributes for the traffic source. All of the sources must match. A source is a match if both principals and ip_blocks match. If not set, the action specified in the &#x27;action&#x27; field will be applied without any rule checks for the source.
+        { # Specification of traffic source attributes.
+          &quot;ipBlocks&quot;: [ # Optional. List of CIDR ranges to match based on source IP address. At least one IP block should match. Single IP (e.g., &quot;1.2.3.4&quot;) and CIDR (e.g., &quot;1.2.3.0/24&quot;) are supported.
+            &quot;A String&quot;,
+          ],
+          &quot;principals&quot;: [ # Optional. List of peer identities to match for authorization. At least one principal should match. Each peer can be an exact match, or a prefix match (example, &quot;namespace/*&quot;) or a suffix match (example, // */service-account&quot;) or a presence match &quot;*&quot;.
+            &quot;A String&quot;,
+          ],
+        },
+      ],
+    },
+  ],
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+}</pre>
+</div>
+
+<div class="method">
+    <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.
+
+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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. 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. For some types of Google Cloud resources, a `binding` can also 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - 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(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # 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 identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } 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.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # 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`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) 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: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; 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. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;members&quot;: [ # 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`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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 read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and 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. **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.
+  &quot;version&quot;: 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists AuthorizationPolicies in a given project and location.
+
+Args:
+  parent: string, Required. The project and location from which the AuthorizationPolicies should be listed, specified in the format `projects/{project}/locations/{location}`. (required)
+  pageSize: integer, Maximum number of AuthorizationPolicies to return per call.
+  pageToken: string, The value returned by the last `ListAuthorizationPoliciesResponse` Indicates that this is a continuation of a prior `ListAuthorizationPolicies` call, and that the system should return the next page of data.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response returned by the ListAuthorizationPolicies method.
+  &quot;authorizationPolicies&quot;: [ # List of AuthorizationPolicies resources.
+    { # AuthorizationPolicy is a resource that specifies how a server should authorize incoming connections. This resource in itself does not change the configuration unless it&#x27;s attached to a target https proxy or endpoint config selector resource.
+      &quot;action&quot;: &quot;A String&quot;, # Required. The action to take when a rule match is found. Possible values are &quot;ALLOW&quot; or &quot;DENY&quot;.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+      &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+      &quot;labels&quot;: { # Optional. Set of label tags associated with the AuthorizationPolicy resource.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Required. Name of the AuthorizationPolicy resource. It matches pattern `projects/{project}/locations/{location}/authorizationPolicies/`.
+      &quot;rules&quot;: [ # Optional. List of rules to match. Note that at least one of the rules must match in order for the action specified in the &#x27;action&#x27; field to be taken. A rule is a match if there is a matching source and destination. If left blank, the action specified in the `action` field will be applied on every request.
+        { # Specification of rules.
+          &quot;destinations&quot;: [ # Optional. List of attributes for the traffic destination. All of the destinations must match. A destination is a match if a request matches all the specified hosts, ports, methods and headers. If not set, the action specified in the &#x27;action&#x27; field will be applied without any rule checks for the destination.
+            { # Specification of traffic destination attributes.
+              &quot;hosts&quot;: [ # Required. List of host names to match. Matched against HOST header in http requests. At least one host should match. Each host can be an exact match, or a prefix match (example &quot;mydomain.*&quot;) or a suffix match (example // *.myorg.com&quot;) or a presence(any) match &quot;*&quot;.
+                &quot;A String&quot;,
+              ],
+              &quot;httpHeaderMatch&quot;: { # Specification of HTTP header match atrributes. # Optional. Match against key:value pair in http header. Provides a flexible match based on HTTP headers, for potentially advanced use cases. At least one header should match.
+                &quot;headerName&quot;: &quot;A String&quot;, # Required. The name of the HTTP header to match. For matching against the HTTP request&#x27;s authority, use a headerMatch with the header name &quot;:authority&quot;. For matching a request&#x27;s method, use the headerName &quot;:method&quot;.
+                &quot;regexMatch&quot;: &quot;A String&quot;, # Required. The value of the header must match the regular expression specified in regexMatch. For regular expression grammar, please see: en.cppreference.com/w/cpp/regex/ecmascript For matching against a port specified in the HTTP request, use a headerMatch with headerName set to Host and a regular expression that satisfies the RFC2616 Host header&#x27;s port specifier.
+              },
+              &quot;methods&quot;: [ # Optional. A list of HTTP methods to match. At least one method should match. Should not be set for gRPC services.
+                &quot;A String&quot;,
+              ],
+              &quot;ports&quot;: [ # Required. List of destination ports to match. At least one port should match.
+                42,
+              ],
+            },
+          ],
+          &quot;sources&quot;: [ # Optional. List of attributes for the traffic source. All of the sources must match. A source is a match if both principals and ip_blocks match. If not set, the action specified in the &#x27;action&#x27; field will be applied without any rule checks for the source.
+            { # Specification of traffic source attributes.
+              &quot;ipBlocks&quot;: [ # Optional. List of CIDR ranges to match based on source IP address. At least one IP block should match. Single IP (e.g., &quot;1.2.3.4&quot;) and CIDR (e.g., &quot;1.2.3.0/24&quot;) are supported.
+                &quot;A String&quot;,
+              ],
+              &quot;principals&quot;: [ # Optional. List of peer identities to match for authorization. At least one principal should match. Each peer can be an exact match, or a prefix match (example, &quot;namespace/*&quot;) or a suffix match (example, // */service-account&quot;) or a presence match &quot;*&quot;.
+                &quot;A String&quot;,
+              ],
+            },
+          ],
+        },
+      ],
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the parameters of a single AuthorizationPolicy.
+
+Args:
+  name: string, Required. Name of the AuthorizationPolicy resource. It matches pattern `projects/{project}/locations/{location}/authorizationPolicies/`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # AuthorizationPolicy is a resource that specifies how a server should authorize incoming connections. This resource in itself does not change the configuration unless it&#x27;s attached to a target https proxy or endpoint config selector resource.
+  &quot;action&quot;: &quot;A String&quot;, # Required. The action to take when a rule match is found. Possible values are &quot;ALLOW&quot; or &quot;DENY&quot;.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+  &quot;labels&quot;: { # Optional. Set of label tags associated with the AuthorizationPolicy resource.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Name of the AuthorizationPolicy resource. It matches pattern `projects/{project}/locations/{location}/authorizationPolicies/`.
+  &quot;rules&quot;: [ # Optional. List of rules to match. Note that at least one of the rules must match in order for the action specified in the &#x27;action&#x27; field to be taken. A rule is a match if there is a matching source and destination. If left blank, the action specified in the `action` field will be applied on every request.
+    { # Specification of rules.
+      &quot;destinations&quot;: [ # Optional. List of attributes for the traffic destination. All of the destinations must match. A destination is a match if a request matches all the specified hosts, ports, methods and headers. If not set, the action specified in the &#x27;action&#x27; field will be applied without any rule checks for the destination.
+        { # Specification of traffic destination attributes.
+          &quot;hosts&quot;: [ # Required. List of host names to match. Matched against HOST header in http requests. At least one host should match. Each host can be an exact match, or a prefix match (example &quot;mydomain.*&quot;) or a suffix match (example // *.myorg.com&quot;) or a presence(any) match &quot;*&quot;.
+            &quot;A String&quot;,
+          ],
+          &quot;httpHeaderMatch&quot;: { # Specification of HTTP header match atrributes. # Optional. Match against key:value pair in http header. Provides a flexible match based on HTTP headers, for potentially advanced use cases. At least one header should match.
+            &quot;headerName&quot;: &quot;A String&quot;, # Required. The name of the HTTP header to match. For matching against the HTTP request&#x27;s authority, use a headerMatch with the header name &quot;:authority&quot;. For matching a request&#x27;s method, use the headerName &quot;:method&quot;.
+            &quot;regexMatch&quot;: &quot;A String&quot;, # Required. The value of the header must match the regular expression specified in regexMatch. For regular expression grammar, please see: en.cppreference.com/w/cpp/regex/ecmascript For matching against a port specified in the HTTP request, use a headerMatch with headerName set to Host and a regular expression that satisfies the RFC2616 Host header&#x27;s port specifier.
+          },
+          &quot;methods&quot;: [ # Optional. A list of HTTP methods to match. At least one method should match. Should not be set for gRPC services.
+            &quot;A String&quot;,
+          ],
+          &quot;ports&quot;: [ # Required. List of destination ports to match. At least one port should match.
+            42,
+          ],
+        },
+      ],
+      &quot;sources&quot;: [ # Optional. List of attributes for the traffic source. All of the sources must match. A source is a match if both principals and ip_blocks match. If not set, the action specified in the &#x27;action&#x27; field will be applied without any rule checks for the source.
+        { # Specification of traffic source attributes.
+          &quot;ipBlocks&quot;: [ # Optional. List of CIDR ranges to match based on source IP address. At least one IP block should match. Single IP (e.g., &quot;1.2.3.4&quot;) and CIDR (e.g., &quot;1.2.3.0/24&quot;) are supported.
+            &quot;A String&quot;,
+          ],
+          &quot;principals&quot;: [ # Optional. List of peer identities to match for authorization. At least one principal should match. Each peer can be an exact match, or a prefix match (example, &quot;namespace/*&quot;) or a suffix match (example, // */service-account&quot;) or a presence match &quot;*&quot;.
+            &quot;A String&quot;,
+          ],
+        },
+      ],
+    },
+  ],
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+}
+
+  updateMask: string, Optional. Field mask is used to specify the fields to be overwritten in the AuthorizationPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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}`.
+  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <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 `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+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.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. 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. For some types of Google Cloud resources, a `binding` can also 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - 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(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # 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.
+    &quot;auditConfigs&quot;: [ # 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 identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } 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.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # 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`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) 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: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; 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. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # 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.
+        },
+        &quot;members&quot;: [ # 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`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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 read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and 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. **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.
+    &quot;version&quot;: 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. 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. For some types of Google Cloud resources, a `binding` can also 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - 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(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # 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 identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } 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.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # 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`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) 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: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; 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. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;members&quot;: [ # 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`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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 read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and 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. **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.
+  &quot;version&quot;: 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <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. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+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.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networksecurity_v1beta1.projects.locations.clientTlsPolicies.html b/docs/dyn/networksecurity_v1beta1.projects.locations.clientTlsPolicies.html
new file mode 100644
index 0000000..538e239
--- /dev/null
+++ b/docs/dyn/networksecurity_v1beta1.projects.locations.clientTlsPolicies.html
@@ -0,0 +1,556 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networksecurity_v1beta1.html">Network Security API</a> . <a href="networksecurity_v1beta1.projects.html">projects</a> . <a href="networksecurity_v1beta1.projects.locations.html">locations</a> . <a href="networksecurity_v1beta1.projects.locations.clientTlsPolicies.html">clientTlsPolicies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, clientTlsPolicyId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new ClientTlsPolicy in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a single ClientTlsPolicy.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets details of a single ClientTlsPolicy.</p>
+<p class="toc_element">
+  <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. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists ClientTlsPolicies in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the parameters of a single ClientTlsPolicy.</p>
+<p class="toc_element">
+  <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 existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <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. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, clientTlsPolicyId=None, x__xgafv=None)</code>
+  <pre>Creates a new ClientTlsPolicy in a given project and location.
+
+Args:
+  parent: string, Required. The parent resource of the ClientTlsPolicy. Must be in the format `projects/*/locations/{location}`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # ClientTlsPolicy is a resource that specifies how a client should authenticate connections to backends of a service. This resource itself does not affect configuration unless it is attached to a backend service resource.
+  &quot;clientCertificate&quot;: { # Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication. # Optional. Defines a mechanism to provision client identity (public and private keys) for peer to peer authentication. The presence of this dictates mTLS.
+    &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+      &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+    },
+    &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the cert and private key.
+      &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+    },
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+  &quot;labels&quot;: { # Optional. Set of label tags associated with the resource.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Name of the ClientTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/clientTlsPolicies/{client_tls_policy}`
+  &quot;serverValidationCa&quot;: [ # Optional. Defines the mechanism to obtain the Certificate Authority certificate to validate the server certificate. If empty, client does not validate the server certificate.
+    { # Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate.
+      &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+        &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+      },
+      &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the CA certificate.
+        &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+      },
+    },
+  ],
+  &quot;sni&quot;: &quot;A String&quot;, # Optional. Server Name Indication string to present to the server during TLS handshake. E.g: &quot;secure.example.com&quot;.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+}
+
+  clientTlsPolicyId: string, Required. Short name of the ClientTlsPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. &quot;client_mtls_policy&quot;.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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}`.
+  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a single ClientTlsPolicy.
+
+Args:
+  name: string, Required. A name of the ClientTlsPolicy to delete. Must be in the format `projects/*/locations/{location}/clientTlsPolicies/*`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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}`.
+  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single ClientTlsPolicy.
+
+Args:
+  name: string, Required. A name of the ClientTlsPolicy to get. Must be in the format `projects/*/locations/{location}/clientTlsPolicies/*`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # ClientTlsPolicy is a resource that specifies how a client should authenticate connections to backends of a service. This resource itself does not affect configuration unless it is attached to a backend service resource.
+  &quot;clientCertificate&quot;: { # Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication. # Optional. Defines a mechanism to provision client identity (public and private keys) for peer to peer authentication. The presence of this dictates mTLS.
+    &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+      &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+    },
+    &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the cert and private key.
+      &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+    },
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+  &quot;labels&quot;: { # Optional. Set of label tags associated with the resource.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Name of the ClientTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/clientTlsPolicies/{client_tls_policy}`
+  &quot;serverValidationCa&quot;: [ # Optional. Defines the mechanism to obtain the Certificate Authority certificate to validate the server certificate. If empty, client does not validate the server certificate.
+    { # Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate.
+      &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+        &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+      },
+      &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the CA certificate.
+        &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+      },
+    },
+  ],
+  &quot;sni&quot;: &quot;A String&quot;, # Optional. Server Name Indication string to present to the server during TLS handshake. E.g: &quot;secure.example.com&quot;.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+}</pre>
+</div>
+
+<div class="method">
+    <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.
+
+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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. 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. For some types of Google Cloud resources, a `binding` can also 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - 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(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # 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 identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } 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.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # 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`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) 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: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; 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. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;members&quot;: [ # 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`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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 read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and 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. **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.
+  &quot;version&quot;: 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists ClientTlsPolicies in a given project and location.
+
+Args:
+  parent: string, Required. The project and location from which the ClientTlsPolicies should be listed, specified in the format `projects/*/locations/{location}`. (required)
+  pageSize: integer, Maximum number of ClientTlsPolicies to return per call.
+  pageToken: string, The value returned by the last `ListClientTlsPoliciesResponse` Indicates that this is a continuation of a prior `ListClientTlsPolicies` call, and that the system should return the next page of data.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response returned by the ListClientTlsPolicies method.
+  &quot;clientTlsPolicies&quot;: [ # List of ClientTlsPolicy resources.
+    { # ClientTlsPolicy is a resource that specifies how a client should authenticate connections to backends of a service. This resource itself does not affect configuration unless it is attached to a backend service resource.
+      &quot;clientCertificate&quot;: { # Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication. # Optional. Defines a mechanism to provision client identity (public and private keys) for peer to peer authentication. The presence of this dictates mTLS.
+        &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+          &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+        },
+        &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the cert and private key.
+          &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+        },
+      },
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+      &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+      &quot;labels&quot;: { # Optional. Set of label tags associated with the resource.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Required. Name of the ClientTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/clientTlsPolicies/{client_tls_policy}`
+      &quot;serverValidationCa&quot;: [ # Optional. Defines the mechanism to obtain the Certificate Authority certificate to validate the server certificate. If empty, client does not validate the server certificate.
+        { # Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate.
+          &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+            &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+          },
+          &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the CA certificate.
+            &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+          },
+        },
+      ],
+      &quot;sni&quot;: &quot;A String&quot;, # Optional. Server Name Indication string to present to the server during TLS handshake. E.g: &quot;secure.example.com&quot;.
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the parameters of a single ClientTlsPolicy.
+
+Args:
+  name: string, Required. Name of the ClientTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/clientTlsPolicies/{client_tls_policy}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # ClientTlsPolicy is a resource that specifies how a client should authenticate connections to backends of a service. This resource itself does not affect configuration unless it is attached to a backend service resource.
+  &quot;clientCertificate&quot;: { # Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication. # Optional. Defines a mechanism to provision client identity (public and private keys) for peer to peer authentication. The presence of this dictates mTLS.
+    &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+      &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+    },
+    &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the cert and private key.
+      &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+    },
+  },
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+  &quot;labels&quot;: { # Optional. Set of label tags associated with the resource.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Name of the ClientTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/clientTlsPolicies/{client_tls_policy}`
+  &quot;serverValidationCa&quot;: [ # Optional. Defines the mechanism to obtain the Certificate Authority certificate to validate the server certificate. If empty, client does not validate the server certificate.
+    { # Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate.
+      &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+        &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+      },
+      &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the CA certificate.
+        &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+      },
+    },
+  ],
+  &quot;sni&quot;: &quot;A String&quot;, # Optional. Server Name Indication string to present to the server during TLS handshake. E.g: &quot;secure.example.com&quot;.
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+}
+
+  updateMask: string, Optional. Field mask is used to specify the fields to be overwritten in the ClientTlsPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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}`.
+  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <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 `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+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.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. 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. For some types of Google Cloud resources, a `binding` can also 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - 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(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # 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.
+    &quot;auditConfigs&quot;: [ # 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 identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } 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.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # 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`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) 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: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; 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. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # 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.
+        },
+        &quot;members&quot;: [ # 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`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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 read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and 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. **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.
+    &quot;version&quot;: 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. 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. For some types of Google Cloud resources, a `binding` can also 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - 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(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # 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 identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } 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.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # 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`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) 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: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; 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. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;members&quot;: [ # 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`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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 read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and 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. **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.
+  &quot;version&quot;: 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <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. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+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.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networksecurity_v1beta1.projects.locations.html b/docs/dyn/networksecurity_v1beta1.projects.locations.html
new file mode 100644
index 0000000..33acbec
--- /dev/null
+++ b/docs/dyn/networksecurity_v1beta1.projects.locations.html
@@ -0,0 +1,191 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networksecurity_v1beta1.html">Network Security API</a> . <a href="networksecurity_v1beta1.projects.html">projects</a> . <a href="networksecurity_v1beta1.projects.locations.html">locations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="networksecurity_v1beta1.projects.locations.authorizationPolicies.html">authorizationPolicies()</a></code>
+</p>
+<p class="firstline">Returns the authorizationPolicies Resource.</p>
+
+<p class="toc_element">
+  <code><a href="networksecurity_v1beta1.projects.locations.clientTlsPolicies.html">clientTlsPolicies()</a></code>
+</p>
+<p class="firstline">Returns the clientTlsPolicies Resource.</p>
+
+<p class="toc_element">
+  <code><a href="networksecurity_v1beta1.projects.locations.operations.html">operations()</a></code>
+</p>
+<p class="firstline">Returns the operations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="networksecurity_v1beta1.projects.locations.serverTlsPolicies.html">serverTlsPolicies()</a></code>
+</p>
+<p class="firstline">Returns the serverTlsPolicies Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets information about a location.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists information about the supported locations for this service.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets information about a location.
+
+Args:
+  name: string, Resource name for the location. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A resource that represents Google Cloud Platform location.
+  &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+  &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+  &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists information about the supported locations for this service.
+
+Args:
+  name: string, The resource that owns the locations collection, if applicable. (required)
+  filter: string, A filter to narrow down results to a preferred subset. The filtering language accepts strings like &quot;displayName=tokyo&quot;, and is documented in more detail in [AIP-160](https://google.aip.dev/160).
+  pageSize: integer, The maximum number of results to return. If not set, the service selects a default.
+  pageToken: string, A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Locations.ListLocations.
+  &quot;locations&quot;: [ # A list of locations that matches the specified filter in the request.
+    { # A resource that represents Google Cloud Platform location.
+      &quot;displayName&quot;: &quot;A String&quot;, # The friendly name for this location, typically a nearby city name. For example, &quot;Tokyo&quot;.
+      &quot;labels&quot;: { # Cross-service attributes for the location. For example {&quot;cloud.googleapis.com/region&quot;: &quot;us-east1&quot;}
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;locationId&quot;: &quot;A String&quot;, # The canonical id for this location. For example: `&quot;us-east1&quot;`.
+      &quot;metadata&quot;: { # Service-specific metadata. For example the available capacity at the given location.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Resource name for the location, which may vary between implementations. For example: `&quot;projects/example-project/locations/us-east1&quot;`
+    },
+  ],
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networksecurity_v1beta1.projects.locations.operations.html b/docs/dyn/networksecurity_v1beta1.projects.locations.operations.html
new file mode 100644
index 0000000..8b7cb62
--- /dev/null
+++ b/docs/dyn/networksecurity_v1beta1.projects.locations.operations.html
@@ -0,0 +1,235 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networksecurity_v1beta1.html">Network Security API</a> . <a href="networksecurity_v1beta1.projects.html">projects</a> . <a href="networksecurity_v1beta1.projects.locations.html">locations</a> . <a href="networksecurity_v1beta1.projects.locations.operations.html">operations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#cancel">cancel(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.</p>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.</p>
+<p class="toc_element">
+  <code><a href="#list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `"/v1/{name=users/*}/operations"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="cancel">cancel(name, body=None, x__xgafv=None)</code>
+  <pre>Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
+
+Args:
+  name: string, The name of the operation resource to be cancelled. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # The request message for Operations.CancelOperation.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn&#x27;t support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.
+
+Args:
+  name: string, The name of the operation resource to be deleted. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.
+
+Args:
+  name: string, The name of the operation resource. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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}`.
+  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(name, filter=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists operations that match the specified filter in the request. If the server doesn&#x27;t support this method, it returns `UNIMPLEMENTED`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `&quot;/v1/{name=users/*}/operations&quot;` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.
+
+Args:
+  name: string, The name of the operation&#x27;s parent resource. (required)
+  filter: string, The standard list filter.
+  pageSize: integer, The standard list page size.
+  pageToken: string, The standard list page token.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # The response message for Operations.ListOperations.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The standard List next-page token.
+  &quot;operations&quot;: [ # A list of operations that matches the specified filter in the request.
+    { # This resource represents a long-running operation that is the result of a network API call.
+      &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+      &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+        &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+        &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+          {
+            &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+          },
+        ],
+        &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+      },
+      &quot;metadata&quot;: { # 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.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+      &quot;name&quot;: &quot;A String&quot;, # 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}`.
+      &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/networksecurity_v1beta1.projects.locations.serverTlsPolicies.html b/docs/dyn/networksecurity_v1beta1.projects.locations.serverTlsPolicies.html
new file mode 100644
index 0000000..147be16
--- /dev/null
+++ b/docs/dyn/networksecurity_v1beta1.projects.locations.serverTlsPolicies.html
@@ -0,0 +1,564 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="networksecurity_v1beta1.html">Network Security API</a> . <a href="networksecurity_v1beta1.projects.html">projects</a> . <a href="networksecurity_v1beta1.projects.locations.html">locations</a> . <a href="networksecurity_v1beta1.projects.locations.serverTlsPolicies.html">serverTlsPolicies</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(parent, body=None, serverTlsPolicyId=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Creates a new ServerTlsPolicy in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Deletes a single ServerTlsPolicy.</p>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets details of a single ServerTlsPolicy.</p>
+<p class="toc_element">
+  <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. Returns an empty policy if the resource exists and does not have a policy set.</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists ServerTlsPolicies in a given project and location.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Updates the parameters of a single ServerTlsPolicy.</p>
+<p class="toc_element">
+  <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 existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.</p>
+<p class="toc_element">
+  <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. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may "fail open" without warning.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(parent, body=None, serverTlsPolicyId=None, x__xgafv=None)</code>
+  <pre>Creates a new ServerTlsPolicy in a given project and location.
+
+Args:
+  parent: string, Required. The parent resource of the ServerTlsPolicy. Must be in the format `projects/*/locations/{location}`. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # ServerTlsPolicy is a resource that specifies how a server should authenticate incoming requests. This resource itself does not affect configuration unless it is attached to a target https proxy or endpoint config selector resource.
+  &quot;allowOpen&quot;: True or False, # Optional. Determines if server allows plaintext connections. If set to true, server allows plain text connections. By default, it is set to false. This setting is not exclusive of other encryption modes. For example, if allow_open and mtls_policy are set, server allows both plain text and mTLS connections. See documentation of other encryption modes to confirm compatibility.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+  &quot;labels&quot;: { # Optional. Set of label tags associated with the resource.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;mtlsPolicy&quot;: { # Specification of the MTLSPolicy. # Optional. Defines a mechanism to provision peer validation certificates for peer to peer authentication (Mutual TLS - mTLS). If not specified, client certificate will not be requested. The connection is treated as TLS and not mTLS. If allow_open and mtls_policy are set, server allows both plain text and mTLS connections.
+    &quot;clientValidationCa&quot;: [ # Required. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.
+      { # Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate.
+        &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+          &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+        },
+        &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the CA certificate.
+          &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+        },
+      },
+    ],
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Name of the ServerTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/serverTlsPolicies/{server_tls_policy}`
+  &quot;serverCertificate&quot;: { # Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication. # Optional. Defines a mechanism to provision server identity (public and private keys). Cannot be combined with allow_open as a permissive mode that allows both plain text and TLS is not supported.
+    &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+      &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+    },
+    &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the cert and private key.
+      &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+    },
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+}
+
+  serverTlsPolicyId: string, Required. Short name of the ServerTlsPolicy resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. &quot;server_mtls_policy&quot;.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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}`.
+  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+  <pre>Deletes a single ServerTlsPolicy.
+
+Args:
+  name: string, Required. A name of the ServerTlsPolicy to delete. Must be in the format `projects/*/locations/{location}/serverTlsPolicies/*`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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}`.
+  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets details of a single ServerTlsPolicy.
+
+Args:
+  name: string, Required. A name of the ServerTlsPolicy to get. Must be in the format `projects/*/locations/{location}/serverTlsPolicies/*`. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # ServerTlsPolicy is a resource that specifies how a server should authenticate incoming requests. This resource itself does not affect configuration unless it is attached to a target https proxy or endpoint config selector resource.
+  &quot;allowOpen&quot;: True or False, # Optional. Determines if server allows plaintext connections. If set to true, server allows plain text connections. By default, it is set to false. This setting is not exclusive of other encryption modes. For example, if allow_open and mtls_policy are set, server allows both plain text and mTLS connections. See documentation of other encryption modes to confirm compatibility.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+  &quot;labels&quot;: { # Optional. Set of label tags associated with the resource.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;mtlsPolicy&quot;: { # Specification of the MTLSPolicy. # Optional. Defines a mechanism to provision peer validation certificates for peer to peer authentication (Mutual TLS - mTLS). If not specified, client certificate will not be requested. The connection is treated as TLS and not mTLS. If allow_open and mtls_policy are set, server allows both plain text and mTLS connections.
+    &quot;clientValidationCa&quot;: [ # Required. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.
+      { # Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate.
+        &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+          &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+        },
+        &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the CA certificate.
+          &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+        },
+      },
+    ],
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Name of the ServerTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/serverTlsPolicies/{server_tls_policy}`
+  &quot;serverCertificate&quot;: { # Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication. # Optional. Defines a mechanism to provision server identity (public and private keys). Cannot be combined with allow_open as a permissive mode that allows both plain text and TLS is not supported.
+    &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+      &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+    },
+    &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the cert and private key.
+      &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+    },
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+}</pre>
+</div>
+
+<div class="method">
+    <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.
+
+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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. 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. For some types of Google Cloud resources, a `binding` can also 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - 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(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # 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 identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } 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.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # 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`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) 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: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; 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. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;members&quot;: [ # 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`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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 read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and 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. **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.
+  &quot;version&quot;: 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists ServerTlsPolicies in a given project and location.
+
+Args:
+  parent: string, Required. The project and location from which the ServerTlsPolicies should be listed, specified in the format `projects/*/locations/{location}`. (required)
+  pageSize: integer, Maximum number of ServerTlsPolicies to return per call.
+  pageToken: string, The value returned by the last `ListServerTlsPoliciesResponse` Indicates that this is a continuation of a prior `ListServerTlsPolicies` call, and that the system should return the next page of data.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response returned by the ListServerTlsPolicies method.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.
+  &quot;serverTlsPolicies&quot;: [ # List of ServerTlsPolicy resources.
+    { # ServerTlsPolicy is a resource that specifies how a server should authenticate incoming requests. This resource itself does not affect configuration unless it is attached to a target https proxy or endpoint config selector resource.
+      &quot;allowOpen&quot;: True or False, # Optional. Determines if server allows plaintext connections. If set to true, server allows plain text connections. By default, it is set to false. This setting is not exclusive of other encryption modes. For example, if allow_open and mtls_policy are set, server allows both plain text and mTLS connections. See documentation of other encryption modes to confirm compatibility.
+      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+      &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+      &quot;labels&quot;: { # Optional. Set of label tags associated with the resource.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;mtlsPolicy&quot;: { # Specification of the MTLSPolicy. # Optional. Defines a mechanism to provision peer validation certificates for peer to peer authentication (Mutual TLS - mTLS). If not specified, client certificate will not be requested. The connection is treated as TLS and not mTLS. If allow_open and mtls_policy are set, server allows both plain text and mTLS connections.
+        &quot;clientValidationCa&quot;: [ # Required. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.
+          { # Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate.
+            &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+              &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+            },
+            &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the CA certificate.
+              &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+            },
+          },
+        ],
+      },
+      &quot;name&quot;: &quot;A String&quot;, # Required. Name of the ServerTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/serverTlsPolicies/{server_tls_policy}`
+      &quot;serverCertificate&quot;: { # Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication. # Optional. Defines a mechanism to provision server identity (public and private keys). Cannot be combined with allow_open as a permissive mode that allows both plain text and TLS is not supported.
+        &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+          &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+        },
+        &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the cert and private key.
+          &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+        },
+      },
+      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
+  <pre>Updates the parameters of a single ServerTlsPolicy.
+
+Args:
+  name: string, Required. Name of the ServerTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/serverTlsPolicies/{server_tls_policy}` (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # ServerTlsPolicy is a resource that specifies how a server should authenticate incoming requests. This resource itself does not affect configuration unless it is attached to a target https proxy or endpoint config selector resource.
+  &quot;allowOpen&quot;: True or False, # Optional. Determines if server allows plaintext connections. If set to true, server allows plain text connections. By default, it is set to false. This setting is not exclusive of other encryption modes. For example, if allow_open and mtls_policy are set, server allows both plain text and mTLS connections. See documentation of other encryption modes to confirm compatibility.
+  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
+  &quot;description&quot;: &quot;A String&quot;, # Optional. Free-text description of the resource.
+  &quot;labels&quot;: { # Optional. Set of label tags associated with the resource.
+    &quot;a_key&quot;: &quot;A String&quot;,
+  },
+  &quot;mtlsPolicy&quot;: { # Specification of the MTLSPolicy. # Optional. Defines a mechanism to provision peer validation certificates for peer to peer authentication (Mutual TLS - mTLS). If not specified, client certificate will not be requested. The connection is treated as TLS and not mTLS. If allow_open and mtls_policy are set, server allows both plain text and mTLS connections.
+    &quot;clientValidationCa&quot;: [ # Required. Defines the mechanism to obtain the Certificate Authority certificate to validate the client certificate.
+      { # Specification of ValidationCA. Defines the mechanism to obtain the Certificate Authority certificate to validate the peer certificate.
+        &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+          &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+        },
+        &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the CA certificate.
+          &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+        },
+      },
+    ],
+  },
+  &quot;name&quot;: &quot;A String&quot;, # Required. Name of the ServerTlsPolicy resource. It matches the pattern `projects/*/locations/{location}/serverTlsPolicies/{server_tls_policy}`
+  &quot;serverCertificate&quot;: { # Specification of certificate provider. Defines the mechanism to obtain the certificate and private key for peer to peer authentication. # Optional. Defines a mechanism to provision server identity (public and private keys). Cannot be combined with allow_open as a permissive mode that allows both plain text and TLS is not supported.
+    &quot;certificateProviderInstance&quot;: { # Specification of a TLS certificate provider instance. Workloads may have one or more CertificateProvider instances (plugins) and one of them is enabled and configured by specifying this message. Workloads use the values from this message to locate and load the CertificateProvider instance configuration. # The certificate provider instance specification that will be passed to the data plane, which will be used to load necessary credential information.
+      &quot;pluginInstance&quot;: &quot;A String&quot;, # Required. Plugin instance name, used to locate and load CertificateProvider instance configuration. Set to &quot;google_cloud_private_spiffe&quot; to use Certificate Authority Service certificate provider instance.
+    },
+    &quot;grpcEndpoint&quot;: { # Specification of the GRPC Endpoint. # gRPC specific configuration to access the gRPC server to obtain the cert and private key.
+      &quot;targetUri&quot;: &quot;A String&quot;, # Required. The target URI of the gRPC endpoint. Only UDS path is supported, and should start with “unix:”.
+    },
+  },
+  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
+}
+
+  updateMask: string, Optional. Field mask is used to specify the fields to be overwritten in the ServerTlsPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # This resource represents a long-running operation that is the result of a network API call.
+  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
+  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
+    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
+    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
+      {
+        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+      },
+    ],
+    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
+  },
+  &quot;metadata&quot;: { # 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.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+  &quot;name&quot;: &quot;A String&quot;, # 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}`.
+  &quot;response&quot;: { # The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
+    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <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 `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
+
+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.
+    The object takes the form of:
+
+{ # Request message for `SetIamPolicy` method.
+  &quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. 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. For some types of Google Cloud resources, a `binding` can also 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - 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(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/). # 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.
+    &quot;auditConfigs&quot;: [ # 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 identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } 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.
+        &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+          { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+            &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+              &quot;A String&quot;,
+            ],
+            &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+          },
+        ],
+        &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+      },
+    ],
+    &quot;bindings&quot;: [ # 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`.
+        &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) 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: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; 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. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+          &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+          &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+          &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+          &quot;title&quot;: &quot;A String&quot;, # 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.
+        },
+        &quot;members&quot;: [ # 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`.
+          &quot;A String&quot;,
+        ],
+        &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+      },
+    ],
+    &quot;etag&quot;: &quot;A String&quot;, # `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 read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and 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. **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.
+    &quot;version&quot;: 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+  },
+  &quot;updateMask&quot;: &quot;A String&quot;, # 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 following default mask is used: `paths: &quot;bindings, etag&quot;`
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. 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. For some types of Google Cloud resources, a `binding` can also 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { &quot;bindings&quot;: [ { &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;, &quot;members&quot;: [ &quot;user:mike@example.com&quot;, &quot;group:admins@example.com&quot;, &quot;domain:google.com&quot;, &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot; ] }, { &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;, &quot;members&quot;: [ &quot;user:eve@example.com&quot; ], &quot;condition&quot;: { &quot;title&quot;: &quot;expirable access&quot;, &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;, &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;, } } ], &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;, &quot;version&quot;: 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - 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(&#x27;2020-10-01T00:00:00.000Z&#x27;) - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).
+  &quot;auditConfigs&quot;: [ # 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 identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { &quot;audit_configs&quot;: [ { &quot;service&quot;: &quot;allServices&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; }, { &quot;log_type&quot;: &quot;ADMIN_READ&quot; } ] }, { &quot;service&quot;: &quot;sampleservice.googleapis.com&quot;, &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot; }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot;, &quot;exempted_members&quot;: [ &quot;user:aliya@example.com&quot; ] } ] } ] } 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.
+      &quot;auditLogConfigs&quot;: [ # The configuration for logging of each type of permission.
+        { # Provides the configuration for logging a type of permissions. Example: { &quot;audit_log_configs&quot;: [ { &quot;log_type&quot;: &quot;DATA_READ&quot;, &quot;exempted_members&quot;: [ &quot;user:jose@example.com&quot; ] }, { &quot;log_type&quot;: &quot;DATA_WRITE&quot; } ] } This enables &#x27;DATA_READ&#x27; and &#x27;DATA_WRITE&#x27; logging, while exempting jose@example.com from DATA_READ logging.
+          &quot;exemptedMembers&quot;: [ # Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.
+            &quot;A String&quot;,
+          ],
+          &quot;logType&quot;: &quot;A String&quot;, # The log type that this config enables.
+        },
+      ],
+      &quot;service&quot;: &quot;A String&quot;, # Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.
+    },
+  ],
+  &quot;bindings&quot;: [ # 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`.
+      &quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) 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: &quot;Summary size limit&quot; description: &quot;Determines if a summary is less than 100 chars&quot; expression: &quot;document.summary.size() &lt; 100&quot; Example (Equality): title: &quot;Requestor is owner&quot; description: &quot;Determines if requestor is the document owner&quot; expression: &quot;document.owner == request.auth.claims.email&quot; Example (Logic): title: &quot;Public documents&quot; description: &quot;Determine whether the document should be publicly visible&quot; expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot; Example (Data Manipulation): title: &quot;Notification string&quot; description: &quot;Create a notification string with a timestamp.&quot; expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot; 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. # The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+        &quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
+        &quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language syntax.
+        &quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
+        &quot;title&quot;: &quot;A String&quot;, # 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.
+      },
+      &quot;members&quot;: [ # 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`.
+        &quot;A String&quot;,
+      ],
+      &quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
+    },
+  ],
+  &quot;etag&quot;: &quot;A String&quot;, # `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 read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and 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. **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.
+  &quot;version&quot;: 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. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
+}</pre>
+</div>
+
+<div class="method">
+    <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. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may &quot;fail open&quot; without warning.
+
+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.
+    The object takes the form of:
+
+{ # Request message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+    &quot;A String&quot;,
+  ],
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response message for `TestIamPermissions` method.
+  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.catalogItems.html b/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.catalogItems.html
index 855fb5c..dd77743 100644
--- a/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.catalogItems.html
+++ b/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.catalogItems.html
@@ -503,7 +503,7 @@
             &quot;ipAddress&quot;: &quot;A String&quot;, # Optional. IP address of the user. This could be either IPv4 (e.g. 104.133.9.80) or IPv6 (e.g. 2001:0db8:85a3:0000:0000:8a2e:0370:7334). This should *not* be set when using the javascript pixel or if `direct_user_request` is set. Used to extract location information for personalization.
             &quot;userAgent&quot;: &quot;A String&quot;, # Optional. User agent as included in the HTTP header. UTF-8 encoded string with a length limit of 1 KiB. This should *not* be set when using the JavaScript pixel or if `directUserRequest` is set.
             &quot;userId&quot;: &quot;A String&quot;, # Optional. Unique identifier for logged-in user with a length limit of 128 bytes. Required only for logged-in users.
-            &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with a http cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Maximum length 128 bytes. Cannot be empty.
+            &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. Maximum length 128 bytes. Cannot be empty.
           },
         },
       ],
diff --git a/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.eventStores.placements.html b/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.eventStores.placements.html
index d611f1a..aa186fa 100644
--- a/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.eventStores.placements.html
+++ b/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.eventStores.placements.html
@@ -193,7 +193,7 @@
       &quot;ipAddress&quot;: &quot;A String&quot;, # Optional. IP address of the user. This could be either IPv4 (e.g. 104.133.9.80) or IPv6 (e.g. 2001:0db8:85a3:0000:0000:8a2e:0370:7334). This should *not* be set when using the javascript pixel or if `direct_user_request` is set. Used to extract location information for personalization.
       &quot;userAgent&quot;: &quot;A String&quot;, # Optional. User agent as included in the HTTP header. UTF-8 encoded string with a length limit of 1 KiB. This should *not* be set when using the JavaScript pixel or if `directUserRequest` is set.
       &quot;userId&quot;: &quot;A String&quot;, # Optional. Unique identifier for logged-in user with a length limit of 128 bytes. Required only for logged-in users.
-      &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with a http cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Maximum length 128 bytes. Cannot be empty.
+      &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. Maximum length 128 bytes. Cannot be empty.
     },
   },
 }
diff --git a/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.eventStores.userEvents.html b/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.eventStores.userEvents.html
index 19ef5fc..f1e4d6d 100644
--- a/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.eventStores.userEvents.html
+++ b/docs/dyn/recommendationengine_v1beta1.projects.locations.catalogs.eventStores.userEvents.html
@@ -306,7 +306,7 @@
             &quot;ipAddress&quot;: &quot;A String&quot;, # Optional. IP address of the user. This could be either IPv4 (e.g. 104.133.9.80) or IPv6 (e.g. 2001:0db8:85a3:0000:0000:8a2e:0370:7334). This should *not* be set when using the javascript pixel or if `direct_user_request` is set. Used to extract location information for personalization.
             &quot;userAgent&quot;: &quot;A String&quot;, # Optional. User agent as included in the HTTP header. UTF-8 encoded string with a length limit of 1 KiB. This should *not* be set when using the JavaScript pixel or if `directUserRequest` is set.
             &quot;userId&quot;: &quot;A String&quot;, # Optional. Unique identifier for logged-in user with a length limit of 128 bytes. Required only for logged-in users.
-            &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with a http cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Maximum length 128 bytes. Cannot be empty.
+            &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. Maximum length 128 bytes. Cannot be empty.
           },
         },
       ],
@@ -448,7 +448,7 @@
         &quot;ipAddress&quot;: &quot;A String&quot;, # Optional. IP address of the user. This could be either IPv4 (e.g. 104.133.9.80) or IPv6 (e.g. 2001:0db8:85a3:0000:0000:8a2e:0370:7334). This should *not* be set when using the javascript pixel or if `direct_user_request` is set. Used to extract location information for personalization.
         &quot;userAgent&quot;: &quot;A String&quot;, # Optional. User agent as included in the HTTP header. UTF-8 encoded string with a length limit of 1 KiB. This should *not* be set when using the JavaScript pixel or if `directUserRequest` is set.
         &quot;userId&quot;: &quot;A String&quot;, # Optional. Unique identifier for logged-in user with a length limit of 128 bytes. Required only for logged-in users.
-        &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with a http cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Maximum length 128 bytes. Cannot be empty.
+        &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. Maximum length 128 bytes. Cannot be empty.
       },
     },
   ],
@@ -647,7 +647,7 @@
     &quot;ipAddress&quot;: &quot;A String&quot;, # Optional. IP address of the user. This could be either IPv4 (e.g. 104.133.9.80) or IPv6 (e.g. 2001:0db8:85a3:0000:0000:8a2e:0370:7334). This should *not* be set when using the javascript pixel or if `direct_user_request` is set. Used to extract location information for personalization.
     &quot;userAgent&quot;: &quot;A String&quot;, # Optional. User agent as included in the HTTP header. UTF-8 encoded string with a length limit of 1 KiB. This should *not* be set when using the JavaScript pixel or if `directUserRequest` is set.
     &quot;userId&quot;: &quot;A String&quot;, # Optional. Unique identifier for logged-in user with a length limit of 128 bytes. Required only for logged-in users.
-    &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with a http cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Maximum length 128 bytes. Cannot be empty.
+    &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. Maximum length 128 bytes. Cannot be empty.
   },
 }
 
@@ -743,7 +743,7 @@
     &quot;ipAddress&quot;: &quot;A String&quot;, # Optional. IP address of the user. This could be either IPv4 (e.g. 104.133.9.80) or IPv6 (e.g. 2001:0db8:85a3:0000:0000:8a2e:0370:7334). This should *not* be set when using the javascript pixel or if `direct_user_request` is set. Used to extract location information for personalization.
     &quot;userAgent&quot;: &quot;A String&quot;, # Optional. User agent as included in the HTTP header. UTF-8 encoded string with a length limit of 1 KiB. This should *not* be set when using the JavaScript pixel or if `directUserRequest` is set.
     &quot;userId&quot;: &quot;A String&quot;, # Optional. Unique identifier for logged-in user with a length limit of 128 bytes. Required only for logged-in users.
-    &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with a http cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor log in/out of the website. Maximum length 128 bytes. Cannot be empty.
+    &quot;visitorId&quot;: &quot;A String&quot;, # Required. A unique identifier for tracking visitors with a length limit of 128 bytes. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website. Maximum length 128 bytes. Cannot be empty.
   },
 }</pre>
 </div>
diff --git a/docs/dyn/retail_v2.projects.locations.catalogs.branches.products.html b/docs/dyn/retail_v2.projects.locations.catalogs.branches.products.html
index d5a708e..f6b2fa5 100644
--- a/docs/dyn/retail_v2.projects.locations.catalogs.branches.products.html
+++ b/docs/dyn/retail_v2.projects.locations.catalogs.branches.products.html
@@ -304,7 +304,7 @@
       ],
     },
     &quot;productInlineSource&quot;: { # The inline source for the input config for ImportProducts method. # The Inline source for the input content for products.
-      &quot;products&quot;: [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 10k items.
+      &quot;products&quot;: [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items.
         { # Product captures all metadata information of items to be recommended or searched.
           &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
             &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
diff --git a/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.products.html b/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.products.html
index e634ec5..92a5f86 100644
--- a/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.products.html
+++ b/docs/dyn/retail_v2alpha.projects.locations.catalogs.branches.products.html
@@ -304,7 +304,7 @@
       ],
     },
     &quot;productInlineSource&quot;: { # The inline source for the input config for ImportProducts method. # The Inline source for the input content for products.
-      &quot;products&quot;: [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 10k items.
+      &quot;products&quot;: [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items.
         { # Product captures all metadata information of items to be recommended or searched.
           &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
             &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
diff --git a/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.products.html b/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.products.html
index b4ae79e..08d8f5c 100644
--- a/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.products.html
+++ b/docs/dyn/retail_v2beta.projects.locations.catalogs.branches.products.html
@@ -304,7 +304,7 @@
       ],
     },
     &quot;productInlineSource&quot;: { # The inline source for the input config for ImportProducts method. # The Inline source for the input content for products.
-      &quot;products&quot;: [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 10k items.
+      &quot;products&quot;: [ # Required. A list of products to update/create. Each product must have a valid Product.id. Recommended max of 100 items.
         { # Product captures all metadata information of items to be recommended or searched.
           &quot;attributes&quot;: { # Highly encouraged. Extra product attributes to be included. For example, for products, this could include the store name, vendor, style, color, etc. These are very strong signals for recommendation model, thus we highly recommend providing the attributes here. Features that can take on one of a limited number of possible values. Two types of features can be set are: Textual features. some examples would be the brand/maker of a product, or country of a customer. Numerical features. Some examples would be the height/weight of a product, or age of a customer. For example: `{ &quot;vendor&quot;: {&quot;text&quot;: [&quot;vendor123&quot;, &quot;vendor456&quot;]}, &quot;lengths_cm&quot;: {&quot;numbers&quot;:[2.3, 15.4]}, &quot;heights_cm&quot;: {&quot;numbers&quot;:[8.1, 6.4]} }`. This field needs to pass all below criteria, otherwise an INVALID_ARGUMENT error is returned: * Max entries count: 200 by default; 100 for Type.VARIANT. * The key must be a UTF-8 encoded string with a length limit of 128 characters.
             &quot;a_key&quot;: { # A custom attribute that is not explicitly modeled in Product.
diff --git a/docs/dyn/serviceusage_v1.services.html b/docs/dyn/serviceusage_v1.services.html
index ade9c42..83b09da 100644
--- a/docs/dyn/serviceusage_v1.services.html
+++ b/docs/dyn/serviceusage_v1.services.html
@@ -242,7 +242,7 @@
           &quot;overview&quot;: &quot;A String&quot;, # Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.
           &quot;pages&quot;: [ # The top level pages for the documentation set.
             { # Represents a documentation page. A page can contain subpages to represent nested documentation set structure.
-              &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file.
+              &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file. The content can be used to produce the documentation page such as HTML format page.
               &quot;name&quot;: &quot;A String&quot;, # The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.
               &quot;subpages&quot;: [ # Subpages of this page. The order of subpages specified here will be honored in the generated docset.
                 # Object with schema name: Page
@@ -252,12 +252,12 @@
           &quot;rules&quot;: [ # A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
             { # A documentation rule provides information about individual API elements.
               &quot;deprecationDescription&quot;: &quot;A String&quot;, # Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.
-              &quot;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
-              &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
+              &quot;description&quot;: &quot;A String&quot;, # The description is the comment in front of the selected proto element, such as a message, a method, a &#x27;service&#x27; definition, or a field.
+              &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
             },
           ],
           &quot;serviceRootUrl&quot;: &quot;A String&quot;, # Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.
-          &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by plain text.
+          &quot;summary&quot;: &quot;A String&quot;, # A short description of what the service does. The summary must be plain text. It becomes the overview of the service displayed in Google Cloud Console. NOTE: This field is equivalent to the standard field `description`.
         },
         &quot;endpoints&quot;: [ # Configuration for network endpoints. Contains only the names and aliases of the endpoints.
           { # `Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true
@@ -535,7 +535,7 @@
       &quot;overview&quot;: &quot;A String&quot;, # Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.
       &quot;pages&quot;: [ # The top level pages for the documentation set.
         { # Represents a documentation page. A page can contain subpages to represent nested documentation set structure.
-          &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file.
+          &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file. The content can be used to produce the documentation page such as HTML format page.
           &quot;name&quot;: &quot;A String&quot;, # The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.
           &quot;subpages&quot;: [ # Subpages of this page. The order of subpages specified here will be honored in the generated docset.
             # Object with schema name: Page
@@ -545,12 +545,12 @@
       &quot;rules&quot;: [ # A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
         { # A documentation rule provides information about individual API elements.
           &quot;deprecationDescription&quot;: &quot;A String&quot;, # Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.
-          &quot;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
-          &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
+          &quot;description&quot;: &quot;A String&quot;, # The description is the comment in front of the selected proto element, such as a message, a method, a &#x27;service&#x27; definition, or a field.
+          &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
         },
       ],
       &quot;serviceRootUrl&quot;: &quot;A String&quot;, # Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.
-      &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by plain text.
+      &quot;summary&quot;: &quot;A String&quot;, # A short description of what the service does. The summary must be plain text. It becomes the overview of the service displayed in Google Cloud Console. NOTE: This field is equivalent to the standard field `description`.
     },
     &quot;endpoints&quot;: [ # Configuration for network endpoints. Contains only the names and aliases of the endpoints.
       { # `Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true
@@ -743,7 +743,7 @@
           &quot;overview&quot;: &quot;A String&quot;, # Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.
           &quot;pages&quot;: [ # The top level pages for the documentation set.
             { # Represents a documentation page. A page can contain subpages to represent nested documentation set structure.
-              &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file.
+              &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file. The content can be used to produce the documentation page such as HTML format page.
               &quot;name&quot;: &quot;A String&quot;, # The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.
               &quot;subpages&quot;: [ # Subpages of this page. The order of subpages specified here will be honored in the generated docset.
                 # Object with schema name: Page
@@ -753,12 +753,12 @@
           &quot;rules&quot;: [ # A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
             { # A documentation rule provides information about individual API elements.
               &quot;deprecationDescription&quot;: &quot;A String&quot;, # Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.
-              &quot;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
-              &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
+              &quot;description&quot;: &quot;A String&quot;, # The description is the comment in front of the selected proto element, such as a message, a method, a &#x27;service&#x27; definition, or a field.
+              &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
             },
           ],
           &quot;serviceRootUrl&quot;: &quot;A String&quot;, # Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.
-          &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by plain text.
+          &quot;summary&quot;: &quot;A String&quot;, # A short description of what the service does. The summary must be plain text. It becomes the overview of the service displayed in Google Cloud Console. NOTE: This field is equivalent to the standard field `description`.
         },
         &quot;endpoints&quot;: [ # Configuration for network endpoints. Contains only the names and aliases of the endpoints.
           { # `Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true
diff --git a/docs/dyn/serviceusage_v1beta1.services.html b/docs/dyn/serviceusage_v1beta1.services.html
index 1b4cfdd..014992f 100644
--- a/docs/dyn/serviceusage_v1beta1.services.html
+++ b/docs/dyn/serviceusage_v1beta1.services.html
@@ -366,7 +366,7 @@
       &quot;overview&quot;: &quot;A String&quot;, # Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.
       &quot;pages&quot;: [ # The top level pages for the documentation set.
         { # Represents a documentation page. A page can contain subpages to represent nested documentation set structure.
-          &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file.
+          &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file. The content can be used to produce the documentation page such as HTML format page.
           &quot;name&quot;: &quot;A String&quot;, # The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.
           &quot;subpages&quot;: [ # Subpages of this page. The order of subpages specified here will be honored in the generated docset.
             # Object with schema name: Page
@@ -376,12 +376,12 @@
       &quot;rules&quot;: [ # A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
         { # A documentation rule provides information about individual API elements.
           &quot;deprecationDescription&quot;: &quot;A String&quot;, # Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.
-          &quot;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
-          &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
+          &quot;description&quot;: &quot;A String&quot;, # The description is the comment in front of the selected proto element, such as a message, a method, a &#x27;service&#x27; definition, or a field.
+          &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
         },
       ],
       &quot;serviceRootUrl&quot;: &quot;A String&quot;, # Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.
-      &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by plain text.
+      &quot;summary&quot;: &quot;A String&quot;, # A short description of what the service does. The summary must be plain text. It becomes the overview of the service displayed in Google Cloud Console. NOTE: This field is equivalent to the standard field `description`.
     },
     &quot;endpoints&quot;: [ # Configuration for network endpoints. Contains only the names and aliases of the endpoints.
       { # `Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true
@@ -574,7 +574,7 @@
           &quot;overview&quot;: &quot;A String&quot;, # Declares a single overview page. For example: documentation: summary: ... overview: (== include overview.md ==) This is a shortcut for the following declaration (using pages style): documentation: summary: ... pages: - name: Overview content: (== include overview.md ==) Note: you cannot specify both `overview` field and `pages` field.
           &quot;pages&quot;: [ # The top level pages for the documentation set.
             { # Represents a documentation page. A page can contain subpages to represent nested documentation set structure.
-              &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file.
+              &quot;content&quot;: &quot;A String&quot;, # The Markdown content of the page. You can use (== include {path} ==) to include content from a Markdown file. The content can be used to produce the documentation page such as HTML format page.
               &quot;name&quot;: &quot;A String&quot;, # The name of the page. It will be used as an identity of the page to generate URI of the page, text of the link to this page in navigation, etc. The full page name (start from the root page name to this page concatenated with `.`) can be used as reference to the page in your documentation. For example: pages: - name: Tutorial content: (== include tutorial.md ==) subpages: - name: Java content: (== include tutorial_java.md ==) You can reference `Java` page using Markdown reference link syntax: `Java`.
               &quot;subpages&quot;: [ # Subpages of this page. The order of subpages specified here will be honored in the generated docset.
                 # Object with schema name: Page
@@ -584,12 +584,12 @@
           &quot;rules&quot;: [ # A list of documentation rules that apply to individual API elements. **NOTE:** All service configuration rules follow &quot;last one wins&quot; order.
             { # A documentation rule provides information about individual API elements.
               &quot;deprecationDescription&quot;: &quot;A String&quot;, # Deprecation description of the selected element(s). It can be provided if an element is marked as `deprecated`.
-              &quot;description&quot;: &quot;A String&quot;, # Description of the selected API(s).
-              &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
+              &quot;description&quot;: &quot;A String&quot;, # The description is the comment in front of the selected proto element, such as a message, a method, a &#x27;service&#x27; definition, or a field.
+              &quot;selector&quot;: &quot;A String&quot;, # The selector is a comma-separated list of patterns for any element such as a method, a field, an enum value. Each pattern is a qualified name of the element which may end in &quot;*&quot;, indicating a wildcard. Wildcards are only allowed at the end and for a whole component of the qualified name, i.e. &quot;foo.*&quot; is ok, but not &quot;foo.b*&quot; or &quot;foo.*.bar&quot;. A wildcard will match one or more components. To specify a default for all applicable elements, the whole pattern &quot;*&quot; is used.
             },
           ],
           &quot;serviceRootUrl&quot;: &quot;A String&quot;, # Specifies the service root url if the default one (the service name from the yaml file) is not suitable. This can be seen in any fully specified service urls as well as sections that show a base that other urls are relative to.
-          &quot;summary&quot;: &quot;A String&quot;, # A short summary of what the service does. Can only be provided by plain text.
+          &quot;summary&quot;: &quot;A String&quot;, # A short description of what the service does. The summary must be plain text. It becomes the overview of the service displayed in Google Cloud Console. NOTE: This field is equivalent to the standard field `description`.
         },
         &quot;endpoints&quot;: [ # Configuration for network endpoints. Contains only the names and aliases of the endpoints.
           { # `Endpoint` describes a network address of a service that serves a set of APIs. It is commonly known as a service endpoint. A service may expose any number of service endpoints, and all service endpoints share the same service definition, such as quota limits and monitoring metrics. Example: type: google.api.Service name: library-example.googleapis.com endpoints: # Declares network address `https://library-example.googleapis.com` # for service `library-example.googleapis.com`. The `https` scheme # is implicit for all service endpoints. Other schemes may be # supported in the future. - name: library-example.googleapis.com allow_cors: false - name: content-staging-library-example.googleapis.com # Allows HTTP OPTIONS calls to be passed to the API frontend, for it # to decide whether the subsequent cross-origin request is allowed # to proceed. allow_cors: true
diff --git a/docs/dyn/slides_v1.presentations.html b/docs/dyn/slides_v1.presentations.html
index b30cbbf..d402260 100644
--- a/docs/dyn/slides_v1.presentations.html
+++ b/docs/dyn/slides_v1.presentations.html
@@ -222,7 +222,7 @@
         },
         &quot;linkingMode&quot;: &quot;A String&quot;, # The mode with which the chart is linked to the source spreadsheet. When not specified, the chart will be an image that is not linked.
         &quot;objectId&quot;: &quot;A String&quot;, # A user-supplied object ID. If specified, the ID must be unique among all pages and page elements in the presentation. The ID should start with a word character [a-zA-Z0-9_] and then followed by any number of the following characters [a-zA-Z0-9_-:]. The length of the ID should not be less than 5 or greater than 50. If empty, a unique identifier will be generated.
-        &quot;spreadsheetId&quot;: &quot;A String&quot;, # The ID of the Google Sheets spreadsheet that contains the chart.
+        &quot;spreadsheetId&quot;: &quot;A String&quot;, # The ID of the Google Sheets spreadsheet that contains the chart. You might need to add a resource key to the HTTP header for a subset of old files. For more information, see [Access link-shared files using resource keys](https://developers.google.com/drive/api/v3/resource-keys).
       },
       &quot;createSlide&quot;: { # Creates a new slide. # Creates a new slide.
         &quot;insertionIndex&quot;: 42, # The optional zero-based index indicating where to insert the slides. If you don&#x27;t specify an index, the new slide is created at the end.
@@ -293,12 +293,12 @@
             &quot;unit&quot;: &quot;A String&quot;, # The units for translate elements.
           },
         },
-        &quot;id&quot;: &quot;A String&quot;, # The video source&#x27;s unique identifier for this video. e.g. For YouTube video https://www.youtube.com/watch?v=7U3axjORYZ0, the ID is 7U3axjORYZ0. For a Google Drive video https://drive.google.com/file/d/1xCgQLFTJi5_Xl8DgW_lcUYq5e-q6Hi5Q the ID is 1xCgQLFTJi5_Xl8DgW_lcUYq5e-q6Hi5Q.
+        &quot;id&quot;: &quot;A String&quot;, # The video source&#x27;s unique identifier for this video. e.g. For YouTube video https://www.youtube.com/watch?v=7U3axjORYZ0, the ID is 7U3axjORYZ0. For a Google Drive video https://drive.google.com/file/d/1xCgQLFTJi5_Xl8DgW_lcUYq5e-q6Hi5Q the ID is 1xCgQLFTJi5_Xl8DgW_lcUYq5e-q6Hi5Q. To access a Google Drive video file, you might need to add a resource key to the HTTP header for a subset of old files. For more information, see [Access link-shared files using resource keys](https://developers.google.com/drive/api/v3/resource-keys).
         &quot;objectId&quot;: &quot;A String&quot;, # A user-supplied object ID. If you specify an ID, it must be unique among all pages and page elements in the presentation. The ID must start with an alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`); remaining characters may include those as well as a hyphen or colon (matches regex `[a-zA-Z0-9_-:]`). The length of the ID must not be less than 5 or greater than 50. If you don&#x27;t specify an ID, a unique one is generated.
         &quot;source&quot;: &quot;A String&quot;, # The video source.
       },
       &quot;deleteObject&quot;: { # Deletes an object, either pages or page elements, from the presentation. # Deletes a page or page element from the presentation.
-        &quot;objectId&quot;: &quot;A String&quot;, # The object ID of the page or page element to delete. If after a delete operation a group contains only 1 or no page elements, the group is also deleted. If a placeholder is deleted on a layout, any empty inheriting shapes are also deleted.
+        &quot;objectId&quot;: &quot;A String&quot;, # The object ID of the page or page element to delete. If after a delete operation a group contains only 1 or no page elements, the group is also deleted. If a placeholder is deleted on a layout, any empty inheriting placeholders are also deleted.
       },
       &quot;deleteParagraphBullets&quot;: { # Deletes bullets from all of the paragraphs that overlap with the given text index range. The nesting level of each paragraph will be visually preserved by adding indent to the start of the corresponding paragraph. # Deletes bullets from paragraphs.
         &quot;cellLocation&quot;: { # A location of a single table cell within a table. # The optional table cell location if the text to be modified is in a table cell. If present, the object_id must refer to a table.
@@ -345,7 +345,7 @@
         },
       },
       &quot;groupObjects&quot;: { # Groups objects to create an object group. For example, groups PageElements to create a Group on the same page as all the children. # Groups objects, such as page elements.
-        &quot;childrenObjectIds&quot;: [ # The object IDs of the objects to group. Only page elements can be grouped. There should be at least two page elements on the same page that are not already in another group. Some page elements, such as videos, tables and placeholder shapes cannot be grouped.
+        &quot;childrenObjectIds&quot;: [ # The object IDs of the objects to group. Only page elements can be grouped. There should be at least two page elements on the same page that are not already in another group. Some page elements, such as videos, tables and placeholders cannot be grouped.
           &quot;A String&quot;,
         ],
         &quot;groupObjectId&quot;: &quot;A String&quot;, # A user-supplied object ID for the group to be created. If you specify an ID, it must be unique among all pages and page elements in the presentation. The ID must start with an alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`); remaining characters may include those as well as a hyphen or colon (matches regex `[a-zA-Z0-9_-:]`). The length of the ID must not be less than 5 or greater than 50. If you don&#x27;t specify an ID, a unique one is generated.
@@ -770,6 +770,16 @@
           },
         },
       },
+      &quot;updateSlideProperties&quot;: { # Updates the properties of a Slide. # Updates the properties of a Slide
+        &quot;fields&quot;: &quot;A String&quot;, # The fields that should be updated. At least one field must be specified. The root &#x27;slideProperties&#x27; is implied and should not be specified. A single `&quot;*&quot;` can be used as short-hand for listing every field. For example to update whether a slide is skipped, set `fields` to `&quot;isSkipped&quot;`. To reset a property to its default value, include its field name in the field mask but leave the field itself unset.
+        &quot;objectId&quot;: &quot;A String&quot;, # The object ID of the slide the update is applied to.
+        &quot;slideProperties&quot;: { # The properties of Page that are only relevant for pages with page_type SLIDE. # The slide properties to update.
+          &quot;isSkipped&quot;: True or False, # Whether the slide is skipped in the presentation mode. Defaults to false.
+          &quot;layoutObjectId&quot;: &quot;A String&quot;, # The object ID of the layout that this slide is based on. This property is read-only.
+          &quot;masterObjectId&quot;: &quot;A String&quot;, # The object ID of the master that this slide is based on. This property is read-only.
+          &quot;notesPage&quot;: # Object with schema name: Page # The notes page that this slide is associated with. It defines the visual appearance of a notes page when printing or exporting slides with speaker notes. A notes page inherits properties from the notes master. The placeholder shape with type BODY on the notes page contains the speaker notes for this slide. The ID of this shape is identified by the speakerNotesObjectId field. The notes page is read-only except for the text content and styles of the speaker notes shape. This property is read-only.
+        },
+      },
       &quot;updateSlidesPosition&quot;: { # Updates the position of slides in the presentation. # Updates the position of a set of slides in the presentation.
         &quot;insertionIndex&quot;: 42, # The index where the slides should be inserted, based on the slide arrangement before the move takes place. Must be between zero and the number of slides in the presentation, inclusive.
         &quot;slideObjectIds&quot;: [ # The IDs of the slides in the presentation that should be moved. The slides in this list must be in existing presentation order, without duplicates.
@@ -1180,7 +1190,7 @@
           },
           &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
           &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
               &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
               &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
               &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
@@ -2191,7 +2201,7 @@
           },
           &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
           &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
               &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
               &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
               &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
@@ -3200,7 +3210,7 @@
         },
         &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
         &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-          &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+          &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
             &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
             &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
             &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
@@ -4221,7 +4231,7 @@
           },
           &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
           &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
               &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
               &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
               &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
@@ -5243,7 +5253,7 @@
           },
           &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
           &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
               &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
               &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
               &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
@@ -6254,7 +6264,7 @@
           },
           &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
           &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
               &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
               &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
               &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
@@ -7263,7 +7273,7 @@
         },
         &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
         &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-          &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+          &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
             &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
             &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
             &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
@@ -8284,7 +8294,7 @@
           },
           &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
           &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
               &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
               &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
               &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
@@ -9313,7 +9323,7 @@
           },
           &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
           &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
               &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
               &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
               &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
@@ -10324,7 +10334,7 @@
           },
           &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
           &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
               &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
               &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
               &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
@@ -11333,7 +11343,7 @@
         },
         &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
         &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-          &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+          &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
             &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
             &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
             &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
@@ -12354,7 +12364,7 @@
           },
           &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
           &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+            &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
               &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
               &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
               &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
diff --git a/docs/dyn/slides_v1.presentations.pages.html b/docs/dyn/slides_v1.presentations.pages.html
index 89a500b..bb9f82c 100644
--- a/docs/dyn/slides_v1.presentations.pages.html
+++ b/docs/dyn/slides_v1.presentations.pages.html
@@ -255,7 +255,7 @@
       },
       &quot;objectId&quot;: &quot;A String&quot;, # The object ID for this page element. Object IDs used by google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the same namespace.
       &quot;shape&quot;: { # A PageElement kind representing a generic shape that does not have a more specific classification. # A generic shape.
-        &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are shapes that are inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
+        &quot;placeholder&quot;: { # The placeholder information that uniquely identifies a placeholder shape. # Placeholders are page elements that inherit from corresponding placeholders on layouts and masters. If set, the shape is a placeholder shape and any inherited properties can be resolved by looking at the parent placeholder identified by the Placeholder.parent_object_id field.
           &quot;index&quot;: 42, # The index of the placeholder. If the same placeholder types are present in the same page, they would have different index values.
           &quot;parentObjectId&quot;: &quot;A String&quot;, # The object ID of this shape&#x27;s parent placeholder. If unset, the parent placeholder shape does not exist, so the shape does not inherit properties from any other shape.
           &quot;type&quot;: &quot;A String&quot;, # The type of the placeholder.
diff --git a/docs/dyn/spanner_v1.projects.instances.databases.sessions.html b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
index a3e7597..51a3f41 100644
--- a/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
+++ b/docs/dyn/spanner_v1.projects.instances.databases.sessions.html
@@ -421,7 +421,14 @@
         &quot;a_key&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query.
           &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
           &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-          &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+          &quot;structType&quot;: { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+            &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
+              { # Message representing a single field of a struct.
+                &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
+                &quot;type&quot;: # Object with schema name: Type # The type of the field.
+              },
+            ],
+          },
         },
       },
       &quot;params&quot;: { # Parameter names and values that bind to placeholders in the DML string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names can contain letters, numbers, and underscores. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `&quot;WHERE id &gt; @msg_id AND id &lt; @msg_id + 100&quot;` It is an error to execute a SQL statement with unbound parameters.
@@ -479,11 +486,7 @@
           &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
             { # Message representing a single field of a struct.
               &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-              &quot;type&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field.
-                &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
-                &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-                &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
-              },
+              &quot;type&quot;: # Object with schema name: Type # The type of the field.
             },
           ],
         },
@@ -560,7 +563,14 @@
     &quot;a_key&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query.
       &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
       &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-      &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+      &quot;structType&quot;: { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+        &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
+          { # Message representing a single field of a struct.
+            &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
+            &quot;type&quot;: # Object with schema name: Type # The type of the field.
+          },
+        ],
+      },
     },
   },
   &quot;params&quot;: { # Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names must conform to the naming requirements of identifiers as specified at https://cloud.google.com/spanner/docs/lexical#identifiers. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `&quot;WHERE id &gt; @msg_id AND id &lt; @msg_id + 100&quot;` It is an error to execute a SQL statement with unbound parameters.
@@ -627,11 +637,7 @@
       &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
         { # Message representing a single field of a struct.
           &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-          &quot;type&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field.
-            &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
-            &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-            &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
-          },
+          &quot;type&quot;: # Object with schema name: Type # The type of the field.
         },
       ],
     },
@@ -697,7 +703,14 @@
     &quot;a_key&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query.
       &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
       &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-      &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+      &quot;structType&quot;: { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+        &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
+          { # Message representing a single field of a struct.
+            &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
+            &quot;type&quot;: # Object with schema name: Type # The type of the field.
+          },
+        ],
+      },
     },
   },
   &quot;params&quot;: { # Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names must conform to the naming requirements of identifiers as specified at https://cloud.google.com/spanner/docs/lexical#identifiers. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `&quot;WHERE id &gt; @msg_id AND id &lt; @msg_id + 100&quot;` It is an error to execute a SQL statement with unbound parameters.
@@ -765,11 +778,7 @@
       &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
         { # Message representing a single field of a struct.
           &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-          &quot;type&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field.
-            &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
-            &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-            &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
-          },
+          &quot;type&quot;: # Object with schema name: Type # The type of the field.
         },
       ],
     },
@@ -904,7 +913,14 @@
     &quot;a_key&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query.
       &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
       &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-      &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+      &quot;structType&quot;: { # `StructType` defines the fields of a STRUCT type. # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
+        &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
+          { # Message representing a single field of a struct.
+            &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
+            &quot;type&quot;: # Object with schema name: Type # The type of the field.
+          },
+        ],
+      },
     },
   },
   &quot;params&quot;: { # Parameter names and values that bind to placeholders in the SQL string. A parameter placeholder consists of the `@` character followed by the parameter name (for example, `@firstName`). Parameter names can contain letters, numbers, and underscores. Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: `&quot;WHERE id &gt; @msg_id AND id &lt; @msg_id + 100&quot;` It is an error to execute a SQL statement with unbound parameters.
@@ -1160,11 +1176,7 @@
       &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
         { # Message representing a single field of a struct.
           &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-          &quot;type&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field.
-            &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
-            &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-            &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
-          },
+          &quot;type&quot;: # Object with schema name: Type # The type of the field.
         },
       ],
     },
@@ -1336,11 +1348,7 @@
       &quot;fields&quot;: [ # The list of fields that make up this struct. Order is significant, because values of this struct type are represented as lists, where the order of field values matches the order of fields in the StructType. In turn, the order of fields matches the order of columns in a read request, or the order of fields in the `SELECT` clause of a query.
         { # Message representing a single field of a struct.
           &quot;name&quot;: &quot;A String&quot;, # The name of the field. For reads, this is the column name. For SQL queries, it is the column alias (e.g., `&quot;Word&quot;` in the query `&quot;SELECT &#x27;hello&#x27; AS Word&quot;`), or the column name (e.g., `&quot;ColName&quot;` in the query `&quot;SELECT ColName FROM Table&quot;`). Some columns might have an empty name (e.g., `&quot;SELECT UPPER(ColName)&quot;`). Note that a query result can contain multiple fields with the same name.
-          &quot;type&quot;: { # `Type` indicates the type of a Cloud Spanner value, as might be stored in a table cell or returned from an SQL query. # The type of the field.
-            &quot;arrayElementType&quot;: # Object with schema name: Type # If code == ARRAY, then `array_element_type` is the type of the array elements.
-            &quot;code&quot;: &quot;A String&quot;, # Required. The TypeCode for this type.
-            &quot;structType&quot;: # Object with schema name: StructType # If code == STRUCT, then `struct_type` provides type information for the struct&#x27;s fields.
-          },
+          &quot;type&quot;: # Object with schema name: Type # The type of the field.
         },
       ],
     },
diff --git a/docs/dyn/sqladmin_v1.html b/docs/dyn/sqladmin_v1.html
new file mode 100644
index 0000000..0330ae8
--- /dev/null
+++ b/docs/dyn/sqladmin_v1.html
@@ -0,0 +1,116 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1.html">Cloud SQL Admin API</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="sqladmin_v1.instances.html">instances()</a></code>
+</p>
+<p class="firstline">Returns the instances Resource.</p>
+
+<p class="toc_element">
+  <code><a href="sqladmin_v1.projects.html">projects()</a></code>
+</p>
+<p class="firstline">Returns the projects Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#new_batch_http_request">new_batch_http_request()</a></code></p>
+<p class="firstline">Create a BatchHttpRequest object based on the discovery document.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="new_batch_http_request">new_batch_http_request()</code>
+  <pre>Create a BatchHttpRequest object based on the discovery document.
+
+        Args:
+          callback: callable, A callback to be called for each response, of the
+            form callback(id, response, exception). The first parameter is the
+            request id, and the second is the deserialized response object. The
+            third is an apiclient.errors.HttpError exception object if an HTTP
+            error occurred while processing the request, or None if no error
+            occurred.
+
+        Returns:
+          A BatchHttpRequest object based on the discovery document.
+        </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1.instances.html b/docs/dyn/sqladmin_v1.instances.html
new file mode 100644
index 0000000..e76345d
--- /dev/null
+++ b/docs/dyn/sqladmin_v1.instances.html
@@ -0,0 +1,330 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1.html">Cloud SQL Admin API</a> . <a href="sqladmin_v1.instances.html">instances</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#list">list(project, filter=None, maxResults=None, pageToken=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists instances under a given project.</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(project, filter=None, maxResults=None, pageToken=None, x__xgafv=None)</code>
+  <pre>Lists instances under a given project.
+
+Args:
+  project: string, Project ID of the project for which to list Cloud SQL instances. (required)
+  filter: string, A filter expression that filters resources listed in the response. The expression is in the form of field:value. For example, &#x27;instanceType:CLOUD_SQL_INSTANCE&#x27;. Fields can be nested as needed as per their JSON representation, such as &#x27;settings.userLabels.auto_start:true&#x27;. Multiple filter queries are space-separated. For example. &#x27;state:RUNNABLE instanceType:CLOUD_SQL_INSTANCE&#x27;. By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly.
+  maxResults: integer, The maximum number of results to return per response.
+  pageToken: string, A previously-returned page token representing part of the larger set of results to view.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Database instances list response.
+  &quot;items&quot;: [ # List of database instance resources.
+    { # A Cloud SQL instance resource.
+      &quot;backendType&quot;: &quot;A String&quot;, #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
+      &quot;connectionName&quot;: &quot;A String&quot;, # Connection name of the Cloud SQL instance used in connection strings.
+      &quot;currentDiskSize&quot;: &quot;A String&quot;, # The current disk usage of the instance in bytes. This property has been deprecated. Use the &quot;cloudsql.googleapis.com/database/disk/bytes_used&quot; metric in Cloud Monitoring API instead. Please see this announcement for details.
+      &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+      &quot;diskEncryptionConfiguration&quot;: { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances.
+        &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#diskEncryptionConfiguration**.
+        &quot;kmsKeyName&quot;: &quot;A String&quot;, # Resource name of KMS key for disk encryption
+      },
+      &quot;diskEncryptionStatus&quot;: { # Disk encryption status for an instance. # Disk encryption status specific to an instance. Applies only to Second Generation instances.
+        &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#diskEncryptionStatus**.
+        &quot;kmsKeyVersionName&quot;: &quot;A String&quot;, # KMS key version used to encrypt the Cloud SQL instance resource
+      },
+      &quot;encryptedRootPassword&quot;: &quot;A String&quot;, # For internal usage only. The encrypted password.
+      &quot;etag&quot;: &quot;A String&quot;, # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead.
+      &quot;failoverReplica&quot;: { # The name and status of the failover replica. This property is applicable only to Second Generation instances.
+        &quot;available&quot;: True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.
+        &quot;failoverInstance&quot;: { # Reference to another Cloud SQL instance. # A reference to the failover replica. If specified at instance creation, a failover replica is created for the instance. Currently, the failover replica can only be created in the same region as the primary instance.
+          &quot;name&quot;: &quot;A String&quot;, # The name of the Cloud SQL instance being referenced.
+          &quot;region&quot;: &quot;A String&quot;, # The region of the Cloud SQL instance being referenced.
+        },
+        &quot;name&quot;: &quot;A String&quot;, # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn&#x27;t include the project ID. This property is applicable only to Second Generation instances.
+      },
+      &quot;gceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone.
+      &quot;installedVersion&quot;: &quot;A String&quot;, # installed_version stores the current fully resolved database version including minor version such as MySQL_5.6.50
+      &quot;instanceType&quot;: &quot;A String&quot;, # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer&#x27;s premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica.
+      &quot;instanceUid&quot;: &quot;A String&quot;, # Uid of the Cloud SQL instance. Used by Pantheon to check instance is created
+      &quot;ipAddresses&quot;: [ # The assigned IP addresses for the instance.
+        { # Database instance IP Mapping.
+          &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
+          &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired.
+          &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported.
+        },
+      ],
+      &quot;ipv6Address&quot;: &quot;A String&quot;, # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
+      &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#instance*.
+      &quot;masterInstance&quot;: { # Reference to another Cloud SQL instance. # The reference to the instance which will act as primary in the replication setup.
+        &quot;name&quot;: &quot;A String&quot;, # The name of the Cloud SQL instance being referenced.
+        &quot;region&quot;: &quot;A String&quot;, # The region of the Cloud SQL instance being referenced.
+      },
+      &quot;masterInstanceName&quot;: &quot;A String&quot;, # The name of the instance which will act as primary in the replication setup.
+      &quot;maxDiskSize&quot;: &quot;A String&quot;, # The maximum disk size of the instance in bytes.
+      &quot;name&quot;: &quot;A String&quot;, # Name of the Cloud SQL instance. This does not include the project ID.
+      &quot;onPremisesConfiguration&quot;: { # On-premises instance configuration. # Configuration specific to on-premises instances.
+        &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
+        &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
+        &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponsing public key is encoded in the client&#x27;s certificate.
+        &quot;dumpFilePath&quot;: &quot;A String&quot;, # The dump file to create the Cloud SQL replica.
+        &quot;hostPort&quot;: &quot;A String&quot;, # The host and port of the on-premises instance in host:port format
+        &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#onPremisesConfiguration*.
+        &quot;password&quot;: &quot;A String&quot;, # The password for connecting to on-premises instance.
+        &quot;username&quot;: &quot;A String&quot;, # The username for connecting to on-premises instance.
+      },
+      &quot;outOfDiskReport&quot;: { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+        &quot;sqlMinRecommendedIncreaseSizeGb&quot;: 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+        &quot;sqlOutOfDiskState&quot;: &quot;A String&quot;, # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+      },
+      &quot;project&quot;: &quot;A String&quot;, # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+      &quot;region&quot;: &quot;A String&quot;, # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
+      &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
+        &quot;failoverTarget&quot;: True or False, # Specifies if the replica is the failover target. If the field is set to *true* the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
+        &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#replicaConfiguration*.
+        &quot;mysqlReplicaConfiguration&quot;: { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata.The configuration information is used only to set up the replication connection and is stored by MySQL in a file named *master.info* in the data directory.
+          &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
+          &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
+          &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponsing public key is encoded in the client&#x27;s certificate.
+          &quot;connectRetryInterval&quot;: 42, # Seconds to wait between connect retries. MySQL&#x27;s default is 60 seconds.
+          &quot;dumpFilePath&quot;: &quot;A String&quot;, # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
+          &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#mysqlReplicaConfiguration**.
+          &quot;masterHeartbeatPeriod&quot;: &quot;A String&quot;, # Interval in milliseconds between replication heartbeats.
+          &quot;password&quot;: &quot;A String&quot;, # The password for the replication connection.
+          &quot;sslCipher&quot;: &quot;A String&quot;, # A list of permissible ciphers to use for SSL encryption.
+          &quot;username&quot;: &quot;A String&quot;, # The username for the replication connection.
+          &quot;verifyServerCertificate&quot;: True or False, # Whether or not to check the primary instance&#x27;s Common Name value in the certificate that it sends during the SSL handshake.
+        },
+      },
+      &quot;replicaInstances&quot;: [ # The replicas of the instance.
+        { # Reference to another Cloud SQL instance.
+          &quot;name&quot;: &quot;A String&quot;, # The name of the Cloud SQL instance being referenced.
+          &quot;region&quot;: &quot;A String&quot;, # The region of the Cloud SQL instance being referenced.
+        },
+      ],
+      &quot;replicaNames&quot;: [ # The replicas of the instance.
+        &quot;A String&quot;,
+      ],
+      &quot;rootPassword&quot;: &quot;A String&quot;, # Initial root password. Use only on creation.
+      &quot;satisfiesPzs&quot;: True or False, # The status indicating if instance satisfiesPzs. Reserved for future use.
+      &quot;scheduledMaintenance&quot;: { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
+        &quot;canDefer&quot;: True or False,
+        &quot;canReschedule&quot;: True or False, # If the scheduled maintenance can be rescheduled.
+        &quot;scheduleDeadlineTime&quot;: &quot;A String&quot;, # Maintenance cannot be rescheduled to start beyond this deadline.
+        &quot;startTime&quot;: &quot;A String&quot;, # The start time of any upcoming scheduled maintenance for this instance.
+      },
+      &quot;secondaryGceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
+      &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
+      &quot;serverCaCert&quot;: { # SslCerts Resource # SSL configuration.
+        &quot;cert&quot;: &quot;A String&quot;, # PEM representation.
+        &quot;certSerialNumber&quot;: &quot;A String&quot;, # Serial number, as extracted from the certificate.
+        &quot;commonName&quot;: &quot;A String&quot;, # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+        &quot;createTime&quot;: &quot;A String&quot;, # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+        &quot;expirationTime&quot;: &quot;A String&quot;, # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+        &quot;instance&quot;: &quot;A String&quot;, # Name of the database instance.
+        &quot;kind&quot;: &quot;A String&quot;, # This is always sql#sslCert.
+        &quot;sha1Fingerprint&quot;: &quot;A String&quot;, # Sha1 Fingerprint.
+      },
+      &quot;serviceAccountEmailAddress&quot;: &quot;A String&quot;, # The service account email address assigned to the instance. This property is read-only.
+      &quot;settings&quot;: { # Database instance settings. # The user settings.
+        &quot;activationPolicy&quot;: &quot;A String&quot;, # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: **ALWAYS**: The instance is on, and remains so even in the absence of connection requests. **NEVER**: The instance is off; it is not activated, even if a connection request arrives.
+        &quot;activeDirectoryConfig&quot;: { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
+          &quot;domain&quot;: &quot;A String&quot;, # The name of the domain (e.g., mydomain.com).
+          &quot;kind&quot;: &quot;A String&quot;, # This is always sql#activeDirectoryConfig.
+        },
+        &quot;availabilityType&quot;: &quot;A String&quot;, # Availability type. Potential values: **ZONAL**: The instance serves data from only one zone. Outages in that zone affect data accessibility. **REGIONAL**: The instance can serve data from more than one zone in a region (it is highly available). For more information, see [Overview of the High Availability Configuration](/sql/docs/postgres/high-availability).
+        &quot;backupConfiguration&quot;: { # Database instance backup configuration. # The daily backup configuration for the instance.
+          &quot;backupRetentionSettings&quot;: { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
+            &quot;retainedBackups&quot;: 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is &#x27;COUNT&#x27;, we will retain this many backups.
+            &quot;retentionUnit&quot;: &quot;A String&quot;, # The unit that &#x27;retained_backups&#x27; represents.
+          },
+          &quot;binaryLogEnabled&quot;: True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
+          &quot;enabled&quot;: True or False, # Whether this configuration is enabled.
+          &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#backupConfiguration**.
+          &quot;location&quot;: &quot;A String&quot;, # Location of the backup
+          &quot;pointInTimeRecoveryEnabled&quot;: True or False, # (Postgres only) Whether point in time recovery is enabled.
+          &quot;replicationLogArchivingEnabled&quot;: True or False, # Reserved for future use.
+          &quot;startTime&quot;: &quot;A String&quot;, # Start time for the daily backup configuration in UTC timezone in the 24 hour format - **HH:MM**.
+          &quot;transactionLogRetentionDays&quot;: 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
+        },
+        &quot;collation&quot;: &quot;A String&quot;, # The name of server Instance collation.
+        &quot;crashSafeReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
+        &quot;dataDiskSizeGb&quot;: &quot;A String&quot;, # The size of data disk, in GB. The data disk size minimum is 10GB.
+        &quot;dataDiskType&quot;: &quot;A String&quot;, # The type of data disk: **PD_SSD** (default) or **PD_HDD**.
+        &quot;databaseFlags&quot;: [ # The database flags passed to the instance at startup.
+          { # Database flags for Cloud SQL instances.
+            &quot;name&quot;: &quot;A String&quot;, # The name of the flag. These flags are passed at instance startup, so include both server options and system variables for MySQL. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](/sql/docs/mysql/flags) in the Cloud SQL documentation.
+            &quot;value&quot;: &quot;A String&quot;, # The value of the flag. Booleans are set to **on** for true and **off** for false. This field must be omitted if the flag doesn&#x27;t take a value.
+          },
+        ],
+        &quot;databaseReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+        &quot;denyMaintenancePeriods&quot;: [ # Deny maintenance periods
+          { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
+            &quot;endDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+            &quot;startDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+            &quot;time&quot;: &quot;A String&quot;, # Time in UTC when the &quot;deny maintenance period&quot; starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
+          },
+        ],
+        &quot;insightsConfig&quot;: { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
+          &quot;queryInsightsEnabled&quot;: True or False, # Whether Query Insights feature is enabled.
+          &quot;queryPlansPerMinute&quot;: 42, # Number of query plans generated by Insights per minute. Default is 5. Changing this will restart the database.
+          &quot;queryStringLength&quot;: 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
+          &quot;recordApplicationTags&quot;: True or False, # Whether Query Insights will record application tags from query when enabled.
+          &quot;recordClientAddress&quot;: True or False, # Whether Query Insights will record client address when enabled.
+        },
+        &quot;ipConfiguration&quot;: { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
+          &quot;authorizedNetworks&quot;: [ # The list of external networks that are allowed to connect to the instance using the IP. In &#x27;CIDR&#x27; notation, also known as &#x27;slash&#x27; notation (for example: **192.168.100.0/24**).
+            { # An entry for an Access Control list.
+              &quot;expirationTime&quot;: &quot;A String&quot;, # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+              &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#aclEntry**.
+              &quot;name&quot;: &quot;A String&quot;, # Optional. A label to identify this entry.
+              &quot;value&quot;: &quot;A String&quot;, # The allowlisted value for the access control list.
+            },
+          ],
+          &quot;ipv4Enabled&quot;: True or False, # Whether the instance is assigned a public IP address or not.
+          &quot;privateNetwork&quot;: &quot;A String&quot;, # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, **/projects/myProject/global/networks/default**. This setting can be updated, but it cannot be removed after it is set.
+          &quot;requireSsl&quot;: True or False, # Whether SSL connections over IP are enforced or not.
+        },
+        &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#settings**.
+        &quot;locationPreference&quot;: { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to Compute Engine zone for better performance.
+          &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#locationPreference**.
+          &quot;secondaryZone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). Reserved for future use.
+          &quot;zone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.).
+        },
+        &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
+          &quot;day&quot;: 42, # day of week (1-7), starting on Monday.
+          &quot;hour&quot;: 42, # hour of day - 0 to 23.
+          &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#maintenanceWindow**.
+          &quot;updateTrack&quot;: &quot;A String&quot;, # Maintenance timing setting: **canary** (Earlier) or **stable** (Later). [Learn more] (https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/instance-settings#maintenance-timing-2ndgen).
+        },
+        &quot;pricingPlan&quot;: &quot;A String&quot;, # The pricing plan for this instance. This can be either **PER_USE** or **PACKAGE**. Only **PER_USE** is supported for Second Generation instances.
+        &quot;replicationType&quot;: &quot;A String&quot;, # The type of replication this instance uses. This can be either **ASYNCHRONOUS** or **SYNCHRONOUS**. (Deprecated) This property was only applicable to First Generation instances.
+        &quot;settingsVersion&quot;: &quot;A String&quot;, # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+        &quot;storageAutoResize&quot;: True or False, # Configuration to increase storage size automatically. The default value is true.
+        &quot;storageAutoResizeLimit&quot;: &quot;A String&quot;, # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
+        &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example **db-custom-1-3840**.
+        &quot;userLabels&quot;: { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+          &quot;a_key&quot;: &quot;A String&quot;,
+        },
+      },
+      &quot;state&quot;: &quot;A String&quot;, # The current serving state of the Cloud SQL instance. This can be one of the following. *SQL_INSTANCE_STATE_UNSPECIFIED*: The state of the instance is unknown. *RUNNABLE*: The instance is running, or has been stopped by owner. *SUSPENDED*: The instance is not available, for example due to problems with billing. *PENDING_DELETE*: The instance is being deleted. *PENDING_CREATE*: The instance is being created. *MAINTENANCE*: The instance is down for maintenance. *FAILED*: The instance creation failed.
+      &quot;suspensionReason&quot;: [ # If the instance state is SUSPENDED, the reason for the suspension.
+        &quot;A String&quot;,
+      ],
+    },
+  ],
+  &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#instancesList*.
+  &quot;nextPageToken&quot;: &quot;A String&quot;, # The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
+  &quot;warnings&quot;: [ # List of warnings that occurred while handling the request.
+    { # An Admin API warning message.
+      &quot;code&quot;: &quot;A String&quot;, # Code to uniquely identify the warning type.
+      &quot;message&quot;: &quot;A String&quot;, # The warning message.
+      &quot;region&quot;: &quot;A String&quot;, # The region name for REGION_UNREACHABLE warning.
+    },
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1.projects.html b/docs/dyn/sqladmin_v1.projects.html
new file mode 100644
index 0000000..eff32cd
--- /dev/null
+++ b/docs/dyn/sqladmin_v1.projects.html
@@ -0,0 +1,91 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1.html">Cloud SQL Admin API</a> . <a href="sqladmin_v1.projects.html">projects</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="sqladmin_v1.projects.instances.html">instances()</a></code>
+</p>
+<p class="firstline">Returns the instances Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1.projects.instances.createEphemeral.html b/docs/dyn/sqladmin_v1.projects.instances.createEphemeral.html
new file mode 100644
index 0000000..87505cb
--- /dev/null
+++ b/docs/dyn/sqladmin_v1.projects.instances.createEphemeral.html
@@ -0,0 +1,124 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1.html">Cloud SQL Admin API</a> . <a href="sqladmin_v1.projects.html">projects</a> . <a href="sqladmin_v1.projects.instances.html">instances</a> . <a href="sqladmin_v1.projects.instances.createEphemeral.html">createEphemeral</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#create">create(project, instance, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="create">create(project, instance, body=None, x__xgafv=None)</code>
+  <pre>Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.
+
+Args:
+  project: string, Project ID of the Cloud SQL project. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # SslCerts create ephemeral certificate request.
+  &quot;access_token&quot;: &quot;A String&quot;, # Access token to include in the signed certificate.
+  &quot;public_key&quot;: &quot;A String&quot;, # PEM encoded public key to include in the signed certificate.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # SslCerts Resource
+  &quot;cert&quot;: &quot;A String&quot;, # PEM representation.
+  &quot;certSerialNumber&quot;: &quot;A String&quot;, # Serial number, as extracted from the certificate.
+  &quot;commonName&quot;: &quot;A String&quot;, # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+  &quot;createTime&quot;: &quot;A String&quot;, # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+  &quot;expirationTime&quot;: &quot;A String&quot;, # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+  &quot;instance&quot;: &quot;A String&quot;, # Name of the database instance.
+  &quot;kind&quot;: &quot;A String&quot;, # This is always sql#sslCert.
+  &quot;sha1Fingerprint&quot;: &quot;A String&quot;, # Sha1 Fingerprint.
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1.projects.instances.html b/docs/dyn/sqladmin_v1.projects.instances.html
new file mode 100644
index 0000000..f0c21d3
--- /dev/null
+++ b/docs/dyn/sqladmin_v1.projects.instances.html
@@ -0,0 +1,387 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1.html">Cloud SQL Admin API</a> . <a href="sqladmin_v1.projects.html">projects</a> . <a href="sqladmin_v1.projects.instances.html">instances</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="sqladmin_v1.projects.instances.createEphemeral.html">createEphemeral()</a></code>
+</p>
+<p class="firstline">Returns the createEphemeral Resource.</p>
+
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#generateEphemeralCert">generateEphemeralCert(project, instance, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, instance, x__xgafv=None)</a></code></p>
+<p class="firstline">Retrieves a resource containing information about a Cloud SQL instance.</p>
+<p class="toc_element">
+  <code><a href="#getConnectSettings">getConnectSettings(project, instance, readTime=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Retrieves connect settings about a Cloud SQL instance.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="generateEphemeralCert">generateEphemeralCert(project, instance, body=None, x__xgafv=None)</code>
+  <pre>Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Ephemeral certificate creation request.
+  &quot;access_token&quot;: &quot;A String&quot;, # Optional. Access token to include in the signed certificate.
+  &quot;public_key&quot;: &quot;A String&quot;, # PEM encoded public key to include in the signed certificate.
+  &quot;readTime&quot;: &quot;A String&quot;, # Optional. Optional snapshot read timestamp to trade freshness for performance.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Ephemeral certificate creation request.
+  &quot;ephemeralCert&quot;: { # SslCerts Resource # Generated cert
+    &quot;cert&quot;: &quot;A String&quot;, # PEM representation.
+    &quot;certSerialNumber&quot;: &quot;A String&quot;, # Serial number, as extracted from the certificate.
+    &quot;commonName&quot;: &quot;A String&quot;, # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    &quot;createTime&quot;: &quot;A String&quot;, # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+    &quot;expirationTime&quot;: &quot;A String&quot;, # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    &quot;instance&quot;: &quot;A String&quot;, # Name of the database instance.
+    &quot;kind&quot;: &quot;A String&quot;, # This is always sql#sslCert.
+    &quot;sha1Fingerprint&quot;: &quot;A String&quot;, # Sha1 Fingerprint.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, instance, x__xgafv=None)</code>
+  <pre>Retrieves a resource containing information about a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Database instance ID. This does not include the project ID. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A Cloud SQL instance resource.
+  &quot;backendType&quot;: &quot;A String&quot;, #  *SECOND_GEN*: Cloud SQL database instance. *EXTERNAL*: A database server that is not managed by Google. This property is read-only; use the *tier* property in the *settings* object to determine the database type.
+  &quot;connectionName&quot;: &quot;A String&quot;, # Connection name of the Cloud SQL instance used in connection strings.
+  &quot;currentDiskSize&quot;: &quot;A String&quot;, # The current disk usage of the instance in bytes. This property has been deprecated. Use the &quot;cloudsql.googleapis.com/database/disk/bytes_used&quot; metric in Cloud Monitoring API instead. Please see this announcement for details.
+  &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The *databaseVersion* field cannot be changed after instance creation. MySQL instances: *MYSQL_8_0*, *MYSQL_5_7* (default), or *MYSQL_5_6*. PostgreSQL instances: *POSTGRES_9_6*, *POSTGRES_10*, *POSTGRES_11*, *POSTGRES_12*, or *POSTGRES_13* (default). SQL Server instances: *SQLSERVER_2017_STANDARD* (default), *SQLSERVER_2017_ENTERPRISE*, *SQLSERVER_2017_EXPRESS*, or *SQLSERVER_2017_WEB*.
+  &quot;diskEncryptionConfiguration&quot;: { # Disk encryption configuration for an instance. # Disk encryption configuration specific to an instance. Applies only to Second Generation instances.
+    &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#diskEncryptionConfiguration**.
+    &quot;kmsKeyName&quot;: &quot;A String&quot;, # Resource name of KMS key for disk encryption
+  },
+  &quot;diskEncryptionStatus&quot;: { # Disk encryption status for an instance. # Disk encryption status specific to an instance. Applies only to Second Generation instances.
+    &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#diskEncryptionStatus**.
+    &quot;kmsKeyVersionName&quot;: &quot;A String&quot;, # KMS key version used to encrypt the Cloud SQL instance resource
+  },
+  &quot;encryptedRootPassword&quot;: &quot;A String&quot;, # For internal usage only. The encrypted password.
+  &quot;etag&quot;: &quot;A String&quot;, # This field is deprecated and will be removed from a future version of the API. Use the *settings.settingsVersion* field instead.
+  &quot;failoverReplica&quot;: { # The name and status of the failover replica. This property is applicable only to Second Generation instances.
+    &quot;available&quot;: True or False, # The availability status of the failover replica. A false status indicates that the failover replica is out of sync. The primary instance can only failover to the failover replica when the status is true.
+    &quot;failoverInstance&quot;: { # Reference to another Cloud SQL instance. # A reference to the failover replica. If specified at instance creation, a failover replica is created for the instance. Currently, the failover replica can only be created in the same region as the primary instance.
+      &quot;name&quot;: &quot;A String&quot;, # The name of the Cloud SQL instance being referenced.
+      &quot;region&quot;: &quot;A String&quot;, # The region of the Cloud SQL instance being referenced.
+    },
+    &quot;name&quot;: &quot;A String&quot;, # The name of the failover replica. If specified at instance creation, a failover replica is created for the instance. The name doesn&#x27;t include the project ID. This property is applicable only to Second Generation instances.
+  },
+  &quot;gceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone.
+  &quot;installedVersion&quot;: &quot;A String&quot;, # installed_version stores the current fully resolved database version including minor version such as MySQL_5.6.50
+  &quot;instanceType&quot;: &quot;A String&quot;, # The instance type. This can be one of the following. *CLOUD_SQL_INSTANCE*: A Cloud SQL instance that is not replicating from a primary instance. *ON_PREMISES_INSTANCE*: An instance running on the customer&#x27;s premises. *READ_REPLICA_INSTANCE*: A Cloud SQL instance configured as a read-replica.
+  &quot;instanceUid&quot;: &quot;A String&quot;, # Uid of the Cloud SQL instance. Used by Pantheon to check instance is created
+  &quot;ipAddresses&quot;: [ # The assigned IP addresses for the instance.
+    { # Database instance IP Mapping.
+      &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
+      &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired.
+      &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported.
+    },
+  ],
+  &quot;ipv6Address&quot;: &quot;A String&quot;, # The IPv6 address assigned to the instance. (Deprecated) This property was applicable only to First Generation instances.
+  &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#instance*.
+  &quot;masterInstance&quot;: { # Reference to another Cloud SQL instance. # The reference to the instance which will act as primary in the replication setup.
+    &quot;name&quot;: &quot;A String&quot;, # The name of the Cloud SQL instance being referenced.
+    &quot;region&quot;: &quot;A String&quot;, # The region of the Cloud SQL instance being referenced.
+  },
+  &quot;masterInstanceName&quot;: &quot;A String&quot;, # The name of the instance which will act as primary in the replication setup.
+  &quot;maxDiskSize&quot;: &quot;A String&quot;, # The maximum disk size of the instance in bytes.
+  &quot;name&quot;: &quot;A String&quot;, # Name of the Cloud SQL instance. This does not include the project ID.
+  &quot;onPremisesConfiguration&quot;: { # On-premises instance configuration. # Configuration specific to on-premises instances.
+    &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
+    &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
+    &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponsing public key is encoded in the client&#x27;s certificate.
+    &quot;dumpFilePath&quot;: &quot;A String&quot;, # The dump file to create the Cloud SQL replica.
+    &quot;hostPort&quot;: &quot;A String&quot;, # The host and port of the on-premises instance in host:port format
+    &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#onPremisesConfiguration*.
+    &quot;password&quot;: &quot;A String&quot;, # The password for connecting to on-premises instance.
+    &quot;username&quot;: &quot;A String&quot;, # The username for connecting to on-premises instance.
+  },
+  &quot;outOfDiskReport&quot;: { # This message wraps up the information written by out-of-disk detection job. # This field represents the report generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+    &quot;sqlMinRecommendedIncreaseSizeGb&quot;: 42, # The minimum recommended increase size in GigaBytes This field is consumed by the frontend Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend
+    &quot;sqlOutOfDiskState&quot;: &quot;A String&quot;, # This field represents the state generated by the proactive database wellness job for OutOfDisk issues. Writers: -- the proactive database wellness job for OOD. Readers: -- the Pantheon frontend -- the proactive database wellness job
+  },
+  &quot;project&quot;: &quot;A String&quot;, # The project ID of the project containing the Cloud SQL instance. The Google apps domain is prefixed if applicable.
+  &quot;region&quot;: &quot;A String&quot;, # The geographical region. Can be *us-central* (*FIRST_GEN* instances only) *us-central1* (*SECOND_GEN* instances only) *asia-east1* or *europe-west1*. Defaults to *us-central* or *us-central1* depending on the instance type. The region cannot be changed after instance creation.
+  &quot;replicaConfiguration&quot;: { # Read-replica configuration for connecting to the primary instance. # Configuration specific to failover replicas and read replicas.
+    &quot;failoverTarget&quot;: True or False, # Specifies if the replica is the failover target. If the field is set to *true* the replica will be designated as a failover replica. In case the primary instance fails, the replica instance will be promoted as the new primary instance. Only one replica can be specified as failover target, and the replica has to be in different zone with the primary instance.
+    &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#replicaConfiguration*.
+    &quot;mysqlReplicaConfiguration&quot;: { # Read-replica configuration specific to MySQL databases. # MySQL specific configuration when replicating from a MySQL on-premises primary instance. Replication configuration information such as the username, password, certificates, and keys are not stored in the instance metadata.The configuration information is used only to set up the replication connection and is stored by MySQL in a file named *master.info* in the data directory.
+      &quot;caCertificate&quot;: &quot;A String&quot;, # PEM representation of the trusted CA&#x27;s x509 certificate.
+      &quot;clientCertificate&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s x509 certificate.
+      &quot;clientKey&quot;: &quot;A String&quot;, # PEM representation of the replica&#x27;s private key. The corresponsing public key is encoded in the client&#x27;s certificate.
+      &quot;connectRetryInterval&quot;: 42, # Seconds to wait between connect retries. MySQL&#x27;s default is 60 seconds.
+      &quot;dumpFilePath&quot;: &quot;A String&quot;, # Path to a SQL dump file in Google Cloud Storage from which the replica instance is to be created. The URI is in the form gs://bucketName/fileName. Compressed gzip files (.gz) are also supported. Dumps have the binlog co-ordinates from which replication begins. This can be accomplished by setting --master-data to 1 when using mysqldump.
+      &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#mysqlReplicaConfiguration**.
+      &quot;masterHeartbeatPeriod&quot;: &quot;A String&quot;, # Interval in milliseconds between replication heartbeats.
+      &quot;password&quot;: &quot;A String&quot;, # The password for the replication connection.
+      &quot;sslCipher&quot;: &quot;A String&quot;, # A list of permissible ciphers to use for SSL encryption.
+      &quot;username&quot;: &quot;A String&quot;, # The username for the replication connection.
+      &quot;verifyServerCertificate&quot;: True or False, # Whether or not to check the primary instance&#x27;s Common Name value in the certificate that it sends during the SSL handshake.
+    },
+  },
+  &quot;replicaInstances&quot;: [ # The replicas of the instance.
+    { # Reference to another Cloud SQL instance.
+      &quot;name&quot;: &quot;A String&quot;, # The name of the Cloud SQL instance being referenced.
+      &quot;region&quot;: &quot;A String&quot;, # The region of the Cloud SQL instance being referenced.
+    },
+  ],
+  &quot;replicaNames&quot;: [ # The replicas of the instance.
+    &quot;A String&quot;,
+  ],
+  &quot;rootPassword&quot;: &quot;A String&quot;, # Initial root password. Use only on creation.
+  &quot;satisfiesPzs&quot;: True or False, # The status indicating if instance satisfiesPzs. Reserved for future use.
+  &quot;scheduledMaintenance&quot;: { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
+    &quot;canDefer&quot;: True or False,
+    &quot;canReschedule&quot;: True or False, # If the scheduled maintenance can be rescheduled.
+    &quot;scheduleDeadlineTime&quot;: &quot;A String&quot;, # Maintenance cannot be rescheduled to start beyond this deadline.
+    &quot;startTime&quot;: &quot;A String&quot;, # The start time of any upcoming scheduled maintenance for this instance.
+  },
+  &quot;secondaryGceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
+  &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
+  &quot;serverCaCert&quot;: { # SslCerts Resource # SSL configuration.
+    &quot;cert&quot;: &quot;A String&quot;, # PEM representation.
+    &quot;certSerialNumber&quot;: &quot;A String&quot;, # Serial number, as extracted from the certificate.
+    &quot;commonName&quot;: &quot;A String&quot;, # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    &quot;createTime&quot;: &quot;A String&quot;, # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+    &quot;expirationTime&quot;: &quot;A String&quot;, # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    &quot;instance&quot;: &quot;A String&quot;, # Name of the database instance.
+    &quot;kind&quot;: &quot;A String&quot;, # This is always sql#sslCert.
+    &quot;sha1Fingerprint&quot;: &quot;A String&quot;, # Sha1 Fingerprint.
+  },
+  &quot;serviceAccountEmailAddress&quot;: &quot;A String&quot;, # The service account email address assigned to the instance. This property is read-only.
+  &quot;settings&quot;: { # Database instance settings. # The user settings.
+    &quot;activationPolicy&quot;: &quot;A String&quot;, # The activation policy specifies when the instance is activated; it is applicable only when the instance state is RUNNABLE. Valid values: **ALWAYS**: The instance is on, and remains so even in the absence of connection requests. **NEVER**: The instance is off; it is not activated, even if a connection request arrives.
+    &quot;activeDirectoryConfig&quot;: { # Active Directory configuration, relevant only for Cloud SQL for SQL Server. # Active Directory configuration, relevant only for Cloud SQL for SQL Server.
+      &quot;domain&quot;: &quot;A String&quot;, # The name of the domain (e.g., mydomain.com).
+      &quot;kind&quot;: &quot;A String&quot;, # This is always sql#activeDirectoryConfig.
+    },
+    &quot;availabilityType&quot;: &quot;A String&quot;, # Availability type. Potential values: **ZONAL**: The instance serves data from only one zone. Outages in that zone affect data accessibility. **REGIONAL**: The instance can serve data from more than one zone in a region (it is highly available). For more information, see [Overview of the High Availability Configuration](/sql/docs/postgres/high-availability).
+    &quot;backupConfiguration&quot;: { # Database instance backup configuration. # The daily backup configuration for the instance.
+      &quot;backupRetentionSettings&quot;: { # We currently only support backup retention by specifying the number of backups we will retain. # Backup retention settings.
+        &quot;retainedBackups&quot;: 42, # Depending on the value of retention_unit, this is used to determine if a backup needs to be deleted. If retention_unit is &#x27;COUNT&#x27;, we will retain this many backups.
+        &quot;retentionUnit&quot;: &quot;A String&quot;, # The unit that &#x27;retained_backups&#x27; represents.
+      },
+      &quot;binaryLogEnabled&quot;: True or False, # (MySQL only) Whether binary log is enabled. If backup configuration is disabled, binarylog must be disabled as well.
+      &quot;enabled&quot;: True or False, # Whether this configuration is enabled.
+      &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#backupConfiguration**.
+      &quot;location&quot;: &quot;A String&quot;, # Location of the backup
+      &quot;pointInTimeRecoveryEnabled&quot;: True or False, # (Postgres only) Whether point in time recovery is enabled.
+      &quot;replicationLogArchivingEnabled&quot;: True or False, # Reserved for future use.
+      &quot;startTime&quot;: &quot;A String&quot;, # Start time for the daily backup configuration in UTC timezone in the 24 hour format - **HH:MM**.
+      &quot;transactionLogRetentionDays&quot;: 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
+    },
+    &quot;collation&quot;: &quot;A String&quot;, # The name of server Instance collation.
+    &quot;crashSafeReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether database flags for crash-safe replication are enabled. This property was only applicable to First Generation instances.
+    &quot;dataDiskSizeGb&quot;: &quot;A String&quot;, # The size of data disk, in GB. The data disk size minimum is 10GB.
+    &quot;dataDiskType&quot;: &quot;A String&quot;, # The type of data disk: **PD_SSD** (default) or **PD_HDD**.
+    &quot;databaseFlags&quot;: [ # The database flags passed to the instance at startup.
+      { # Database flags for Cloud SQL instances.
+        &quot;name&quot;: &quot;A String&quot;, # The name of the flag. These flags are passed at instance startup, so include both server options and system variables for MySQL. Flags are specified with underscores, not hyphens. For more information, see [Configuring Database Flags](/sql/docs/mysql/flags) in the Cloud SQL documentation.
+        &quot;value&quot;: &quot;A String&quot;, # The value of the flag. Booleans are set to **on** for true and **off** for false. This field must be omitted if the flag doesn&#x27;t take a value.
+      },
+    ],
+    &quot;databaseReplicationEnabled&quot;: True or False, # Configuration specific to read replica instances. Indicates whether replication is enabled or not.
+    &quot;denyMaintenancePeriods&quot;: [ # Deny maintenance periods
+      { # Deny maintenance Periods. This specifies a date range during when all CSA rollout will be denied.
+        &quot;endDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; end date. If the year of the end date is empty, the year of the start date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+        &quot;startDate&quot;: &quot;A String&quot;, # &quot;deny maintenance period&quot; start date. If the year of the start date is empty, the year of the end date also must be empty. In this case, it means the no maintenance interval recurs every year. The date is in format yyyy-mm-dd i.e., 2020-11-01, or mm-dd, i.e., 11-01
+        &quot;time&quot;: &quot;A String&quot;, # Time in UTC when the &quot;deny maintenance period&quot; starts on start_date and ends on end_date. The time is in format: HH:mm:SS, i.e., 00:00:00
+      },
+    ],
+    &quot;insightsConfig&quot;: { # Insights configuration. This specifies when Cloud SQL Insights feature is enabled and optional configuration. # Insights configuration, for now relevant only for Postgres.
+      &quot;queryInsightsEnabled&quot;: True or False, # Whether Query Insights feature is enabled.
+      &quot;queryPlansPerMinute&quot;: 42, # Number of query plans generated by Insights per minute. Default is 5. Changing this will restart the database.
+      &quot;queryStringLength&quot;: 42, # Maximum query length stored in bytes. Default value: 1024 bytes. Range: 256-4500 bytes. Query length more than this field value will be truncated to this value. When unset, query length will be the default value. Changing query length will restart the database.
+      &quot;recordApplicationTags&quot;: True or False, # Whether Query Insights will record application tags from query when enabled.
+      &quot;recordClientAddress&quot;: True or False, # Whether Query Insights will record client address when enabled.
+    },
+    &quot;ipConfiguration&quot;: { # IP Management configuration. # The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled for Second Generation instances.
+      &quot;authorizedNetworks&quot;: [ # The list of external networks that are allowed to connect to the instance using the IP. In &#x27;CIDR&#x27; notation, also known as &#x27;slash&#x27; notation (for example: **192.168.100.0/24**).
+        { # An entry for an Access Control list.
+          &quot;expirationTime&quot;: &quot;A String&quot;, # The time when this access control entry expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+          &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#aclEntry**.
+          &quot;name&quot;: &quot;A String&quot;, # Optional. A label to identify this entry.
+          &quot;value&quot;: &quot;A String&quot;, # The allowlisted value for the access control list.
+        },
+      ],
+      &quot;ipv4Enabled&quot;: True or False, # Whether the instance is assigned a public IP address or not.
+      &quot;privateNetwork&quot;: &quot;A String&quot;, # The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, **/projects/myProject/global/networks/default**. This setting can be updated, but it cannot be removed after it is set.
+      &quot;requireSsl&quot;: True or False, # Whether SSL connections over IP are enforced or not.
+    },
+    &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#settings**.
+    &quot;locationPreference&quot;: { # Preferred location. This specifies where a Cloud SQL instance is located. Note that if the preferred location is not available, the instance will be located as close as possible within the region. Only one location may be specified. # The location preference settings. This allows the instance to be located as near as possible to Compute Engine zone for better performance.
+      &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#locationPreference**.
+      &quot;secondaryZone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone for the secondary/failover (for example: us-central1-a, us-central1-b, etc.). Reserved for future use.
+      &quot;zone&quot;: &quot;A String&quot;, # The preferred Compute Engine zone (for example: us-central1-a, us-central1-b, etc.).
+    },
+    &quot;maintenanceWindow&quot;: { # Maintenance window. This specifies when a Cloud SQL instance is restarted for system maintenance purposes. # The maintenance window for this instance. This specifies when the instance can be restarted for maintenance purposes.
+      &quot;day&quot;: 42, # day of week (1-7), starting on Monday.
+      &quot;hour&quot;: 42, # hour of day - 0 to 23.
+      &quot;kind&quot;: &quot;A String&quot;, # This is always **sql#maintenanceWindow**.
+      &quot;updateTrack&quot;: &quot;A String&quot;, # Maintenance timing setting: **canary** (Earlier) or **stable** (Later). [Learn more] (https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/instance-settings#maintenance-timing-2ndgen).
+    },
+    &quot;pricingPlan&quot;: &quot;A String&quot;, # The pricing plan for this instance. This can be either **PER_USE** or **PACKAGE**. Only **PER_USE** is supported for Second Generation instances.
+    &quot;replicationType&quot;: &quot;A String&quot;, # The type of replication this instance uses. This can be either **ASYNCHRONOUS** or **SYNCHRONOUS**. (Deprecated) This property was only applicable to First Generation instances.
+    &quot;settingsVersion&quot;: &quot;A String&quot;, # The version of instance settings. This is a required field for update method to make sure concurrent updates are handled properly. During update, use the most recent settingsVersion value for this instance and do not try to update this value.
+    &quot;storageAutoResize&quot;: True or False, # Configuration to increase storage size automatically. The default value is true.
+    &quot;storageAutoResizeLimit&quot;: &quot;A String&quot;, # The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.
+    &quot;tier&quot;: &quot;A String&quot;, # The tier (or machine type) for this instance, for example **db-custom-1-3840**.
+    &quot;userLabels&quot;: { # User-provided labels, represented as a dictionary where each label is a single key value pair.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+  },
+  &quot;state&quot;: &quot;A String&quot;, # The current serving state of the Cloud SQL instance. This can be one of the following. *SQL_INSTANCE_STATE_UNSPECIFIED*: The state of the instance is unknown. *RUNNABLE*: The instance is running, or has been stopped by owner. *SUSPENDED*: The instance is not available, for example due to problems with billing. *PENDING_DELETE*: The instance is being deleted. *PENDING_CREATE*: The instance is being created. *MAINTENANCE*: The instance is down for maintenance. *FAILED*: The instance creation failed.
+  &quot;suspensionReason&quot;: [ # If the instance state is SUSPENDED, the reason for the suspension.
+    &quot;A String&quot;,
+  ],
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="getConnectSettings">getConnectSettings(project, instance, readTime=None, x__xgafv=None)</code>
+  <pre>Retrieves connect settings about a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  readTime: string, Optional. Optional snapshot read timestamp to trade freshness for performance.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Connect settings retrieval response.
+  &quot;backendType&quot;: &quot;A String&quot;, # **SECOND_GEN**: Cloud SQL database instance. **EXTERNAL**: A database server that is not managed by Google. This property is read-only; use the **tier** property in the **settings** object to determine the database type.
+  &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The **databaseVersion** field cannot be changed after instance creation. MySQL instances: **MYSQL_8_0**, **MYSQL_5_7** (default), or **MYSQL_5_6**. PostgreSQL instances: **POSTGRES_9_6**, **POSTGRES_10**, **POSTGRES_11** or **POSTGRES_12** (default). SQL Server instances: **SQLSERVER_2017_STANDARD** (default), **SQLSERVER_2017_ENTERPRISE**, **SQLSERVER_2017_EXPRESS**, or **SQLSERVER_2017_WEB**.
+  &quot;ipAddresses&quot;: [ # The assigned IP addresses for the instance.
+    { # Database instance IP Mapping.
+      &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
+      &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**. This field is only available when the IP is scheduled to be retired.
+      &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A **PRIMARY** address is a public address that can accept incoming connections. A **PRIVATE** address is a private address that can accept incoming connections. An **OUTGOING** address is the source address of connections originating from the instance, if supported.
+    },
+  ],
+  &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#connectSettings`.
+  &quot;serverCaCert&quot;: { # SslCerts Resource # SSL configuration.
+    &quot;cert&quot;: &quot;A String&quot;, # PEM representation.
+    &quot;certSerialNumber&quot;: &quot;A String&quot;, # Serial number, as extracted from the certificate.
+    &quot;commonName&quot;: &quot;A String&quot;, # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    &quot;createTime&quot;: &quot;A String&quot;, # The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**
+    &quot;expirationTime&quot;: &quot;A String&quot;, # The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example **2012-11-15T16:19:00.094Z**.
+    &quot;instance&quot;: &quot;A String&quot;, # Name of the database instance.
+    &quot;kind&quot;: &quot;A String&quot;, # This is always sql#sslCert.
+    &quot;sha1Fingerprint&quot;: &quot;A String&quot;, # Sha1 Fingerprint.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta4.backupRuns.html b/docs/dyn/sqladmin_v1beta4.backupRuns.html
index cb580b9..8868eab 100644
--- a/docs/dyn/sqladmin_v1beta4.backupRuns.html
+++ b/docs/dyn/sqladmin_v1beta4.backupRuns.html
@@ -88,7 +88,7 @@
 <p class="firstline">Creates a new backup run on demand. This method is applicable only to Second Generation instances.</p>
 <p class="toc_element">
   <code><a href="#list">list(project, instance, maxResults=None, pageToken=None, x__xgafv=None)</a></code></p>
-<p class="firstline">Lists all backup runs associated with a given instance and configuration in the reverse chronological order of the backup initiation time.</p>
+<p class="firstline">Lists all backup runs associated with the project or a given instance and configuration in the reverse chronological order of the backup initiation time.</p>
 <p class="toc_element">
   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
 <p class="firstline">Retrieves the next page of results.</p>
@@ -351,11 +351,11 @@
 
 <div class="method">
     <code class="details" id="list">list(project, instance, maxResults=None, pageToken=None, x__xgafv=None)</code>
-  <pre>Lists all backup runs associated with a given instance and configuration in the reverse chronological order of the backup initiation time.
+  <pre>Lists all backup runs associated with the project or a given instance and configuration in the reverse chronological order of the backup initiation time.
 
 Args:
   project: string, Project ID of the project that contains the instance. (required)
-  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  instance: string, Cloud SQL instance ID, or &quot;-&quot; for all instances. This does not include the project ID. (required)
   maxResults: integer, Maximum number of backup runs per response.
   pageToken: string, A previously-returned page token representing part of the larger set of results to view.
   x__xgafv: string, V1 error format.
diff --git a/docs/dyn/sqladmin_v1beta4.connect.html b/docs/dyn/sqladmin_v1beta4.connect.html
new file mode 100644
index 0000000..afd10a4
--- /dev/null
+++ b/docs/dyn/sqladmin_v1beta4.connect.html
@@ -0,0 +1,172 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="sqladmin_v1beta4.html">Cloud SQL Admin API</a> . <a href="sqladmin_v1beta4.connect.html">connect</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#close">close()</a></code></p>
+<p class="firstline">Close httplib2 connections.</p>
+<p class="toc_element">
+  <code><a href="#generateEphemeralCert">generateEphemeralCert(project, instance, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.</p>
+<p class="toc_element">
+  <code><a href="#get">get(project, instance, readTime=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Retrieves connect settings about a Cloud SQL instance.</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="close">close()</code>
+  <pre>Close httplib2 connections.</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="generateEphemeralCert">generateEphemeralCert(project, instance, body=None, x__xgafv=None)</code>
+  <pre>Generates a short-lived X509 certificate containing the provided public key and signed by a private key specific to the target instance. Users may use the certificate to authenticate as themselves when connecting to the database.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Ephemeral certificate creation request.
+  &quot;access_token&quot;: &quot;A String&quot;, # Optional. Access token to include in the signed certificate.
+  &quot;public_key&quot;: &quot;A String&quot;, # PEM encoded public key to include in the signed certificate.
+  &quot;readTime&quot;: &quot;A String&quot;, # Optional. Optional snapshot read timestamp to trade freshness for performance.
+}
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Ephemeral certificate creation request.
+  &quot;ephemeralCert&quot;: { # SslCerts Resource # Generated cert
+    &quot;cert&quot;: &quot;A String&quot;, # PEM representation.
+    &quot;certSerialNumber&quot;: &quot;A String&quot;, # Serial number, as extracted from the certificate.
+    &quot;commonName&quot;: &quot;A String&quot;, # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    &quot;createTime&quot;: &quot;A String&quot;, # The time when the certificate was created in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*
+    &quot;expirationTime&quot;: &quot;A String&quot;, # The time when the certificate expires in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+    &quot;instance&quot;: &quot;A String&quot;, # Name of the database instance.
+    &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#sslCert*.
+    &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
+    &quot;sha1Fingerprint&quot;: &quot;A String&quot;, # Sha1 Fingerprint.
+  },
+}</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="get">get(project, instance, readTime=None, x__xgafv=None)</code>
+  <pre>Retrieves connect settings about a Cloud SQL instance.
+
+Args:
+  project: string, Project ID of the project that contains the instance. (required)
+  instance: string, Cloud SQL instance ID. This does not include the project ID. (required)
+  readTime: string, Optional. Optional snapshot read timestamp to trade freshness for performance.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Connect settings retrieval response.
+  &quot;backendType&quot;: &quot;A String&quot;, # **SECOND_GEN**: Cloud SQL database instance. **EXTERNAL**: A database server that is not managed by Google. This property is read-only; use the **tier** property in the **settings** object to determine the database type.
+  &quot;databaseVersion&quot;: &quot;A String&quot;, # The database engine type and version. The **databaseVersion** field cannot be changed after instance creation. MySQL instances: **MYSQL_8_0**, **MYSQL_5_7** (default), or **MYSQL_5_6**. PostgreSQL instances: **POSTGRES_9_6**, **POSTGRES_10**, **POSTGRES_11** or **POSTGRES_12** (default). SQL Server instances: **SQLSERVER_2017_STANDARD** (default), **SQLSERVER_2017_ENTERPRISE**, **SQLSERVER_2017_EXPRESS**, or **SQLSERVER_2017_WEB**.
+  &quot;ipAddresses&quot;: [ # The assigned IP addresses for the instance.
+    { # Database instance IP Mapping.
+      &quot;ipAddress&quot;: &quot;A String&quot;, # The IP address assigned.
+      &quot;timeToRetire&quot;: &quot;A String&quot;, # The due time for this IP to be retired in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*. This field is only available when the IP is scheduled to be retired.
+      &quot;type&quot;: &quot;A String&quot;, # The type of this IP address. A *PRIMARY* address is a public address that can accept incoming connections. A *PRIVATE* address is a private address that can accept incoming connections. An *OUTGOING* address is the source address of connections originating from the instance, if supported.
+    },
+  ],
+  &quot;kind&quot;: &quot;A String&quot;, # This is always `sql#connectSettings`.
+  &quot;serverCaCert&quot;: { # SslCerts Resource # SSL configuration.
+    &quot;cert&quot;: &quot;A String&quot;, # PEM representation.
+    &quot;certSerialNumber&quot;: &quot;A String&quot;, # Serial number, as extracted from the certificate.
+    &quot;commonName&quot;: &quot;A String&quot;, # User supplied name. Constrained to [a-zA-Z.-_ ]+.
+    &quot;createTime&quot;: &quot;A String&quot;, # The time when the certificate was created in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*
+    &quot;expirationTime&quot;: &quot;A String&quot;, # The time when the certificate expires in RFC 3339 format, for example *2012-11-15T16:19:00.094Z*.
+    &quot;instance&quot;: &quot;A String&quot;, # Name of the database instance.
+    &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#sslCert*.
+    &quot;selfLink&quot;: &quot;A String&quot;, # The URI of this resource.
+    &quot;sha1Fingerprint&quot;: &quot;A String&quot;, # Sha1 Fingerprint.
+  },
+}</pre>
+</div>
+
+</body></html>
\ No newline at end of file
diff --git a/docs/dyn/sqladmin_v1beta4.html b/docs/dyn/sqladmin_v1beta4.html
index 9d0a7a4..cd70700 100644
--- a/docs/dyn/sqladmin_v1beta4.html
+++ b/docs/dyn/sqladmin_v1beta4.html
@@ -80,6 +80,11 @@
 <p class="firstline">Returns the backupRuns Resource.</p>
 
 <p class="toc_element">
+  <code><a href="sqladmin_v1beta4.connect.html">connect()</a></code>
+</p>
+<p class="firstline">Returns the connect Resource.</p>
+
+<p class="toc_element">
   <code><a href="sqladmin_v1beta4.databases.html">databases()</a></code>
 </p>
 <p class="firstline">Returns the databases Resource.</p>
diff --git a/docs/dyn/sqladmin_v1beta4.instances.html b/docs/dyn/sqladmin_v1beta4.instances.html
index cb13f5d..051036d 100644
--- a/docs/dyn/sqladmin_v1beta4.instances.html
+++ b/docs/dyn/sqladmin_v1beta4.instances.html
@@ -250,7 +250,7 @@
     &quot;destinationInstanceName&quot;: &quot;A String&quot;, # Name of the Cloud SQL instance to be created as a clone.
     &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#cloneContext*.
     &quot;pitrTimestampMs&quot;: &quot;A String&quot;, # Reserved for future use.
-    &quot;pointInTime&quot;: &quot;A String&quot;, # Reserved for future use.
+    &quot;pointInTime&quot;: &quot;A String&quot;, # Timestamp, if specified, identifies the time to which the source instance is cloned.
   },
 }
 
@@ -829,6 +829,7 @@
   &quot;scheduledMaintenance&quot;: { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
     &quot;canDefer&quot;: True or False,
     &quot;canReschedule&quot;: True or False, # If the scheduled maintenance can be rescheduled.
+    &quot;scheduleDeadlineTime&quot;: &quot;A String&quot;, # Maintenance cannot be rescheduled to start beyond this deadline.
     &quot;startTime&quot;: &quot;A String&quot;, # The start time of any upcoming scheduled maintenance for this instance.
   },
   &quot;secondaryGceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
@@ -864,7 +865,7 @@
       &quot;enabled&quot;: True or False, # Whether this configuration is enabled.
       &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#backupConfiguration*.
       &quot;location&quot;: &quot;A String&quot;, # Location of the backup
-      &quot;pointInTimeRecoveryEnabled&quot;: True or False, # Reserved for future use.
+      &quot;pointInTimeRecoveryEnabled&quot;: True or False, # (Postgres only) Whether point in time recovery is enabled.
       &quot;replicationLogArchivingEnabled&quot;: True or False, # Reserved for future use.
       &quot;startTime&quot;: &quot;A String&quot;, # Start time for the daily backup configuration in UTC timezone in the 24 hour format - *HH:MM*.
       &quot;transactionLogRetentionDays&quot;: 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
@@ -1131,6 +1132,7 @@
   &quot;scheduledMaintenance&quot;: { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
     &quot;canDefer&quot;: True or False,
     &quot;canReschedule&quot;: True or False, # If the scheduled maintenance can be rescheduled.
+    &quot;scheduleDeadlineTime&quot;: &quot;A String&quot;, # Maintenance cannot be rescheduled to start beyond this deadline.
     &quot;startTime&quot;: &quot;A String&quot;, # The start time of any upcoming scheduled maintenance for this instance.
   },
   &quot;secondaryGceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
@@ -1166,7 +1168,7 @@
       &quot;enabled&quot;: True or False, # Whether this configuration is enabled.
       &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#backupConfiguration*.
       &quot;location&quot;: &quot;A String&quot;, # Location of the backup
-      &quot;pointInTimeRecoveryEnabled&quot;: True or False, # Reserved for future use.
+      &quot;pointInTimeRecoveryEnabled&quot;: True or False, # (Postgres only) Whether point in time recovery is enabled.
       &quot;replicationLogArchivingEnabled&quot;: True or False, # Reserved for future use.
       &quot;startTime&quot;: &quot;A String&quot;, # Start time for the daily backup configuration in UTC timezone in the 24 hour format - *HH:MM*.
       &quot;transactionLogRetentionDays&quot;: 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
@@ -1409,6 +1411,7 @@
       &quot;scheduledMaintenance&quot;: { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
         &quot;canDefer&quot;: True or False,
         &quot;canReschedule&quot;: True or False, # If the scheduled maintenance can be rescheduled.
+        &quot;scheduleDeadlineTime&quot;: &quot;A String&quot;, # Maintenance cannot be rescheduled to start beyond this deadline.
         &quot;startTime&quot;: &quot;A String&quot;, # The start time of any upcoming scheduled maintenance for this instance.
       },
       &quot;secondaryGceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
@@ -1444,7 +1447,7 @@
           &quot;enabled&quot;: True or False, # Whether this configuration is enabled.
           &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#backupConfiguration*.
           &quot;location&quot;: &quot;A String&quot;, # Location of the backup
-          &quot;pointInTimeRecoveryEnabled&quot;: True or False, # Reserved for future use.
+          &quot;pointInTimeRecoveryEnabled&quot;: True or False, # (Postgres only) Whether point in time recovery is enabled.
           &quot;replicationLogArchivingEnabled&quot;: True or False, # Reserved for future use.
           &quot;startTime&quot;: &quot;A String&quot;, # Start time for the daily backup configuration in UTC timezone in the 24 hour format - *HH:MM*.
           &quot;transactionLogRetentionDays&quot;: 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
@@ -1659,6 +1662,7 @@
   &quot;scheduledMaintenance&quot;: { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
     &quot;canDefer&quot;: True or False,
     &quot;canReschedule&quot;: True or False, # If the scheduled maintenance can be rescheduled.
+    &quot;scheduleDeadlineTime&quot;: &quot;A String&quot;, # Maintenance cannot be rescheduled to start beyond this deadline.
     &quot;startTime&quot;: &quot;A String&quot;, # The start time of any upcoming scheduled maintenance for this instance.
   },
   &quot;secondaryGceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
@@ -1694,7 +1698,7 @@
       &quot;enabled&quot;: True or False, # Whether this configuration is enabled.
       &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#backupConfiguration*.
       &quot;location&quot;: &quot;A String&quot;, # Location of the backup
-      &quot;pointInTimeRecoveryEnabled&quot;: True or False, # Reserved for future use.
+      &quot;pointInTimeRecoveryEnabled&quot;: True or False, # (Postgres only) Whether point in time recovery is enabled.
       &quot;replicationLogArchivingEnabled&quot;: True or False, # Reserved for future use.
       &quot;startTime&quot;: &quot;A String&quot;, # Start time for the daily backup configuration in UTC timezone in the 24 hour format - *HH:MM*.
       &quot;transactionLogRetentionDays&quot;: 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
@@ -2648,6 +2652,7 @@
   &quot;scheduledMaintenance&quot;: { # Any scheduled maintenancce for this instance. # The start time of any upcoming scheduled maintenance for this instance.
     &quot;canDefer&quot;: True or False,
     &quot;canReschedule&quot;: True or False, # If the scheduled maintenance can be rescheduled.
+    &quot;scheduleDeadlineTime&quot;: &quot;A String&quot;, # Maintenance cannot be rescheduled to start beyond this deadline.
     &quot;startTime&quot;: &quot;A String&quot;, # The start time of any upcoming scheduled maintenance for this instance.
   },
   &quot;secondaryGceZone&quot;: &quot;A String&quot;, # The Compute Engine zone that the failover instance is currently serving from for a regional instance. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary/failover zone. Reserved for future use.
@@ -2683,7 +2688,7 @@
       &quot;enabled&quot;: True or False, # Whether this configuration is enabled.
       &quot;kind&quot;: &quot;A String&quot;, # This is always *sql#backupConfiguration*.
       &quot;location&quot;: &quot;A String&quot;, # Location of the backup
-      &quot;pointInTimeRecoveryEnabled&quot;: True or False, # Reserved for future use.
+      &quot;pointInTimeRecoveryEnabled&quot;: True or False, # (Postgres only) Whether point in time recovery is enabled.
       &quot;replicationLogArchivingEnabled&quot;: True or False, # Reserved for future use.
       &quot;startTime&quot;: &quot;A String&quot;, # Start time for the daily backup configuration in UTC timezone in the 24 hour format - *HH:MM*.
       &quot;transactionLogRetentionDays&quot;: 42, # The number of days of transaction logs we retain for point in time restore, from 1-7.
diff --git a/docs/dyn/storagetransfer_v1.transferJobs.html b/docs/dyn/storagetransfer_v1.transferJobs.html
index 06592c9..732fc7e 100644
--- a/docs/dyn/storagetransfer_v1.transferJobs.html
+++ b/docs/dyn/storagetransfer_v1.transferJobs.html
@@ -115,16 +115,16 @@
   &quot;description&quot;: &quot;A String&quot;, # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
   &quot;lastModificationTime&quot;: &quot;A String&quot;, # Output only. The time that the transfer job was last modified.
   &quot;latestOperationName&quot;: &quot;A String&quot;, # The name of the most recently started TransferOperation of this JobConfig. Present if a TransferOperation has been created for this JobConfig.
-  &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service will assign a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names will fail with an INVALID_ARGUMENT error.
-  &quot;notificationConfig&quot;: { # Specification to configure notifications published to Cloud Pub/Sub. Notifications will be published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` will contain a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
+  &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service assigns a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names fail with an INVALID_ARGUMENT error.
+  &quot;notificationConfig&quot;: { # Specification to configure notifications published to Pub/Sub. Notifications are published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` contains a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
     &quot;eventTypes&quot;: [ # Event types for which a notification is desired. If empty, send notifications for all event types.
       &quot;A String&quot;,
     ],
     &quot;payloadFormat&quot;: &quot;A String&quot;, # Required. The desired format of the notification message payloads.
-    &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Cloud Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format will result in an INVALID_ARGUMENT error.
+    &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format results in an INVALID_ARGUMENT error.
   },
   &quot;projectId&quot;: &quot;A String&quot;, # The ID of the Google Cloud Platform Project that owns the job.
-  &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job will never execute a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
+  &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job never executes a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
     &quot;endTimeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The time in UTC that no further transfer operations are scheduled. Combined with schedule_end_date, `end_time_of_day` specifies the end date and time for starting new transfer operations. This field must be greater than or equal to the timestamp corresponding to the combintation of schedule_start_date and start_time_of_day, and is subject to the following: * If `end_time_of_day` is not set and `schedule_end_date` is set, then a default value of `23:59:59` is used for `end_time_of_day`. * If `end_time_of_day` is set and `schedule_end_date` is not set, then INVALID_ARGUMENT is returned.
       &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
       &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
@@ -132,12 +132,12 @@
       &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
     },
     &quot;repeatInterval&quot;: &quot;A String&quot;, # Interval between the start of each scheduled TransferOperation. If unspecified, the default value is 24 hours. This value may not be less than 1 hour.
-    &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job will run once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job will run each day at start_time_of_day through `schedule_end_date`.
+    &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job runs once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job runs each day at start_time_of_day through `schedule_end_date`.
       &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
       &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
       &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
     },
-    &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job will start later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it will create a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation will take place on June 3 at midnight UTC.
+    &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job starts later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it creates a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation takes place on June 3 at midnight UTC.
       &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
       &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
       &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
@@ -158,7 +158,7 @@
       },
       &quot;bucketName&quot;: &quot;A String&quot;, # Required. S3 Bucket name (see [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
       &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;.
-      &quot;roleArn&quot;: &quot;A String&quot;, # Input only. Role arn to support temporary credentials via AssumeRoleWithWebIdentity. When role arn is provided, transfer service will fetch temporary credentials for the session using AssumeRoleWithWebIdentity call for the provided role using the [GoogleServiceAccount] for this project.
+      &quot;roleArn&quot;: &quot;A String&quot;, # Input only. The Amazon Resource Name (ARN) of the role to support temporary credentials via `AssumeRoleWithWebIdentity`. For more information about ARNs, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns). When a role ARN is provided, Transfer Service fetches temporary credentials for the session using a `AssumeRoleWithWebIdentity` call for the provided role using the GoogleServiceAccount for this project.
     },
     &quot;azureBlobStorageDataSource&quot;: { # An AzureBlobStorageData resource can be a data source, but not a data sink. An AzureBlobStorageData resource represents one Azure container. The storage account determines the [Azure endpoint](https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account#storage-account-endpoints). In an AzureBlobStorageData resource, a blobs&#x27;s name is the [Azure Blob Storage blob&#x27;s key name](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#blob-names). # An Azure Blob Storage data source.
       &quot;azureCredentials&quot;: { # Azure credentials For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials). # Required. Input only. Credentials used to authenticate API requests to Azure. For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials).
@@ -176,17 +176,17 @@
       &quot;bucketName&quot;: &quot;A String&quot;, # Required. Cloud Storage bucket name. Must meet [Bucket Name Requirements](/storage/docs/naming#requirements).
       &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;. The root path value must meet [Object Name Requirements](/storage/docs/naming#objectnames).
     },
-    &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object will not be transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
+    &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object is not transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer fails. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
       &quot;listUrl&quot;: &quot;A String&quot;, # Required. The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.
     },
-    &quot;objectConditions&quot;: { # Conditions that determine which objects will be transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
+    &quot;objectConditions&quot;: { # Conditions that determine which objects are transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
       &quot;excludePrefixes&quot;: [ # If you specify `exclude_prefixes`, Storage Transfer Service uses the items in the `exclude_prefixes` array to determine which objects to exclude from a transfer. Objects must not start with one of the matching `exclude_prefixes` for inclusion in a transfer. The following are requirements of `exclude_prefixes`: * Each exclude-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each exclude-prefix must omit the leading slash. For example, to exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the exclude-prefix as `logs/y=2015/requests.gz`. * None of the exclude-prefix values can be empty, if specified. * Each exclude-prefix must exclude a distinct portion of the object namespace. No exclude-prefix may be a prefix of another exclude-prefix. * If include_prefixes is specified, then each exclude-prefix must start with the value of a path explicitly included by `include_prefixes`. The max size of `exclude_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
         &quot;A String&quot;,
       ],
       &quot;includePrefixes&quot;: [ # If you specify `include_prefixes`, Storage Transfer Service uses the items in the `include_prefixes` array to determine which objects to include in a transfer. Objects must start with one of the matching `include_prefixes` for inclusion in the transfer. If exclude_prefixes is specified, objects must not start with any of the `exclude_prefixes` specified for inclusion in the transfer. The following are requirements of `include_prefixes`: * Each include-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each include-prefix must omit the leading slash. For example, to include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include-prefix as `logs/y=2015/requests.gz`. * None of the include-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace. No include-prefix may be a prefix of another include-prefix. The max size of `include_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
         &quot;A String&quot;,
       ],
-      &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; will be transferred.
+      &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred.
       &quot;lastModifiedSince&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. The `last_modified_since` and `last_modified_before` fields can be used together for chunked data processing. For example, consider a script that processes each day&#x27;s worth of data at a time. For that you&#x27;d set each of the fields as follows: * `last_modified_since` to the start of the day * `last_modified_before` to the end of the day
       &quot;maxTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after `NOW` - `max_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
       &quot;minTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before `NOW` - `min_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
@@ -194,7 +194,7 @@
     &quot;transferOptions&quot;: { # TransferOptions define the actions to be performed on objects in a transfer. # If the option delete_objects_unique_in_sink is `true` and time-based object conditions such as &#x27;last modification time&#x27; are specified, the request fails with an INVALID_ARGUMENT error.
       &quot;deleteObjectsFromSourceAfterTransfer&quot;: True or False, # Whether objects should be deleted from the source after they are transferred to the sink. **Note:** This option and delete_objects_unique_in_sink are mutually exclusive.
       &quot;deleteObjectsUniqueInSink&quot;: True or False, # Whether objects that exist only in the sink should be deleted. **Note:** This option and delete_objects_from_source_after_transfer are mutually exclusive.
-      &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source will be overwritten with the source object.
+      &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source are overwritten with the source object.
     },
   },
 }
@@ -213,16 +213,16 @@
   &quot;description&quot;: &quot;A String&quot;, # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
   &quot;lastModificationTime&quot;: &quot;A String&quot;, # Output only. The time that the transfer job was last modified.
   &quot;latestOperationName&quot;: &quot;A String&quot;, # The name of the most recently started TransferOperation of this JobConfig. Present if a TransferOperation has been created for this JobConfig.
-  &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service will assign a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names will fail with an INVALID_ARGUMENT error.
-  &quot;notificationConfig&quot;: { # Specification to configure notifications published to Cloud Pub/Sub. Notifications will be published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` will contain a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
+  &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service assigns a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names fail with an INVALID_ARGUMENT error.
+  &quot;notificationConfig&quot;: { # Specification to configure notifications published to Pub/Sub. Notifications are published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` contains a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
     &quot;eventTypes&quot;: [ # Event types for which a notification is desired. If empty, send notifications for all event types.
       &quot;A String&quot;,
     ],
     &quot;payloadFormat&quot;: &quot;A String&quot;, # Required. The desired format of the notification message payloads.
-    &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Cloud Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format will result in an INVALID_ARGUMENT error.
+    &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format results in an INVALID_ARGUMENT error.
   },
   &quot;projectId&quot;: &quot;A String&quot;, # The ID of the Google Cloud Platform Project that owns the job.
-  &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job will never execute a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
+  &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job never executes a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
     &quot;endTimeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The time in UTC that no further transfer operations are scheduled. Combined with schedule_end_date, `end_time_of_day` specifies the end date and time for starting new transfer operations. This field must be greater than or equal to the timestamp corresponding to the combintation of schedule_start_date and start_time_of_day, and is subject to the following: * If `end_time_of_day` is not set and `schedule_end_date` is set, then a default value of `23:59:59` is used for `end_time_of_day`. * If `end_time_of_day` is set and `schedule_end_date` is not set, then INVALID_ARGUMENT is returned.
       &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
       &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
@@ -230,12 +230,12 @@
       &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
     },
     &quot;repeatInterval&quot;: &quot;A String&quot;, # Interval between the start of each scheduled TransferOperation. If unspecified, the default value is 24 hours. This value may not be less than 1 hour.
-    &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job will run once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job will run each day at start_time_of_day through `schedule_end_date`.
+    &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job runs once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job runs each day at start_time_of_day through `schedule_end_date`.
       &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
       &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
       &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
     },
-    &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job will start later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it will create a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation will take place on June 3 at midnight UTC.
+    &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job starts later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it creates a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation takes place on June 3 at midnight UTC.
       &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
       &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
       &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
@@ -256,7 +256,7 @@
       },
       &quot;bucketName&quot;: &quot;A String&quot;, # Required. S3 Bucket name (see [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
       &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;.
-      &quot;roleArn&quot;: &quot;A String&quot;, # Input only. Role arn to support temporary credentials via AssumeRoleWithWebIdentity. When role arn is provided, transfer service will fetch temporary credentials for the session using AssumeRoleWithWebIdentity call for the provided role using the [GoogleServiceAccount] for this project.
+      &quot;roleArn&quot;: &quot;A String&quot;, # Input only. The Amazon Resource Name (ARN) of the role to support temporary credentials via `AssumeRoleWithWebIdentity`. For more information about ARNs, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns). When a role ARN is provided, Transfer Service fetches temporary credentials for the session using a `AssumeRoleWithWebIdentity` call for the provided role using the GoogleServiceAccount for this project.
     },
     &quot;azureBlobStorageDataSource&quot;: { # An AzureBlobStorageData resource can be a data source, but not a data sink. An AzureBlobStorageData resource represents one Azure container. The storage account determines the [Azure endpoint](https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account#storage-account-endpoints). In an AzureBlobStorageData resource, a blobs&#x27;s name is the [Azure Blob Storage blob&#x27;s key name](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#blob-names). # An Azure Blob Storage data source.
       &quot;azureCredentials&quot;: { # Azure credentials For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials). # Required. Input only. Credentials used to authenticate API requests to Azure. For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials).
@@ -274,17 +274,17 @@
       &quot;bucketName&quot;: &quot;A String&quot;, # Required. Cloud Storage bucket name. Must meet [Bucket Name Requirements](/storage/docs/naming#requirements).
       &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;. The root path value must meet [Object Name Requirements](/storage/docs/naming#objectnames).
     },
-    &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object will not be transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
+    &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object is not transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer fails. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
       &quot;listUrl&quot;: &quot;A String&quot;, # Required. The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.
     },
-    &quot;objectConditions&quot;: { # Conditions that determine which objects will be transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
+    &quot;objectConditions&quot;: { # Conditions that determine which objects are transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
       &quot;excludePrefixes&quot;: [ # If you specify `exclude_prefixes`, Storage Transfer Service uses the items in the `exclude_prefixes` array to determine which objects to exclude from a transfer. Objects must not start with one of the matching `exclude_prefixes` for inclusion in a transfer. The following are requirements of `exclude_prefixes`: * Each exclude-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each exclude-prefix must omit the leading slash. For example, to exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the exclude-prefix as `logs/y=2015/requests.gz`. * None of the exclude-prefix values can be empty, if specified. * Each exclude-prefix must exclude a distinct portion of the object namespace. No exclude-prefix may be a prefix of another exclude-prefix. * If include_prefixes is specified, then each exclude-prefix must start with the value of a path explicitly included by `include_prefixes`. The max size of `exclude_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
         &quot;A String&quot;,
       ],
       &quot;includePrefixes&quot;: [ # If you specify `include_prefixes`, Storage Transfer Service uses the items in the `include_prefixes` array to determine which objects to include in a transfer. Objects must start with one of the matching `include_prefixes` for inclusion in the transfer. If exclude_prefixes is specified, objects must not start with any of the `exclude_prefixes` specified for inclusion in the transfer. The following are requirements of `include_prefixes`: * Each include-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each include-prefix must omit the leading slash. For example, to include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include-prefix as `logs/y=2015/requests.gz`. * None of the include-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace. No include-prefix may be a prefix of another include-prefix. The max size of `include_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
         &quot;A String&quot;,
       ],
-      &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; will be transferred.
+      &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred.
       &quot;lastModifiedSince&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. The `last_modified_since` and `last_modified_before` fields can be used together for chunked data processing. For example, consider a script that processes each day&#x27;s worth of data at a time. For that you&#x27;d set each of the fields as follows: * `last_modified_since` to the start of the day * `last_modified_before` to the end of the day
       &quot;maxTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after `NOW` - `max_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
       &quot;minTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before `NOW` - `min_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
@@ -292,7 +292,7 @@
     &quot;transferOptions&quot;: { # TransferOptions define the actions to be performed on objects in a transfer. # If the option delete_objects_unique_in_sink is `true` and time-based object conditions such as &#x27;last modification time&#x27; are specified, the request fails with an INVALID_ARGUMENT error.
       &quot;deleteObjectsFromSourceAfterTransfer&quot;: True or False, # Whether objects should be deleted from the source after they are transferred to the sink. **Note:** This option and delete_objects_unique_in_sink are mutually exclusive.
       &quot;deleteObjectsUniqueInSink&quot;: True or False, # Whether objects that exist only in the sink should be deleted. **Note:** This option and delete_objects_from_source_after_transfer are mutually exclusive.
-      &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source will be overwritten with the source object.
+      &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source are overwritten with the source object.
     },
   },
 }</pre>
@@ -319,16 +319,16 @@
   &quot;description&quot;: &quot;A String&quot;, # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
   &quot;lastModificationTime&quot;: &quot;A String&quot;, # Output only. The time that the transfer job was last modified.
   &quot;latestOperationName&quot;: &quot;A String&quot;, # The name of the most recently started TransferOperation of this JobConfig. Present if a TransferOperation has been created for this JobConfig.
-  &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service will assign a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names will fail with an INVALID_ARGUMENT error.
-  &quot;notificationConfig&quot;: { # Specification to configure notifications published to Cloud Pub/Sub. Notifications will be published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` will contain a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
+  &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service assigns a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names fail with an INVALID_ARGUMENT error.
+  &quot;notificationConfig&quot;: { # Specification to configure notifications published to Pub/Sub. Notifications are published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` contains a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
     &quot;eventTypes&quot;: [ # Event types for which a notification is desired. If empty, send notifications for all event types.
       &quot;A String&quot;,
     ],
     &quot;payloadFormat&quot;: &quot;A String&quot;, # Required. The desired format of the notification message payloads.
-    &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Cloud Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format will result in an INVALID_ARGUMENT error.
+    &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format results in an INVALID_ARGUMENT error.
   },
   &quot;projectId&quot;: &quot;A String&quot;, # The ID of the Google Cloud Platform Project that owns the job.
-  &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job will never execute a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
+  &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job never executes a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
     &quot;endTimeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The time in UTC that no further transfer operations are scheduled. Combined with schedule_end_date, `end_time_of_day` specifies the end date and time for starting new transfer operations. This field must be greater than or equal to the timestamp corresponding to the combintation of schedule_start_date and start_time_of_day, and is subject to the following: * If `end_time_of_day` is not set and `schedule_end_date` is set, then a default value of `23:59:59` is used for `end_time_of_day`. * If `end_time_of_day` is set and `schedule_end_date` is not set, then INVALID_ARGUMENT is returned.
       &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
       &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
@@ -336,12 +336,12 @@
       &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
     },
     &quot;repeatInterval&quot;: &quot;A String&quot;, # Interval between the start of each scheduled TransferOperation. If unspecified, the default value is 24 hours. This value may not be less than 1 hour.
-    &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job will run once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job will run each day at start_time_of_day through `schedule_end_date`.
+    &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job runs once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job runs each day at start_time_of_day through `schedule_end_date`.
       &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
       &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
       &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
     },
-    &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job will start later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it will create a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation will take place on June 3 at midnight UTC.
+    &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job starts later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it creates a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation takes place on June 3 at midnight UTC.
       &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
       &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
       &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
@@ -362,7 +362,7 @@
       },
       &quot;bucketName&quot;: &quot;A String&quot;, # Required. S3 Bucket name (see [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
       &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;.
-      &quot;roleArn&quot;: &quot;A String&quot;, # Input only. Role arn to support temporary credentials via AssumeRoleWithWebIdentity. When role arn is provided, transfer service will fetch temporary credentials for the session using AssumeRoleWithWebIdentity call for the provided role using the [GoogleServiceAccount] for this project.
+      &quot;roleArn&quot;: &quot;A String&quot;, # Input only. The Amazon Resource Name (ARN) of the role to support temporary credentials via `AssumeRoleWithWebIdentity`. For more information about ARNs, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns). When a role ARN is provided, Transfer Service fetches temporary credentials for the session using a `AssumeRoleWithWebIdentity` call for the provided role using the GoogleServiceAccount for this project.
     },
     &quot;azureBlobStorageDataSource&quot;: { # An AzureBlobStorageData resource can be a data source, but not a data sink. An AzureBlobStorageData resource represents one Azure container. The storage account determines the [Azure endpoint](https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account#storage-account-endpoints). In an AzureBlobStorageData resource, a blobs&#x27;s name is the [Azure Blob Storage blob&#x27;s key name](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#blob-names). # An Azure Blob Storage data source.
       &quot;azureCredentials&quot;: { # Azure credentials For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials). # Required. Input only. Credentials used to authenticate API requests to Azure. For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials).
@@ -380,17 +380,17 @@
       &quot;bucketName&quot;: &quot;A String&quot;, # Required. Cloud Storage bucket name. Must meet [Bucket Name Requirements](/storage/docs/naming#requirements).
       &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;. The root path value must meet [Object Name Requirements](/storage/docs/naming#objectnames).
     },
-    &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object will not be transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
+    &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object is not transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer fails. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
       &quot;listUrl&quot;: &quot;A String&quot;, # Required. The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.
     },
-    &quot;objectConditions&quot;: { # Conditions that determine which objects will be transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
+    &quot;objectConditions&quot;: { # Conditions that determine which objects are transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
       &quot;excludePrefixes&quot;: [ # If you specify `exclude_prefixes`, Storage Transfer Service uses the items in the `exclude_prefixes` array to determine which objects to exclude from a transfer. Objects must not start with one of the matching `exclude_prefixes` for inclusion in a transfer. The following are requirements of `exclude_prefixes`: * Each exclude-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each exclude-prefix must omit the leading slash. For example, to exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the exclude-prefix as `logs/y=2015/requests.gz`. * None of the exclude-prefix values can be empty, if specified. * Each exclude-prefix must exclude a distinct portion of the object namespace. No exclude-prefix may be a prefix of another exclude-prefix. * If include_prefixes is specified, then each exclude-prefix must start with the value of a path explicitly included by `include_prefixes`. The max size of `exclude_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
         &quot;A String&quot;,
       ],
       &quot;includePrefixes&quot;: [ # If you specify `include_prefixes`, Storage Transfer Service uses the items in the `include_prefixes` array to determine which objects to include in a transfer. Objects must start with one of the matching `include_prefixes` for inclusion in the transfer. If exclude_prefixes is specified, objects must not start with any of the `exclude_prefixes` specified for inclusion in the transfer. The following are requirements of `include_prefixes`: * Each include-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each include-prefix must omit the leading slash. For example, to include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include-prefix as `logs/y=2015/requests.gz`. * None of the include-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace. No include-prefix may be a prefix of another include-prefix. The max size of `include_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
         &quot;A String&quot;,
       ],
-      &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; will be transferred.
+      &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred.
       &quot;lastModifiedSince&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. The `last_modified_since` and `last_modified_before` fields can be used together for chunked data processing. For example, consider a script that processes each day&#x27;s worth of data at a time. For that you&#x27;d set each of the fields as follows: * `last_modified_since` to the start of the day * `last_modified_before` to the end of the day
       &quot;maxTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after `NOW` - `max_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
       &quot;minTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before `NOW` - `min_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
@@ -398,7 +398,7 @@
     &quot;transferOptions&quot;: { # TransferOptions define the actions to be performed on objects in a transfer. # If the option delete_objects_unique_in_sink is `true` and time-based object conditions such as &#x27;last modification time&#x27; are specified, the request fails with an INVALID_ARGUMENT error.
       &quot;deleteObjectsFromSourceAfterTransfer&quot;: True or False, # Whether objects should be deleted from the source after they are transferred to the sink. **Note:** This option and delete_objects_unique_in_sink are mutually exclusive.
       &quot;deleteObjectsUniqueInSink&quot;: True or False, # Whether objects that exist only in the sink should be deleted. **Note:** This option and delete_objects_from_source_after_transfer are mutually exclusive.
-      &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source will be overwritten with the source object.
+      &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source are overwritten with the source object.
     },
   },
 }</pre>
@@ -429,16 +429,16 @@
       &quot;description&quot;: &quot;A String&quot;, # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
       &quot;lastModificationTime&quot;: &quot;A String&quot;, # Output only. The time that the transfer job was last modified.
       &quot;latestOperationName&quot;: &quot;A String&quot;, # The name of the most recently started TransferOperation of this JobConfig. Present if a TransferOperation has been created for this JobConfig.
-      &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service will assign a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names will fail with an INVALID_ARGUMENT error.
-      &quot;notificationConfig&quot;: { # Specification to configure notifications published to Cloud Pub/Sub. Notifications will be published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` will contain a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
+      &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service assigns a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names fail with an INVALID_ARGUMENT error.
+      &quot;notificationConfig&quot;: { # Specification to configure notifications published to Pub/Sub. Notifications are published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` contains a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
         &quot;eventTypes&quot;: [ # Event types for which a notification is desired. If empty, send notifications for all event types.
           &quot;A String&quot;,
         ],
         &quot;payloadFormat&quot;: &quot;A String&quot;, # Required. The desired format of the notification message payloads.
-        &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Cloud Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format will result in an INVALID_ARGUMENT error.
+        &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format results in an INVALID_ARGUMENT error.
       },
       &quot;projectId&quot;: &quot;A String&quot;, # The ID of the Google Cloud Platform Project that owns the job.
-      &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job will never execute a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
+      &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job never executes a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
         &quot;endTimeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The time in UTC that no further transfer operations are scheduled. Combined with schedule_end_date, `end_time_of_day` specifies the end date and time for starting new transfer operations. This field must be greater than or equal to the timestamp corresponding to the combintation of schedule_start_date and start_time_of_day, and is subject to the following: * If `end_time_of_day` is not set and `schedule_end_date` is set, then a default value of `23:59:59` is used for `end_time_of_day`. * If `end_time_of_day` is set and `schedule_end_date` is not set, then INVALID_ARGUMENT is returned.
           &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
           &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
@@ -446,12 +446,12 @@
           &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
         },
         &quot;repeatInterval&quot;: &quot;A String&quot;, # Interval between the start of each scheduled TransferOperation. If unspecified, the default value is 24 hours. This value may not be less than 1 hour.
-        &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job will run once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job will run each day at start_time_of_day through `schedule_end_date`.
+        &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job runs once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job runs each day at start_time_of_day through `schedule_end_date`.
           &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
           &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
           &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
         },
-        &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job will start later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it will create a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation will take place on June 3 at midnight UTC.
+        &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job starts later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it creates a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation takes place on June 3 at midnight UTC.
           &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
           &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
           &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
@@ -472,7 +472,7 @@
           },
           &quot;bucketName&quot;: &quot;A String&quot;, # Required. S3 Bucket name (see [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
           &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;.
-          &quot;roleArn&quot;: &quot;A String&quot;, # Input only. Role arn to support temporary credentials via AssumeRoleWithWebIdentity. When role arn is provided, transfer service will fetch temporary credentials for the session using AssumeRoleWithWebIdentity call for the provided role using the [GoogleServiceAccount] for this project.
+          &quot;roleArn&quot;: &quot;A String&quot;, # Input only. The Amazon Resource Name (ARN) of the role to support temporary credentials via `AssumeRoleWithWebIdentity`. For more information about ARNs, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns). When a role ARN is provided, Transfer Service fetches temporary credentials for the session using a `AssumeRoleWithWebIdentity` call for the provided role using the GoogleServiceAccount for this project.
         },
         &quot;azureBlobStorageDataSource&quot;: { # An AzureBlobStorageData resource can be a data source, but not a data sink. An AzureBlobStorageData resource represents one Azure container. The storage account determines the [Azure endpoint](https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account#storage-account-endpoints). In an AzureBlobStorageData resource, a blobs&#x27;s name is the [Azure Blob Storage blob&#x27;s key name](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#blob-names). # An Azure Blob Storage data source.
           &quot;azureCredentials&quot;: { # Azure credentials For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials). # Required. Input only. Credentials used to authenticate API requests to Azure. For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials).
@@ -490,17 +490,17 @@
           &quot;bucketName&quot;: &quot;A String&quot;, # Required. Cloud Storage bucket name. Must meet [Bucket Name Requirements](/storage/docs/naming#requirements).
           &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;. The root path value must meet [Object Name Requirements](/storage/docs/naming#objectnames).
         },
-        &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object will not be transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
+        &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object is not transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer fails. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
           &quot;listUrl&quot;: &quot;A String&quot;, # Required. The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.
         },
-        &quot;objectConditions&quot;: { # Conditions that determine which objects will be transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
+        &quot;objectConditions&quot;: { # Conditions that determine which objects are transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
           &quot;excludePrefixes&quot;: [ # If you specify `exclude_prefixes`, Storage Transfer Service uses the items in the `exclude_prefixes` array to determine which objects to exclude from a transfer. Objects must not start with one of the matching `exclude_prefixes` for inclusion in a transfer. The following are requirements of `exclude_prefixes`: * Each exclude-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each exclude-prefix must omit the leading slash. For example, to exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the exclude-prefix as `logs/y=2015/requests.gz`. * None of the exclude-prefix values can be empty, if specified. * Each exclude-prefix must exclude a distinct portion of the object namespace. No exclude-prefix may be a prefix of another exclude-prefix. * If include_prefixes is specified, then each exclude-prefix must start with the value of a path explicitly included by `include_prefixes`. The max size of `exclude_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
             &quot;A String&quot;,
           ],
           &quot;includePrefixes&quot;: [ # If you specify `include_prefixes`, Storage Transfer Service uses the items in the `include_prefixes` array to determine which objects to include in a transfer. Objects must start with one of the matching `include_prefixes` for inclusion in the transfer. If exclude_prefixes is specified, objects must not start with any of the `exclude_prefixes` specified for inclusion in the transfer. The following are requirements of `include_prefixes`: * Each include-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each include-prefix must omit the leading slash. For example, to include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include-prefix as `logs/y=2015/requests.gz`. * None of the include-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace. No include-prefix may be a prefix of another include-prefix. The max size of `include_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
             &quot;A String&quot;,
           ],
-          &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; will be transferred.
+          &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred.
           &quot;lastModifiedSince&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. The `last_modified_since` and `last_modified_before` fields can be used together for chunked data processing. For example, consider a script that processes each day&#x27;s worth of data at a time. For that you&#x27;d set each of the fields as follows: * `last_modified_since` to the start of the day * `last_modified_before` to the end of the day
           &quot;maxTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after `NOW` - `max_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
           &quot;minTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before `NOW` - `min_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
@@ -508,7 +508,7 @@
         &quot;transferOptions&quot;: { # TransferOptions define the actions to be performed on objects in a transfer. # If the option delete_objects_unique_in_sink is `true` and time-based object conditions such as &#x27;last modification time&#x27; are specified, the request fails with an INVALID_ARGUMENT error.
           &quot;deleteObjectsFromSourceAfterTransfer&quot;: True or False, # Whether objects should be deleted from the source after they are transferred to the sink. **Note:** This option and delete_objects_unique_in_sink are mutually exclusive.
           &quot;deleteObjectsUniqueInSink&quot;: True or False, # Whether objects that exist only in the sink should be deleted. **Note:** This option and delete_objects_from_source_after_transfer are mutually exclusive.
-          &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source will be overwritten with the source object.
+          &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source are overwritten with the source object.
         },
       },
     },
@@ -547,16 +547,16 @@
     &quot;description&quot;: &quot;A String&quot;, # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
     &quot;lastModificationTime&quot;: &quot;A String&quot;, # Output only. The time that the transfer job was last modified.
     &quot;latestOperationName&quot;: &quot;A String&quot;, # The name of the most recently started TransferOperation of this JobConfig. Present if a TransferOperation has been created for this JobConfig.
-    &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service will assign a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names will fail with an INVALID_ARGUMENT error.
-    &quot;notificationConfig&quot;: { # Specification to configure notifications published to Cloud Pub/Sub. Notifications will be published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` will contain a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
+    &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service assigns a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names fail with an INVALID_ARGUMENT error.
+    &quot;notificationConfig&quot;: { # Specification to configure notifications published to Pub/Sub. Notifications are published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` contains a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
       &quot;eventTypes&quot;: [ # Event types for which a notification is desired. If empty, send notifications for all event types.
         &quot;A String&quot;,
       ],
       &quot;payloadFormat&quot;: &quot;A String&quot;, # Required. The desired format of the notification message payloads.
-      &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Cloud Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format will result in an INVALID_ARGUMENT error.
+      &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format results in an INVALID_ARGUMENT error.
     },
     &quot;projectId&quot;: &quot;A String&quot;, # The ID of the Google Cloud Platform Project that owns the job.
-    &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job will never execute a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
+    &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job never executes a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
       &quot;endTimeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The time in UTC that no further transfer operations are scheduled. Combined with schedule_end_date, `end_time_of_day` specifies the end date and time for starting new transfer operations. This field must be greater than or equal to the timestamp corresponding to the combintation of schedule_start_date and start_time_of_day, and is subject to the following: * If `end_time_of_day` is not set and `schedule_end_date` is set, then a default value of `23:59:59` is used for `end_time_of_day`. * If `end_time_of_day` is set and `schedule_end_date` is not set, then INVALID_ARGUMENT is returned.
         &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
         &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
@@ -564,12 +564,12 @@
         &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
       },
       &quot;repeatInterval&quot;: &quot;A String&quot;, # Interval between the start of each scheduled TransferOperation. If unspecified, the default value is 24 hours. This value may not be less than 1 hour.
-      &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job will run once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job will run each day at start_time_of_day through `schedule_end_date`.
+      &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job runs once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job runs each day at start_time_of_day through `schedule_end_date`.
         &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
         &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
         &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
       },
-      &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job will start later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it will create a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation will take place on June 3 at midnight UTC.
+      &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job starts later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it creates a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation takes place on June 3 at midnight UTC.
         &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
         &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
         &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
@@ -590,7 +590,7 @@
         },
         &quot;bucketName&quot;: &quot;A String&quot;, # Required. S3 Bucket name (see [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
         &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;.
-        &quot;roleArn&quot;: &quot;A String&quot;, # Input only. Role arn to support temporary credentials via AssumeRoleWithWebIdentity. When role arn is provided, transfer service will fetch temporary credentials for the session using AssumeRoleWithWebIdentity call for the provided role using the [GoogleServiceAccount] for this project.
+        &quot;roleArn&quot;: &quot;A String&quot;, # Input only. The Amazon Resource Name (ARN) of the role to support temporary credentials via `AssumeRoleWithWebIdentity`. For more information about ARNs, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns). When a role ARN is provided, Transfer Service fetches temporary credentials for the session using a `AssumeRoleWithWebIdentity` call for the provided role using the GoogleServiceAccount for this project.
       },
       &quot;azureBlobStorageDataSource&quot;: { # An AzureBlobStorageData resource can be a data source, but not a data sink. An AzureBlobStorageData resource represents one Azure container. The storage account determines the [Azure endpoint](https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account#storage-account-endpoints). In an AzureBlobStorageData resource, a blobs&#x27;s name is the [Azure Blob Storage blob&#x27;s key name](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#blob-names). # An Azure Blob Storage data source.
         &quot;azureCredentials&quot;: { # Azure credentials For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials). # Required. Input only. Credentials used to authenticate API requests to Azure. For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials).
@@ -608,17 +608,17 @@
         &quot;bucketName&quot;: &quot;A String&quot;, # Required. Cloud Storage bucket name. Must meet [Bucket Name Requirements](/storage/docs/naming#requirements).
         &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;. The root path value must meet [Object Name Requirements](/storage/docs/naming#objectnames).
       },
-      &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object will not be transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
+      &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object is not transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer fails. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
         &quot;listUrl&quot;: &quot;A String&quot;, # Required. The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.
       },
-      &quot;objectConditions&quot;: { # Conditions that determine which objects will be transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
+      &quot;objectConditions&quot;: { # Conditions that determine which objects are transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
         &quot;excludePrefixes&quot;: [ # If you specify `exclude_prefixes`, Storage Transfer Service uses the items in the `exclude_prefixes` array to determine which objects to exclude from a transfer. Objects must not start with one of the matching `exclude_prefixes` for inclusion in a transfer. The following are requirements of `exclude_prefixes`: * Each exclude-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each exclude-prefix must omit the leading slash. For example, to exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the exclude-prefix as `logs/y=2015/requests.gz`. * None of the exclude-prefix values can be empty, if specified. * Each exclude-prefix must exclude a distinct portion of the object namespace. No exclude-prefix may be a prefix of another exclude-prefix. * If include_prefixes is specified, then each exclude-prefix must start with the value of a path explicitly included by `include_prefixes`. The max size of `exclude_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
           &quot;A String&quot;,
         ],
         &quot;includePrefixes&quot;: [ # If you specify `include_prefixes`, Storage Transfer Service uses the items in the `include_prefixes` array to determine which objects to include in a transfer. Objects must start with one of the matching `include_prefixes` for inclusion in the transfer. If exclude_prefixes is specified, objects must not start with any of the `exclude_prefixes` specified for inclusion in the transfer. The following are requirements of `include_prefixes`: * Each include-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each include-prefix must omit the leading slash. For example, to include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include-prefix as `logs/y=2015/requests.gz`. * None of the include-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace. No include-prefix may be a prefix of another include-prefix. The max size of `include_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
           &quot;A String&quot;,
         ],
-        &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; will be transferred.
+        &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred.
         &quot;lastModifiedSince&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. The `last_modified_since` and `last_modified_before` fields can be used together for chunked data processing. For example, consider a script that processes each day&#x27;s worth of data at a time. For that you&#x27;d set each of the fields as follows: * `last_modified_since` to the start of the day * `last_modified_before` to the end of the day
         &quot;maxTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after `NOW` - `max_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
         &quot;minTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before `NOW` - `min_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
@@ -626,7 +626,7 @@
       &quot;transferOptions&quot;: { # TransferOptions define the actions to be performed on objects in a transfer. # If the option delete_objects_unique_in_sink is `true` and time-based object conditions such as &#x27;last modification time&#x27; are specified, the request fails with an INVALID_ARGUMENT error.
         &quot;deleteObjectsFromSourceAfterTransfer&quot;: True or False, # Whether objects should be deleted from the source after they are transferred to the sink. **Note:** This option and delete_objects_unique_in_sink are mutually exclusive.
         &quot;deleteObjectsUniqueInSink&quot;: True or False, # Whether objects that exist only in the sink should be deleted. **Note:** This option and delete_objects_from_source_after_transfer are mutually exclusive.
-        &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source will be overwritten with the source object.
+        &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source are overwritten with the source object.
       },
     },
   },
@@ -647,16 +647,16 @@
   &quot;description&quot;: &quot;A String&quot;, # A description provided by the user for the job. Its max length is 1024 bytes when Unicode-encoded.
   &quot;lastModificationTime&quot;: &quot;A String&quot;, # Output only. The time that the transfer job was last modified.
   &quot;latestOperationName&quot;: &quot;A String&quot;, # The name of the most recently started TransferOperation of this JobConfig. Present if a TransferOperation has been created for this JobConfig.
-  &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service will assign a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names will fail with an INVALID_ARGUMENT error.
-  &quot;notificationConfig&quot;: { # Specification to configure notifications published to Cloud Pub/Sub. Notifications will be published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` will contain a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
+  &quot;name&quot;: &quot;A String&quot;, # A unique name (within the transfer project) assigned when the job is created. If this field is empty in a CreateTransferJobRequest, Storage Transfer Service assigns a unique name. Otherwise, the specified name is used as the unique name for this job. If the specified name is in use by a job, the creation request fails with an ALREADY_EXISTS error. This name must start with `&quot;transferJobs/&quot;` prefix and end with a letter or a number, and should be no more than 128 characters. This name must not start with &#x27;transferJobs/OPI&#x27;. &#x27;transferJobs/OPI&#x27; is a reserved prefix. Example: `&quot;transferJobs/^(?!OPI)[A-Za-z0-9-._~]*[A-Za-z0-9]$&quot;` Invalid job names fail with an INVALID_ARGUMENT error.
+  &quot;notificationConfig&quot;: { # Specification to configure notifications published to Pub/Sub. Notifications are published to the customer-provided topic using the following `PubsubMessage.attributes`: * `&quot;eventType&quot;`: one of the EventType values * `&quot;payloadFormat&quot;`: one of the PayloadFormat values * `&quot;projectId&quot;`: the project_id of the `TransferOperation` * `&quot;transferJobName&quot;`: the transfer_job_name of the `TransferOperation` * `&quot;transferOperationName&quot;`: the name of the `TransferOperation` The `PubsubMessage.data` contains a TransferOperation resource formatted according to the specified `PayloadFormat`. # Notification configuration.
     &quot;eventTypes&quot;: [ # Event types for which a notification is desired. If empty, send notifications for all event types.
       &quot;A String&quot;,
     ],
     &quot;payloadFormat&quot;: &quot;A String&quot;, # Required. The desired format of the notification message payloads.
-    &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Cloud Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format will result in an INVALID_ARGUMENT error.
+    &quot;pubsubTopic&quot;: &quot;A String&quot;, # Required. The `Topic.name` of the Pub/Sub topic to which to publish notifications. Must be of the format: `projects/{project}/topics/{topic}`. Not matching this format results in an INVALID_ARGUMENT error.
   },
   &quot;projectId&quot;: &quot;A String&quot;, # The ID of the Google Cloud Platform Project that owns the job.
-  &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job will never execute a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
+  &quot;schedule&quot;: { # Transfers can be scheduled to recur or to run just once. # Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job never executes a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule.
     &quot;endTimeOfDay&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The time in UTC that no further transfer operations are scheduled. Combined with schedule_end_date, `end_time_of_day` specifies the end date and time for starting new transfer operations. This field must be greater than or equal to the timestamp corresponding to the combintation of schedule_start_date and start_time_of_day, and is subject to the following: * If `end_time_of_day` is not set and `schedule_end_date` is set, then a default value of `23:59:59` is used for `end_time_of_day`. * If `end_time_of_day` is set and `schedule_end_date` is not set, then INVALID_ARGUMENT is returned.
       &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
       &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
@@ -664,12 +664,12 @@
       &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
     },
     &quot;repeatInterval&quot;: &quot;A String&quot;, # Interval between the start of each scheduled TransferOperation. If unspecified, the default value is 24 hours. This value may not be less than 1 hour.
-    &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job will run once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job will run each day at start_time_of_day through `schedule_end_date`.
+    &quot;scheduleEndDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # The last day a transfer runs. Date boundaries are determined relative to UTC time. A job runs once per 24 hours within the following guidelines: * If `schedule_end_date` and schedule_start_date are the same and in the future relative to UTC, the transfer is executed only one time. * If `schedule_end_date` is later than `schedule_start_date` and `schedule_end_date` is in the future relative to UTC, the job runs each day at start_time_of_day through `schedule_end_date`.
       &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
       &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
       &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
     },
-    &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job will start later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it will create a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation will take place on June 3 at midnight UTC.
+    &quot;scheduleStartDate&quot;: { # Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values * A month and day value, with a zero year, such as an anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, such as a credit card expiration date Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`. # Required. The start date of a transfer. Date boundaries are determined relative to UTC time. If `schedule_start_date` and start_time_of_day are in the past relative to the job&#x27;s creation time, the transfer starts the day after you schedule the transfer request. **Note:** When starting jobs at or near midnight UTC it is possible that a job starts later than expected. For example, if you send an outbound request on June 1 one millisecond prior to midnight UTC and the Storage Transfer Service server receives the request on June 2, then it creates a TransferJob with `schedule_start_date` set to June 2 and a `start_time_of_day` set to midnight UTC. The first scheduled TransferOperation takes place on June 3 at midnight UTC.
       &quot;day&quot;: 42, # Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn&#x27;t significant.
       &quot;month&quot;: 42, # Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.
       &quot;year&quot;: 42, # Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.
@@ -690,7 +690,7 @@
       },
       &quot;bucketName&quot;: &quot;A String&quot;, # Required. S3 Bucket name (see [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/create-bucket-get-location-example.html)).
       &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;.
-      &quot;roleArn&quot;: &quot;A String&quot;, # Input only. Role arn to support temporary credentials via AssumeRoleWithWebIdentity. When role arn is provided, transfer service will fetch temporary credentials for the session using AssumeRoleWithWebIdentity call for the provided role using the [GoogleServiceAccount] for this project.
+      &quot;roleArn&quot;: &quot;A String&quot;, # Input only. The Amazon Resource Name (ARN) of the role to support temporary credentials via `AssumeRoleWithWebIdentity`. For more information about ARNs, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns). When a role ARN is provided, Transfer Service fetches temporary credentials for the session using a `AssumeRoleWithWebIdentity` call for the provided role using the GoogleServiceAccount for this project.
     },
     &quot;azureBlobStorageDataSource&quot;: { # An AzureBlobStorageData resource can be a data source, but not a data sink. An AzureBlobStorageData resource represents one Azure container. The storage account determines the [Azure endpoint](https://docs.microsoft.com/en-us/azure/storage/common/storage-create-storage-account#storage-account-endpoints). In an AzureBlobStorageData resource, a blobs&#x27;s name is the [Azure Blob Storage blob&#x27;s key name](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#blob-names). # An Azure Blob Storage data source.
       &quot;azureCredentials&quot;: { # Azure credentials For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials). # Required. Input only. Credentials used to authenticate API requests to Azure. For information on our data retention policy for user credentials, see [User credentials](/storage-transfer/docs/data-retention#user-credentials).
@@ -708,17 +708,17 @@
       &quot;bucketName&quot;: &quot;A String&quot;, # Required. Cloud Storage bucket name. Must meet [Bucket Name Requirements](/storage/docs/naming#requirements).
       &quot;path&quot;: &quot;A String&quot;, # Root path to transfer objects. Must be an empty string or full path name that ends with a &#x27;/&#x27;. This field is treated as an object prefix. As such, it should generally not begin with a &#x27;/&#x27;. The root path value must meet [Object Name Requirements](/storage/docs/naming#objectnames).
     },
-    &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object will not be transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer will fail. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
+    &quot;httpDataSource&quot;: { # An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `&quot;TsvHttpData-1.0&quot;`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object is not transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer fails. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer. # An HTTP URL data source.
       &quot;listUrl&quot;: &quot;A String&quot;, # Required. The URL that points to the file that stores the object list entries. This file must allow public access. Currently, only URLs with HTTP and HTTPS schemes are supported.
     },
-    &quot;objectConditions&quot;: { # Conditions that determine which objects will be transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
+    &quot;objectConditions&quot;: { # Conditions that determine which objects are transferred. Applies only to Cloud Data Sources such as S3, Azure, and Cloud Storage. The &quot;last modification time&quot; refers to the time of the last change to the object&#x27;s content or metadata — specifically, this is the `updated` property of Cloud Storage objects, the `LastModified` field of S3 objects, and the `Last-Modified` header of Azure blobs. # Only objects that satisfy these object conditions are included in the set of data source and data sink objects. Object conditions based on objects&#x27; &quot;last modification time&quot; do not exclude objects in a data sink.
       &quot;excludePrefixes&quot;: [ # If you specify `exclude_prefixes`, Storage Transfer Service uses the items in the `exclude_prefixes` array to determine which objects to exclude from a transfer. Objects must not start with one of the matching `exclude_prefixes` for inclusion in a transfer. The following are requirements of `exclude_prefixes`: * Each exclude-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each exclude-prefix must omit the leading slash. For example, to exclude the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the exclude-prefix as `logs/y=2015/requests.gz`. * None of the exclude-prefix values can be empty, if specified. * Each exclude-prefix must exclude a distinct portion of the object namespace. No exclude-prefix may be a prefix of another exclude-prefix. * If include_prefixes is specified, then each exclude-prefix must start with the value of a path explicitly included by `include_prefixes`. The max size of `exclude_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
         &quot;A String&quot;,
       ],
       &quot;includePrefixes&quot;: [ # If you specify `include_prefixes`, Storage Transfer Service uses the items in the `include_prefixes` array to determine which objects to include in a transfer. Objects must start with one of the matching `include_prefixes` for inclusion in the transfer. If exclude_prefixes is specified, objects must not start with any of the `exclude_prefixes` specified for inclusion in the transfer. The following are requirements of `include_prefixes`: * Each include-prefix can contain any sequence of Unicode characters, to a max length of 1024 bytes when UTF8-encoded, and must not contain Carriage Return or Line Feed characters. Wildcard matching and regular expression matching are not supported. * Each include-prefix must omit the leading slash. For example, to include the object `s3://my-aws-bucket/logs/y=2015/requests.gz`, specify the include-prefix as `logs/y=2015/requests.gz`. * None of the include-prefix values can be empty, if specified. * Each include-prefix must include a distinct portion of the object namespace. No include-prefix may be a prefix of another include-prefix. The max size of `include_prefixes` is 1000. For more information, see [Filtering objects from transfers](/storage-transfer/docs/filtering-objects-from-transfers).
         &quot;A String&quot;,
       ],
-      &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; will be transferred.
+      &quot;lastModifiedBefore&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred.
       &quot;lastModifiedSince&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after this timestamp and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. The `last_modified_since` and `last_modified_before` fields can be used together for chunked data processing. For example, consider a script that processes each day&#x27;s worth of data at a time. For that you&#x27;d set each of the fields as follows: * `last_modified_since` to the start of the day * `last_modified_before` to the end of the day
       &quot;maxTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; on or after `NOW` - `max_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
       &quot;minTimeElapsedSinceLastModification&quot;: &quot;A String&quot;, # If specified, only objects with a &quot;last modification time&quot; before `NOW` - `min_time_elapsed_since_last_modification` and objects that don&#x27;t have a &quot;last modification time&quot; are transferred. For each TransferOperation started by this TransferJob, `NOW` refers to the start_time of the `TransferOperation`.
@@ -726,7 +726,7 @@
     &quot;transferOptions&quot;: { # TransferOptions define the actions to be performed on objects in a transfer. # If the option delete_objects_unique_in_sink is `true` and time-based object conditions such as &#x27;last modification time&#x27; are specified, the request fails with an INVALID_ARGUMENT error.
       &quot;deleteObjectsFromSourceAfterTransfer&quot;: True or False, # Whether objects should be deleted from the source after they are transferred to the sink. **Note:** This option and delete_objects_unique_in_sink are mutually exclusive.
       &quot;deleteObjectsUniqueInSink&quot;: True or False, # Whether objects that exist only in the sink should be deleted. **Note:** This option and delete_objects_from_source_after_transfer are mutually exclusive.
-      &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source will be overwritten with the source object.
+      &quot;overwriteObjectsAlreadyExistingInSink&quot;: True or False, # When to overwrite objects that already exist in the sink. The default is that only objects that are different from the source are ovewritten. If true, all objects in the sink whose name matches an object in the source are overwritten with the source object.
     },
   },
 }</pre>
diff --git a/docs/dyn/tpu_v1alpha1.projects.locations.nodes.html b/docs/dyn/tpu_v1alpha1.projects.locations.nodes.html
index d61b105..b66e58c 100644
--- a/docs/dyn/tpu_v1alpha1.projects.locations.nodes.html
+++ b/docs/dyn/tpu_v1alpha1.projects.locations.nodes.html
@@ -78,10 +78,10 @@
   <code><a href="#close">close()</a></code></p>
 <p class="firstline">Close httplib2 connections.</p>
 <p class="toc_element">
-  <code><a href="#create">create(parent, body=None, nodeId=None, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(parent, body=None, nodeId=None, requestId=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a node.</p>
 <p class="toc_element">
-  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
+  <code><a href="#delete">delete(name, requestId=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Deletes a node.</p>
 <p class="toc_element">
   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
@@ -108,7 +108,7 @@
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(parent, body=None, nodeId=None, x__xgafv=None)</code>
+    <code class="details" id="create">create(parent, body=None, nodeId=None, requestId=None, x__xgafv=None)</code>
   <pre>Creates a node.
 
 Args:
@@ -156,6 +156,7 @@
 }
 
   nodeId: string, The unqualified resource name.
+  requestId: string, Idempotent request UUID.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
@@ -186,11 +187,12 @@
 </div>
 
 <div class="method">
-    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
+    <code class="details" id="delete">delete(name, requestId=None, x__xgafv=None)</code>
   <pre>Deletes a node.
 
 Args:
   name: string, Required. The resource name. (required)
+  requestId: string, Idempotent request UUID.
   x__xgafv: string, V1 error format.
     Allowed values
       1 - v1 error format
