docs: update generated docs (#981)

diff --git a/docs/dyn/recommender_v1.projects.locations.recommenders.recommendations.html b/docs/dyn/recommender_v1.projects.locations.recommenders.recommendations.html
new file mode 100644
index 0000000..2c99823
--- /dev/null
+++ b/docs/dyn/recommender_v1.projects.locations.recommenders.recommendations.html
@@ -0,0 +1,1053 @@
+<html><body>
+<style>
+
+body, h1, h2, h3, div, span, p, pre, a {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-weight: inherit;
+  font-style: inherit;
+  font-size: 100%;
+  font-family: inherit;
+  vertical-align: baseline;
+}
+
+body {
+  font-size: 13px;
+  padding: 1em;
+}
+
+h1 {
+  font-size: 26px;
+  margin-bottom: 1em;
+}
+
+h2 {
+  font-size: 24px;
+  margin-bottom: 1em;
+}
+
+h3 {
+  font-size: 20px;
+  margin-bottom: 1em;
+  margin-top: 1em;
+}
+
+pre, code {
+  line-height: 1.5;
+  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
+}
+
+pre {
+  margin-top: 0.5em;
+}
+
+h1, h2, h3, p {
+  font-family: Arial, sans serif;
+}
+
+h1, h2, h3 {
+  border-bottom: solid #CCC 1px;
+}
+
+.toc_element {
+  margin-top: 0.5em;
+}
+
+.firstline {
+  margin-left: 2 em;
+}
+
+.method  {
+  margin-top: 1em;
+  border: solid 1px #CCC;
+  padding: 1em;
+  background: #EEE;
+}
+
+.details {
+  font-weight: bold;
+  font-size: 14px;
+}
+
+</style>
+
+<h1><a href="recommender_v1.html">Recommender API</a> . <a href="recommender_v1.projects.html">projects</a> . <a href="recommender_v1.projects.locations.html">locations</a> . <a href="recommender_v1.projects.locations.recommenders.html">recommenders</a> . <a href="recommender_v1.projects.locations.recommenders.recommendations.html">recommendations</a></h1>
+<h2>Instance Methods</h2>
+<p class="toc_element">
+  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
+<p class="firstline">Gets the requested recommendation. Requires the recommender.*.get</p>
+<p class="toc_element">
+  <code><a href="#list">list(parent, filter=None, pageToken=None, pageSize=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Lists recommendations for a Cloud project. Requires the recommender.*.list</p>
+<p class="toc_element">
+  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
+<p class="firstline">Retrieves the next page of results.</p>
+<p class="toc_element">
+  <code><a href="#markClaimed">markClaimed(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Marks the Recommendation State as Claimed. Users can use this method to</p>
+<p class="toc_element">
+  <code><a href="#markFailed">markFailed(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Marks the Recommendation State as Failed. Users can use this method to</p>
+<p class="toc_element">
+  <code><a href="#markSucceeded">markSucceeded(name, body=None, x__xgafv=None)</a></code></p>
+<p class="firstline">Marks the Recommendation State as Succeeded. Users can use this method to</p>
+<h3>Method Details</h3>
+<div class="method">
+    <code class="details" id="get">get(name, x__xgafv=None)</code>
+  <pre>Gets the requested recommendation. Requires the recommender.*.get
+IAM permission for the specified recommender.
+
+Args:
+  name: string, Required. Name of the recommendation. (required)
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A recommendation along with a suggested action. E.g., a rightsizing
+      # recommendation for an underutilized VM, IAM role recommendations, etc
+    &quot;primaryImpact&quot;: { # Contains the impact a recommendation can have for a given category. # The primary impact that this recommendation can have while trying to
+        # optimize for one category.
+      &quot;costProjection&quot;: { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+        &quot;duration&quot;: &quot;A String&quot;, # Duration for which this cost applies.
+        &quot;cost&quot;: { # Represents an amount of money with its currency type. # An approximate projection on amount saved or amount incurred. Negative cost
+            # units indicate cost savings and positive cost units indicate increase.
+            # See google.type.Money documentation for positive/negative units.
+          &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
+          &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount.
+              # The value must be between -999,999,999 and +999,999,999 inclusive.
+              # If `units` is positive, `nanos` must be positive or zero.
+              # If `units` is zero, `nanos` can be positive, zero, or negative.
+              # If `units` is negative, `nanos` must be negative or zero.
+              # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+          &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount.
+              # For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+        },
+      },
+      &quot;category&quot;: &quot;A String&quot;, # Category that is being targeted.
+    },
+    &quot;lastRefreshTime&quot;: &quot;A String&quot;, # Last time this recommendation was refreshed by the system that created it
+        # in the first place.
+    &quot;recommenderSubtype&quot;: &quot;A String&quot;, # Contains an identifier for a subtype of recommendations produced for the
+        # same recommender. Subtype is a function of content and impact, meaning a
+        # new subtype might be added when significant changes to `content` or
+        # `primary_impact.category` are introduced. See the Recommenders section
+        # to see a list of subtypes for a given Recommender.
+        #
+        # Examples:
+        #   For recommender = &quot;google.iam.policy.Recommender&quot;,
+        #   recommender_subtype can be one of &quot;REMOVE_ROLE&quot;/&quot;REPLACE_ROLE&quot;
+    &quot;description&quot;: &quot;A String&quot;, # Free-form human readable summary in English. The maximum length is 500
+        # characters.
+    &quot;content&quot;: { # Contains what resources are changing and how they are changing. # Content of the recommendation describing recommended changes to resources.
+      &quot;operationGroups&quot;: [ # Operations to one or more Google Cloud resources grouped in such a way
+          # that, all operations within one group are expected to be performed
+          # atomically and in an order.
+        { # Group of operations that need to be performed atomically.
+          &quot;operations&quot;: [ # List of operations across one or more resources that belong to this group.
+              # Loosely based on RFC6902 and should be performed in the order they appear.
+            { # Contains an operation for a resource loosely based on the JSON-PATCH format
+                # with support for:
+                #
+                # * Custom filters for describing partial array patch.
+                # * Extended path values for describing nested arrays.
+                # * Custom fields for describing the resource for which the operation is being
+                #   described.
+                # * Allows extension to custom operations not natively supported by RFC6902.
+                # See https://tools.ietf.org/html/rfc6902 for details on the original RFC.
+              &quot;pathValueMatchers&quot;: { # Similar to path_filters, this contains set of filters to apply if `path`
+                  # field referes to array elements. This is meant to support value matching
+                  # beyond exact match. To perform exact match, use path_filters.
+                  # When both path_filters and path_value_matchers are set, an implicit AND
+                  # must be performed.
+                &quot;a_key&quot;: { # Contains various matching options for values for a GCP resource field.
+                  &quot;matchesPattern&quot;: &quot;A String&quot;, # To be used for full regex matching. The regular expression is using the
+                      # Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
+                      # used with RE2::FullMatch
+                },
+              },
+              &quot;pathFilters&quot;: { # Set of filters to apply if `path` refers to array elements or nested array
+                  # elements in order to narrow down to a single unique element that is being
+                  # tested/modified.
+                  # This is intended to be an exact match per filter. To perform advanced
+                  # matching, use path_value_matchers.
+                  #
+                  # * Example: {
+                  #   &quot;/versions/*/name&quot; : &quot;it-123&quot;
+                  #   &quot;/versions/*/targetSize/percent&quot;: 20
+                  #  }
+                  # * Example: {
+                  #   &quot;/bindings/*/role&quot;: &quot;roles/admin&quot;
+                  #   &quot;/bindings/*/condition&quot; : null
+                  #  }
+                  # * Example: {
+                  #   &quot;/bindings/*/role&quot;: &quot;roles/admin&quot;
+                  #   &quot;/bindings/*/members/*&quot; : [&quot;x@google.com&quot;, &quot;y@google.com&quot;]
+                  #  }
+                  # When both path_filters and path_value_matchers are set, an implicit AND
+                  # must be performed.
+                &quot;a_key&quot;: &quot;&quot;,
+              },
+              &quot;action&quot;: &quot;A String&quot;, # Type of this operation. Contains one of &#x27;and&#x27;, &#x27;remove&#x27;, &#x27;replace&#x27;, &#x27;move&#x27;,
+                  # &#x27;copy&#x27;, &#x27;test&#x27; and custom operations. This field is case-insensitive and
+                  # always populated.
+              &quot;resourceType&quot;: &quot;A String&quot;, # Type of GCP resource being modified/tested. This field is always populated.
+                  # Example: cloudresourcemanager.googleapis.com/Project,
+                  # compute.googleapis.com/Instance
+              &quot;sourcePath&quot;: &quot;A String&quot;, # Can be set with action &#x27;copy&#x27; or &#x27;move&#x27; to indicate the source field within
+                  # resource or source_resource, ignored if provided for other operation types.
+              &quot;valueMatcher&quot;: { # Contains various matching options for values for a GCP resource field. # Can be set for action &#x27;test&#x27; for advanced matching for the value of
+                  # &#x27;path&#x27; field. Either this or `value` will be set for &#x27;test&#x27; operation.
+                &quot;matchesPattern&quot;: &quot;A String&quot;, # To be used for full regex matching. The regular expression is using the
+                    # Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
+                    # used with RE2::FullMatch
+              },
+              &quot;value&quot;: &quot;&quot;, # Value for the `path` field. Will be set for actions:&#x27;add&#x27;/&#x27;replace&#x27;.
+                  # Maybe set for action: &#x27;test&#x27;. Either this or `value_matcher` will be set
+                  # for &#x27;test&#x27; operation. An exact match must be performed.
+              &quot;sourceResource&quot;: &quot;A String&quot;, # Can be set with action &#x27;copy&#x27; to copy resource configuration across
+                  # different resources of the same type. Example: A resource clone can be
+                  # done via action = &#x27;copy&#x27;, path = &quot;/&quot;, from = &quot;/&quot;,
+                  # source_resource = &lt;source&gt; and resource_name = &lt;target&gt;.
+                  # This field is empty for all other values of `action`.
+              &quot;resource&quot;: &quot;A String&quot;, # Contains the fully qualified resource name. This field is always populated.
+                  # ex: //cloudresourcemanager.googleapis.com/projects/foo.
+              &quot;path&quot;: &quot;A String&quot;, # Path to the target field being operated on. If the operation is at the
+                  # resource level, then path should be &quot;/&quot;. This field is always populated.
+            },
+          ],
+        },
+      ],
+    },
+    &quot;additionalImpact&quot;: [ # Optional set of additional impact that this recommendation may have when
+        # trying to optimize for the primary category. These may be positive
+        # or negative.
+      { # Contains the impact a recommendation can have for a given category.
+        &quot;costProjection&quot;: { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+          &quot;duration&quot;: &quot;A String&quot;, # Duration for which this cost applies.
+          &quot;cost&quot;: { # Represents an amount of money with its currency type. # An approximate projection on amount saved or amount incurred. Negative cost
+              # units indicate cost savings and positive cost units indicate increase.
+              # See google.type.Money documentation for positive/negative units.
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
+            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount.
+                # The value must be between -999,999,999 and +999,999,999 inclusive.
+                # If `units` is positive, `nanos` must be positive or zero.
+                # If `units` is zero, `nanos` can be positive, zero, or negative.
+                # If `units` is negative, `nanos` must be negative or zero.
+                # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount.
+                # For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+          },
+        },
+        &quot;category&quot;: &quot;A String&quot;, # Category that is being targeted.
+      },
+    ],
+    &quot;name&quot;: &quot;A String&quot;, # Name of recommendation.
+    &quot;etag&quot;: &quot;A String&quot;, # Fingerprint of the Recommendation. Provides optimistic locking when
+        # updating states.
+    &quot;stateInfo&quot;: { # Information for state. Contains state and metadata. # Information for state. Contains state and metadata.
+      &quot;stateMetadata&quot;: { # A map of metadata for the state, provided by user or automations systems.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;state&quot;: &quot;A String&quot;, # The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
+    },
+    &quot;associatedInsights&quot;: [ # Insights that led to this recommendation.
+      { # Reference to an associated insight.
+        &quot;insight&quot;: &quot;A String&quot;, # Insight resource name, e.g.
+            # projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID]
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list">list(parent, filter=None, pageToken=None, pageSize=None, x__xgafv=None)</code>
+  <pre>Lists recommendations for a Cloud project. Requires the recommender.*.list
+IAM permission for the specified recommender.
+
+Args:
+  parent: string, Required. The container resource on which to execute the request.
+Acceptable formats:
+
+1.
+&quot;projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]&quot;,
+
+LOCATION here refers to GCP Locations:
+https://cloud.google.com/about/locations/ (required)
+  filter: string, Filter expression to restrict the recommendations returned. Supported
+filter fields: state_info.state
+Eg: `state_info.state:&quot;DISMISSED&quot; or state_info.state:&quot;FAILED&quot;
+  pageToken: string, Optional. If present, retrieves the next batch of results from the preceding call to
+this method. `page_token` must be the value of `next_page_token` from the
+previous response. The values of other method parameters must be identical
+to those in the previous call.
+  pageSize: integer, Optional. The maximum number of results to return from this request.  Non-positive
+values are ignored. If not specified, the server will determine the number
+of results to return.
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # Response to the `ListRecommendations` method.
+    &quot;recommendations&quot;: [ # The set of recommendations for the `parent` resource.
+      { # A recommendation along with a suggested action. E.g., a rightsizing
+          # recommendation for an underutilized VM, IAM role recommendations, etc
+        &quot;primaryImpact&quot;: { # Contains the impact a recommendation can have for a given category. # The primary impact that this recommendation can have while trying to
+            # optimize for one category.
+          &quot;costProjection&quot;: { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+            &quot;duration&quot;: &quot;A String&quot;, # Duration for which this cost applies.
+            &quot;cost&quot;: { # Represents an amount of money with its currency type. # An approximate projection on amount saved or amount incurred. Negative cost
+                # units indicate cost savings and positive cost units indicate increase.
+                # See google.type.Money documentation for positive/negative units.
+              &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
+              &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount.
+                  # The value must be between -999,999,999 and +999,999,999 inclusive.
+                  # If `units` is positive, `nanos` must be positive or zero.
+                  # If `units` is zero, `nanos` can be positive, zero, or negative.
+                  # If `units` is negative, `nanos` must be negative or zero.
+                  # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+              &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount.
+                  # For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+            },
+          },
+          &quot;category&quot;: &quot;A String&quot;, # Category that is being targeted.
+        },
+        &quot;lastRefreshTime&quot;: &quot;A String&quot;, # Last time this recommendation was refreshed by the system that created it
+            # in the first place.
+        &quot;recommenderSubtype&quot;: &quot;A String&quot;, # Contains an identifier for a subtype of recommendations produced for the
+            # same recommender. Subtype is a function of content and impact, meaning a
+            # new subtype might be added when significant changes to `content` or
+            # `primary_impact.category` are introduced. See the Recommenders section
+            # to see a list of subtypes for a given Recommender.
+            #
+            # Examples:
+            #   For recommender = &quot;google.iam.policy.Recommender&quot;,
+            #   recommender_subtype can be one of &quot;REMOVE_ROLE&quot;/&quot;REPLACE_ROLE&quot;
+        &quot;description&quot;: &quot;A String&quot;, # Free-form human readable summary in English. The maximum length is 500
+            # characters.
+        &quot;content&quot;: { # Contains what resources are changing and how they are changing. # Content of the recommendation describing recommended changes to resources.
+          &quot;operationGroups&quot;: [ # Operations to one or more Google Cloud resources grouped in such a way
+              # that, all operations within one group are expected to be performed
+              # atomically and in an order.
+            { # Group of operations that need to be performed atomically.
+              &quot;operations&quot;: [ # List of operations across one or more resources that belong to this group.
+                  # Loosely based on RFC6902 and should be performed in the order they appear.
+                { # Contains an operation for a resource loosely based on the JSON-PATCH format
+                    # with support for:
+                    #
+                    # * Custom filters for describing partial array patch.
+                    # * Extended path values for describing nested arrays.
+                    # * Custom fields for describing the resource for which the operation is being
+                    #   described.
+                    # * Allows extension to custom operations not natively supported by RFC6902.
+                    # See https://tools.ietf.org/html/rfc6902 for details on the original RFC.
+                  &quot;pathValueMatchers&quot;: { # Similar to path_filters, this contains set of filters to apply if `path`
+                      # field referes to array elements. This is meant to support value matching
+                      # beyond exact match. To perform exact match, use path_filters.
+                      # When both path_filters and path_value_matchers are set, an implicit AND
+                      # must be performed.
+                    &quot;a_key&quot;: { # Contains various matching options for values for a GCP resource field.
+                      &quot;matchesPattern&quot;: &quot;A String&quot;, # To be used for full regex matching. The regular expression is using the
+                          # Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
+                          # used with RE2::FullMatch
+                    },
+                  },
+                  &quot;pathFilters&quot;: { # Set of filters to apply if `path` refers to array elements or nested array
+                      # elements in order to narrow down to a single unique element that is being
+                      # tested/modified.
+                      # This is intended to be an exact match per filter. To perform advanced
+                      # matching, use path_value_matchers.
+                      #
+                      # * Example: {
+                      #   &quot;/versions/*/name&quot; : &quot;it-123&quot;
+                      #   &quot;/versions/*/targetSize/percent&quot;: 20
+                      #  }
+                      # * Example: {
+                      #   &quot;/bindings/*/role&quot;: &quot;roles/admin&quot;
+                      #   &quot;/bindings/*/condition&quot; : null
+                      #  }
+                      # * Example: {
+                      #   &quot;/bindings/*/role&quot;: &quot;roles/admin&quot;
+                      #   &quot;/bindings/*/members/*&quot; : [&quot;x@google.com&quot;, &quot;y@google.com&quot;]
+                      #  }
+                      # When both path_filters and path_value_matchers are set, an implicit AND
+                      # must be performed.
+                    &quot;a_key&quot;: &quot;&quot;,
+                  },
+                  &quot;action&quot;: &quot;A String&quot;, # Type of this operation. Contains one of &#x27;and&#x27;, &#x27;remove&#x27;, &#x27;replace&#x27;, &#x27;move&#x27;,
+                      # &#x27;copy&#x27;, &#x27;test&#x27; and custom operations. This field is case-insensitive and
+                      # always populated.
+                  &quot;resourceType&quot;: &quot;A String&quot;, # Type of GCP resource being modified/tested. This field is always populated.
+                      # Example: cloudresourcemanager.googleapis.com/Project,
+                      # compute.googleapis.com/Instance
+                  &quot;sourcePath&quot;: &quot;A String&quot;, # Can be set with action &#x27;copy&#x27; or &#x27;move&#x27; to indicate the source field within
+                      # resource or source_resource, ignored if provided for other operation types.
+                  &quot;valueMatcher&quot;: { # Contains various matching options for values for a GCP resource field. # Can be set for action &#x27;test&#x27; for advanced matching for the value of
+                      # &#x27;path&#x27; field. Either this or `value` will be set for &#x27;test&#x27; operation.
+                    &quot;matchesPattern&quot;: &quot;A String&quot;, # To be used for full regex matching. The regular expression is using the
+                        # Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
+                        # used with RE2::FullMatch
+                  },
+                  &quot;value&quot;: &quot;&quot;, # Value for the `path` field. Will be set for actions:&#x27;add&#x27;/&#x27;replace&#x27;.
+                      # Maybe set for action: &#x27;test&#x27;. Either this or `value_matcher` will be set
+                      # for &#x27;test&#x27; operation. An exact match must be performed.
+                  &quot;sourceResource&quot;: &quot;A String&quot;, # Can be set with action &#x27;copy&#x27; to copy resource configuration across
+                      # different resources of the same type. Example: A resource clone can be
+                      # done via action = &#x27;copy&#x27;, path = &quot;/&quot;, from = &quot;/&quot;,
+                      # source_resource = &lt;source&gt; and resource_name = &lt;target&gt;.
+                      # This field is empty for all other values of `action`.
+                  &quot;resource&quot;: &quot;A String&quot;, # Contains the fully qualified resource name. This field is always populated.
+                      # ex: //cloudresourcemanager.googleapis.com/projects/foo.
+                  &quot;path&quot;: &quot;A String&quot;, # Path to the target field being operated on. If the operation is at the
+                      # resource level, then path should be &quot;/&quot;. This field is always populated.
+                },
+              ],
+            },
+          ],
+        },
+        &quot;additionalImpact&quot;: [ # Optional set of additional impact that this recommendation may have when
+            # trying to optimize for the primary category. These may be positive
+            # or negative.
+          { # Contains the impact a recommendation can have for a given category.
+            &quot;costProjection&quot;: { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+              &quot;duration&quot;: &quot;A String&quot;, # Duration for which this cost applies.
+              &quot;cost&quot;: { # Represents an amount of money with its currency type. # An approximate projection on amount saved or amount incurred. Negative cost
+                  # units indicate cost savings and positive cost units indicate increase.
+                  # See google.type.Money documentation for positive/negative units.
+                &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
+                &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount.
+                    # The value must be between -999,999,999 and +999,999,999 inclusive.
+                    # If `units` is positive, `nanos` must be positive or zero.
+                    # If `units` is zero, `nanos` can be positive, zero, or negative.
+                    # If `units` is negative, `nanos` must be negative or zero.
+                    # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+                &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount.
+                    # For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+              },
+            },
+            &quot;category&quot;: &quot;A String&quot;, # Category that is being targeted.
+          },
+        ],
+        &quot;name&quot;: &quot;A String&quot;, # Name of recommendation.
+        &quot;etag&quot;: &quot;A String&quot;, # Fingerprint of the Recommendation. Provides optimistic locking when
+            # updating states.
+        &quot;stateInfo&quot;: { # Information for state. Contains state and metadata. # Information for state. Contains state and metadata.
+          &quot;stateMetadata&quot;: { # A map of metadata for the state, provided by user or automations systems.
+            &quot;a_key&quot;: &quot;A String&quot;,
+          },
+          &quot;state&quot;: &quot;A String&quot;, # The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
+        },
+        &quot;associatedInsights&quot;: [ # Insights that led to this recommendation.
+          { # Reference to an associated insight.
+            &quot;insight&quot;: &quot;A String&quot;, # Insight resource name, e.g.
+                # projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID]
+          },
+        ],
+      },
+    ],
+    &quot;nextPageToken&quot;: &quot;A String&quot;, # A token that can be used to request the next page of results. This field is
+        # empty if there are no additional results.
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
+  <pre>Retrieves the next page of results.
+
+Args:
+  previous_request: The request for the previous page. (required)
+  previous_response: The response from the request for the previous page. (required)
+
+Returns:
+  A request object that you can call &#x27;execute()&#x27; on to request the next
+  page. Returns None if there are no more items in the collection.
+    </pre>
+</div>
+
+<div class="method">
+    <code class="details" id="markClaimed">markClaimed(name, body=None, x__xgafv=None)</code>
+  <pre>Marks the Recommendation State as Claimed. Users can use this method to
+indicate to the Recommender API that they are starting to apply the
+recommendation themselves. This stops the recommendation content from being
+updated. Associated insights are frozen and placed in the ACCEPTED state.
+
+MarkRecommendationClaimed can be applied to recommendations in CLAIMED,
+SUCCEEDED, FAILED, or ACTIVE state.
+
+Requires the recommender.*.update IAM permission for the specified
+recommender.
+
+Args:
+  name: string, Required. Name of the recommendation. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request for the `MarkRecommendationClaimed` Method.
+    &quot;etag&quot;: &quot;A String&quot;, # Required. Fingerprint of the Recommendation. Provides optimistic locking.
+    &quot;stateMetadata&quot;: { # State properties to include with this state. Overwrites any existing
+        # `state_metadata`.
+        # Keys must match the regex /^a-z0-9{0,62}$/.
+        # Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A recommendation along with a suggested action. E.g., a rightsizing
+      # recommendation for an underutilized VM, IAM role recommendations, etc
+    &quot;primaryImpact&quot;: { # Contains the impact a recommendation can have for a given category. # The primary impact that this recommendation can have while trying to
+        # optimize for one category.
+      &quot;costProjection&quot;: { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+        &quot;duration&quot;: &quot;A String&quot;, # Duration for which this cost applies.
+        &quot;cost&quot;: { # Represents an amount of money with its currency type. # An approximate projection on amount saved or amount incurred. Negative cost
+            # units indicate cost savings and positive cost units indicate increase.
+            # See google.type.Money documentation for positive/negative units.
+          &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
+          &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount.
+              # The value must be between -999,999,999 and +999,999,999 inclusive.
+              # If `units` is positive, `nanos` must be positive or zero.
+              # If `units` is zero, `nanos` can be positive, zero, or negative.
+              # If `units` is negative, `nanos` must be negative or zero.
+              # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+          &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount.
+              # For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+        },
+      },
+      &quot;category&quot;: &quot;A String&quot;, # Category that is being targeted.
+    },
+    &quot;lastRefreshTime&quot;: &quot;A String&quot;, # Last time this recommendation was refreshed by the system that created it
+        # in the first place.
+    &quot;recommenderSubtype&quot;: &quot;A String&quot;, # Contains an identifier for a subtype of recommendations produced for the
+        # same recommender. Subtype is a function of content and impact, meaning a
+        # new subtype might be added when significant changes to `content` or
+        # `primary_impact.category` are introduced. See the Recommenders section
+        # to see a list of subtypes for a given Recommender.
+        #
+        # Examples:
+        #   For recommender = &quot;google.iam.policy.Recommender&quot;,
+        #   recommender_subtype can be one of &quot;REMOVE_ROLE&quot;/&quot;REPLACE_ROLE&quot;
+    &quot;description&quot;: &quot;A String&quot;, # Free-form human readable summary in English. The maximum length is 500
+        # characters.
+    &quot;content&quot;: { # Contains what resources are changing and how they are changing. # Content of the recommendation describing recommended changes to resources.
+      &quot;operationGroups&quot;: [ # Operations to one or more Google Cloud resources grouped in such a way
+          # that, all operations within one group are expected to be performed
+          # atomically and in an order.
+        { # Group of operations that need to be performed atomically.
+          &quot;operations&quot;: [ # List of operations across one or more resources that belong to this group.
+              # Loosely based on RFC6902 and should be performed in the order they appear.
+            { # Contains an operation for a resource loosely based on the JSON-PATCH format
+                # with support for:
+                #
+                # * Custom filters for describing partial array patch.
+                # * Extended path values for describing nested arrays.
+                # * Custom fields for describing the resource for which the operation is being
+                #   described.
+                # * Allows extension to custom operations not natively supported by RFC6902.
+                # See https://tools.ietf.org/html/rfc6902 for details on the original RFC.
+              &quot;pathValueMatchers&quot;: { # Similar to path_filters, this contains set of filters to apply if `path`
+                  # field referes to array elements. This is meant to support value matching
+                  # beyond exact match. To perform exact match, use path_filters.
+                  # When both path_filters and path_value_matchers are set, an implicit AND
+                  # must be performed.
+                &quot;a_key&quot;: { # Contains various matching options for values for a GCP resource field.
+                  &quot;matchesPattern&quot;: &quot;A String&quot;, # To be used for full regex matching. The regular expression is using the
+                      # Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
+                      # used with RE2::FullMatch
+                },
+              },
+              &quot;pathFilters&quot;: { # Set of filters to apply if `path` refers to array elements or nested array
+                  # elements in order to narrow down to a single unique element that is being
+                  # tested/modified.
+                  # This is intended to be an exact match per filter. To perform advanced
+                  # matching, use path_value_matchers.
+                  #
+                  # * Example: {
+                  #   &quot;/versions/*/name&quot; : &quot;it-123&quot;
+                  #   &quot;/versions/*/targetSize/percent&quot;: 20
+                  #  }
+                  # * Example: {
+                  #   &quot;/bindings/*/role&quot;: &quot;roles/admin&quot;
+                  #   &quot;/bindings/*/condition&quot; : null
+                  #  }
+                  # * Example: {
+                  #   &quot;/bindings/*/role&quot;: &quot;roles/admin&quot;
+                  #   &quot;/bindings/*/members/*&quot; : [&quot;x@google.com&quot;, &quot;y@google.com&quot;]
+                  #  }
+                  # When both path_filters and path_value_matchers are set, an implicit AND
+                  # must be performed.
+                &quot;a_key&quot;: &quot;&quot;,
+              },
+              &quot;action&quot;: &quot;A String&quot;, # Type of this operation. Contains one of &#x27;and&#x27;, &#x27;remove&#x27;, &#x27;replace&#x27;, &#x27;move&#x27;,
+                  # &#x27;copy&#x27;, &#x27;test&#x27; and custom operations. This field is case-insensitive and
+                  # always populated.
+              &quot;resourceType&quot;: &quot;A String&quot;, # Type of GCP resource being modified/tested. This field is always populated.
+                  # Example: cloudresourcemanager.googleapis.com/Project,
+                  # compute.googleapis.com/Instance
+              &quot;sourcePath&quot;: &quot;A String&quot;, # Can be set with action &#x27;copy&#x27; or &#x27;move&#x27; to indicate the source field within
+                  # resource or source_resource, ignored if provided for other operation types.
+              &quot;valueMatcher&quot;: { # Contains various matching options for values for a GCP resource field. # Can be set for action &#x27;test&#x27; for advanced matching for the value of
+                  # &#x27;path&#x27; field. Either this or `value` will be set for &#x27;test&#x27; operation.
+                &quot;matchesPattern&quot;: &quot;A String&quot;, # To be used for full regex matching. The regular expression is using the
+                    # Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
+                    # used with RE2::FullMatch
+              },
+              &quot;value&quot;: &quot;&quot;, # Value for the `path` field. Will be set for actions:&#x27;add&#x27;/&#x27;replace&#x27;.
+                  # Maybe set for action: &#x27;test&#x27;. Either this or `value_matcher` will be set
+                  # for &#x27;test&#x27; operation. An exact match must be performed.
+              &quot;sourceResource&quot;: &quot;A String&quot;, # Can be set with action &#x27;copy&#x27; to copy resource configuration across
+                  # different resources of the same type. Example: A resource clone can be
+                  # done via action = &#x27;copy&#x27;, path = &quot;/&quot;, from = &quot;/&quot;,
+                  # source_resource = &lt;source&gt; and resource_name = &lt;target&gt;.
+                  # This field is empty for all other values of `action`.
+              &quot;resource&quot;: &quot;A String&quot;, # Contains the fully qualified resource name. This field is always populated.
+                  # ex: //cloudresourcemanager.googleapis.com/projects/foo.
+              &quot;path&quot;: &quot;A String&quot;, # Path to the target field being operated on. If the operation is at the
+                  # resource level, then path should be &quot;/&quot;. This field is always populated.
+            },
+          ],
+        },
+      ],
+    },
+    &quot;additionalImpact&quot;: [ # Optional set of additional impact that this recommendation may have when
+        # trying to optimize for the primary category. These may be positive
+        # or negative.
+      { # Contains the impact a recommendation can have for a given category.
+        &quot;costProjection&quot;: { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+          &quot;duration&quot;: &quot;A String&quot;, # Duration for which this cost applies.
+          &quot;cost&quot;: { # Represents an amount of money with its currency type. # An approximate projection on amount saved or amount incurred. Negative cost
+              # units indicate cost savings and positive cost units indicate increase.
+              # See google.type.Money documentation for positive/negative units.
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
+            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount.
+                # The value must be between -999,999,999 and +999,999,999 inclusive.
+                # If `units` is positive, `nanos` must be positive or zero.
+                # If `units` is zero, `nanos` can be positive, zero, or negative.
+                # If `units` is negative, `nanos` must be negative or zero.
+                # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount.
+                # For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+          },
+        },
+        &quot;category&quot;: &quot;A String&quot;, # Category that is being targeted.
+      },
+    ],
+    &quot;name&quot;: &quot;A String&quot;, # Name of recommendation.
+    &quot;etag&quot;: &quot;A String&quot;, # Fingerprint of the Recommendation. Provides optimistic locking when
+        # updating states.
+    &quot;stateInfo&quot;: { # Information for state. Contains state and metadata. # Information for state. Contains state and metadata.
+      &quot;stateMetadata&quot;: { # A map of metadata for the state, provided by user or automations systems.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;state&quot;: &quot;A String&quot;, # The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
+    },
+    &quot;associatedInsights&quot;: [ # Insights that led to this recommendation.
+      { # Reference to an associated insight.
+        &quot;insight&quot;: &quot;A String&quot;, # Insight resource name, e.g.
+            # projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID]
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="markFailed">markFailed(name, body=None, x__xgafv=None)</code>
+  <pre>Marks the Recommendation State as Failed. Users can use this method to
+indicate to the Recommender API that they have applied the recommendation
+themselves, and the operation failed. This stops the recommendation content
+from being updated. Associated insights are frozen and placed in the
+ACCEPTED state.
+
+MarkRecommendationFailed can be applied to recommendations in ACTIVE,
+CLAIMED, SUCCEEDED, or FAILED state.
+
+Requires the recommender.*.update IAM permission for the specified
+recommender.
+
+Args:
+  name: string, Required. Name of the recommendation. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request for the `MarkRecommendationFailed` Method.
+    &quot;stateMetadata&quot;: { # State properties to include with this state. Overwrites any existing
+        # `state_metadata`.
+        # Keys must match the regex /^a-z0-9{0,62}$/.
+        # Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+    &quot;etag&quot;: &quot;A String&quot;, # Required. Fingerprint of the Recommendation. Provides optimistic locking.
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A recommendation along with a suggested action. E.g., a rightsizing
+      # recommendation for an underutilized VM, IAM role recommendations, etc
+    &quot;primaryImpact&quot;: { # Contains the impact a recommendation can have for a given category. # The primary impact that this recommendation can have while trying to
+        # optimize for one category.
+      &quot;costProjection&quot;: { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+        &quot;duration&quot;: &quot;A String&quot;, # Duration for which this cost applies.
+        &quot;cost&quot;: { # Represents an amount of money with its currency type. # An approximate projection on amount saved or amount incurred. Negative cost
+            # units indicate cost savings and positive cost units indicate increase.
+            # See google.type.Money documentation for positive/negative units.
+          &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
+          &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount.
+              # The value must be between -999,999,999 and +999,999,999 inclusive.
+              # If `units` is positive, `nanos` must be positive or zero.
+              # If `units` is zero, `nanos` can be positive, zero, or negative.
+              # If `units` is negative, `nanos` must be negative or zero.
+              # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+          &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount.
+              # For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+        },
+      },
+      &quot;category&quot;: &quot;A String&quot;, # Category that is being targeted.
+    },
+    &quot;lastRefreshTime&quot;: &quot;A String&quot;, # Last time this recommendation was refreshed by the system that created it
+        # in the first place.
+    &quot;recommenderSubtype&quot;: &quot;A String&quot;, # Contains an identifier for a subtype of recommendations produced for the
+        # same recommender. Subtype is a function of content and impact, meaning a
+        # new subtype might be added when significant changes to `content` or
+        # `primary_impact.category` are introduced. See the Recommenders section
+        # to see a list of subtypes for a given Recommender.
+        #
+        # Examples:
+        #   For recommender = &quot;google.iam.policy.Recommender&quot;,
+        #   recommender_subtype can be one of &quot;REMOVE_ROLE&quot;/&quot;REPLACE_ROLE&quot;
+    &quot;description&quot;: &quot;A String&quot;, # Free-form human readable summary in English. The maximum length is 500
+        # characters.
+    &quot;content&quot;: { # Contains what resources are changing and how they are changing. # Content of the recommendation describing recommended changes to resources.
+      &quot;operationGroups&quot;: [ # Operations to one or more Google Cloud resources grouped in such a way
+          # that, all operations within one group are expected to be performed
+          # atomically and in an order.
+        { # Group of operations that need to be performed atomically.
+          &quot;operations&quot;: [ # List of operations across one or more resources that belong to this group.
+              # Loosely based on RFC6902 and should be performed in the order they appear.
+            { # Contains an operation for a resource loosely based on the JSON-PATCH format
+                # with support for:
+                #
+                # * Custom filters for describing partial array patch.
+                # * Extended path values for describing nested arrays.
+                # * Custom fields for describing the resource for which the operation is being
+                #   described.
+                # * Allows extension to custom operations not natively supported by RFC6902.
+                # See https://tools.ietf.org/html/rfc6902 for details on the original RFC.
+              &quot;pathValueMatchers&quot;: { # Similar to path_filters, this contains set of filters to apply if `path`
+                  # field referes to array elements. This is meant to support value matching
+                  # beyond exact match. To perform exact match, use path_filters.
+                  # When both path_filters and path_value_matchers are set, an implicit AND
+                  # must be performed.
+                &quot;a_key&quot;: { # Contains various matching options for values for a GCP resource field.
+                  &quot;matchesPattern&quot;: &quot;A String&quot;, # To be used for full regex matching. The regular expression is using the
+                      # Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
+                      # used with RE2::FullMatch
+                },
+              },
+              &quot;pathFilters&quot;: { # Set of filters to apply if `path` refers to array elements or nested array
+                  # elements in order to narrow down to a single unique element that is being
+                  # tested/modified.
+                  # This is intended to be an exact match per filter. To perform advanced
+                  # matching, use path_value_matchers.
+                  #
+                  # * Example: {
+                  #   &quot;/versions/*/name&quot; : &quot;it-123&quot;
+                  #   &quot;/versions/*/targetSize/percent&quot;: 20
+                  #  }
+                  # * Example: {
+                  #   &quot;/bindings/*/role&quot;: &quot;roles/admin&quot;
+                  #   &quot;/bindings/*/condition&quot; : null
+                  #  }
+                  # * Example: {
+                  #   &quot;/bindings/*/role&quot;: &quot;roles/admin&quot;
+                  #   &quot;/bindings/*/members/*&quot; : [&quot;x@google.com&quot;, &quot;y@google.com&quot;]
+                  #  }
+                  # When both path_filters and path_value_matchers are set, an implicit AND
+                  # must be performed.
+                &quot;a_key&quot;: &quot;&quot;,
+              },
+              &quot;action&quot;: &quot;A String&quot;, # Type of this operation. Contains one of &#x27;and&#x27;, &#x27;remove&#x27;, &#x27;replace&#x27;, &#x27;move&#x27;,
+                  # &#x27;copy&#x27;, &#x27;test&#x27; and custom operations. This field is case-insensitive and
+                  # always populated.
+              &quot;resourceType&quot;: &quot;A String&quot;, # Type of GCP resource being modified/tested. This field is always populated.
+                  # Example: cloudresourcemanager.googleapis.com/Project,
+                  # compute.googleapis.com/Instance
+              &quot;sourcePath&quot;: &quot;A String&quot;, # Can be set with action &#x27;copy&#x27; or &#x27;move&#x27; to indicate the source field within
+                  # resource or source_resource, ignored if provided for other operation types.
+              &quot;valueMatcher&quot;: { # Contains various matching options for values for a GCP resource field. # Can be set for action &#x27;test&#x27; for advanced matching for the value of
+                  # &#x27;path&#x27; field. Either this or `value` will be set for &#x27;test&#x27; operation.
+                &quot;matchesPattern&quot;: &quot;A String&quot;, # To be used for full regex matching. The regular expression is using the
+                    # Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
+                    # used with RE2::FullMatch
+              },
+              &quot;value&quot;: &quot;&quot;, # Value for the `path` field. Will be set for actions:&#x27;add&#x27;/&#x27;replace&#x27;.
+                  # Maybe set for action: &#x27;test&#x27;. Either this or `value_matcher` will be set
+                  # for &#x27;test&#x27; operation. An exact match must be performed.
+              &quot;sourceResource&quot;: &quot;A String&quot;, # Can be set with action &#x27;copy&#x27; to copy resource configuration across
+                  # different resources of the same type. Example: A resource clone can be
+                  # done via action = &#x27;copy&#x27;, path = &quot;/&quot;, from = &quot;/&quot;,
+                  # source_resource = &lt;source&gt; and resource_name = &lt;target&gt;.
+                  # This field is empty for all other values of `action`.
+              &quot;resource&quot;: &quot;A String&quot;, # Contains the fully qualified resource name. This field is always populated.
+                  # ex: //cloudresourcemanager.googleapis.com/projects/foo.
+              &quot;path&quot;: &quot;A String&quot;, # Path to the target field being operated on. If the operation is at the
+                  # resource level, then path should be &quot;/&quot;. This field is always populated.
+            },
+          ],
+        },
+      ],
+    },
+    &quot;additionalImpact&quot;: [ # Optional set of additional impact that this recommendation may have when
+        # trying to optimize for the primary category. These may be positive
+        # or negative.
+      { # Contains the impact a recommendation can have for a given category.
+        &quot;costProjection&quot;: { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+          &quot;duration&quot;: &quot;A String&quot;, # Duration for which this cost applies.
+          &quot;cost&quot;: { # Represents an amount of money with its currency type. # An approximate projection on amount saved or amount incurred. Negative cost
+              # units indicate cost savings and positive cost units indicate increase.
+              # See google.type.Money documentation for positive/negative units.
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
+            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount.
+                # The value must be between -999,999,999 and +999,999,999 inclusive.
+                # If `units` is positive, `nanos` must be positive or zero.
+                # If `units` is zero, `nanos` can be positive, zero, or negative.
+                # If `units` is negative, `nanos` must be negative or zero.
+                # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount.
+                # For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+          },
+        },
+        &quot;category&quot;: &quot;A String&quot;, # Category that is being targeted.
+      },
+    ],
+    &quot;name&quot;: &quot;A String&quot;, # Name of recommendation.
+    &quot;etag&quot;: &quot;A String&quot;, # Fingerprint of the Recommendation. Provides optimistic locking when
+        # updating states.
+    &quot;stateInfo&quot;: { # Information for state. Contains state and metadata. # Information for state. Contains state and metadata.
+      &quot;stateMetadata&quot;: { # A map of metadata for the state, provided by user or automations systems.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;state&quot;: &quot;A String&quot;, # The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
+    },
+    &quot;associatedInsights&quot;: [ # Insights that led to this recommendation.
+      { # Reference to an associated insight.
+        &quot;insight&quot;: &quot;A String&quot;, # Insight resource name, e.g.
+            # projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID]
+      },
+    ],
+  }</pre>
+</div>
+
+<div class="method">
+    <code class="details" id="markSucceeded">markSucceeded(name, body=None, x__xgafv=None)</code>
+  <pre>Marks the Recommendation State as Succeeded. Users can use this method to
+indicate to the Recommender API that they have applied the recommendation
+themselves, and the operation was successful. This stops the recommendation
+content from being updated. Associated insights are frozen and placed in
+the ACCEPTED state.
+
+MarkRecommendationSucceeded can be applied to recommendations in ACTIVE,
+CLAIMED, SUCCEEDED, or FAILED state.
+
+Requires the recommender.*.update IAM permission for the specified
+recommender.
+
+Args:
+  name: string, Required. Name of the recommendation. (required)
+  body: object, The request body.
+    The object takes the form of:
+
+{ # Request for the `MarkRecommendationSucceeded` Method.
+    &quot;etag&quot;: &quot;A String&quot;, # Required. Fingerprint of the Recommendation. Provides optimistic locking.
+    &quot;stateMetadata&quot;: { # State properties to include with this state. Overwrites any existing
+        # `state_metadata`.
+        # Keys must match the regex /^a-z0-9{0,62}$/.
+        # Values must match the regex /^[a-zA-Z0-9_./-]{0,255}$/.
+      &quot;a_key&quot;: &quot;A String&quot;,
+    },
+  }
+
+  x__xgafv: string, V1 error format.
+    Allowed values
+      1 - v1 error format
+      2 - v2 error format
+
+Returns:
+  An object of the form:
+
+    { # A recommendation along with a suggested action. E.g., a rightsizing
+      # recommendation for an underutilized VM, IAM role recommendations, etc
+    &quot;primaryImpact&quot;: { # Contains the impact a recommendation can have for a given category. # The primary impact that this recommendation can have while trying to
+        # optimize for one category.
+      &quot;costProjection&quot;: { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+        &quot;duration&quot;: &quot;A String&quot;, # Duration for which this cost applies.
+        &quot;cost&quot;: { # Represents an amount of money with its currency type. # An approximate projection on amount saved or amount incurred. Negative cost
+            # units indicate cost savings and positive cost units indicate increase.
+            # See google.type.Money documentation for positive/negative units.
+          &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
+          &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount.
+              # The value must be between -999,999,999 and +999,999,999 inclusive.
+              # If `units` is positive, `nanos` must be positive or zero.
+              # If `units` is zero, `nanos` can be positive, zero, or negative.
+              # If `units` is negative, `nanos` must be negative or zero.
+              # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+          &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount.
+              # For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+        },
+      },
+      &quot;category&quot;: &quot;A String&quot;, # Category that is being targeted.
+    },
+    &quot;lastRefreshTime&quot;: &quot;A String&quot;, # Last time this recommendation was refreshed by the system that created it
+        # in the first place.
+    &quot;recommenderSubtype&quot;: &quot;A String&quot;, # Contains an identifier for a subtype of recommendations produced for the
+        # same recommender. Subtype is a function of content and impact, meaning a
+        # new subtype might be added when significant changes to `content` or
+        # `primary_impact.category` are introduced. See the Recommenders section
+        # to see a list of subtypes for a given Recommender.
+        #
+        # Examples:
+        #   For recommender = &quot;google.iam.policy.Recommender&quot;,
+        #   recommender_subtype can be one of &quot;REMOVE_ROLE&quot;/&quot;REPLACE_ROLE&quot;
+    &quot;description&quot;: &quot;A String&quot;, # Free-form human readable summary in English. The maximum length is 500
+        # characters.
+    &quot;content&quot;: { # Contains what resources are changing and how they are changing. # Content of the recommendation describing recommended changes to resources.
+      &quot;operationGroups&quot;: [ # Operations to one or more Google Cloud resources grouped in such a way
+          # that, all operations within one group are expected to be performed
+          # atomically and in an order.
+        { # Group of operations that need to be performed atomically.
+          &quot;operations&quot;: [ # List of operations across one or more resources that belong to this group.
+              # Loosely based on RFC6902 and should be performed in the order they appear.
+            { # Contains an operation for a resource loosely based on the JSON-PATCH format
+                # with support for:
+                #
+                # * Custom filters for describing partial array patch.
+                # * Extended path values for describing nested arrays.
+                # * Custom fields for describing the resource for which the operation is being
+                #   described.
+                # * Allows extension to custom operations not natively supported by RFC6902.
+                # See https://tools.ietf.org/html/rfc6902 for details on the original RFC.
+              &quot;pathValueMatchers&quot;: { # Similar to path_filters, this contains set of filters to apply if `path`
+                  # field referes to array elements. This is meant to support value matching
+                  # beyond exact match. To perform exact match, use path_filters.
+                  # When both path_filters and path_value_matchers are set, an implicit AND
+                  # must be performed.
+                &quot;a_key&quot;: { # Contains various matching options for values for a GCP resource field.
+                  &quot;matchesPattern&quot;: &quot;A String&quot;, # To be used for full regex matching. The regular expression is using the
+                      # Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
+                      # used with RE2::FullMatch
+                },
+              },
+              &quot;pathFilters&quot;: { # Set of filters to apply if `path` refers to array elements or nested array
+                  # elements in order to narrow down to a single unique element that is being
+                  # tested/modified.
+                  # This is intended to be an exact match per filter. To perform advanced
+                  # matching, use path_value_matchers.
+                  #
+                  # * Example: {
+                  #   &quot;/versions/*/name&quot; : &quot;it-123&quot;
+                  #   &quot;/versions/*/targetSize/percent&quot;: 20
+                  #  }
+                  # * Example: {
+                  #   &quot;/bindings/*/role&quot;: &quot;roles/admin&quot;
+                  #   &quot;/bindings/*/condition&quot; : null
+                  #  }
+                  # * Example: {
+                  #   &quot;/bindings/*/role&quot;: &quot;roles/admin&quot;
+                  #   &quot;/bindings/*/members/*&quot; : [&quot;x@google.com&quot;, &quot;y@google.com&quot;]
+                  #  }
+                  # When both path_filters and path_value_matchers are set, an implicit AND
+                  # must be performed.
+                &quot;a_key&quot;: &quot;&quot;,
+              },
+              &quot;action&quot;: &quot;A String&quot;, # Type of this operation. Contains one of &#x27;and&#x27;, &#x27;remove&#x27;, &#x27;replace&#x27;, &#x27;move&#x27;,
+                  # &#x27;copy&#x27;, &#x27;test&#x27; and custom operations. This field is case-insensitive and
+                  # always populated.
+              &quot;resourceType&quot;: &quot;A String&quot;, # Type of GCP resource being modified/tested. This field is always populated.
+                  # Example: cloudresourcemanager.googleapis.com/Project,
+                  # compute.googleapis.com/Instance
+              &quot;sourcePath&quot;: &quot;A String&quot;, # Can be set with action &#x27;copy&#x27; or &#x27;move&#x27; to indicate the source field within
+                  # resource or source_resource, ignored if provided for other operation types.
+              &quot;valueMatcher&quot;: { # Contains various matching options for values for a GCP resource field. # Can be set for action &#x27;test&#x27; for advanced matching for the value of
+                  # &#x27;path&#x27; field. Either this or `value` will be set for &#x27;test&#x27; operation.
+                &quot;matchesPattern&quot;: &quot;A String&quot;, # To be used for full regex matching. The regular expression is using the
+                    # Google RE2 syntax (https://github.com/google/re2/wiki/Syntax), so to be
+                    # used with RE2::FullMatch
+              },
+              &quot;value&quot;: &quot;&quot;, # Value for the `path` field. Will be set for actions:&#x27;add&#x27;/&#x27;replace&#x27;.
+                  # Maybe set for action: &#x27;test&#x27;. Either this or `value_matcher` will be set
+                  # for &#x27;test&#x27; operation. An exact match must be performed.
+              &quot;sourceResource&quot;: &quot;A String&quot;, # Can be set with action &#x27;copy&#x27; to copy resource configuration across
+                  # different resources of the same type. Example: A resource clone can be
+                  # done via action = &#x27;copy&#x27;, path = &quot;/&quot;, from = &quot;/&quot;,
+                  # source_resource = &lt;source&gt; and resource_name = &lt;target&gt;.
+                  # This field is empty for all other values of `action`.
+              &quot;resource&quot;: &quot;A String&quot;, # Contains the fully qualified resource name. This field is always populated.
+                  # ex: //cloudresourcemanager.googleapis.com/projects/foo.
+              &quot;path&quot;: &quot;A String&quot;, # Path to the target field being operated on. If the operation is at the
+                  # resource level, then path should be &quot;/&quot;. This field is always populated.
+            },
+          ],
+        },
+      ],
+    },
+    &quot;additionalImpact&quot;: [ # Optional set of additional impact that this recommendation may have when
+        # trying to optimize for the primary category. These may be positive
+        # or negative.
+      { # Contains the impact a recommendation can have for a given category.
+        &quot;costProjection&quot;: { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+          &quot;duration&quot;: &quot;A String&quot;, # Duration for which this cost applies.
+          &quot;cost&quot;: { # Represents an amount of money with its currency type. # An approximate projection on amount saved or amount incurred. Negative cost
+              # units indicate cost savings and positive cost units indicate increase.
+              # See google.type.Money documentation for positive/negative units.
+            &quot;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
+            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount.
+                # The value must be between -999,999,999 and +999,999,999 inclusive.
+                # If `units` is positive, `nanos` must be positive or zero.
+                # If `units` is zero, `nanos` can be positive, zero, or negative.
+                # If `units` is negative, `nanos` must be negative or zero.
+                # For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
+            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount.
+                # For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
+          },
+        },
+        &quot;category&quot;: &quot;A String&quot;, # Category that is being targeted.
+      },
+    ],
+    &quot;name&quot;: &quot;A String&quot;, # Name of recommendation.
+    &quot;etag&quot;: &quot;A String&quot;, # Fingerprint of the Recommendation. Provides optimistic locking when
+        # updating states.
+    &quot;stateInfo&quot;: { # Information for state. Contains state and metadata. # Information for state. Contains state and metadata.
+      &quot;stateMetadata&quot;: { # A map of metadata for the state, provided by user or automations systems.
+        &quot;a_key&quot;: &quot;A String&quot;,
+      },
+      &quot;state&quot;: &quot;A String&quot;, # The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
+    },
+    &quot;associatedInsights&quot;: [ # Insights that led to this recommendation.
+      { # Reference to an associated insight.
+        &quot;insight&quot;: &quot;A String&quot;, # Insight resource name, e.g.
+            # projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID]
+      },
+    ],
+  }</pre>
+</div>
+
+</body></html>
\ No newline at end of file