feat(all): auto-regenerate discovery clients (#2644)

diff --git a/admin/directory/v1/admin-api.json b/admin/directory/v1/admin-api.json
index a523792..591866b 100644
--- a/admin/directory/v1/admin-api.json
+++ b/admin/directory/v1/admin-api.json
@@ -4671,7 +4671,7 @@
       }
     }
   },
-  "revision": "20240611",
+  "revision": "20240618",
   "rootUrl": "https://admin.googleapis.com/",
   "schemas": {
     "Alias": {
@@ -6164,7 +6164,7 @@
           ],
           "enumDescriptions": [
             "The command type was unspecified.",
-            "Reboot the device. Can only be issued to Kiosk and managed guest session devices.",
+            "Reboot the device. Can be issued to Kiosk and managed guest session devices, and regular devices running ChromeOS version 113 or later.",
             "Take a screenshot of the device. Only available if the device is in Kiosk Mode.",
             "Set the volume of the device. Can only be issued to Kiosk and managed guest session devices.",
             "Wipe all the users off of the device. Executing this command in the device will remove all user profile data, but it will keep device policy and enrollment.",
@@ -6233,7 +6233,7 @@
           ],
           "enumDescriptions": [
             "The command type was unspecified.",
-            "Reboot the device. Can only be issued to Kiosk and managed guest session devices.",
+            "Reboot the device. Can be issued to Kiosk and managed guest session devices, and regular devices running ChromeOS version 113 or later.",
             "Take a screenshot of the device. Only available if the device is in Kiosk Mode.",
             "Set the volume of the device. Can only be issued to Kiosk and managed guest session devices.",
             "Wipe all the users off of the device. Executing this command in the device will remove all user profile data, but it will keep device policy and enrollment.",
diff --git a/admin/directory/v1/admin-gen.go b/admin/directory/v1/admin-gen.go
index 554644e..f1201fd 100644
--- a/admin/directory/v1/admin-gen.go
+++ b/admin/directory/v1/admin-gen.go
@@ -2344,8 +2344,8 @@
 	//
 	// Possible values:
 	//   "COMMAND_TYPE_UNSPECIFIED" - The command type was unspecified.
-	//   "REBOOT" - Reboot the device. Can only be issued to Kiosk and managed
-	// guest session devices.
+	//   "REBOOT" - Reboot the device. Can be issued to Kiosk and managed guest
+	// session devices, and regular devices running ChromeOS version 113 or later.
 	//   "TAKE_A_SCREENSHOT" - Take a screenshot of the device. Only available if
 	// the device is in Kiosk Mode.
 	//   "SET_VOLUME" - Set the volume of the device. Can only be issued to Kiosk
@@ -2438,8 +2438,8 @@
 	//
 	// Possible values:
 	//   "COMMAND_TYPE_UNSPECIFIED" - The command type was unspecified.
-	//   "REBOOT" - Reboot the device. Can only be issued to Kiosk and managed
-	// guest session devices.
+	//   "REBOOT" - Reboot the device. Can be issued to Kiosk and managed guest
+	// session devices, and regular devices running ChromeOS version 113 or later.
 	//   "TAKE_A_SCREENSHOT" - Take a screenshot of the device. Only available if
 	// the device is in Kiosk Mode.
 	//   "SET_VOLUME" - Set the volume of the device. Can only be issued to Kiosk
diff --git a/assuredworkloads/v1/assuredworkloads-api.json b/assuredworkloads/v1/assuredworkloads-api.json
index cac3f7f..ec7f40d 100644
--- a/assuredworkloads/v1/assuredworkloads-api.json
+++ b/assuredworkloads/v1/assuredworkloads-api.json
@@ -591,7 +591,7 @@
       }
     }
   },
-  "revision": "20240530",
+  "revision": "20240617",
   "rootUrl": "https://assuredworkloads.googleapis.com/",
   "schemas": {
     "GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest": {
@@ -703,8 +703,7 @@
             "JP_REGIONS_AND_SUPPORT",
             "REGIONAL_CONTROLS_PREMIUM_JP",
             "KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS",
-            "REGIONAL_CONTROLS",
-            "FREE_REGIONS"
+            "REGIONAL_CONTROLS"
           ],
           "enumDescriptions": [
             "Unknown compliance regime.",
@@ -733,8 +732,7 @@
             "Assured Workloads for Japan Regions",
             "Assured Workloads for Japan Regions",
             "KSA R5 Controls.",
-            "Assured Workloads for Regional Controls/Free Regions",
-            "Assured Workloads for Regional Controls/Free Regions"
+            "Assured Workloads for Regional Controls"
           ],
           "type": "string"
         },
@@ -1200,8 +1198,7 @@
             "JP_REGIONS_AND_SUPPORT",
             "REGIONAL_CONTROLS_PREMIUM_JP",
             "KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS",
-            "REGIONAL_CONTROLS",
-            "FREE_REGIONS"
+            "REGIONAL_CONTROLS"
           ],
           "enumDescriptions": [
             "Unknown compliance regime.",
@@ -1230,8 +1227,7 @@
             "Assured Workloads for Japan Regions",
             "Assured Workloads for Japan Regions",
             "KSA R5 Controls.",
-            "Assured Workloads for Regional Controls/Free Regions",
-            "Assured Workloads for Regional Controls/Free Regions"
+            "Assured Workloads for Regional Controls"
           ],
           "type": "string"
         },
diff --git a/assuredworkloads/v1/assuredworkloads-gen.go b/assuredworkloads/v1/assuredworkloads-gen.go
index b24291e..3c8ed87 100644
--- a/assuredworkloads/v1/assuredworkloads-gen.go
+++ b/assuredworkloads/v1/assuredworkloads-gen.go
@@ -357,8 +357,7 @@
 	//   "JP_REGIONS_AND_SUPPORT" - Assured Workloads for Japan Regions
 	//   "REGIONAL_CONTROLS_PREMIUM_JP" - Assured Workloads for Japan Regions
 	//   "KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS" - KSA R5 Controls.
-	//   "REGIONAL_CONTROLS" - Assured Workloads for Regional Controls/Free Regions
-	//   "FREE_REGIONS" - Assured Workloads for Regional Controls/Free Regions
+	//   "REGIONAL_CONTROLS" - Assured Workloads for Regional Controls
 	ComplianceRegime string `json:"complianceRegime,omitempty"`
 	// CreateTime: Optional. Time when the operation was created.
 	CreateTime string `json:"createTime,omitempty"`
@@ -902,8 +901,7 @@
 	//   "JP_REGIONS_AND_SUPPORT" - Assured Workloads for Japan Regions
 	//   "REGIONAL_CONTROLS_PREMIUM_JP" - Assured Workloads for Japan Regions
 	//   "KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS" - KSA R5 Controls.
-	//   "REGIONAL_CONTROLS" - Assured Workloads for Regional Controls/Free Regions
-	//   "FREE_REGIONS" - Assured Workloads for Regional Controls/Free Regions
+	//   "REGIONAL_CONTROLS" - Assured Workloads for Regional Controls
 	ComplianceRegime string `json:"complianceRegime,omitempty"`
 	// ComplianceStatus: Output only. Count of active Violations in the Workload.
 	ComplianceStatus *GoogleCloudAssuredworkloadsV1WorkloadComplianceStatus `json:"complianceStatus,omitempty"`
diff --git a/assuredworkloads/v1beta1/assuredworkloads-api.json b/assuredworkloads/v1beta1/assuredworkloads-api.json
index 7a7db2b..d5115de 100644
--- a/assuredworkloads/v1beta1/assuredworkloads-api.json
+++ b/assuredworkloads/v1beta1/assuredworkloads-api.json
@@ -563,7 +563,7 @@
       }
     }
   },
-  "revision": "20240530",
+  "revision": "20240617",
   "rootUrl": "https://assuredworkloads.googleapis.com/",
   "schemas": {
     "GoogleCloudAssuredworkloadsV1beta1AcknowledgeViolationRequest": {
@@ -675,8 +675,7 @@
             "JP_REGIONS_AND_SUPPORT",
             "REGIONAL_CONTROLS_PREMIUM_JP",
             "KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS",
-            "REGIONAL_CONTROLS",
-            "FREE_REGIONS"
+            "REGIONAL_CONTROLS"
           ],
           "enumDescriptions": [
             "Unknown compliance regime.",
@@ -705,8 +704,7 @@
             "Assured Workloads for Japan Regions",
             "Assured Workloads for Japan Regions",
             "KSA R5 Controls.",
-            "Assured Workloads for Regional Controls/Free Regions",
-            "Assured Workloads for Regional Controls/Free Regions"
+            "Assured Workloads for Regional Controls"
           ],
           "type": "string"
         },
@@ -1164,8 +1162,7 @@
             "JP_REGIONS_AND_SUPPORT",
             "REGIONAL_CONTROLS_PREMIUM_JP",
             "KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS",
-            "REGIONAL_CONTROLS",
-            "FREE_REGIONS"
+            "REGIONAL_CONTROLS"
           ],
           "enumDescriptions": [
             "Unknown compliance regime.",
@@ -1194,8 +1191,7 @@
             "Assured Workloads for Japan Regions",
             "Assured Workloads for Japan Regions",
             "KSA R5 Controls.",
-            "Assured Workloads for Regional Controls/Free Regions",
-            "Assured Workloads for Regional Controls/Free Regions"
+            "Assured Workloads for Regional Controls"
           ],
           "type": "string"
         },
diff --git a/assuredworkloads/v1beta1/assuredworkloads-gen.go b/assuredworkloads/v1beta1/assuredworkloads-gen.go
index 1a707ac..4f61574 100644
--- a/assuredworkloads/v1beta1/assuredworkloads-gen.go
+++ b/assuredworkloads/v1beta1/assuredworkloads-gen.go
@@ -357,8 +357,7 @@
 	//   "JP_REGIONS_AND_SUPPORT" - Assured Workloads for Japan Regions
 	//   "REGIONAL_CONTROLS_PREMIUM_JP" - Assured Workloads for Japan Regions
 	//   "KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS" - KSA R5 Controls.
-	//   "REGIONAL_CONTROLS" - Assured Workloads for Regional Controls/Free Regions
-	//   "FREE_REGIONS" - Assured Workloads for Regional Controls/Free Regions
+	//   "REGIONAL_CONTROLS" - Assured Workloads for Regional Controls
 	ComplianceRegime string `json:"complianceRegime,omitempty"`
 	// CreateTime: Optional. Time when the operation was created.
 	CreateTime string `json:"createTime,omitempty"`
@@ -879,8 +878,7 @@
 	//   "JP_REGIONS_AND_SUPPORT" - Assured Workloads for Japan Regions
 	//   "REGIONAL_CONTROLS_PREMIUM_JP" - Assured Workloads for Japan Regions
 	//   "KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS" - KSA R5 Controls.
-	//   "REGIONAL_CONTROLS" - Assured Workloads for Regional Controls/Free Regions
-	//   "FREE_REGIONS" - Assured Workloads for Regional Controls/Free Regions
+	//   "REGIONAL_CONTROLS" - Assured Workloads for Regional Controls
 	ComplianceRegime string `json:"complianceRegime,omitempty"`
 	// ComplianceStatus: Output only. Count of active Violations in the Workload.
 	ComplianceStatus *GoogleCloudAssuredworkloadsV1beta1WorkloadComplianceStatus `json:"complianceStatus,omitempty"`
diff --git a/cloudasset/v1/cloudasset-api.json b/cloudasset/v1/cloudasset-api.json
index 03894de..782d5bb 100644
--- a/cloudasset/v1/cloudasset-api.json
+++ b/cloudasset/v1/cloudasset-api.json
@@ -1095,7 +1095,7 @@
       }
     }
   },
-  "revision": "20240608",
+  "revision": "20240614",
   "rootUrl": "https://cloudasset.googleapis.com/",
   "schemas": {
     "AccessSelector": {
@@ -4075,7 +4075,7 @@
       "type": "object"
     },
     "ResourceSearchResult": {
-      "description": "A result of Resource Search, containing information of a cloud resource. Next ID: 36",
+      "description": "A result of Resource Search, containing information of a cloud resource.",
       "id": "ResourceSearchResult",
       "properties": {
         "additionalAttributes": {
diff --git a/cloudasset/v1/cloudasset-gen.go b/cloudasset/v1/cloudasset-gen.go
index 8ca8701..b2496f9 100644
--- a/cloudasset/v1/cloudasset-gen.go
+++ b/cloudasset/v1/cloudasset-gen.go
@@ -4944,7 +4944,7 @@
 }
 
 // ResourceSearchResult: A result of Resource Search, containing information of
-// a cloud resource. Next ID: 36
+// a cloud resource.
 type ResourceSearchResult struct {
 	// AdditionalAttributes: The additional searchable attributes of this resource.
 	// The attributes may vary from one resource type to another. Examples:
diff --git a/cloudbuild/v2/cloudbuild-api.json b/cloudbuild/v2/cloudbuild-api.json
index 0b40339..d830257 100644
--- a/cloudbuild/v2/cloudbuild-api.json
+++ b/cloudbuild/v2/cloudbuild-api.json
@@ -844,7 +844,7 @@
       }
     }
   },
-  "revision": "20240609",
+  "revision": "20240616",
   "rootUrl": "https://cloudbuild.googleapis.com/",
   "schemas": {
     "AuditConfig": {
@@ -1873,14 +1873,16 @@
             "BUNDLES",
             "GCB_REPO",
             "GIT",
-            "DEVELOPER_CONNECT"
+            "DEVELOPER_CONNECT",
+            "DEFAULT"
           ],
           "enumDescriptions": [
             "Default enum type; should not be used.",
             "Bundles resolver. https://tekton.dev/docs/pipelines/bundle-resolver/",
             "GCB repo resolver.",
             "Simple Git resolver. https://tekton.dev/docs/pipelines/git-resolver/",
-            "Developer Connect resolver."
+            "Developer Connect resolver.",
+            "Default resolver."
           ],
           "type": "string"
         }
@@ -2797,14 +2799,16 @@
             "BUNDLES",
             "GCB_REPO",
             "GIT",
-            "DEVELOPER_CONNECT"
+            "DEVELOPER_CONNECT",
+            "DEFAULT"
           ],
           "enumDescriptions": [
             "Default enum type; should not be used.",
             "Bundles resolver. https://tekton.dev/docs/pipelines/bundle-resolver/",
             "GCB repo resolver.",
             "Simple Git resolver. https://tekton.dev/docs/pipelines/git-resolver/",
-            "Developer Connect resolver."
+            "Developer Connect resolver.",
+            "Default resolver."
           ],
           "type": "string"
         }
@@ -2855,14 +2859,16 @@
             "BUNDLES",
             "GCB_REPO",
             "GIT",
-            "DEVELOPER_CONNECT"
+            "DEVELOPER_CONNECT",
+            "DEFAULT"
           ],
           "enumDescriptions": [
             "Default enum type; should not be used.",
             "Bundles resolver. https://tekton.dev/docs/pipelines/bundle-resolver/",
             "GCB repo resolver.",
             "Simple Git resolver. https://tekton.dev/docs/pipelines/git-resolver/",
-            "Developer Connect resolver."
+            "Developer Connect resolver.",
+            "Default resolver."
           ],
           "type": "string"
         }
diff --git a/cloudbuild/v2/cloudbuild-gen.go b/cloudbuild/v2/cloudbuild-gen.go
index 2d848cb..5a24f4e 100644
--- a/cloudbuild/v2/cloudbuild-gen.go
+++ b/cloudbuild/v2/cloudbuild-gen.go
@@ -1590,6 +1590,7 @@
 	//   "GIT" - Simple Git resolver.
 	// https://tekton.dev/docs/pipelines/git-resolver/
 	//   "DEVELOPER_CONNECT" - Developer Connect resolver.
+	//   "DEFAULT" - Default resolver.
 	Resolver string `json:"resolver,omitempty"`
 	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
 	// include in API requests. By default, fields with empty or default values are
@@ -2503,6 +2504,7 @@
 	//   "GIT" - Simple Git resolver.
 	// https://tekton.dev/docs/pipelines/git-resolver/
 	//   "DEVELOPER_CONNECT" - Developer Connect resolver.
+	//   "DEFAULT" - Default resolver.
 	Resolver string `json:"resolver,omitempty"`
 	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
 	// include in API requests. By default, fields with empty or default values are
@@ -2569,6 +2571,7 @@
 	//   "GIT" - Simple Git resolver.
 	// https://tekton.dev/docs/pipelines/git-resolver/
 	//   "DEVELOPER_CONNECT" - Developer Connect resolver.
+	//   "DEFAULT" - Default resolver.
 	Resolver string `json:"resolver,omitempty"`
 	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
 	// include in API requests. By default, fields with empty or default values are
diff --git a/dialogflow/v2/dialogflow-api.json b/dialogflow/v2/dialogflow-api.json
index 0cf213f..57f04d6 100644
--- a/dialogflow/v2/dialogflow-api.json
+++ b/dialogflow/v2/dialogflow-api.json
@@ -3344,7 +3344,7 @@
               ],
               "parameters": {
                 "filter": {
-                  "description": "A filter expression that filters conversations listed in the response. In general, the expression must specify the field name, a comparison operator, and the value to use for filtering: - The value must be a string, a number, or a boolean. - The comparison operator must be either `=`,`!=`, `\u003e`, or `\u003c`. - To filter on multiple expressions, separate the expressions with `AND` or `OR` (omitting both implies `AND`). - For clarity, expressions can be enclosed in parentheses. Only `lifecycle_state` can be filtered on in this way. For example, the following expression only returns `COMPLETED` conversations: `lifecycle_state = \"COMPLETED\"` For more information about filtering, see [API Filtering](https://aip.dev/160).",
+                  "description": "Optional. A filter expression that filters conversations listed in the response. Only `lifecycle_state` can be filtered on in this way. For example, the following expression only returns `COMPLETED` conversations: `lifecycle_state = \"COMPLETED\"` For more information about filtering, see [API Filtering](https://aip.dev/160).",
                   "location": "query",
                   "type": "string"
                 },
@@ -3718,7 +3718,7 @@
                   ],
                   "parameters": {
                     "conversation": {
-                      "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
+                      "description": "Optional. The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
                       "location": "path",
                       "pattern": "^projects/[^/]+/conversations/[^/]+$",
                       "required": true,
@@ -7291,7 +7291,7 @@
                   ],
                   "parameters": {
                     "filter": {
-                      "description": "A filter expression that filters conversations listed in the response. In general, the expression must specify the field name, a comparison operator, and the value to use for filtering: - The value must be a string, a number, or a boolean. - The comparison operator must be either `=`,`!=`, `\u003e`, or `\u003c`. - To filter on multiple expressions, separate the expressions with `AND` or `OR` (omitting both implies `AND`). - For clarity, expressions can be enclosed in parentheses. Only `lifecycle_state` can be filtered on in this way. For example, the following expression only returns `COMPLETED` conversations: `lifecycle_state = \"COMPLETED\"` For more information about filtering, see [API Filtering](https://aip.dev/160).",
+                      "description": "Optional. A filter expression that filters conversations listed in the response. Only `lifecycle_state` can be filtered on in this way. For example, the following expression only returns `COMPLETED` conversations: `lifecycle_state = \"COMPLETED\"` For more information about filtering, see [API Filtering](https://aip.dev/160).",
                       "location": "query",
                       "type": "string"
                     },
@@ -7665,7 +7665,7 @@
                       ],
                       "parameters": {
                         "conversation": {
-                          "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
+                          "description": "Optional. The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
                           "location": "path",
                           "pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$",
                           "required": true,
@@ -8469,7 +8469,7 @@
                   ],
                   "parameters": {
                     "parent": {
-                      "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
+                      "description": "Required. The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
                       "location": "path",
                       "pattern": "^projects/[^/]+/locations/[^/]+$",
                       "required": true,
@@ -8631,7 +8631,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
+                  "description": "Required. The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -8655,7 +8655,7 @@
       }
     }
   },
-  "revision": "20240607",
+  "revision": "20240614",
   "rootUrl": "https://dialogflow.googleapis.com/",
   "schemas": {
     "GoogleCloudDialogflowCxV3AdvancedSettings": {
@@ -14336,7 +14336,7 @@
           "type": "string"
         },
         "conversationStage": {
-          "description": "The stage of a conversation. It indicates whether the virtual agent or a human agent is handling the conversation. If the conversation is created with the conversation profile that has Dialogflow config set, defaults to ConversationStage.VIRTUAL_AGENT_STAGE; Otherwise, defaults to ConversationStage.HUMAN_ASSIST_STAGE. If the conversation is created with the conversation profile that has Dialogflow config set but explicitly sets conversation_stage to ConversationStage.HUMAN_ASSIST_STAGE, it skips ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to ConversationStage.HUMAN_ASSIST_STAGE.",
+          "description": "Optional. The stage of a conversation. It indicates whether the virtual agent or a human agent is handling the conversation. If the conversation is created with the conversation profile that has Dialogflow config set, defaults to ConversationStage.VIRTUAL_AGENT_STAGE; Otherwise, defaults to ConversationStage.HUMAN_ASSIST_STAGE. If the conversation is created with the conversation profile that has Dialogflow config set but explicitly sets conversation_stage to ConversationStage.HUMAN_ASSIST_STAGE, it skips ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to ConversationStage.HUMAN_ASSIST_STAGE.",
           "enum": [
             "CONVERSATION_STAGE_UNSPECIFIED",
             "VIRTUAL_AGENT_STAGE",
@@ -14371,7 +14371,7 @@
           "type": "string"
         },
         "name": {
-          "description": "Output only. The unique identifier of this conversation. Format: `projects//locations//conversations/`.",
+          "description": "Output only. Identifier. The unique identifier of this conversation. Format: `projects//locations//conversations/`.",
           "readOnly": true,
           "type": "string"
         },
@@ -15551,11 +15551,11 @@
           "description": "Required. A ConversationProfile containing information required for Summary generation. Required fields: {language_code, security_settings} Optional fields: {agent_assistant_config}"
         },
         "latestMessage": {
-          "description": "The name of the latest conversation message used as context for generating a Summary. If empty, the latest message of the conversation will be used. The format is specific to the user and the names of the messages provided.",
+          "description": "Optional. The name of the latest conversation message used as context for generating a Summary. If empty, the latest message of the conversation will be used. The format is specific to the user and the names of the messages provided.",
           "type": "string"
         },
         "maxContextSize": {
-          "description": "Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.",
+          "description": "Optional. Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.",
           "format": "int32",
           "type": "integer"
         },
@@ -18282,7 +18282,7 @@
       "id": "GoogleCloudDialogflowV2SearchKnowledgeRequest",
       "properties": {
         "conversation": {
-          "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
+          "description": "Optional. The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
           "type": "string"
         },
         "conversationProfile": {
@@ -18290,11 +18290,11 @@
           "type": "string"
         },
         "latestMessage": {
-          "description": "The name of the latest conversation message when the request is triggered. Format: `projects//locations//conversations//messages/`.",
+          "description": "Optional. The name of the latest conversation message when the request is triggered. Format: `projects//locations//conversations//messages/`.",
           "type": "string"
         },
         "parent": {
-          "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
+          "description": "Required. The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
           "type": "string"
         },
         "query": {
@@ -18302,7 +18302,7 @@
           "description": "Required. The natural language text query for knowledge search."
         },
         "sessionId": {
-          "description": "The ID of the search session. The session_id can be combined with Dialogflow V3 Agent ID retrieved from conversation profile or on its own to identify a search session. The search history of the same session will impact the search result. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length must not exceed 36 characters.",
+          "description": "Optional. The ID of the search session. The session_id can be combined with Dialogflow V3 Agent ID retrieved from conversation profile or on its own to identify a search session. The search history of the same session will impact the search result. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length must not exceed 36 characters.",
           "type": "string"
         }
       },
@@ -18657,15 +18657,15 @@
       "properties": {
         "assistQueryParams": {
           "$ref": "GoogleCloudDialogflowV2AssistQueryParameters",
-          "description": "Parameters for a human assist query. Only used for POC/demo purpose."
+          "description": "Optional. Parameters for a human assist query. Only used for POC/demo purpose."
         },
         "contextSize": {
-          "description": "Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.",
+          "description": "Optional. Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.",
           "format": "int32",
           "type": "integer"
         },
         "latestMessage": {
-          "description": "The name of the latest conversation message used as context for compiling suggestion. If empty, the latest message of the conversation will be used. Format: `projects//locations//conversations//messages/`.",
+          "description": "Optional. The name of the latest conversation message used as context for compiling suggestion. If empty, the latest message of the conversation will be used. Format: `projects//locations//conversations//messages/`.",
           "type": "string"
         }
       },
diff --git a/dialogflow/v2/dialogflow-gen.go b/dialogflow/v2/dialogflow-gen.go
index 1a7323e..105a004 100644
--- a/dialogflow/v2/dialogflow-gen.go
+++ b/dialogflow/v2/dialogflow-gen.go
@@ -8994,14 +8994,15 @@
 	// configure this Conversation. This field cannot be updated. Format:
 	// `projects//locations//conversationProfiles/`.
 	ConversationProfile string `json:"conversationProfile,omitempty"`
-	// ConversationStage: The stage of a conversation. It indicates whether the
-	// virtual agent or a human agent is handling the conversation. If the
+	// ConversationStage: Optional. The stage of a conversation. It indicates
+	// whether the virtual agent or a human agent is handling the conversation. If
+	// the conversation is created with the conversation profile that has
+	// Dialogflow config set, defaults to ConversationStage.VIRTUAL_AGENT_STAGE;
+	// Otherwise, defaults to ConversationStage.HUMAN_ASSIST_STAGE. If the
 	// conversation is created with the conversation profile that has Dialogflow
-	// config set, defaults to ConversationStage.VIRTUAL_AGENT_STAGE; Otherwise,
-	// defaults to ConversationStage.HUMAN_ASSIST_STAGE. If the conversation is
-	// created with the conversation profile that has Dialogflow config set but
-	// explicitly sets conversation_stage to ConversationStage.HUMAN_ASSIST_STAGE,
-	// it skips ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to
+	// config set but explicitly sets conversation_stage to
+	// ConversationStage.HUMAN_ASSIST_STAGE, it skips
+	// ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to
 	// ConversationStage.HUMAN_ASSIST_STAGE.
 	//
 	// Possible values:
@@ -9021,8 +9022,8 @@
 	//   "IN_PROGRESS" - Conversation is currently open for media analysis.
 	//   "COMPLETED" - Conversation has been completed.
 	LifecycleState string `json:"lifecycleState,omitempty"`
-	// Name: Output only. The unique identifier of this conversation. Format:
-	// `projects//locations//conversations/`.
+	// Name: Output only. Identifier. The unique identifier of this conversation.
+	// Format: `projects//locations//conversations/`.
 	Name string `json:"name,omitempty"`
 	// PhoneNumber: Output only. It will not be empty if the conversation is to be
 	// connected over telephony.
@@ -10651,12 +10652,12 @@
 	// required for Summary generation. Required fields: {language_code,
 	// security_settings} Optional fields: {agent_assistant_config}
 	ConversationProfile *GoogleCloudDialogflowV2ConversationProfile `json:"conversationProfile,omitempty"`
-	// LatestMessage: The name of the latest conversation message used as context
-	// for generating a Summary. If empty, the latest message of the conversation
-	// will be used. The format is specific to the user and the names of the
-	// messages provided.
+	// LatestMessage: Optional. The name of the latest conversation message used as
+	// context for generating a Summary. If empty, the latest message of the
+	// conversation will be used. The format is specific to the user and the names
+	// of the messages provided.
 	LatestMessage string `json:"latestMessage,omitempty"`
-	// MaxContextSize: Max number of messages prior to and including
+	// MaxContextSize: Optional. Max number of messages prior to and including
 	// [latest_message] to use as context when compiling the suggestion. By default
 	// 500 and at most 1000.
 	MaxContextSize int64 `json:"maxContextSize,omitempty"`
@@ -14539,26 +14540,29 @@
 // GoogleCloudDialogflowV2SearchKnowledgeRequest: The request message for
 // Conversations.SearchKnowledge.
 type GoogleCloudDialogflowV2SearchKnowledgeRequest struct {
-	// Conversation: The conversation (between human agent and end user) where the
-	// search request is triggered. Format: `projects//locations//conversations/`.
+	// Conversation: Optional. The conversation (between human agent and end user)
+	// where the search request is triggered. Format:
+	// `projects//locations//conversations/`.
 	Conversation string `json:"conversation,omitempty"`
 	// ConversationProfile: Required. The conversation profile used to configure
 	// the search. Format: `projects//locations//conversationProfiles/`.
 	ConversationProfile string `json:"conversationProfile,omitempty"`
-	// LatestMessage: The name of the latest conversation message when the request
-	// is triggered. Format: `projects//locations//conversations//messages/`.
+	// LatestMessage: Optional. The name of the latest conversation message when
+	// the request is triggered. Format:
+	// `projects//locations//conversations//messages/`.
 	LatestMessage string `json:"latestMessage,omitempty"`
-	// Parent: The parent resource contains the conversation profile Format:
-	// 'projects/' or `projects//locations/`.
+	// Parent: Required. The parent resource contains the conversation profile
+	// Format: 'projects/' or `projects//locations/`.
 	Parent string `json:"parent,omitempty"`
 	// Query: Required. The natural language text query for knowledge search.
 	Query *GoogleCloudDialogflowV2TextInput `json:"query,omitempty"`
-	// SessionId: The ID of the search session. The session_id can be combined with
-	// Dialogflow V3 Agent ID retrieved from conversation profile or on its own to
-	// identify a search session. The search history of the same session will
-	// impact the search result. It's up to the API caller to choose an appropriate
-	// `Session ID`. It can be a random number or some type of session identifiers
-	// (preferably hashed). The length must not exceed 36 characters.
+	// SessionId: Optional. The ID of the search session. The session_id can be
+	// combined with Dialogflow V3 Agent ID retrieved from conversation profile or
+	// on its own to identify a search session. The search history of the same
+	// session will impact the search result. It's up to the API caller to choose
+	// an appropriate `Session ID`. It can be a random number or some type of
+	// session identifiers (preferably hashed). The length must not exceed 36
+	// characters.
 	SessionId string `json:"sessionId,omitempty"`
 	// ForceSendFields is a list of field names (e.g. "Conversation") to
 	// unconditionally include in API requests. By default, fields with empty or
@@ -15195,16 +15199,17 @@
 // GoogleCloudDialogflowV2SuggestConversationSummaryRequest: The request
 // message for Conversations.SuggestConversationSummary.
 type GoogleCloudDialogflowV2SuggestConversationSummaryRequest struct {
-	// AssistQueryParams: Parameters for a human assist query. Only used for
-	// POC/demo purpose.
+	// AssistQueryParams: Optional. Parameters for a human assist query. Only used
+	// for POC/demo purpose.
 	AssistQueryParams *GoogleCloudDialogflowV2AssistQueryParameters `json:"assistQueryParams,omitempty"`
-	// ContextSize: Max number of messages prior to and including [latest_message]
-	// to use as context when compiling the suggestion. By default 500 and at most
-	// 1000.
+	// ContextSize: Optional. Max number of messages prior to and including
+	// [latest_message] to use as context when compiling the suggestion. By default
+	// 500 and at most 1000.
 	ContextSize int64 `json:"contextSize,omitempty"`
-	// LatestMessage: The name of the latest conversation message used as context
-	// for compiling suggestion. If empty, the latest message of the conversation
-	// will be used. Format: `projects//locations//conversations//messages/`.
+	// LatestMessage: Optional. The name of the latest conversation message used as
+	// context for compiling suggestion. If empty, the latest message of the
+	// conversation will be used. Format:
+	// `projects//locations//conversations//messages/`.
 	LatestMessage string `json:"latestMessage,omitempty"`
 	// ForceSendFields is a list of field names (e.g. "AssistQueryParams") to
 	// unconditionally include in API requests. By default, fields with empty or
@@ -31581,16 +31586,10 @@
 }
 
 // Filter sets the optional parameter "filter": A filter expression that
-// filters conversations listed in the response. In general, the expression
-// must specify the field name, a comparison operator, and the value to use for
-// filtering: - The value must be a string, a number, or a boolean. - The
-// comparison operator must be either `=`,`!=`, `>`, or `<`. - To filter on
-// multiple expressions, separate the expressions with `AND` or `OR` (omitting
-// both implies `AND`). - For clarity, expressions can be enclosed in
-// parentheses. Only `lifecycle_state` can be filtered on in this way. For
-// example, the following expression only returns `COMPLETED` conversations:
-// `lifecycle_state = "COMPLETED" For more information about filtering, see
-// API Filtering (https://aip.dev/160).
+// filters conversations listed in the response. Only `lifecycle_state` can be
+// filtered on in this way. For example, the following expression only returns
+// `COMPLETED` conversations: `lifecycle_state = "COMPLETED" For more
+// information about filtering, see API Filtering (https://aip.dev/160).
 func (c *ProjectsConversationsListCall) Filter(filter string) *ProjectsConversationsListCall {
 	c.urlParams_.Set("filter", filter)
 	return c
@@ -32880,8 +32879,8 @@
 // SearchKnowledge: Get answers for the given query based on knowledge
 // documents.
 //
-//   - conversation: The conversation (between human agent and end user) where
-//     the search request is triggered. Format:
+//   - conversation: Optional. The conversation (between human agent and end
+//     user) where the search request is triggered. Format:
 //     `projects//locations//conversations/`.
 func (r *ProjectsConversationsSuggestionsService) SearchKnowledge(conversation string, googleclouddialogflowv2searchknowledgerequest *GoogleCloudDialogflowV2SearchKnowledgeRequest) *ProjectsConversationsSuggestionsSearchKnowledgeCall {
 	c := &ProjectsConversationsSuggestionsSearchKnowledgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
@@ -45758,16 +45757,10 @@
 }
 
 // Filter sets the optional parameter "filter": A filter expression that
-// filters conversations listed in the response. In general, the expression
-// must specify the field name, a comparison operator, and the value to use for
-// filtering: - The value must be a string, a number, or a boolean. - The
-// comparison operator must be either `=`,`!=`, `>`, or `<`. - To filter on
-// multiple expressions, separate the expressions with `AND` or `OR` (omitting
-// both implies `AND`). - For clarity, expressions can be enclosed in
-// parentheses. Only `lifecycle_state` can be filtered on in this way. For
-// example, the following expression only returns `COMPLETED` conversations:
-// `lifecycle_state = "COMPLETED" For more information about filtering, see
-// API Filtering (https://aip.dev/160).
+// filters conversations listed in the response. Only `lifecycle_state` can be
+// filtered on in this way. For example, the following expression only returns
+// `COMPLETED` conversations: `lifecycle_state = "COMPLETED" For more
+// information about filtering, see API Filtering (https://aip.dev/160).
 func (c *ProjectsLocationsConversationsListCall) Filter(filter string) *ProjectsLocationsConversationsListCall {
 	c.urlParams_.Set("filter", filter)
 	return c
@@ -47057,8 +47050,8 @@
 // SearchKnowledge: Get answers for the given query based on knowledge
 // documents.
 //
-//   - conversation: The conversation (between human agent and end user) where
-//     the search request is triggered. Format:
+//   - conversation: Optional. The conversation (between human agent and end
+//     user) where the search request is triggered. Format:
 //     `projects//locations//conversations/`.
 func (r *ProjectsLocationsConversationsSuggestionsService) SearchKnowledge(conversation string, googleclouddialogflowv2searchknowledgerequest *GoogleCloudDialogflowV2SearchKnowledgeRequest) *ProjectsLocationsConversationsSuggestionsSearchKnowledgeCall {
 	c := &ProjectsLocationsConversationsSuggestionsSearchKnowledgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
diff --git a/dialogflow/v2beta1/dialogflow-api.json b/dialogflow/v2beta1/dialogflow-api.json
index 5fd94fc..4fca4ef 100644
--- a/dialogflow/v2beta1/dialogflow-api.json
+++ b/dialogflow/v2beta1/dialogflow-api.json
@@ -3031,7 +3031,7 @@
               ],
               "parameters": {
                 "filter": {
-                  "description": "A filter expression that filters conversations listed in the response. In general, the expression must specify the field name, a comparison operator, and the value to use for filtering: - The value must be a string, a number, or a boolean. - The comparison operator must be either `=`,`!=`, `\u003e`, or `\u003c`. - To filter on multiple expressions, separate the expressions with `AND` or `OR` (omitting both implies `AND`). - For clarity, expressions can be enclosed in parentheses. Only `lifecycle_state` can be filtered on in this way. For example, the following expression only returns `COMPLETED` conversations: `lifecycle_state = \"COMPLETED\"` For more information about filtering, see [API Filtering](https://aip.dev/160).",
+                  "description": "Optional. A filter expression that filters conversations listed in the response. Only `lifecycle_state` can be filtered on in this way. For example, the following expression only returns `COMPLETED` conversations: `lifecycle_state = \"COMPLETED\"` For more information about filtering, see [API Filtering](https://aip.dev/160).",
                   "location": "query",
                   "type": "string"
                 },
@@ -3507,7 +3507,7 @@
                   ],
                   "parameters": {
                     "conversation": {
-                      "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
+                      "description": "Optional. The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
                       "location": "path",
                       "pattern": "^projects/[^/]+/conversations/[^/]+$",
                       "required": true,
@@ -6654,7 +6654,7 @@
                   ],
                   "parameters": {
                     "filter": {
-                      "description": "A filter expression that filters conversations listed in the response. In general, the expression must specify the field name, a comparison operator, and the value to use for filtering: - The value must be a string, a number, or a boolean. - The comparison operator must be either `=`,`!=`, `\u003e`, or `\u003c`. - To filter on multiple expressions, separate the expressions with `AND` or `OR` (omitting both implies `AND`). - For clarity, expressions can be enclosed in parentheses. Only `lifecycle_state` can be filtered on in this way. For example, the following expression only returns `COMPLETED` conversations: `lifecycle_state = \"COMPLETED\"` For more information about filtering, see [API Filtering](https://aip.dev/160).",
+                      "description": "Optional. A filter expression that filters conversations listed in the response. Only `lifecycle_state` can be filtered on in this way. For example, the following expression only returns `COMPLETED` conversations: `lifecycle_state = \"COMPLETED\"` For more information about filtering, see [API Filtering](https://aip.dev/160).",
                       "location": "query",
                       "type": "string"
                     },
@@ -7057,7 +7057,7 @@
                       ],
                       "parameters": {
                         "conversation": {
-                          "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
+                          "description": "Optional. The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
                           "location": "path",
                           "pattern": "^projects/[^/]+/locations/[^/]+/conversations/[^/]+$",
                           "required": true,
@@ -7837,7 +7837,7 @@
                   ],
                   "parameters": {
                     "parent": {
-                      "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
+                      "description": "Required. The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
                       "location": "path",
                       "pattern": "^projects/[^/]+/locations/[^/]+$",
                       "required": true,
@@ -7999,7 +7999,7 @@
               ],
               "parameters": {
                 "parent": {
-                  "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
+                  "description": "Required. The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
                   "location": "path",
                   "pattern": "^projects/[^/]+$",
                   "required": true,
@@ -8023,7 +8023,7 @@
       }
     }
   },
-  "revision": "20240607",
+  "revision": "20240614",
   "rootUrl": "https://dialogflow.googleapis.com/",
   "schemas": {
     "GoogleCloudDialogflowCxV3AdvancedSettings": {
@@ -16105,7 +16105,7 @@
           "type": "string"
         },
         "conversationStage": {
-          "description": "The stage of a conversation. It indicates whether the virtual agent or a human agent is handling the conversation. If the conversation is created with the conversation profile that has Dialogflow config set, defaults to ConversationStage.VIRTUAL_AGENT_STAGE; Otherwise, defaults to ConversationStage.HUMAN_ASSIST_STAGE. If the conversation is created with the conversation profile that has Dialogflow config set but explicitly sets conversation_stage to ConversationStage.HUMAN_ASSIST_STAGE, it skips ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to ConversationStage.HUMAN_ASSIST_STAGE.",
+          "description": "Optional. The stage of a conversation. It indicates whether the virtual agent or a human agent is handling the conversation. If the conversation is created with the conversation profile that has Dialogflow config set, defaults to ConversationStage.VIRTUAL_AGENT_STAGE; Otherwise, defaults to ConversationStage.HUMAN_ASSIST_STAGE. If the conversation is created with the conversation profile that has Dialogflow config set but explicitly sets conversation_stage to ConversationStage.HUMAN_ASSIST_STAGE, it skips ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to ConversationStage.HUMAN_ASSIST_STAGE.",
           "enum": [
             "CONVERSATION_STAGE_UNSPECIFIED",
             "VIRTUAL_AGENT_STAGE",
@@ -16140,7 +16140,7 @@
           "type": "string"
         },
         "name": {
-          "description": "Output only. The unique identifier of this conversation. Format: `projects//locations//conversations/`.",
+          "description": "Output only. Identifier. The unique identifier of this conversation. Format: `projects//locations//conversations/`.",
           "readOnly": true,
           "type": "string"
         },
@@ -16988,11 +16988,11 @@
           "description": "Required. A ConversationProfile containing information required for Summary generation. Required fields: {language_code, security_settings} Optional fields: {agent_assistant_config}"
         },
         "latestMessage": {
-          "description": "The name of the latest conversation message used as context for generating a Summary. If empty, the latest message of the conversation will be used. The format is specific to the user and the names of the messages provided.",
+          "description": "Optional. The name of the latest conversation message used as context for generating a Summary. If empty, the latest message of the conversation will be used. The format is specific to the user and the names of the messages provided.",
           "type": "string"
         },
         "maxContextSize": {
-          "description": "Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.",
+          "description": "Optional. Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.",
           "format": "int32",
           "type": "integer"
         },
@@ -20122,7 +20122,7 @@
       "id": "GoogleCloudDialogflowV2beta1SearchKnowledgeRequest",
       "properties": {
         "conversation": {
-          "description": "The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
+          "description": "Optional. The conversation (between human agent and end user) where the search request is triggered. Format: `projects//locations//conversations/`.",
           "type": "string"
         },
         "conversationProfile": {
@@ -20130,11 +20130,11 @@
           "type": "string"
         },
         "latestMessage": {
-          "description": "The name of the latest conversation message when the request is triggered. Format: `projects//locations//conversations//messages/`.",
+          "description": "Optional. The name of the latest conversation message when the request is triggered. Format: `projects//locations//conversations//messages/`.",
           "type": "string"
         },
         "parent": {
-          "description": "The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
+          "description": "Required. The parent resource contains the conversation profile Format: 'projects/' or `projects//locations/`.",
           "type": "string"
         },
         "query": {
@@ -20142,7 +20142,7 @@
           "description": "Required. The natural language text query for knowledge search."
         },
         "sessionId": {
-          "description": "The ID of the search session. The session_id can be combined with Dialogflow V3 Agent ID retrieved from conversation profile or on its own to identify a search session. The search history of the same session will impact the search result. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length must not exceed 36 characters.",
+          "description": "Optional. The ID of the search session. The session_id can be combined with Dialogflow V3 Agent ID retrieved from conversation profile or on its own to identify a search session. The search history of the same session will impact the search result. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length must not exceed 36 characters.",
           "type": "string"
         }
       },
@@ -20454,15 +20454,15 @@
       "properties": {
         "assistQueryParams": {
           "$ref": "GoogleCloudDialogflowV2beta1AssistQueryParameters",
-          "description": "Parameters for a human assist query. Only used for POC/demo purpose."
+          "description": "Optional. Parameters for a human assist query. Only used for POC/demo purpose."
         },
         "contextSize": {
-          "description": "Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.",
+          "description": "Optional. Max number of messages prior to and including [latest_message] to use as context when compiling the suggestion. By default 500 and at most 1000.",
           "format": "int32",
           "type": "integer"
         },
         "latestMessage": {
-          "description": "The name of the latest conversation message used as context for compiling suggestion. If empty, the latest message of the conversation will be used. Format: `projects//locations//conversations//messages/`.",
+          "description": "Optional. The name of the latest conversation message used as context for compiling suggestion. If empty, the latest message of the conversation will be used. Format: `projects//locations//conversations//messages/`.",
           "type": "string"
         }
       },
diff --git a/dialogflow/v2beta1/dialogflow-gen.go b/dialogflow/v2beta1/dialogflow-gen.go
index 4b8704c..43a4af9 100644
--- a/dialogflow/v2beta1/dialogflow-gen.go
+++ b/dialogflow/v2beta1/dialogflow-gen.go
@@ -12157,14 +12157,15 @@
 	// configure this Conversation. This field cannot be updated. Format:
 	// `projects//locations//conversationProfiles/`.
 	ConversationProfile string `json:"conversationProfile,omitempty"`
-	// ConversationStage: The stage of a conversation. It indicates whether the
-	// virtual agent or a human agent is handling the conversation. If the
+	// ConversationStage: Optional. The stage of a conversation. It indicates
+	// whether the virtual agent or a human agent is handling the conversation. If
+	// the conversation is created with the conversation profile that has
+	// Dialogflow config set, defaults to ConversationStage.VIRTUAL_AGENT_STAGE;
+	// Otherwise, defaults to ConversationStage.HUMAN_ASSIST_STAGE. If the
 	// conversation is created with the conversation profile that has Dialogflow
-	// config set, defaults to ConversationStage.VIRTUAL_AGENT_STAGE; Otherwise,
-	// defaults to ConversationStage.HUMAN_ASSIST_STAGE. If the conversation is
-	// created with the conversation profile that has Dialogflow config set but
-	// explicitly sets conversation_stage to ConversationStage.HUMAN_ASSIST_STAGE,
-	// it skips ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to
+	// config set but explicitly sets conversation_stage to
+	// ConversationStage.HUMAN_ASSIST_STAGE, it skips
+	// ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to
 	// ConversationStage.HUMAN_ASSIST_STAGE.
 	//
 	// Possible values:
@@ -12184,8 +12185,8 @@
 	//   "IN_PROGRESS" - Conversation is currently open for media analysis.
 	//   "COMPLETED" - Conversation has been completed.
 	LifecycleState string `json:"lifecycleState,omitempty"`
-	// Name: Output only. The unique identifier of this conversation. Format:
-	// `projects//locations//conversations/`.
+	// Name: Output only. Identifier. The unique identifier of this conversation.
+	// Format: `projects//locations//conversations/`.
 	Name string `json:"name,omitempty"`
 	// PhoneNumber: Output only. Required if the conversation is to be connected
 	// over telephony.
@@ -13392,12 +13393,12 @@
 	// required for Summary generation. Required fields: {language_code,
 	// security_settings} Optional fields: {agent_assistant_config}
 	ConversationProfile *GoogleCloudDialogflowV2beta1ConversationProfile `json:"conversationProfile,omitempty"`
-	// LatestMessage: The name of the latest conversation message used as context
-	// for generating a Summary. If empty, the latest message of the conversation
-	// will be used. The format is specific to the user and the names of the
-	// messages provided.
+	// LatestMessage: Optional. The name of the latest conversation message used as
+	// context for generating a Summary. If empty, the latest message of the
+	// conversation will be used. The format is specific to the user and the names
+	// of the messages provided.
 	LatestMessage string `json:"latestMessage,omitempty"`
-	// MaxContextSize: Max number of messages prior to and including
+	// MaxContextSize: Optional. Max number of messages prior to and including
 	// [latest_message] to use as context when compiling the suggestion. By default
 	// 500 and at most 1000.
 	MaxContextSize int64 `json:"maxContextSize,omitempty"`
@@ -17855,26 +17856,29 @@
 // GoogleCloudDialogflowV2beta1SearchKnowledgeRequest: The request message for
 // Conversations.SearchKnowledge.
 type GoogleCloudDialogflowV2beta1SearchKnowledgeRequest struct {
-	// Conversation: The conversation (between human agent and end user) where the
-	// search request is triggered. Format: `projects//locations//conversations/`.
+	// Conversation: Optional. The conversation (between human agent and end user)
+	// where the search request is triggered. Format:
+	// `projects//locations//conversations/`.
 	Conversation string `json:"conversation,omitempty"`
 	// ConversationProfile: Required. The conversation profile used to configure
 	// the search. Format: `projects//locations//conversationProfiles/`.
 	ConversationProfile string `json:"conversationProfile,omitempty"`
-	// LatestMessage: The name of the latest conversation message when the request
-	// is triggered. Format: `projects//locations//conversations//messages/`.
+	// LatestMessage: Optional. The name of the latest conversation message when
+	// the request is triggered. Format:
+	// `projects//locations//conversations//messages/`.
 	LatestMessage string `json:"latestMessage,omitempty"`
-	// Parent: The parent resource contains the conversation profile Format:
-	// 'projects/' or `projects//locations/`.
+	// Parent: Required. The parent resource contains the conversation profile
+	// Format: 'projects/' or `projects//locations/`.
 	Parent string `json:"parent,omitempty"`
 	// Query: Required. The natural language text query for knowledge search.
 	Query *GoogleCloudDialogflowV2beta1TextInput `json:"query,omitempty"`
-	// SessionId: The ID of the search session. The session_id can be combined with
-	// Dialogflow V3 Agent ID retrieved from conversation profile or on its own to
-	// identify a search session. The search history of the same session will
-	// impact the search result. It's up to the API caller to choose an appropriate
-	// `Session ID`. It can be a random number or some type of session identifiers
-	// (preferably hashed). The length must not exceed 36 characters.
+	// SessionId: Optional. The ID of the search session. The session_id can be
+	// combined with Dialogflow V3 Agent ID retrieved from conversation profile or
+	// on its own to identify a search session. The search history of the same
+	// session will impact the search result. It's up to the API caller to choose
+	// an appropriate `Session ID`. It can be a random number or some type of
+	// session identifiers (preferably hashed). The length must not exceed 36
+	// characters.
 	SessionId string `json:"sessionId,omitempty"`
 	// ForceSendFields is a list of field names (e.g. "Conversation") to
 	// unconditionally include in API requests. By default, fields with empty or
@@ -18430,16 +18434,17 @@
 // GoogleCloudDialogflowV2beta1SuggestConversationSummaryRequest: The request
 // message for Conversations.SuggestConversationSummary.
 type GoogleCloudDialogflowV2beta1SuggestConversationSummaryRequest struct {
-	// AssistQueryParams: Parameters for a human assist query. Only used for
-	// POC/demo purpose.
+	// AssistQueryParams: Optional. Parameters for a human assist query. Only used
+	// for POC/demo purpose.
 	AssistQueryParams *GoogleCloudDialogflowV2beta1AssistQueryParameters `json:"assistQueryParams,omitempty"`
-	// ContextSize: Max number of messages prior to and including [latest_message]
-	// to use as context when compiling the suggestion. By default 500 and at most
-	// 1000.
+	// ContextSize: Optional. Max number of messages prior to and including
+	// [latest_message] to use as context when compiling the suggestion. By default
+	// 500 and at most 1000.
 	ContextSize int64 `json:"contextSize,omitempty"`
-	// LatestMessage: The name of the latest conversation message used as context
-	// for compiling suggestion. If empty, the latest message of the conversation
-	// will be used. Format: `projects//locations//conversations//messages/`.
+	// LatestMessage: Optional. The name of the latest conversation message used as
+	// context for compiling suggestion. If empty, the latest message of the
+	// conversation will be used. Format:
+	// `projects//locations//conversations//messages/`.
 	LatestMessage string `json:"latestMessage,omitempty"`
 	// ForceSendFields is a list of field names (e.g. "AssistQueryParams") to
 	// unconditionally include in API requests. By default, fields with empty or
@@ -30661,16 +30666,10 @@
 }
 
 // Filter sets the optional parameter "filter": A filter expression that
-// filters conversations listed in the response. In general, the expression
-// must specify the field name, a comparison operator, and the value to use for
-// filtering: - The value must be a string, a number, or a boolean. - The
-// comparison operator must be either `=`,`!=`, `>`, or `<`. - To filter on
-// multiple expressions, separate the expressions with `AND` or `OR` (omitting
-// both implies `AND`). - For clarity, expressions can be enclosed in
-// parentheses. Only `lifecycle_state` can be filtered on in this way. For
-// example, the following expression only returns `COMPLETED` conversations:
-// `lifecycle_state = "COMPLETED" For more information about filtering, see
-// API Filtering (https://aip.dev/160).
+// filters conversations listed in the response. Only `lifecycle_state` can be
+// filtered on in this way. For example, the following expression only returns
+// `COMPLETED` conversations: `lifecycle_state = "COMPLETED" For more
+// information about filtering, see API Filtering (https://aip.dev/160).
 func (c *ProjectsConversationsListCall) Filter(filter string) *ProjectsConversationsListCall {
 	c.urlParams_.Set("filter", filter)
 	return c
@@ -32342,8 +32341,8 @@
 // SearchKnowledge: Get answers for the given query based on knowledge
 // documents.
 //
-//   - conversation: The conversation (between human agent and end user) where
-//     the search request is triggered. Format:
+//   - conversation: Optional. The conversation (between human agent and end
+//     user) where the search request is triggered. Format:
 //     `projects//locations//conversations/`.
 func (r *ProjectsConversationsSuggestionsService) SearchKnowledge(conversation string, googleclouddialogflowv2beta1searchknowledgerequest *GoogleCloudDialogflowV2beta1SearchKnowledgeRequest) *ProjectsConversationsSuggestionsSearchKnowledgeCall {
 	c := &ProjectsConversationsSuggestionsSearchKnowledgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
@@ -43710,16 +43709,10 @@
 }
 
 // Filter sets the optional parameter "filter": A filter expression that
-// filters conversations listed in the response. In general, the expression
-// must specify the field name, a comparison operator, and the value to use for
-// filtering: - The value must be a string, a number, or a boolean. - The
-// comparison operator must be either `=`,`!=`, `>`, or `<`. - To filter on
-// multiple expressions, separate the expressions with `AND` or `OR` (omitting
-// both implies `AND`). - For clarity, expressions can be enclosed in
-// parentheses. Only `lifecycle_state` can be filtered on in this way. For
-// example, the following expression only returns `COMPLETED` conversations:
-// `lifecycle_state = "COMPLETED" For more information about filtering, see
-// API Filtering (https://aip.dev/160).
+// filters conversations listed in the response. Only `lifecycle_state` can be
+// filtered on in this way. For example, the following expression only returns
+// `COMPLETED` conversations: `lifecycle_state = "COMPLETED" For more
+// information about filtering, see API Filtering (https://aip.dev/160).
 func (c *ProjectsLocationsConversationsListCall) Filter(filter string) *ProjectsLocationsConversationsListCall {
 	c.urlParams_.Set("filter", filter)
 	return c
@@ -45115,8 +45108,8 @@
 // SearchKnowledge: Get answers for the given query based on knowledge
 // documents.
 //
-//   - conversation: The conversation (between human agent and end user) where
-//     the search request is triggered. Format:
+//   - conversation: Optional. The conversation (between human agent and end
+//     user) where the search request is triggered. Format:
 //     `projects//locations//conversations/`.
 func (r *ProjectsLocationsConversationsSuggestionsService) SearchKnowledge(conversation string, googleclouddialogflowv2beta1searchknowledgerequest *GoogleCloudDialogflowV2beta1SearchKnowledgeRequest) *ProjectsLocationsConversationsSuggestionsSearchKnowledgeCall {
 	c := &ProjectsLocationsConversationsSuggestionsSearchKnowledgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
diff --git a/dlp/v2/dlp-api.json b/dlp/v2/dlp-api.json
index 1fbbc4b..3cd226e 100644
--- a/dlp/v2/dlp-api.json
+++ b/dlp/v2/dlp-api.json
@@ -15,6 +15,23 @@
   "description": "Discover and protect your sensitive data. A fully managed service designed to help you discover, classify, and protect your valuable data assets with ease.",
   "discoveryVersion": "v1",
   "documentationLink": "https://cloud.google.com/sensitive-data-protection/docs/",
+  "endpoints": [
+    {
+      "description": "Regional Endpoint",
+      "endpointUrl": "https://dlp.africa-south1.rep.googleapis.com/",
+      "location": "africa-south1"
+    },
+    {
+      "description": "Regional Endpoint",
+      "endpointUrl": "https://dlp.australia-southeast1.rep.googleapis.com/",
+      "location": "australia-southeast1"
+    },
+    {
+      "description": "Regional Endpoint",
+      "endpointUrl": "https://dlp.europe-west9.rep.googleapis.com/",
+      "location": "europe-west9"
+    }
+  ],
   "fullyEncodeReservedExpansion": true,
   "icons": {
     "x16": "http://www.google.com/images/icons/product/search-16.gif",
@@ -4557,7 +4574,7 @@
       }
     }
   },
-  "revision": "20240609",
+  "revision": "20240616",
   "rootUrl": "https://dlp.googleapis.com/",
   "schemas": {
     "GooglePrivacyDlpV2Action": {
@@ -7683,6 +7700,7 @@
             "LOCATION_UNSPECIFIED",
             "GLOBAL",
             "ARGENTINA",
+            "ARMENIA",
             "AUSTRALIA",
             "AZERBAIJAN",
             "BELARUS",
@@ -7735,6 +7753,7 @@
             "Unused location",
             "The infoType is not issued by or tied to a specific region, but is used almost everywhere.",
             "The infoType is typically used in Argentina.",
+            "The infoType is typically used in Armenia.",
             "The infoType is typically used in Australia.",
             "The infoType is typically used in Azerbaijan.",
             "The infoType is typically used in Belarus.",
diff --git a/dlp/v2/dlp-gen.go b/dlp/v2/dlp-gen.go
index a53c04e..875b199 100644
--- a/dlp/v2/dlp-gen.go
+++ b/dlp/v2/dlp-gen.go
@@ -5034,6 +5034,7 @@
 	//   "GLOBAL" - The infoType is not issued by or tied to a specific region, but
 	// is used almost everywhere.
 	//   "ARGENTINA" - The infoType is typically used in Argentina.
+	//   "ARMENIA" - The infoType is typically used in Armenia.
 	//   "AUSTRALIA" - The infoType is typically used in Australia.
 	//   "AZERBAIJAN" - The infoType is typically used in Azerbaijan.
 	//   "BELARUS" - The infoType is typically used in Belarus.
diff --git a/games/v1/games-api.json b/games/v1/games-api.json
index a30f7c5..f608466 100644
--- a/games/v1/games-api.json
+++ b/games/v1/games-api.json
@@ -110,6 +110,67 @@
   },
   "protocol": "rest",
   "resources": {
+    "accesstokens": {
+      "methods": {
+        "generatePlayGroupingApiToken": {
+          "description": "Generates a Play Grouping API token for the PGS user identified by the attached credential.",
+          "flatPath": "games/v1/accesstokens/generatePlayGroupingApiToken",
+          "httpMethod": "POST",
+          "id": "games.accesstokens.generatePlayGroupingApiToken",
+          "parameterOrder": [],
+          "parameters": {
+            "packageName": {
+              "description": "Required. App package name to generate the token for (e.g. com.example.mygame).",
+              "location": "query",
+              "type": "string"
+            },
+            "persona": {
+              "description": "Required. Persona to associate with the token. Persona is a developer-provided stable identifier of the user. Must be deterministically generated (e.g. as a one-way hash) from the user account ID and user profile ID (if the app has the concept), according to the developer's own user identity system.",
+              "location": "query",
+              "type": "string"
+            }
+          },
+          "path": "games/v1/accesstokens/generatePlayGroupingApiToken",
+          "response": {
+            "$ref": "GeneratePlayGroupingApiTokenResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/games"
+          ]
+        },
+        "generateRecallPlayGroupingApiToken": {
+          "description": "Generates a Play Grouping API token for the PGS user identified by the Recall session ID provided in the request.",
+          "flatPath": "games/v1/accesstokens/generateRecallPlayGroupingApiToken",
+          "httpMethod": "POST",
+          "id": "games.accesstokens.generateRecallPlayGroupingApiToken",
+          "parameterOrder": [],
+          "parameters": {
+            "packageName": {
+              "description": "Required. App package name to generate the token for (e.g. com.example.mygame).",
+              "location": "query",
+              "type": "string"
+            },
+            "persona": {
+              "description": "Required. Persona to associate with the token. Persona is a developer-provided stable identifier of the user. Must be deterministically generated (e.g. as a one-way hash) from the user account ID and user profile ID (if the app has the concept), according to the developer's own user identity system.",
+              "location": "query",
+              "type": "string"
+            },
+            "recallSessionId": {
+              "description": "Required. Opaque server-generated string that encodes all the necessary information to identify the PGS player / Google user and application. See https://developer.android.com/games/pgs/recall/recall-setup on how to integrate with Recall and get session ID.",
+              "location": "query",
+              "type": "string"
+            }
+          },
+          "path": "games/v1/accesstokens/generateRecallPlayGroupingApiToken",
+          "response": {
+            "$ref": "GenerateRecallPlayGroupingApiTokenResponse"
+          },
+          "scopes": [
+            "https://www.googleapis.com/auth/androidpublisher"
+          ]
+        }
+      }
+    },
     "achievementDefinitions": {
       "methods": {
         "list": {
@@ -1408,7 +1469,7 @@
       }
     }
   },
-  "revision": "20240529",
+  "revision": "20240618",
   "rootUrl": "https://games.googleapis.com/",
   "schemas": {
     "AchievementDefinition": {
@@ -2217,6 +2278,28 @@
       },
       "type": "object"
     },
+    "GeneratePlayGroupingApiTokenResponse": {
+      "description": "Response for the GeneratePlayGroupingApiToken RPC.",
+      "id": "GeneratePlayGroupingApiTokenResponse",
+      "properties": {
+        "token": {
+          "$ref": "PlayGroupingApiToken",
+          "description": "Token for accessing the Play Grouping API."
+        }
+      },
+      "type": "object"
+    },
+    "GenerateRecallPlayGroupingApiTokenResponse": {
+      "description": "Response for the GenerateRecallPlayGroupingApiToken RPC.",
+      "id": "GenerateRecallPlayGroupingApiTokenResponse",
+      "properties": {
+        "token": {
+          "$ref": "PlayGroupingApiToken",
+          "description": "Token for accessing the Play Grouping API."
+        }
+      },
+      "type": "object"
+    },
     "GetMultipleApplicationPlayerIdsResponse": {
       "description": "Response message for GetMultipleApplicationPlayerIds rpc.",
       "id": "GetMultipleApplicationPlayerIdsResponse",
@@ -2666,6 +2749,17 @@
       },
       "type": "object"
     },
+    "PlayGroupingApiToken": {
+      "description": "Token data returned from GeneratePlayGroupingApiToken RPC.",
+      "id": "PlayGroupingApiToken",
+      "properties": {
+        "tokenValue": {
+          "description": "Value of the token.",
+          "type": "string"
+        }
+      },
+      "type": "object"
+    },
     "Player": {
       "description": "A Player resource.",
       "id": "Player",
diff --git a/games/v1/games-gen.go b/games/v1/games-gen.go
index 7a7c53a..70460f1 100644
--- a/games/v1/games-gen.go
+++ b/games/v1/games-gen.go
@@ -147,6 +147,7 @@
 		return nil, errors.New("client is nil")
 	}
 	s := &Service{client: client, BasePath: basePath}
+	s.Accesstokens = NewAccesstokensService(s)
 	s.AchievementDefinitions = NewAchievementDefinitionsService(s)
 	s.Achievements = NewAchievementsService(s)
 	s.Applications = NewApplicationsService(s)
@@ -167,6 +168,8 @@
 	BasePath  string // API endpoint base URL
 	UserAgent string // optional additional User-Agent fragment
 
+	Accesstokens *AccesstokensService
+
 	AchievementDefinitions *AchievementDefinitionsService
 
 	Achievements *AchievementsService
@@ -199,6 +202,15 @@
 	return googleapi.UserAgent + " " + s.UserAgent
 }
 
+func NewAccesstokensService(s *Service) *AccesstokensService {
+	rs := &AccesstokensService{s: s}
+	return rs
+}
+
+type AccesstokensService struct {
+	s *Service
+}
+
 func NewAchievementDefinitionsService(s *Service) *AchievementDefinitionsService {
 	rs := &AchievementDefinitionsService{s: s}
 	return rs
@@ -1275,6 +1287,58 @@
 	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
 }
 
+// GeneratePlayGroupingApiTokenResponse: Response for the
+// GeneratePlayGroupingApiToken RPC.
+type GeneratePlayGroupingApiTokenResponse struct {
+	// Token: Token for accessing the Play Grouping API.
+	Token *PlayGroupingApiToken `json:"token,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the server.
+	googleapi.ServerResponse `json:"-"`
+	// ForceSendFields is a list of field names (e.g. "Token") to unconditionally
+	// include in API requests. By default, fields with empty or default values are
+	// omitted from API requests. See
+	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
+	// details.
+	ForceSendFields []string `json:"-"`
+	// NullFields is a list of field names (e.g. "Token") to include in API
+	// requests with the JSON null value. By default, fields with empty values are
+	// omitted from API requests. See
+	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
+	NullFields []string `json:"-"`
+}
+
+func (s *GeneratePlayGroupingApiTokenResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GeneratePlayGroupingApiTokenResponse
+	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
+}
+
+// GenerateRecallPlayGroupingApiTokenResponse: Response for the
+// GenerateRecallPlayGroupingApiToken RPC.
+type GenerateRecallPlayGroupingApiTokenResponse struct {
+	// Token: Token for accessing the Play Grouping API.
+	Token *PlayGroupingApiToken `json:"token,omitempty"`
+
+	// ServerResponse contains the HTTP response code and headers from the server.
+	googleapi.ServerResponse `json:"-"`
+	// ForceSendFields is a list of field names (e.g. "Token") to unconditionally
+	// include in API requests. By default, fields with empty or default values are
+	// omitted from API requests. See
+	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
+	// details.
+	ForceSendFields []string `json:"-"`
+	// NullFields is a list of field names (e.g. "Token") to include in API
+	// requests with the JSON null value. By default, fields with empty values are
+	// omitted from API requests. See
+	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
+	NullFields []string `json:"-"`
+}
+
+func (s *GenerateRecallPlayGroupingApiTokenResponse) MarshalJSON() ([]byte, error) {
+	type NoMethod GenerateRecallPlayGroupingApiTokenResponse
+	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
+}
+
 // GetMultipleApplicationPlayerIdsResponse: Response message for
 // GetMultipleApplicationPlayerIds rpc.
 type GetMultipleApplicationPlayerIdsResponse struct {
@@ -1804,6 +1868,29 @@
 	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
 }
 
+// PlayGroupingApiToken: Token data returned from GeneratePlayGroupingApiToken
+// RPC.
+type PlayGroupingApiToken struct {
+	// TokenValue: Value of the token.
+	TokenValue string `json:"tokenValue,omitempty"`
+	// ForceSendFields is a list of field names (e.g. "TokenValue") to
+	// unconditionally include in API requests. By default, fields with empty or
+	// default values are omitted from API requests. See
+	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
+	// details.
+	ForceSendFields []string `json:"-"`
+	// NullFields is a list of field names (e.g. "TokenValue") to include in API
+	// requests with the JSON null value. By default, fields with empty values are
+	// omitted from API requests. See
+	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
+	NullFields []string `json:"-"`
+}
+
+func (s *PlayGroupingApiToken) MarshalJSON() ([]byte, error) {
+	type NoMethod PlayGroupingApiToken
+	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
+}
+
 // Player: A Player resource.
 type Player struct {
 	// AvatarImageUrl: The base URL for the image that represents the player.
@@ -2904,6 +2991,230 @@
 	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
 }
 
+type AccesstokensGeneratePlayGroupingApiTokenCall struct {
+	s          *Service
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
+}
+
+// GeneratePlayGroupingApiToken: Generates a Play Grouping API token for the
+// PGS user identified by the attached credential.
+func (r *AccesstokensService) GeneratePlayGroupingApiToken() *AccesstokensGeneratePlayGroupingApiTokenCall {
+	c := &AccesstokensGeneratePlayGroupingApiTokenCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	return c
+}
+
+// PackageName sets the optional parameter "packageName": Required. App package
+// name to generate the token for (e.g. com.example.mygame).
+func (c *AccesstokensGeneratePlayGroupingApiTokenCall) PackageName(packageName string) *AccesstokensGeneratePlayGroupingApiTokenCall {
+	c.urlParams_.Set("packageName", packageName)
+	return c
+}
+
+// Persona sets the optional parameter "persona": Required. Persona to
+// associate with the token. Persona is a developer-provided stable identifier
+// of the user. Must be deterministically generated (e.g. as a one-way hash)
+// from the user account ID and user profile ID (if the app has the concept),
+// according to the developer's own user identity system.
+func (c *AccesstokensGeneratePlayGroupingApiTokenCall) Persona(persona string) *AccesstokensGeneratePlayGroupingApiTokenCall {
+	c.urlParams_.Set("persona", persona)
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
+// details.
+func (c *AccesstokensGeneratePlayGroupingApiTokenCall) Fields(s ...googleapi.Field) *AccesstokensGeneratePlayGroupingApiTokenCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method.
+func (c *AccesstokensGeneratePlayGroupingApiTokenCall) Context(ctx context.Context) *AccesstokensGeneratePlayGroupingApiTokenCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns a http.Header that can be modified by the caller to add
+// headers to the request.
+func (c *AccesstokensGeneratePlayGroupingApiTokenCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *AccesstokensGeneratePlayGroupingApiTokenCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "games/v1/accesstokens/generatePlayGroupingApiToken")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("POST", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	req.Header = reqHeaders
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "games.accesstokens.generatePlayGroupingApiToken" call.
+// Any non-2xx status code is an error. Response headers are in either
+// *GeneratePlayGroupingApiTokenResponse.ServerResponse.Header or (if a
+// response was returned at all) in error.(*googleapi.Error).Header. Use
+// googleapi.IsNotModified to check whether the returned error was because
+// http.StatusNotModified was returned.
+func (c *AccesstokensGeneratePlayGroupingApiTokenCall) Do(opts ...googleapi.CallOption) (*GeneratePlayGroupingApiTokenResponse, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, gensupport.WrapError(&googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		})
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, gensupport.WrapError(err)
+	}
+	ret := &GeneratePlayGroupingApiTokenResponse{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+}
+
+type AccesstokensGenerateRecallPlayGroupingApiTokenCall struct {
+	s          *Service
+	urlParams_ gensupport.URLParams
+	ctx_       context.Context
+	header_    http.Header
+}
+
+// GenerateRecallPlayGroupingApiToken: Generates a Play Grouping API token for
+// the PGS user identified by the Recall session ID provided in the request.
+func (r *AccesstokensService) GenerateRecallPlayGroupingApiToken() *AccesstokensGenerateRecallPlayGroupingApiTokenCall {
+	c := &AccesstokensGenerateRecallPlayGroupingApiTokenCall{s: r.s, urlParams_: make(gensupport.URLParams)}
+	return c
+}
+
+// PackageName sets the optional parameter "packageName": Required. App package
+// name to generate the token for (e.g. com.example.mygame).
+func (c *AccesstokensGenerateRecallPlayGroupingApiTokenCall) PackageName(packageName string) *AccesstokensGenerateRecallPlayGroupingApiTokenCall {
+	c.urlParams_.Set("packageName", packageName)
+	return c
+}
+
+// Persona sets the optional parameter "persona": Required. Persona to
+// associate with the token. Persona is a developer-provided stable identifier
+// of the user. Must be deterministically generated (e.g. as a one-way hash)
+// from the user account ID and user profile ID (if the app has the concept),
+// according to the developer's own user identity system.
+func (c *AccesstokensGenerateRecallPlayGroupingApiTokenCall) Persona(persona string) *AccesstokensGenerateRecallPlayGroupingApiTokenCall {
+	c.urlParams_.Set("persona", persona)
+	return c
+}
+
+// RecallSessionId sets the optional parameter "recallSessionId": Required.
+// Opaque server-generated string that encodes all the necessary information to
+// identify the PGS player / Google user and application. See
+// https://developer.android.com/games/pgs/recall/recall-setup on how to
+// integrate with Recall and get session ID.
+func (c *AccesstokensGenerateRecallPlayGroupingApiTokenCall) RecallSessionId(recallSessionId string) *AccesstokensGenerateRecallPlayGroupingApiTokenCall {
+	c.urlParams_.Set("recallSessionId", recallSessionId)
+	return c
+}
+
+// Fields allows partial responses to be retrieved. See
+// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
+// details.
+func (c *AccesstokensGenerateRecallPlayGroupingApiTokenCall) Fields(s ...googleapi.Field) *AccesstokensGenerateRecallPlayGroupingApiTokenCall {
+	c.urlParams_.Set("fields", googleapi.CombineFields(s))
+	return c
+}
+
+// Context sets the context to be used in this call's Do method.
+func (c *AccesstokensGenerateRecallPlayGroupingApiTokenCall) Context(ctx context.Context) *AccesstokensGenerateRecallPlayGroupingApiTokenCall {
+	c.ctx_ = ctx
+	return c
+}
+
+// Header returns a http.Header that can be modified by the caller to add
+// headers to the request.
+func (c *AccesstokensGenerateRecallPlayGroupingApiTokenCall) Header() http.Header {
+	if c.header_ == nil {
+		c.header_ = make(http.Header)
+	}
+	return c.header_
+}
+
+func (c *AccesstokensGenerateRecallPlayGroupingApiTokenCall) doRequest(alt string) (*http.Response, error) {
+	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
+	var body io.Reader = nil
+	c.urlParams_.Set("alt", alt)
+	c.urlParams_.Set("prettyPrint", "false")
+	urls := googleapi.ResolveRelative(c.s.BasePath, "games/v1/accesstokens/generateRecallPlayGroupingApiToken")
+	urls += "?" + c.urlParams_.Encode()
+	req, err := http.NewRequest("POST", urls, body)
+	if err != nil {
+		return nil, err
+	}
+	req.Header = reqHeaders
+	return gensupport.SendRequest(c.ctx_, c.s.client, req)
+}
+
+// Do executes the "games.accesstokens.generateRecallPlayGroupingApiToken" call.
+// Any non-2xx status code is an error. Response headers are in either
+// *GenerateRecallPlayGroupingApiTokenResponse.ServerResponse.Header or (if a
+// response was returned at all) in error.(*googleapi.Error).Header. Use
+// googleapi.IsNotModified to check whether the returned error was because
+// http.StatusNotModified was returned.
+func (c *AccesstokensGenerateRecallPlayGroupingApiTokenCall) Do(opts ...googleapi.CallOption) (*GenerateRecallPlayGroupingApiTokenResponse, error) {
+	gensupport.SetOptions(c.urlParams_, opts...)
+	res, err := c.doRequest("json")
+	if res != nil && res.StatusCode == http.StatusNotModified {
+		if res.Body != nil {
+			res.Body.Close()
+		}
+		return nil, gensupport.WrapError(&googleapi.Error{
+			Code:   res.StatusCode,
+			Header: res.Header,
+		})
+	}
+	if err != nil {
+		return nil, err
+	}
+	defer googleapi.CloseBody(res)
+	if err := googleapi.CheckResponse(res); err != nil {
+		return nil, gensupport.WrapError(err)
+	}
+	ret := &GenerateRecallPlayGroupingApiTokenResponse{
+		ServerResponse: googleapi.ServerResponse{
+			Header:         res.Header,
+			HTTPStatusCode: res.StatusCode,
+		},
+	}
+	target := &ret
+	if err := gensupport.DecodeResponse(target, res); err != nil {
+		return nil, err
+	}
+	return ret, nil
+}
+
 type AchievementDefinitionsListCall struct {
 	s            *Service
 	urlParams_   gensupport.URLParams
diff --git a/groupssettings/v1/groupssettings-api.json b/groupssettings/v1/groupssettings-api.json
index 544129c..92cef2f 100644
--- a/groupssettings/v1/groupssettings-api.json
+++ b/groupssettings/v1/groupssettings-api.json
@@ -152,7 +152,7 @@
       }
     }
   },
-  "revision": "20210624",
+  "revision": "20220614",
   "rootUrl": "https://www.googleapis.com/",
   "schemas": {
     "Groups": {
@@ -326,7 +326,7 @@
           "type": "string"
         },
         "whoCanJoin": {
-          "description": "Permission to join group. Possible values are:  \n- ANYONE_CAN_JOIN: Anyone in the account domain can join. This includes accounts with multiple domains. \n- ALL_IN_DOMAIN_CAN_JOIN: Any Internet user who is outside your domain can access your Google Groups service and view the list of groups in your Groups directory. Warning: Group owners can add external addresses, outside of the domain to their groups. They can also allow people outside your domain to join their groups. If you later disable this option, any external addresses already added to users' groups remain in those groups. \n- INVITED_CAN_JOIN: Candidates for membership can be invited to join.  \n- CAN_REQUEST_TO_JOIN: Non members can request an invitation to join.",
+          "description": "Permission to join group. Possible values are:  \n- ANYONE_CAN_JOIN: Any Internet user who is outside your domain can access your Google Groups service and view the list of groups in your Groups directory. Warning: Group owners can add external addresses, outside of the domain to their groups. They can also allow people outside your domain to join their groups. If you later disable this option, any external addresses already added to users' groups remain in those groups. \n- ALL_IN_DOMAIN_CAN_JOIN: Anyone in the account domain can join. This includes accounts with multiple domains. \n- INVITED_CAN_JOIN: Candidates for membership can be invited to join.  \n- CAN_REQUEST_TO_JOIN: Non members can request an invitation to join.",
           "type": "string"
         },
         "whoCanLeaveGroup": {
diff --git a/groupssettings/v1/groupssettings-gen.go b/groupssettings/v1/groupssettings-gen.go
index 1e12faf..3cc7e85 100644
--- a/groupssettings/v1/groupssettings-gen.go
+++ b/groupssettings/v1/groupssettings-gen.go
@@ -449,14 +449,14 @@
 	// - NONE_CAN_INVITE: No one can invite a new member candidate.
 	WhoCanInvite string `json:"whoCanInvite,omitempty"`
 	// WhoCanJoin: Permission to join group. Possible values are:
-	// - ANYONE_CAN_JOIN: Anyone in the account domain can join. This includes
-	// accounts with multiple domains.
-	// - ALL_IN_DOMAIN_CAN_JOIN: Any Internet user who is outside your domain can
-	// access your Google Groups service and view the list of groups in your Groups
+	// - ANYONE_CAN_JOIN: Any Internet user who is outside your domain can access
+	// your Google Groups service and view the list of groups in your Groups
 	// directory. Warning: Group owners can add external addresses, outside of the
 	// domain to their groups. They can also allow people outside your domain to
 	// join their groups. If you later disable this option, any external addresses
 	// already added to users' groups remain in those groups.
+	// - ALL_IN_DOMAIN_CAN_JOIN: Anyone in the account domain can join. This
+	// includes accounts with multiple domains.
 	// - INVITED_CAN_JOIN: Candidates for membership can be invited to join.
 	// - CAN_REQUEST_TO_JOIN: Non members can request an invitation to join.
 	WhoCanJoin string `json:"whoCanJoin,omitempty"`
diff --git a/kmsinventory/v1/kmsinventory-api.json b/kmsinventory/v1/kmsinventory-api.json
index 4231485..a8d8a58 100644
--- a/kmsinventory/v1/kmsinventory-api.json
+++ b/kmsinventory/v1/kmsinventory-api.json
@@ -242,7 +242,7 @@
       }
     }
   },
-  "revision": "20240427",
+  "revision": "20240616",
   "rootUrl": "https://kmsinventory.googleapis.com/",
   "schemas": {
     "GoogleCloudKmsInventoryV1ListCryptoKeysResponse": {
@@ -404,6 +404,10 @@
           "description": "Immutable. Whether this key may contain imported versions only.",
           "type": "boolean"
         },
+        "keyAccessJustificationsPolicy": {
+          "$ref": "GoogleCloudKmsV1KeyAccessJustificationsPolicy",
+          "description": "Optional. The policy used for Key Access Justifications Policy Enforcement. If this field is present and this key is enrolled in Key Access Justifications Policy Enforcement, the policy will be evaluated in encrypt, decrypt, and sign operations, and the operation will fail if rejected by the policy. The policy is defined by specifying zero or more allowed justification codes. https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes By default, this field is absent, and all justification codes are allowed."
+        },
         "labels": {
           "additionalProperties": {
             "type": "string"
@@ -784,6 +788,48 @@
       },
       "type": "object"
     },
+    "GoogleCloudKmsV1KeyAccessJustificationsPolicy": {
+      "description": "A KeyAccessJustificationsPolicy specifies zero or more allowed AccessReason values for encrypt, decrypt, and sign operations on a CryptoKey.",
+      "id": "GoogleCloudKmsV1KeyAccessJustificationsPolicy",
+      "properties": {
+        "allowedAccessReasons": {
+          "description": "The list of allowed reasons for access to a CryptoKey. Zero allowed access reasons means all encrypt, decrypt, and sign operations for the CryptoKey associated with this policy will fail.",
+          "items": {
+            "enum": [
+              "REASON_UNSPECIFIED",
+              "CUSTOMER_INITIATED_SUPPORT",
+              "GOOGLE_INITIATED_SERVICE",
+              "THIRD_PARTY_DATA_REQUEST",
+              "GOOGLE_INITIATED_REVIEW",
+              "CUSTOMER_INITIATED_ACCESS",
+              "GOOGLE_INITIATED_SYSTEM_OPERATION",
+              "REASON_NOT_EXPECTED",
+              "MODIFIED_CUSTOMER_INITIATED_ACCESS",
+              "MODIFIED_GOOGLE_INITIATED_SYSTEM_OPERATION",
+              "GOOGLE_RESPONSE_TO_PRODUCTION_ALERT",
+              "CUSTOMER_AUTHORIZED_WORKFLOW_SERVICING"
+            ],
+            "enumDescriptions": [
+              "Unspecified access reason.",
+              "Customer-initiated support.",
+              "Google-initiated access for system management and troubleshooting.",
+              "Google-initiated access in response to a legal request or legal process.",
+              "Google-initiated access for security, fraud, abuse, or compliance purposes.",
+              "Customer uses their account to perform any access to their own data which their IAM policy authorizes.",
+              "Google systems access customer data to help optimize the structure of the data or quality for future uses by the customer.",
+              "No reason is expected for this key request.",
+              "Customer uses their account to perform any access to their own data which their IAM policy authorizes, and one of the following is true: * A Google administrator has reset the root-access account associated with the user's organization within the past 7 days. * A Google-initiated emergency access operation has interacted with a resource in the same project or folder as the currently accessed resource within the past 7 days.",
+              "Google systems access customer data to help optimize the structure of the data or quality for future uses by the customer, and one of the following is true: * A Google administrator has reset the root-access account associated with the user's organization within the past 7 days. * A Google-initiated emergency access operation has interacted with a resource in the same project or folder as the currently accessed resource within the past 7 days.",
+              "Google-initiated access to maintain system reliability.",
+              "One of the following operations is being executed while simultaneously encountering an internal technical issue which prevented a more precise justification code from being generated: * Your account has been used to perform any access to your own data which your IAM policy authorizes. * An automated Google system operates on encrypted customer data which your IAM policy authorizes. * Customer-initiated Google support access. * Google-initiated support access to protect system reliability."
+            ],
+            "type": "string"
+          },
+          "type": "array"
+        }
+      },
+      "type": "object"
+    },
     "GoogleCloudKmsV1KeyOperationAttestation": {
       "description": "Contains an HSM-generated attestation about a key operation. For more information, see [Verifying attestations] (https://cloud.google.com/kms/docs/attest-key).",
       "id": "GoogleCloudKmsV1KeyOperationAttestation",
diff --git a/kmsinventory/v1/kmsinventory-gen.go b/kmsinventory/v1/kmsinventory-gen.go
index a2fc681..c4eb409 100644
--- a/kmsinventory/v1/kmsinventory-gen.go
+++ b/kmsinventory/v1/kmsinventory-gen.go
@@ -413,6 +413,15 @@
 	DestroyScheduledDuration string `json:"destroyScheduledDuration,omitempty"`
 	// ImportOnly: Immutable. Whether this key may contain imported versions only.
 	ImportOnly bool `json:"importOnly,omitempty"`
+	// KeyAccessJustificationsPolicy: Optional. The policy used for Key Access
+	// Justifications Policy Enforcement. If this field is present and this key is
+	// enrolled in Key Access Justifications Policy Enforcement, the policy will be
+	// evaluated in encrypt, decrypt, and sign operations, and the operation will
+	// fail if rejected by the policy. The policy is defined by specifying zero or
+	// more allowed justification codes.
+	// https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
+	// By default, this field is absent, and all justification codes are allowed.
+	KeyAccessJustificationsPolicy *GoogleCloudKmsV1KeyAccessJustificationsPolicy `json:"keyAccessJustificationsPolicy,omitempty"`
 	// Labels: Labels with user-defined metadata. For more information, see
 	// Labeling Keys (https://cloud.google.com/kms/docs/labeling-keys).
 	Labels map[string]string `json:"labels,omitempty"`
@@ -783,6 +792,72 @@
 	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
 }
 
+// GoogleCloudKmsV1KeyAccessJustificationsPolicy: A
+// KeyAccessJustificationsPolicy specifies zero or more allowed AccessReason
+// values for encrypt, decrypt, and sign operations on a CryptoKey.
+type GoogleCloudKmsV1KeyAccessJustificationsPolicy struct {
+	// AllowedAccessReasons: The list of allowed reasons for access to a CryptoKey.
+	// Zero allowed access reasons means all encrypt, decrypt, and sign operations
+	// for the CryptoKey associated with this policy will fail.
+	//
+	// Possible values:
+	//   "REASON_UNSPECIFIED" - Unspecified access reason.
+	//   "CUSTOMER_INITIATED_SUPPORT" - Customer-initiated support.
+	//   "GOOGLE_INITIATED_SERVICE" - Google-initiated access for system management
+	// and troubleshooting.
+	//   "THIRD_PARTY_DATA_REQUEST" - Google-initiated access in response to a
+	// legal request or legal process.
+	//   "GOOGLE_INITIATED_REVIEW" - Google-initiated access for security, fraud,
+	// abuse, or compliance purposes.
+	//   "CUSTOMER_INITIATED_ACCESS" - Customer uses their account to perform any
+	// access to their own data which their IAM policy authorizes.
+	//   "GOOGLE_INITIATED_SYSTEM_OPERATION" - Google systems access customer data
+	// to help optimize the structure of the data or quality for future uses by the
+	// customer.
+	//   "REASON_NOT_EXPECTED" - No reason is expected for this key request.
+	//   "MODIFIED_CUSTOMER_INITIATED_ACCESS" - Customer uses their account to
+	// perform any access to their own data which their IAM policy authorizes, and
+	// one of the following is true: * A Google administrator has reset the
+	// root-access account associated with the user's organization within the past
+	// 7 days. * A Google-initiated emergency access operation has interacted with
+	// a resource in the same project or folder as the currently accessed resource
+	// within the past 7 days.
+	//   "MODIFIED_GOOGLE_INITIATED_SYSTEM_OPERATION" - Google systems access
+	// customer data to help optimize the structure of the data or quality for
+	// future uses by the customer, and one of the following is true: * A Google
+	// administrator has reset the root-access account associated with the user's
+	// organization within the past 7 days. * A Google-initiated emergency access
+	// operation has interacted with a resource in the same project or folder as
+	// the currently accessed resource within the past 7 days.
+	//   "GOOGLE_RESPONSE_TO_PRODUCTION_ALERT" - Google-initiated access to
+	// maintain system reliability.
+	//   "CUSTOMER_AUTHORIZED_WORKFLOW_SERVICING" - One of the following operations
+	// is being executed while simultaneously encountering an internal technical
+	// issue which prevented a more precise justification code from being
+	// generated: * Your account has been used to perform any access to your own
+	// data which your IAM policy authorizes. * An automated Google system operates
+	// on encrypted customer data which your IAM policy authorizes. *
+	// Customer-initiated Google support access. * Google-initiated support access
+	// to protect system reliability.
+	AllowedAccessReasons []string `json:"allowedAccessReasons,omitempty"`
+	// ForceSendFields is a list of field names (e.g. "AllowedAccessReasons") to
+	// unconditionally include in API requests. By default, fields with empty or
+	// default values are omitted from API requests. See
+	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
+	// details.
+	ForceSendFields []string `json:"-"`
+	// NullFields is a list of field names (e.g. "AllowedAccessReasons") to include
+	// in API requests with the JSON null value. By default, fields with empty
+	// values are omitted from API requests. See
+	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
+	NullFields []string `json:"-"`
+}
+
+func (s *GoogleCloudKmsV1KeyAccessJustificationsPolicy) MarshalJSON() ([]byte, error) {
+	type NoMethod GoogleCloudKmsV1KeyAccessJustificationsPolicy
+	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
+}
+
 // GoogleCloudKmsV1KeyOperationAttestation: Contains an HSM-generated
 // attestation about a key operation. For more information, see [Verifying
 // attestations] (https://cloud.google.com/kms/docs/attest-key).
diff --git a/monitoring/v1/monitoring-api.json b/monitoring/v1/monitoring-api.json
index 84d19a3..58551dc 100644
--- a/monitoring/v1/monitoring-api.json
+++ b/monitoring/v1/monitoring-api.json
@@ -753,7 +753,7 @@
       }
     }
   },
-  "revision": "20240505",
+  "revision": "20240616",
   "rootUrl": "https://monitoring.googleapis.com/",
   "schemas": {
     "Aggregation": {
@@ -1111,10 +1111,6 @@
       "description": "A filter to reduce the amount of data charted in relevant widgets.",
       "id": "DashboardFilter",
       "properties": {
-        "applyToNewWidgets": {
-          "description": "Whether to apply this filter to new widgets by default",
-          "type": "boolean"
-        },
         "filterType": {
           "description": "The specified filter type",
           "enum": [
@@ -2145,10 +2141,24 @@
           "$ref": "Empty",
           "description": "Will cause the Scorecard to show only the value, with no indicator to its value relative to its thresholds."
         },
+        "dimensions": {
+          "description": "Optional. A dimension is a structured label, class, or category for a set of measurements in your data.",
+          "items": {
+            "$ref": "Dimension"
+          },
+          "type": "array"
+        },
         "gaugeView": {
           "$ref": "GaugeView",
           "description": "Will cause the scorecard to show a gauge chart."
         },
+        "measures": {
+          "description": "Optional. A measure is a measured value of a property in your data. For example, rainfall in inches, number of units sold, revenue gained, etc.",
+          "items": {
+            "$ref": "Measure"
+          },
+          "type": "array"
+        },
         "sparkChartView": {
           "$ref": "SparkChartView",
           "description": "Will cause the scorecard to show a spark chart."
diff --git a/monitoring/v1/monitoring-gen.go b/monitoring/v1/monitoring-gen.go
index 676bd0d..d67e998 100644
--- a/monitoring/v1/monitoring-gen.go
+++ b/monitoring/v1/monitoring-gen.go
@@ -910,8 +910,6 @@
 // DashboardFilter: A filter to reduce the amount of data charted in relevant
 // widgets.
 type DashboardFilter struct {
-	// ApplyToNewWidgets: Whether to apply this filter to new widgets by default
-	ApplyToNewWidgets bool `json:"applyToNewWidgets,omitempty"`
 	// FilterType: The specified filter type
 	//
 	// Possible values:
@@ -931,15 +929,15 @@
 	// string or MQL query. If omitted, the dashboard filter will be applied to all
 	// relevant widgets in the dashboard.
 	TemplateVariable string `json:"templateVariable,omitempty"`
-	// ForceSendFields is a list of field names (e.g. "ApplyToNewWidgets") to
+	// ForceSendFields is a list of field names (e.g. "FilterType") to
 	// unconditionally include in API requests. By default, fields with empty or
 	// default values are omitted from API requests. See
 	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
 	// details.
 	ForceSendFields []string `json:"-"`
-	// NullFields is a list of field names (e.g. "ApplyToNewWidgets") to include in
-	// API requests with the JSON null value. By default, fields with empty values
-	// are omitted from API requests. See
+	// NullFields is a list of field names (e.g. "FilterType") to include in API
+	// requests with the JSON null value. By default, fields with empty values are
+	// omitted from API requests. See
 	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
 	NullFields []string `json:"-"`
 }
@@ -2278,8 +2276,15 @@
 	// BlankView: Will cause the Scorecard to show only the value, with no
 	// indicator to its value relative to its thresholds.
 	BlankView *Empty `json:"blankView,omitempty"`
+	// Dimensions: Optional. A dimension is a structured label, class, or category
+	// for a set of measurements in your data.
+	Dimensions []*Dimension `json:"dimensions,omitempty"`
 	// GaugeView: Will cause the scorecard to show a gauge chart.
 	GaugeView *GaugeView `json:"gaugeView,omitempty"`
+	// Measures: Optional. A measure is a measured value of a property in your
+	// data. For example, rainfall in inches, number of units sold, revenue gained,
+	// etc.
+	Measures []*Measure `json:"measures,omitempty"`
 	// SparkChartView: Will cause the scorecard to show a spark chart.
 	SparkChartView *SparkChartView `json:"sparkChartView,omitempty"`
 	// Thresholds: The thresholds used to determine the state of the scorecard