| <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> |