openapi: 3.0.0
servers:
  - url: https://recommender.googleapis.com/
info:
  contact:
    name: Google
    url: https://google.com
    x-twitter: youtube
  description: ""
  license:
    name: Creative Commons Attribution 3.0
    url: http://creativecommons.org/licenses/by/3.0/
  termsOfService: https://developers.google.com/terms/
  title: Recommender API
  version: v1
  x-apiClientRegistration:
    url: https://console.developers.google.com
  x-apisguru-categories:
    - analytics
    - media
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_www.google.com_images_branding_googlelogo_2x_googlelogo_color_272x92dp.png
  x-origin:
    - format: openapi
      url: https://recommender.googleapis.com/$discovery/rest?version=v1
      version: "3.0"
  x-preferred: false
  x-providerName: googleapis.com
  x-serviceName: recommender
externalDocs:
  url: https://cloud.google.com/recommender/docs/
tags:
  - name: billingAccounts
  - name: folders
  - name: organizations
  - name: projects
paths:
  "/v1/{name}":
    get:
      description: Gets the requested recommendation. Requires the recommender.*.get IAM permission for the specified recommender.
      operationId: recommender.projects.locations.recommenders.recommendations.get
      parameters:
        - description: Required. Name of the recommendation.
          in: path
          name: name
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GoogleCloudRecommenderV1Recommendation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    patch:
      description: Updates a Recommender Config. This will create a new revision of the config.
      operationId: recommender.projects.locations.recommenders.updateConfig
      parameters:
        - description: Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config
          in: path
          name: name
          required: true
          schema:
            type: string
        - description: The list of fields to be updated.
          in: query
          name: updateMask
          schema:
            type: string
        - description: If true, validate the request and preview the change, but do not actually update it.
          in: query
          name: validateOnly
          schema:
            type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GoogleCloudRecommenderV1RecommenderConfig"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GoogleCloudRecommenderV1RecommenderConfig"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v1/{name}:markAccepted":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Marks the Insight State as Accepted. Users can use this method to indicate to the Recommender API that they have applied some action based on the insight. This stops the insight content from being updated. MarkInsightAccepted can be applied to insights in ACTIVE state. Requires the recommender.*.update IAM permission for the specified insight.
      operationId: recommender.projects.locations.insightTypes.insights.markAccepted
      parameters:
        - description: Required. Name of the insight.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GoogleCloudRecommenderV1MarkInsightAcceptedRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GoogleCloudRecommenderV1Insight"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v1/{name}:markClaimed":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: 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.
      operationId: recommender.projects.locations.recommenders.recommendations.markClaimed
      parameters:
        - description: Required. Name of the recommendation.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GoogleCloudRecommenderV1MarkRecommendationClaimedRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GoogleCloudRecommenderV1Recommendation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v1/{name}:markDismissed":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: Mark the Recommendation State as Dismissed. Users can use this method to indicate to the Recommender API that an ACTIVE recommendation has to be marked back as DISMISSED. MarkRecommendationDismissed can be applied to recommendations in ACTIVE state. Requires the recommender.*.update IAM permission for the specified recommender.
      operationId: recommender.projects.locations.recommenders.recommendations.markDismissed
      parameters:
        - description: Name of the recommendation.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GoogleCloudRecommenderV1MarkRecommendationDismissedRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GoogleCloudRecommenderV1Recommendation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v1/{name}:markFailed":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: 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.
      operationId: recommender.projects.locations.recommenders.recommendations.markFailed
      parameters:
        - description: Required. Name of the recommendation.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GoogleCloudRecommenderV1MarkRecommendationFailedRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GoogleCloudRecommenderV1Recommendation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v1/{name}:markSucceeded":
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
    post:
      description: 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.
      operationId: recommender.projects.locations.recommenders.recommendations.markSucceeded
      parameters:
        - description: Required. Name of the recommendation.
          in: path
          name: name
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GoogleCloudRecommenderV1MarkRecommendationSucceededRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GoogleCloudRecommenderV1Recommendation"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
  "/v1/{parent}/insights":
    get:
      description: Lists insights for the specified Cloud Resource. Requires the recommender.*.list IAM permission for the specified insight type.
      operationId: recommender.projects.locations.insightTypes.insights.list
      parameters:
        - description: "Required. The container resource on which to execute the request. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `folders/[FOLDER_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]` LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ INSIGHT_TYPE_ID refers to supported insight types: https://cloud.google.com/recommender/docs/insights/insight-types."
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: "Optional. Filter expression to restrict the insights returned. Supported filter fields: * `stateInfo.state` * `insightSubtype` * `severity` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `insightSubtype = PERMISSIONS_USAGE` * `severity = CRITICAL OR severity = HIGH` * `stateInfo.state = ACTIVE AND (severity = CRITICAL OR severity = HIGH)` (These expressions are based on the filter language described at https://google.aip.dev/160)"
          in: query
          name: filter
          schema:
            type: string
        - description: 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.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: 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.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GoogleCloudRecommenderV1ListInsightsResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
  "/v1/{parent}/recommendations":
    get:
      description: Lists recommendations for the specified Cloud Resource. Requires the recommender.*.list IAM permission for the specified recommender.
      operationId: recommender.projects.locations.recommenders.recommendations.list
      parameters:
        - description: "Required. The container resource on which to execute the request. Acceptable formats: * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `folders/[FOLDER_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]` LOCATION here refers to GCP Locations: https://cloud.google.com/about/locations/ RECOMMENDER_ID refers to supported recommenders: https://cloud.google.com/recommender/docs/recommenders."
          in: path
          name: parent
          required: true
          schema:
            type: string
        - description: "Filter expression to restrict the recommendations returned. Supported filter fields: * `state_info.state` * `recommenderSubtype` * `priority` Examples: * `stateInfo.state = ACTIVE OR stateInfo.state = DISMISSED` * `recommenderSubtype = REMOVE_ROLE OR recommenderSubtype = REPLACE_ROLE` * `priority = P1 OR priority = P2` * `stateInfo.state = ACTIVE AND (priority = P1 OR priority = P2)` (These expressions are based on the filter language described at https://google.aip.dev/160)"
          in: query
          name: filter
          schema:
            type: string
        - description: 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.
          in: query
          name: pageSize
          schema:
            type: integer
        - description: 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.
          in: query
          name: pageToken
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GoogleCloudRecommenderV1ListRecommendationsResponse"
          description: Successful response
      security:
        - Oauth2:
            - https://www.googleapis.com/auth/cloud-platform
          Oauth2c:
            - https://www.googleapis.com/auth/cloud-platform
      tags:
        - projects
    parameters:
      - $ref: "#/components/parameters/_.xgafv"
      - $ref: "#/components/parameters/access_token"
      - $ref: "#/components/parameters/alt"
      - $ref: "#/components/parameters/callback"
      - $ref: "#/components/parameters/fields"
      - $ref: "#/components/parameters/key"
      - $ref: "#/components/parameters/oauth_token"
      - $ref: "#/components/parameters/prettyPrint"
      - $ref: "#/components/parameters/quotaUser"
      - $ref: "#/components/parameters/upload_protocol"
      - $ref: "#/components/parameters/uploadType"
components:
  parameters:
    _.xgafv:
      description: V1 error format.
      in: query
      name: $.xgafv
      schema:
        enum:
          - "1"
          - "2"
        type: string
    access_token:
      description: OAuth access token.
      in: query
      name: access_token
      schema:
        type: string
    alt:
      description: Data format for response.
      in: query
      name: alt
      schema:
        enum:
          - json
          - media
          - proto
        type: string
    callback:
      description: JSONP
      in: query
      name: callback
      schema:
        type: string
    fields:
      description: Selector specifying which fields to include in a partial response.
      in: query
      name: fields
      schema:
        type: string
    key:
      description: API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
      in: query
      name: key
      schema:
        type: string
    oauth_token:
      description: OAuth 2.0 token for the current user.
      in: query
      name: oauth_token
      schema:
        type: string
    prettyPrint:
      description: Returns response with indentations and line breaks.
      in: query
      name: prettyPrint
      schema:
        type: boolean
    quotaUser:
      description: Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
      in: query
      name: quotaUser
      schema:
        type: string
    uploadType:
      description: Legacy upload protocol for media (e.g. "media", "multipart").
      in: query
      name: uploadType
      schema:
        type: string
    upload_protocol:
      description: Upload protocol for media (e.g. "raw", "multipart").
      in: query
      name: upload_protocol
      schema:
        type: string
  schemas:
    GoogleCloudRecommenderV1CostProjection:
      description: Contains metadata about how much money a recommendation can save or incur.
      properties:
        cost:
          $ref: "#/components/schemas/GoogleTypeMoney"
          description: 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. A user's permissions may affect whether the cost is computed using list prices or custom contract prices.
        duration:
          description: Duration for which this cost applies.
          format: google-duration
          type: string
      type: object
    GoogleCloudRecommenderV1Impact:
      description: Contains the impact a recommendation can have for a given category.
      properties:
        category:
          description: Category that is being targeted.
          enum:
            - CATEGORY_UNSPECIFIED
            - COST
            - SECURITY
            - PERFORMANCE
            - MANAGEABILITY
            - SUSTAINABILITY
            - RELIABILITY
          type: string
        costProjection:
          $ref: "#/components/schemas/GoogleCloudRecommenderV1CostProjection"
          description: Use with CategoryType.COST
        reliabilityProjection:
          $ref: "#/components/schemas/GoogleCloudRecommenderV1ReliabilityProjection"
          description: Use with CategoryType.RELAIBILITY
        securityProjection:
          $ref: "#/components/schemas/GoogleCloudRecommenderV1SecurityProjection"
          description: Use with CategoryType.SECURITY
        sustainabilityProjection:
          $ref: "#/components/schemas/GoogleCloudRecommenderV1SustainabilityProjection"
          description: Use with CategoryType.SUSTAINABILITY
      type: object
    GoogleCloudRecommenderV1Insight:
      description: An insight along with the information used to derive the insight. The insight may have associated recommendations as well.
      properties:
        associatedRecommendations:
          description: Recommendations derived from this insight.
          items:
            $ref: "#/components/schemas/GoogleCloudRecommenderV1InsightRecommendationReference"
          type: array
        category:
          description: Category being targeted by the insight.
          enum:
            - CATEGORY_UNSPECIFIED
            - COST
            - SECURITY
            - PERFORMANCE
            - MANAGEABILITY
            - SUSTAINABILITY
            - RELIABILITY
          type: string
        content:
          additionalProperties:
            description: Properties of the object.
          description: 'A struct of custom fields to explain the insight. Example: "grantedPermissionsCount": "1000"'
          type: object
        description:
          description: Free-form human readable summary in English. The maximum length is 500 characters.
          type: string
        etag:
          description: Fingerprint of the Insight. Provides optimistic locking when updating states.
          type: string
        insightSubtype:
          description: Insight subtype. Insight content schema will be stable for a given subtype.
          type: string
        lastRefreshTime:
          description: Timestamp of the latest data used to generate the insight.
          format: google-datetime
          type: string
        name:
          description: Name of the insight.
          type: string
        observationPeriod:
          description: Observation period that led to the insight. The source data used to generate the insight ends at last_refresh_time and begins at (last_refresh_time - observation_period).
          format: google-duration
          type: string
        severity:
          description: Insight's severity.
          enum:
            - SEVERITY_UNSPECIFIED
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
          type: string
        stateInfo:
          $ref: "#/components/schemas/GoogleCloudRecommenderV1InsightStateInfo"
          description: Information state and metadata.
        targetResources:
          description: Fully qualified resource names that this insight is targeting.
          items:
            type: string
          type: array
      type: object
    GoogleCloudRecommenderV1InsightRecommendationReference:
      description: Reference to an associated recommendation.
      properties:
        recommendation:
          description: Recommendation resource name, e.g. projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID]
          type: string
      type: object
    GoogleCloudRecommenderV1InsightStateInfo:
      description: Information related to insight state.
      properties:
        state:
          description: Insight state.
          enum:
            - STATE_UNSPECIFIED
            - ACTIVE
            - ACCEPTED
            - DISMISSED
          type: string
        stateMetadata:
          additionalProperties:
            type: string
          description: A map of metadata for the state, provided by user or automations systems.
          type: object
      type: object
    GoogleCloudRecommenderV1InsightTypeConfig:
      description: Configuration for an InsightType.
      properties:
        annotations:
          additionalProperties:
            type: string
          description: "Allows clients to store small amounts of arbitrary data. Annotations must follow the Kubernetes syntax. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between."
          type: object
        displayName:
          description: A user-settable field to provide a human-readable name to be used in user interfaces.
          type: string
        etag:
          description: Fingerprint of the InsightTypeConfig. Provides optimistic locking when updating.
          type: string
        insightTypeGenerationConfig:
          $ref: "#/components/schemas/GoogleCloudRecommenderV1InsightTypeGenerationConfig"
          description: InsightTypeGenerationConfig which configures the generation of insights for this insight type.
        name:
          description: Name of insight type config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config
          type: string
        revisionId:
          description: Output only. Immutable. The revision ID of the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string.
          readOnly: true
          type: string
        updateTime:
          description: Last time when the config was updated.
          format: google-datetime
          type: string
      type: object
    GoogleCloudRecommenderV1InsightTypeGenerationConfig:
      description: A configuration to customize the generation of insights. Eg, customizing the lookback period considered when generating a insight.
      properties:
        params:
          additionalProperties:
            description: Properties of the object.
          description: Parameters for this InsightTypeGenerationConfig. These configs can be used by or are applied to all subtypes.
          type: object
      type: object
    GoogleCloudRecommenderV1ListInsightsResponse:
      description: Response to the `ListInsights` method.
      properties:
        insights:
          description: The set of insights for the `parent` resource.
          items:
            $ref: "#/components/schemas/GoogleCloudRecommenderV1Insight"
          type: array
        nextPageToken:
          description: A token that can be used to request the next page of results. This field is empty if there are no additional results.
          type: string
      type: object
    GoogleCloudRecommenderV1ListRecommendationsResponse:
      description: Response to the `ListRecommendations` method.
      properties:
        nextPageToken:
          description: A token that can be used to request the next page of results. This field is empty if there are no additional results.
          type: string
        recommendations:
          description: The set of recommendations for the `parent` resource.
          items:
            $ref: "#/components/schemas/GoogleCloudRecommenderV1Recommendation"
          type: array
      type: object
    GoogleCloudRecommenderV1MarkInsightAcceptedRequest:
      description: Request for the `MarkInsightAccepted` method.
      properties:
        etag:
          description: Required. Fingerprint of the Insight. Provides optimistic locking.
          type: string
        stateMetadata:
          additionalProperties:
            type: string
          description: Optional. State properties user wish to include with this state. Full replace of the current state_metadata.
          type: object
      type: object
    GoogleCloudRecommenderV1MarkRecommendationClaimedRequest:
      description: Request for the `MarkRecommendationClaimed` Method.
      properties:
        etag:
          description: Required. Fingerprint of the Recommendation. Provides optimistic locking.
          type: string
        stateMetadata:
          additionalProperties:
            type: string
          description: 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}$/`.
          type: object
      type: object
    GoogleCloudRecommenderV1MarkRecommendationDismissedRequest:
      description: Request for the `MarkRecommendationDismissed` Method.
      properties:
        etag:
          description: Fingerprint of the Recommendation. Provides optimistic locking.
          type: string
      type: object
    GoogleCloudRecommenderV1MarkRecommendationFailedRequest:
      description: Request for the `MarkRecommendationFailed` Method.
      properties:
        etag:
          description: Required. Fingerprint of the Recommendation. Provides optimistic locking.
          type: string
        stateMetadata:
          additionalProperties:
            type: string
          description: 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}$/`.
          type: object
      type: object
    GoogleCloudRecommenderV1MarkRecommendationSucceededRequest:
      description: Request for the `MarkRecommendationSucceeded` Method.
      properties:
        etag:
          description: Required. Fingerprint of the Recommendation. Provides optimistic locking.
          type: string
        stateMetadata:
          additionalProperties:
            type: string
          description: 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}$/`.
          type: object
      type: object
    GoogleCloudRecommenderV1Operation:
      description: "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."
      properties:
        action:
          description: Type of this operation. Contains one of 'add', 'remove', 'replace', 'move', 'copy', 'test' and custom operations. This field is case-insensitive and always populated.
          type: string
        path:
          description: 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.
          type: string
        pathFilters:
          additionalProperties: {}
          description: '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/owner" "/bindings/*/condition" : null } ``` * Example: ``` { "/bindings/*/role": "roles/owner" "/bindings/*/members/*" : ["x@example.com", "y@example.com"] } ``` When both path_filters and path_value_matchers are set, an implicit AND must be performed.'
          type: object
        pathValueMatchers:
          additionalProperties:
            $ref: "#/components/schemas/GoogleCloudRecommenderV1ValueMatcher"
          description: Similar to path_filters, this contains set of filters to apply if `path` field refers 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.
          type: object
        resource:
          description: "Contains the fully qualified resource name. This field is always populated. ex: //cloudresourcemanager.googleapis.com/projects/foo."
          type: string
        resourceType:
          description: "Type of GCP resource being modified/tested. This field is always populated. Example: cloudresourcemanager.googleapis.com/Project, compute.googleapis.com/Instance"
          type: string
        sourcePath:
          description: 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.
          type: string
        sourceResource:
          description: "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 = and resource_name = . This field is empty for all other values of `action`."
          type: string
        value:
          description: "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."
        valueMatcher:
          $ref: "#/components/schemas/GoogleCloudRecommenderV1ValueMatcher"
          description: 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.
      type: object
    GoogleCloudRecommenderV1OperationGroup:
      description: Group of operations that need to be performed atomically.
      properties:
        operations:
          description: 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.
          items:
            $ref: "#/components/schemas/GoogleCloudRecommenderV1Operation"
          type: array
      type: object
    GoogleCloudRecommenderV1Recommendation:
      description: A recommendation along with a suggested action. E.g., a rightsizing recommendation for an underutilized VM, IAM role recommendations, etc
      properties:
        additionalImpact:
          description: Optional set of additional impact that this recommendation may have when trying to optimize for the primary category. These may be positive or negative.
          items:
            $ref: "#/components/schemas/GoogleCloudRecommenderV1Impact"
          type: array
        associatedInsights:
          description: Insights that led to this recommendation.
          items:
            $ref: "#/components/schemas/GoogleCloudRecommenderV1RecommendationInsightReference"
          type: array
        content:
          $ref: "#/components/schemas/GoogleCloudRecommenderV1RecommendationContent"
          description: Content of the recommendation describing recommended changes to resources.
        description:
          description: Free-form human readable summary in English. The maximum length is 500 characters.
          type: string
        etag:
          description: Fingerprint of the Recommendation. Provides optimistic locking when updating states.
          type: string
        lastRefreshTime:
          description: Last time this recommendation was refreshed by the system that created it in the first place.
          format: google-datetime
          type: string
        name:
          description: Name of recommendation.
          type: string
        primaryImpact:
          $ref: "#/components/schemas/GoogleCloudRecommenderV1Impact"
          description: The primary impact that this recommendation can have while trying to optimize for one category.
        priority:
          description: Recommendation's priority.
          enum:
            - PRIORITY_UNSPECIFIED
            - P4
            - P3
            - P2
            - P1
          type: string
        recommenderSubtype:
          description: '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"'
          type: string
        stateInfo:
          $ref: "#/components/schemas/GoogleCloudRecommenderV1RecommendationStateInfo"
          description: Information for state. Contains state and metadata.
        xorGroupId:
          description: Corresponds to a mutually exclusive group ID within a recommender. A non-empty ID indicates that the recommendation belongs to a mutually exclusive group. This means that only one recommendation within the group is suggested to be applied.
          type: string
      type: object
    GoogleCloudRecommenderV1RecommendationContent:
      description: Contains what resources are changing and how they are changing.
      properties:
        operationGroups:
          description: 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.
          items:
            $ref: "#/components/schemas/GoogleCloudRecommenderV1OperationGroup"
          type: array
        overview:
          additionalProperties:
            description: Properties of the object.
          description: Condensed overview information about the recommendation.
          type: object
      type: object
    GoogleCloudRecommenderV1RecommendationInsightReference:
      description: Reference to an associated insight.
      properties:
        insight:
          description: Insight resource name, e.g. projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[INSIGHT_ID]
          type: string
      type: object
    GoogleCloudRecommenderV1RecommendationStateInfo:
      description: Information for state. Contains state and metadata.
      properties:
        state:
          description: The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
          enum:
            - STATE_UNSPECIFIED
            - ACTIVE
            - CLAIMED
            - SUCCEEDED
            - FAILED
            - DISMISSED
          type: string
        stateMetadata:
          additionalProperties:
            type: string
          description: A map of metadata for the state, provided by user or automations systems.
          type: object
      type: object
    GoogleCloudRecommenderV1RecommenderConfig:
      description: Configuration for a Recommender.
      properties:
        annotations:
          additionalProperties:
            type: string
          description: "Allows clients to store small amounts of arbitrary data. Annotations must follow the Kubernetes syntax. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between."
          type: object
        displayName:
          description: A user-settable field to provide a human-readable name to be used in user interfaces.
          type: string
        etag:
          description: Fingerprint of the RecommenderConfig. Provides optimistic locking when updating.
          type: string
        name:
          description: Name of recommender config. Eg, projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config
          type: string
        recommenderGenerationConfig:
          $ref: "#/components/schemas/GoogleCloudRecommenderV1RecommenderGenerationConfig"
          description: RecommenderGenerationConfig which configures the Generation of recommendations for this recommender.
        revisionId:
          description: Output only. Immutable. The revision ID of the config. A new revision is committed whenever the config is changed in any way. The format is an 8-character hexadecimal string.
          readOnly: true
          type: string
        updateTime:
          description: Last time when the config was updated.
          format: google-datetime
          type: string
      type: object
    GoogleCloudRecommenderV1RecommenderGenerationConfig:
      description: A Configuration to customize the generation of recommendations. Eg, customizing the lookback period considered when generating a recommendation.
      properties:
        params:
          additionalProperties:
            description: Properties of the object.
          description: Parameters for this RecommenderGenerationConfig. These configs can be used by or are applied to all subtypes.
          type: object
      type: object
    GoogleCloudRecommenderV1ReliabilityProjection:
      description: Contains information on the impact of a reliability recommendation.
      properties:
        details:
          additionalProperties:
            description: Properties of the object.
          description: Per-recommender projection.
          type: object
        risks:
          description: Reliability risks mitigated by this recommendation.
          items:
            enum:
              - RISK_TYPE_UNSPECIFIED
              - SERVICE_DISRUPTION
              - DATA_LOSS
              - ACCESS_DENY
            type: string
          type: array
      type: object
    GoogleCloudRecommenderV1SecurityProjection:
      description: Contains various ways of describing the impact on Security.
      properties:
        details:
          additionalProperties:
            description: Properties of the object.
          description: Additional security impact details that is provided by the recommender.
          type: object
      type: object
    GoogleCloudRecommenderV1SustainabilityProjection:
      description: Contains metadata about how much sustainability a recommendation can save or incur.
      properties:
        duration:
          description: Duration for which this sustainability applies.
          format: google-duration
          type: string
        kgCO2e:
          description: Carbon Footprint generated in kg of CO2 equivalent. Chose kg_c_o2e so that the name renders correctly in camelCase (kgCO2e).
          format: double
          type: number
      type: object
    GoogleCloudRecommenderV1ValueMatcher:
      description: Contains various matching options for values for a GCP resource field.
      properties:
        matchesPattern:
          description: 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
          type: string
      type: object
    GoogleTypeMoney:
      description: Represents an amount of money with its currency type.
      properties:
        currencyCode:
          description: The three-letter currency code defined in ISO 4217.
          type: string
        nanos:
          description: 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.
          format: int32
          type: integer
        units:
          description: The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
          format: int64
          type: string
      type: object
  securitySchemes:
    Oauth2:
      description: Oauth 2.0 implicit authentication
      flows:
        implicit:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          scopes:
            https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.
      type: oauth2
    Oauth2c:
      description: Oauth 2.0 authorizationCode authentication
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          scopes:
            https://www.googleapis.com/auth/cloud-platform: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.
          tokenUrl: https://accounts.google.com/o/oauth2/token
      type: oauth2
