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
+ "primaryImpact": { # 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.
+ "costProjection": { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+ "duration": "A String", # Duration for which this cost applies.
+ "cost": { # 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.
+ "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+ "nanos": 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.
+ "units": "A String", # The whole units of the amount.
+ # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+ },
+ },
+ "category": "A String", # Category that is being targeted.
+ },
+ "lastRefreshTime": "A String", # Last time this recommendation was refreshed by the system that created it
+ # in the first place.
+ "recommenderSubtype": "A String", # 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 = "google.iam.policy.Recommender",
+ # recommender_subtype can be one of "REMOVE_ROLE"/"REPLACE_ROLE"
+ "description": "A String", # Free-form human readable summary in English. The maximum length is 500
+ # characters.
+ "content": { # Contains what resources are changing and how they are changing. # Content of the recommendation describing recommended changes to resources.
+ "operationGroups": [ # 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.
+ "operations": [ # 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.
+ "pathValueMatchers": { # 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.
+ "a_key": { # Contains various matching options for values for a GCP resource field.
+ "matchesPattern": "A String", # 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
+ },
+ },
+ "pathFilters": { # 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: {
+ # "/versions/*/name" : "it-123"
+ # "/versions/*/targetSize/percent": 20
+ # }
+ # * Example: {
+ # "/bindings/*/role": "roles/admin"
+ # "/bindings/*/condition" : null
+ # }
+ # * Example: {
+ # "/bindings/*/role": "roles/admin"
+ # "/bindings/*/members/*" : ["x@google.com", "y@google.com"]
+ # }
+ # When both path_filters and path_value_matchers are set, an implicit AND
+ # must be performed.
+ "a_key": "",
+ },
+ "action": "A String", # Type of this operation. Contains one of 'and', 'remove', 'replace', 'move',
+ # 'copy', 'test' and custom operations. This field is case-insensitive and
+ # always populated.
+ "resourceType": "A String", # Type of GCP resource being modified/tested. This field is always populated.
+ # Example: cloudresourcemanager.googleapis.com/Project,
+ # compute.googleapis.com/Instance
+ "sourcePath": "A String", # Can be set with action 'copy' or 'move' to indicate the source field within
+ # resource or source_resource, ignored if provided for other operation types.
+ "valueMatcher": { # Contains various matching options for values for a GCP resource field. # Can be set for action 'test' for advanced matching for the value of
+ # 'path' field. Either this or `value` will be set for 'test' operation.
+ "matchesPattern": "A String", # 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
+ },
+ "value": "", # Value for the `path` field. Will be set for actions:'add'/'replace'.
+ # Maybe set for action: 'test'. Either this or `value_matcher` will be set
+ # for 'test' operation. An exact match must be performed.
+ "sourceResource": "A String", # Can be set with action 'copy' to copy resource configuration across
+ # different resources of the same type. Example: A resource clone can be
+ # done via action = 'copy', path = "/", from = "/",
+ # source_resource = <source> and resource_name = <target>.
+ # This field is empty for all other values of `action`.
+ "resource": "A String", # Contains the fully qualified resource name. This field is always populated.
+ # ex: //cloudresourcemanager.googleapis.com/projects/foo.
+ "path": "A String", # Path to the target field being operated on. If the operation is at the
+ # resource level, then path should be "/". This field is always populated.
+ },
+ ],
+ },
+ ],
+ },
+ "additionalImpact": [ # 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.
+ "costProjection": { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+ "duration": "A String", # Duration for which this cost applies.
+ "cost": { # 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.
+ "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+ "nanos": 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.
+ "units": "A String", # The whole units of the amount.
+ # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+ },
+ },
+ "category": "A String", # Category that is being targeted.
+ },
+ ],
+ "name": "A String", # Name of recommendation.
+ "etag": "A String", # Fingerprint of the Recommendation. Provides optimistic locking when
+ # updating states.
+ "stateInfo": { # Information for state. Contains state and metadata. # Information for state. Contains state and metadata.
+ "stateMetadata": { # A map of metadata for the state, provided by user or automations systems.
+ "a_key": "A String",
+ },
+ "state": "A String", # The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
+ },
+ "associatedInsights": [ # Insights that led to this recommendation.
+ { # Reference to an associated insight.
+ "insight": "A String", # 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.
+"projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]",
+
+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:"DISMISSED" or state_info.state:"FAILED"
+ 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.
+ "recommendations": [ # 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
+ "primaryImpact": { # 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.
+ "costProjection": { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+ "duration": "A String", # Duration for which this cost applies.
+ "cost": { # 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.
+ "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+ "nanos": 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.
+ "units": "A String", # The whole units of the amount.
+ # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+ },
+ },
+ "category": "A String", # Category that is being targeted.
+ },
+ "lastRefreshTime": "A String", # Last time this recommendation was refreshed by the system that created it
+ # in the first place.
+ "recommenderSubtype": "A String", # 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 = "google.iam.policy.Recommender",
+ # recommender_subtype can be one of "REMOVE_ROLE"/"REPLACE_ROLE"
+ "description": "A String", # Free-form human readable summary in English. The maximum length is 500
+ # characters.
+ "content": { # Contains what resources are changing and how they are changing. # Content of the recommendation describing recommended changes to resources.
+ "operationGroups": [ # 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.
+ "operations": [ # 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.
+ "pathValueMatchers": { # 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.
+ "a_key": { # Contains various matching options for values for a GCP resource field.
+ "matchesPattern": "A String", # 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
+ },
+ },
+ "pathFilters": { # 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: {
+ # "/versions/*/name" : "it-123"
+ # "/versions/*/targetSize/percent": 20
+ # }
+ # * Example: {
+ # "/bindings/*/role": "roles/admin"
+ # "/bindings/*/condition" : null
+ # }
+ # * Example: {
+ # "/bindings/*/role": "roles/admin"
+ # "/bindings/*/members/*" : ["x@google.com", "y@google.com"]
+ # }
+ # When both path_filters and path_value_matchers are set, an implicit AND
+ # must be performed.
+ "a_key": "",
+ },
+ "action": "A String", # Type of this operation. Contains one of 'and', 'remove', 'replace', 'move',
+ # 'copy', 'test' and custom operations. This field is case-insensitive and
+ # always populated.
+ "resourceType": "A String", # Type of GCP resource being modified/tested. This field is always populated.
+ # Example: cloudresourcemanager.googleapis.com/Project,
+ # compute.googleapis.com/Instance
+ "sourcePath": "A String", # Can be set with action 'copy' or 'move' to indicate the source field within
+ # resource or source_resource, ignored if provided for other operation types.
+ "valueMatcher": { # Contains various matching options for values for a GCP resource field. # Can be set for action 'test' for advanced matching for the value of
+ # 'path' field. Either this or `value` will be set for 'test' operation.
+ "matchesPattern": "A String", # 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
+ },
+ "value": "", # Value for the `path` field. Will be set for actions:'add'/'replace'.
+ # Maybe set for action: 'test'. Either this or `value_matcher` will be set
+ # for 'test' operation. An exact match must be performed.
+ "sourceResource": "A String", # Can be set with action 'copy' to copy resource configuration across
+ # different resources of the same type. Example: A resource clone can be
+ # done via action = 'copy', path = "/", from = "/",
+ # source_resource = <source> and resource_name = <target>.
+ # This field is empty for all other values of `action`.
+ "resource": "A String", # Contains the fully qualified resource name. This field is always populated.
+ # ex: //cloudresourcemanager.googleapis.com/projects/foo.
+ "path": "A String", # Path to the target field being operated on. If the operation is at the
+ # resource level, then path should be "/". This field is always populated.
+ },
+ ],
+ },
+ ],
+ },
+ "additionalImpact": [ # 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.
+ "costProjection": { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+ "duration": "A String", # Duration for which this cost applies.
+ "cost": { # 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.
+ "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+ "nanos": 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.
+ "units": "A String", # The whole units of the amount.
+ # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+ },
+ },
+ "category": "A String", # Category that is being targeted.
+ },
+ ],
+ "name": "A String", # Name of recommendation.
+ "etag": "A String", # Fingerprint of the Recommendation. Provides optimistic locking when
+ # updating states.
+ "stateInfo": { # Information for state. Contains state and metadata. # Information for state. Contains state and metadata.
+ "stateMetadata": { # A map of metadata for the state, provided by user or automations systems.
+ "a_key": "A String",
+ },
+ "state": "A String", # The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
+ },
+ "associatedInsights": [ # Insights that led to this recommendation.
+ { # Reference to an associated insight.
+ "insight": "A String", # Insight resource name, e.g.
+ # projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID]
+ },
+ ],
+ },
+ ],
+ "nextPageToken": "A String", # 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 'execute()' 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.
+ "etag": "A String", # Required. Fingerprint of the Recommendation. Provides optimistic locking.
+ "stateMetadata": { # 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}$/.
+ "a_key": "A String",
+ },
+ }
+
+ 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
+ "primaryImpact": { # 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.
+ "costProjection": { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+ "duration": "A String", # Duration for which this cost applies.
+ "cost": { # 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.
+ "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+ "nanos": 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.
+ "units": "A String", # The whole units of the amount.
+ # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+ },
+ },
+ "category": "A String", # Category that is being targeted.
+ },
+ "lastRefreshTime": "A String", # Last time this recommendation was refreshed by the system that created it
+ # in the first place.
+ "recommenderSubtype": "A String", # 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 = "google.iam.policy.Recommender",
+ # recommender_subtype can be one of "REMOVE_ROLE"/"REPLACE_ROLE"
+ "description": "A String", # Free-form human readable summary in English. The maximum length is 500
+ # characters.
+ "content": { # Contains what resources are changing and how they are changing. # Content of the recommendation describing recommended changes to resources.
+ "operationGroups": [ # 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.
+ "operations": [ # 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.
+ "pathValueMatchers": { # 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.
+ "a_key": { # Contains various matching options for values for a GCP resource field.
+ "matchesPattern": "A String", # 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
+ },
+ },
+ "pathFilters": { # 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: {
+ # "/versions/*/name" : "it-123"
+ # "/versions/*/targetSize/percent": 20
+ # }
+ # * Example: {
+ # "/bindings/*/role": "roles/admin"
+ # "/bindings/*/condition" : null
+ # }
+ # * Example: {
+ # "/bindings/*/role": "roles/admin"
+ # "/bindings/*/members/*" : ["x@google.com", "y@google.com"]
+ # }
+ # When both path_filters and path_value_matchers are set, an implicit AND
+ # must be performed.
+ "a_key": "",
+ },
+ "action": "A String", # Type of this operation. Contains one of 'and', 'remove', 'replace', 'move',
+ # 'copy', 'test' and custom operations. This field is case-insensitive and
+ # always populated.
+ "resourceType": "A String", # Type of GCP resource being modified/tested. This field is always populated.
+ # Example: cloudresourcemanager.googleapis.com/Project,
+ # compute.googleapis.com/Instance
+ "sourcePath": "A String", # Can be set with action 'copy' or 'move' to indicate the source field within
+ # resource or source_resource, ignored if provided for other operation types.
+ "valueMatcher": { # Contains various matching options for values for a GCP resource field. # Can be set for action 'test' for advanced matching for the value of
+ # 'path' field. Either this or `value` will be set for 'test' operation.
+ "matchesPattern": "A String", # 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
+ },
+ "value": "", # Value for the `path` field. Will be set for actions:'add'/'replace'.
+ # Maybe set for action: 'test'. Either this or `value_matcher` will be set
+ # for 'test' operation. An exact match must be performed.
+ "sourceResource": "A String", # Can be set with action 'copy' to copy resource configuration across
+ # different resources of the same type. Example: A resource clone can be
+ # done via action = 'copy', path = "/", from = "/",
+ # source_resource = <source> and resource_name = <target>.
+ # This field is empty for all other values of `action`.
+ "resource": "A String", # Contains the fully qualified resource name. This field is always populated.
+ # ex: //cloudresourcemanager.googleapis.com/projects/foo.
+ "path": "A String", # Path to the target field being operated on. If the operation is at the
+ # resource level, then path should be "/". This field is always populated.
+ },
+ ],
+ },
+ ],
+ },
+ "additionalImpact": [ # 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.
+ "costProjection": { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+ "duration": "A String", # Duration for which this cost applies.
+ "cost": { # 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.
+ "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+ "nanos": 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.
+ "units": "A String", # The whole units of the amount.
+ # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+ },
+ },
+ "category": "A String", # Category that is being targeted.
+ },
+ ],
+ "name": "A String", # Name of recommendation.
+ "etag": "A String", # Fingerprint of the Recommendation. Provides optimistic locking when
+ # updating states.
+ "stateInfo": { # Information for state. Contains state and metadata. # Information for state. Contains state and metadata.
+ "stateMetadata": { # A map of metadata for the state, provided by user or automations systems.
+ "a_key": "A String",
+ },
+ "state": "A String", # The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
+ },
+ "associatedInsights": [ # Insights that led to this recommendation.
+ { # Reference to an associated insight.
+ "insight": "A String", # 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.
+ "stateMetadata": { # 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}$/.
+ "a_key": "A String",
+ },
+ "etag": "A String", # 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
+ "primaryImpact": { # 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.
+ "costProjection": { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+ "duration": "A String", # Duration for which this cost applies.
+ "cost": { # 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.
+ "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+ "nanos": 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.
+ "units": "A String", # The whole units of the amount.
+ # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+ },
+ },
+ "category": "A String", # Category that is being targeted.
+ },
+ "lastRefreshTime": "A String", # Last time this recommendation was refreshed by the system that created it
+ # in the first place.
+ "recommenderSubtype": "A String", # 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 = "google.iam.policy.Recommender",
+ # recommender_subtype can be one of "REMOVE_ROLE"/"REPLACE_ROLE"
+ "description": "A String", # Free-form human readable summary in English. The maximum length is 500
+ # characters.
+ "content": { # Contains what resources are changing and how they are changing. # Content of the recommendation describing recommended changes to resources.
+ "operationGroups": [ # 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.
+ "operations": [ # 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.
+ "pathValueMatchers": { # 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.
+ "a_key": { # Contains various matching options for values for a GCP resource field.
+ "matchesPattern": "A String", # 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
+ },
+ },
+ "pathFilters": { # 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: {
+ # "/versions/*/name" : "it-123"
+ # "/versions/*/targetSize/percent": 20
+ # }
+ # * Example: {
+ # "/bindings/*/role": "roles/admin"
+ # "/bindings/*/condition" : null
+ # }
+ # * Example: {
+ # "/bindings/*/role": "roles/admin"
+ # "/bindings/*/members/*" : ["x@google.com", "y@google.com"]
+ # }
+ # When both path_filters and path_value_matchers are set, an implicit AND
+ # must be performed.
+ "a_key": "",
+ },
+ "action": "A String", # Type of this operation. Contains one of 'and', 'remove', 'replace', 'move',
+ # 'copy', 'test' and custom operations. This field is case-insensitive and
+ # always populated.
+ "resourceType": "A String", # Type of GCP resource being modified/tested. This field is always populated.
+ # Example: cloudresourcemanager.googleapis.com/Project,
+ # compute.googleapis.com/Instance
+ "sourcePath": "A String", # Can be set with action 'copy' or 'move' to indicate the source field within
+ # resource or source_resource, ignored if provided for other operation types.
+ "valueMatcher": { # Contains various matching options for values for a GCP resource field. # Can be set for action 'test' for advanced matching for the value of
+ # 'path' field. Either this or `value` will be set for 'test' operation.
+ "matchesPattern": "A String", # 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
+ },
+ "value": "", # Value for the `path` field. Will be set for actions:'add'/'replace'.
+ # Maybe set for action: 'test'. Either this or `value_matcher` will be set
+ # for 'test' operation. An exact match must be performed.
+ "sourceResource": "A String", # Can be set with action 'copy' to copy resource configuration across
+ # different resources of the same type. Example: A resource clone can be
+ # done via action = 'copy', path = "/", from = "/",
+ # source_resource = <source> and resource_name = <target>.
+ # This field is empty for all other values of `action`.
+ "resource": "A String", # Contains the fully qualified resource name. This field is always populated.
+ # ex: //cloudresourcemanager.googleapis.com/projects/foo.
+ "path": "A String", # Path to the target field being operated on. If the operation is at the
+ # resource level, then path should be "/". This field is always populated.
+ },
+ ],
+ },
+ ],
+ },
+ "additionalImpact": [ # 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.
+ "costProjection": { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+ "duration": "A String", # Duration for which this cost applies.
+ "cost": { # 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.
+ "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+ "nanos": 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.
+ "units": "A String", # The whole units of the amount.
+ # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+ },
+ },
+ "category": "A String", # Category that is being targeted.
+ },
+ ],
+ "name": "A String", # Name of recommendation.
+ "etag": "A String", # Fingerprint of the Recommendation. Provides optimistic locking when
+ # updating states.
+ "stateInfo": { # Information for state. Contains state and metadata. # Information for state. Contains state and metadata.
+ "stateMetadata": { # A map of metadata for the state, provided by user or automations systems.
+ "a_key": "A String",
+ },
+ "state": "A String", # The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
+ },
+ "associatedInsights": [ # Insights that led to this recommendation.
+ { # Reference to an associated insight.
+ "insight": "A String", # 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.
+ "etag": "A String", # Required. Fingerprint of the Recommendation. Provides optimistic locking.
+ "stateMetadata": { # 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}$/.
+ "a_key": "A String",
+ },
+ }
+
+ 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
+ "primaryImpact": { # 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.
+ "costProjection": { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+ "duration": "A String", # Duration for which this cost applies.
+ "cost": { # 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.
+ "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+ "nanos": 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.
+ "units": "A String", # The whole units of the amount.
+ # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+ },
+ },
+ "category": "A String", # Category that is being targeted.
+ },
+ "lastRefreshTime": "A String", # Last time this recommendation was refreshed by the system that created it
+ # in the first place.
+ "recommenderSubtype": "A String", # 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 = "google.iam.policy.Recommender",
+ # recommender_subtype can be one of "REMOVE_ROLE"/"REPLACE_ROLE"
+ "description": "A String", # Free-form human readable summary in English. The maximum length is 500
+ # characters.
+ "content": { # Contains what resources are changing and how they are changing. # Content of the recommendation describing recommended changes to resources.
+ "operationGroups": [ # 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.
+ "operations": [ # 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.
+ "pathValueMatchers": { # 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.
+ "a_key": { # Contains various matching options for values for a GCP resource field.
+ "matchesPattern": "A String", # 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
+ },
+ },
+ "pathFilters": { # 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: {
+ # "/versions/*/name" : "it-123"
+ # "/versions/*/targetSize/percent": 20
+ # }
+ # * Example: {
+ # "/bindings/*/role": "roles/admin"
+ # "/bindings/*/condition" : null
+ # }
+ # * Example: {
+ # "/bindings/*/role": "roles/admin"
+ # "/bindings/*/members/*" : ["x@google.com", "y@google.com"]
+ # }
+ # When both path_filters and path_value_matchers are set, an implicit AND
+ # must be performed.
+ "a_key": "",
+ },
+ "action": "A String", # Type of this operation. Contains one of 'and', 'remove', 'replace', 'move',
+ # 'copy', 'test' and custom operations. This field is case-insensitive and
+ # always populated.
+ "resourceType": "A String", # Type of GCP resource being modified/tested. This field is always populated.
+ # Example: cloudresourcemanager.googleapis.com/Project,
+ # compute.googleapis.com/Instance
+ "sourcePath": "A String", # Can be set with action 'copy' or 'move' to indicate the source field within
+ # resource or source_resource, ignored if provided for other operation types.
+ "valueMatcher": { # Contains various matching options for values for a GCP resource field. # Can be set for action 'test' for advanced matching for the value of
+ # 'path' field. Either this or `value` will be set for 'test' operation.
+ "matchesPattern": "A String", # 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
+ },
+ "value": "", # Value for the `path` field. Will be set for actions:'add'/'replace'.
+ # Maybe set for action: 'test'. Either this or `value_matcher` will be set
+ # for 'test' operation. An exact match must be performed.
+ "sourceResource": "A String", # Can be set with action 'copy' to copy resource configuration across
+ # different resources of the same type. Example: A resource clone can be
+ # done via action = 'copy', path = "/", from = "/",
+ # source_resource = <source> and resource_name = <target>.
+ # This field is empty for all other values of `action`.
+ "resource": "A String", # Contains the fully qualified resource name. This field is always populated.
+ # ex: //cloudresourcemanager.googleapis.com/projects/foo.
+ "path": "A String", # Path to the target field being operated on. If the operation is at the
+ # resource level, then path should be "/". This field is always populated.
+ },
+ ],
+ },
+ ],
+ },
+ "additionalImpact": [ # 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.
+ "costProjection": { # Contains metadata about how much money a recommendation can save or incur. # Use with CategoryType.COST
+ "duration": "A String", # Duration for which this cost applies.
+ "cost": { # 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.
+ "currencyCode": "A String", # The 3-letter currency code defined in ISO 4217.
+ "nanos": 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.
+ "units": "A String", # The whole units of the amount.
+ # For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
+ },
+ },
+ "category": "A String", # Category that is being targeted.
+ },
+ ],
+ "name": "A String", # Name of recommendation.
+ "etag": "A String", # Fingerprint of the Recommendation. Provides optimistic locking when
+ # updating states.
+ "stateInfo": { # Information for state. Contains state and metadata. # Information for state. Contains state and metadata.
+ "stateMetadata": { # A map of metadata for the state, provided by user or automations systems.
+ "a_key": "A String",
+ },
+ "state": "A String", # The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
+ },
+ "associatedInsights": [ # Insights that led to this recommendation.
+ { # Reference to an associated insight.
+ "insight": "A String", # 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