Alphaus Flow API

(ALPHA) Flow API. Base URL: https://api.alphaus.cloud/m/blue/flow

Operations 18

GET /v1/aws/xacct/cea Gets a CloudFormation launch URL for enabling read-only cross-account access to cost explorer information (API only). #
POST /v1/aws/xacct/cea Creates a default cross-account access role for cost explorer (API only). #
GET /v1/aws/xacct/spa Gets a CloudFormation launch URL for Savings Plan purchase capabilities #
POST /v1/aws/xacct/spa Creates a default cross-account access role for Savings Plan (API only). #
GET /v1/aws/xacct/{payerId}/access Returns the activated cross-account access roles of the target payerId. #
POST /v1/aws/{billingInternalId}/accounts Returns all the aws accounts and its payer of the msp id #
GET /v1/info For Testing Purposes Only. #
GET /v1/settings/history/{id} Gets the settings configuration history for a user. #
GET /v1/settings/recommendations/{id} Fetch user savings plan details #
GET /v1/settings/{id} Fetch previous settings for a user #
PUT /v1/settings/{id} Creates or Updates the settings configuration for recommendation. #
POST /v1/sp/purchaseDetails/notification Sends savings plan details to be purchased to a Slack channel or user email #
GET /v1/sp/purchaseDetails/notification/link/expiry Checks the expiry of the link in the SP to purchase details notification #
GET /v1/sp/purchaseDetails/{payerId}/{yearMonth} Get savings plan details to be purchased . #
POST /v1/sp/recommendation/notification Sends configuration and recommendation to a Slack channel #
POST /v1/usagecost Gets the daily cost and usage details. #
GET /v1/user/settings/{id} Gets the user account settings. #
PUT /v1/user/settings/{id} Create or Update the user account settings. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/alphaus-flow-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

alphaus-flow-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Blue API reference Admin Flow API
  description: 'Alphaus provides an API for interacting with its services. Blue API is a RESTful API that can be accessed by an HTTP client such as `curl`, or any HTTP library which is part of most modern programming languages. This API reference is autogenerated from [protocol buffers](https://developers.google.com/protocol-buffers) defined in this [repository](https://github.com/alphauslabs/blueapi), together with our supported [client libraries](https://alphauslabs.github.io/docs/blueapi/client-sdks/). See the official [documentation](https://alphauslabs.github.io/docs/blueapi/overview/) for more information.


    You may encounter the following feature maturity indicators:

    - **(WORK-IN-PROGRESS)** - Development is ongoing, don''t use yet;

    - **(BETA)** - New or experimental features, subject to changes; and

    - **(DEPRECATED)** - Outdated or replaced features.


    Some endpoints, especially those that return lists of resources, have streaming responses; newline-separated stream of “chunks”. Each chunk is an envelope that can contain either a response message or an error. Only the last chunk will include an error, if any.'
  version: v1
servers:
- url: https://api.alphaus.cloud/m/blue
  description: Base URL reconciled from apis.yml
tags:
- name: Flow
  description: '(ALPHA) Flow API. Base URL: https://api.alphaus.cloud/m/blue/flow'
  externalDocs:
    description: Service definition
    url: https://github.com/alphauslabs/blueapi/tree/main/flow/
paths:
  /v1/aws/xacct/cea:
    get:
      summary: Gets a CloudFormation launch URL for enabling read-only cross-account access to cost explorer information (API only).
      operationId: Flow_GetCostExplorerAccessTemplateUrl
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetCostExplorerAccessTemplateUrlResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Flow
    post:
      summary: Creates a default cross-account access role for cost explorer (API only).
      operationId: Flow_CreateCostExplorerAccess
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1CreateCostExplorerAccessResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Flow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1CreateCostExplorerAccessRequest'
        description: 'Request message for the Flow.CreateCostExplorerAccess rpc.

          This endpoint only supports the ''apionly'' template type.'
        required: true
  /v1/aws/xacct/spa:
    get:
      summary: Gets a CloudFormation launch URL for Savings Plan purchase capabilities
      operationId: Flow_GetSPPurchaseAccessTemplateUrl
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetSPPurchaseAccessTemplateUrlResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Flow
    post:
      summary: Creates a default cross-account access role for Savings Plan (API only).
      operationId: Flow_CreateSPPurchaseAccess
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1CreateSPPurchaseAccessResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Flow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1CreateSPPurchaseAccessRequest'
        description: Request message for the Flow.CreateSPPurchaseAccess rpc.
        required: true
  /v1/aws/xacct/{payerId}/access:
    get:
      summary: Returns the activated cross-account access roles of the target payerId.
      operationId: Flow_GetCrossAccountAccessDetails
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetCrossAccountAccessDetailsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: payerId
        description: Required. The target payerId of the AWS account to be checked.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Flow
  /v1/aws/{billingInternalId}/accounts:
    post:
      summary: Returns all the aws accounts and its payer of the msp id
      operationId: Flow_GetAwsAccounts
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetAwsAccountsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: billingInternalId
        in: path
        required: true
        schema:
          type: string
      tags:
      - Flow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FlowGetAwsAccountsBody'
        required: true
  /v1/info:
    get:
      summary: For Testing Purposes Only.
      operationId: Flow_GetInfo
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/blueapiFlowV1GetInfoResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Flow
  /v1/settings/history/{id}:
    get:
      summary: Gets the settings configuration history for a user.
      operationId: Flow_GetSettingsHistory
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetSettingsHistoryResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: Required. The id of the payer to fetch settings history for.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Flow
  /v1/settings/recommendations/{id}:
    get:
      summary: Fetch user savings plan details
      operationId: Flow_GetRecommendationDetails
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetRecommendationDetailsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: Required. The id of the payer to fetch recommendation details for.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Flow
  /v1/settings/{id}:
    get:
      summary: Fetch previous settings for a user
      operationId: Flow_GetSettings
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetSettingsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: Required. The id of the payer to fetch settings for.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Flow
    put:
      summary: Creates or Updates the settings configuration for recommendation.
      operationId: Flow_SetSettings
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1SetSettingsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: Required. The id of the payer.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Flow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FlowSetSettingsBody'
        required: true
  /v1/sp/purchaseDetails/notification:
    post:
      summary: Sends savings plan details to be purchased to a Slack channel or user email
      operationId: Flow_SendSPToPurchaseDetailsNotification
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1SendSPToPurchaseDetailsNotificationsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Flow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1SendSPToPurchaseDetailsNotificationsRequest'
        description: Request message for the Flow.SendSPToPurchaseDetailsNotifications rpc.
        required: true
  /v1/sp/purchaseDetails/notification/link/expiry:
    get:
      summary: Checks the expiry of the link in the SP to purchase details notification
      operationId: Flow_CheckSPToPurchaseDetailsLinkExpiry
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1CheckSPToPurchaseDetailsLinkExpiryResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: url
        description: 'Required. The URL containing the expiry information to check.


          The URL to check for expiration'
        in: query
        required: false
        schema:
          type: string
      tags:
      - Flow
  /v1/sp/purchaseDetails/{payerId}/{yearMonth}:
    get:
      summary: Get savings plan details to be purchased .
      operationId: Flow_GetSPToPurchaseDetails
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetSPToPurchaseDetailsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: payerId
        description: Required. The id of the payer account.
        in: path
        required: true
        schema:
          type: string
      - name: yearMonth
        description: Required. The year and month  for which the savings plan details are requested, formatted as "YYYYMM".
        in: path
        required: true
        schema:
          type: string
      tags:
      - Flow
  /v1/sp/recommendation/notification:
    post:
      summary: Sends configuration and recommendation to a Slack channel
      operationId: Flow_CreateSPRecommendationNotification
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1CreateSPRecommendationNotificationResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Flow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1CreateSPRecommendationNotificationRequest'
        required: true
  /v1/usagecost:
    post:
      summary: Gets the daily cost and usage details.
      operationId: Flow_GetDailyUsageCostDetails
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetDailyUsageCostDetailsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      tags:
      - Flow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1GetDailyUsageCostDetailsRequest'
        description: Request message for the Flow.GetDailyUsageCostDetailsRequest rpc.
        required: true
  /v1/user/settings/{id}:
    get:
      summary: Gets the user account settings.
      operationId: Flow_GetUserAccountSettings
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1GetUserAccountSettingsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: Required. The user ID of the user.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Flow
    put:
      summary: Create or Update the user account settings.
      operationId: Flow_SetUserAccountSettings
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1SetUserAccountSettingsResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
      parameters:
      - name: id
        description: Required. The user ID of the user.
        in: path
        required: true
        schema:
          type: string
      tags:
      - Flow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FlowSetUserAccountSettingsBody'
        required: true
components:
  schemas:
    flowV1SavingsPlanDetailsPurchase:
      type: object
      properties:
        payerId:
          type: string
        linkedAccounts:
          type: string
        accountScope:
          type: string
        savingsPlanType:
          type: string
        term:
          type: integer
          format: int32
        region:
          type: string
        instanceFamily:
          type: string
        recommendedHourlyCommitment:
          type: number
          format: double
        paymentOption:
          type: string
        upfrontCost:
          type: number
          format: double
        monthlyCost:
          type: number
          format: double
        totalCost:
          type: number
          format: double
        expiryDate:
          type: string
      title: Savings plan details to be purchased
    FlowSetSettingsBody:
      type: object
      properties:
        accountScope:
          type: string
          description: Required. Account scope determines if the account is payer or linked account. Valid values are `payer` or `linked`.
        customization:
          type: string
          description: Required. Customization setting for SP. Valid values are `COMPUTE_SP` or `EC2_INSTANCE_SP`.
        planTerm:
          type: string
          description: Required. Term of the SP. Valid values are `ONE_YEAR` or `THREE_YEARS`.
        paymentOption:
          type: string
          description: Required. Payment option for the SP. Valid values are `ALL_UPFRONT`, `PARTIAL_UPFRONT`, or `NO_UPFRONT`.
        lookBackPeriod:
          type: string
          description: Required. Lookback period for recommendation. Valid values are `SEVEN_DAYS`, `THIRTY_DAYS`, or `SIXTY_DAYS`.
        instanceFamily:
          type: string
          title: Optional. If EC2 Instance SP is selected in Customization, request will include list of instance family
        annualBudget:
          type: number
          format: double
          description: Optional. Annual budget input for SP.
        approval:
          type: boolean
          description: Optional. Purchase approval from the payer for the SP. Default value is `false`.
        payerId:
          type: string
          title: Required. Payer account ID
      description: Request message for the Flow.CreateSettings rpc.
    protobufAny:
      type: object
      properties:
        '@type':
          type: string
          description: "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n  value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n  URL, or have them precompiled into a binary to avoid any\n  lookup. Therefore, binary compatibility needs to be preserved\n  on changes to types. (Use versioned type names to manage\n  breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com. As of May 2023, there are no widely used type server\nimplementations and no plans to implement one.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."
      additionalProperties: {}
      description: "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n    Foo foo = ...;\n    Any any;\n    any.PackFrom(foo);\n    ...\n    if (any.UnpackTo(&foo)) {\n      ...\n    }\n\nExample 2: Pack and unpack a message in Java.\n\n    Foo foo = ...;\n    Any any = Any.pack(foo);\n    ...\n    if (any.is(Foo.class)) {\n      foo = any.unpack(Foo.class);\n    }\n    // or ...\n    if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n      foo = any.unpack(Foo.getDefaultInstance());\n    }\n\n Example 3: Pack and unpack a message in Python.\n\n    foo = Foo(...)\n    any = Any()\n    any.Pack(foo)\n    ...\n    if any.Is(Foo.DESCRIPTOR):\n      any.Unpack(foo)\n      ...\n\n Example 4: Pack and unpack a message in Go\n\n     foo := &pb.Foo{...}\n     any, err := anypb.New(foo)\n     if err != nil {\n       ...\n     }\n     ...\n     foo := &pb.Foo{}\n     if err := any.UnmarshalTo(foo); err != nil {\n       ...\n     }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n    package google.profile;\n    message Person {\n      string first_name = 1;\n      string last_name = 2;\n    }\n\n    {\n      \"@type\": \"type.googleapis.com/google.profile.Person\",\n      \"firstName\": <string>,\n      \"lastName\": <string>\n    }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n    {\n      \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n      \"value\": \"1.212s\"\n    }"
    v1CreateSPRecommendationNotificationRequest:
      type: object
      properties:
        configurations:
          $ref: '#/components/schemas/CreateSPRecommendationNotificationRequestConfigurations'
        recommendation:
          $ref: '#/components/schemas/CreateSPRecommendationNotificationRequestRecommendation'
      title: Configuration and recommendation details to send to Slack
    v1SettingsHistory:
      type: object
      properties:
        id:
          type: string
          description: Payer account ID.
        accountScope:
          type: string
          description: Account scope determines if the account is payer or linked account.
        customization:
          type: string
          description: Customization setting for SP.
        planTerm:
          type: string
          description: Term of the SP.
        paymentOption:
          type: string
          description: Payment option for the SP.
        lookBackPeriod:
          type: string
          description: Lookback period for recommendation.
        instanceFamily:
          type: string
          title: If EC2 Instance SP is selected in Customization, request will include list of instance family
        annualBudget:
          type: number
          format: double
          description: Annual budget input for SP.
        approval:
          type: boolean
          description: Purchase approval from the payer for the SP.
        lastUpdated:
          type: string
          description: Last updated timestamp of the settings configuration.
      description: Settings history message.
    v1CreateCostExplorerAccessRequest:
      type: object
      properties:
        target:
          type: string
          description: Required. The target AWS account to validate.
      description: 'Request message for the Flow.CreateCostExplorerAccess rpc.

        This endpoint only supports the ''apionly'' template type.'
    CreateSPRecommendationNotificationRequestRecommendation:
      type: object
      properties:
        id:
          type: string
        currentMonthlyOnDemandSpend:
          type: number
          format: double
        estimatedMonthlySpend:
          type: number
          format: double
        estimatedMonthlySavingsDerived:
          type: number
          format: double
        totalDailyCost:
          type: number
          format: double
        currentSPCommitment:
          type: number
          format: double
        estimatedOnDemandCost:
          type: number
          format: double
        hourlyCommitment:
          type: number
          format: double
        estimatedMonthlySavings:
          type: number
          format: double
        estimatedSavings:
          type: number
          format: double
        recommendationLevel:
          type: string
        planType:
          type: string
        planTerm:
          type: string
        paymentOption:
          type: string
        lookBackPeriod:
          type: string
        estimatedROI:
          type: number
          format: double
        estimatedSPCost:
          type: number
          format: double
        estimatedTotalCost:
          type: number
          format: double
        lastUpdated:
          type: string
      title: Recommendation details for the Savings Plan
    v1GetCrossAccountAccessDetailsResponse:
      type: object
      properties:
        target:
          type: string
          description: The queried target account.
        details:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1CrossAccountAccessDetail'
          description: List of cross-access details for the target account.
      description: Response message for the Flow.GetCrossAccountAccessDetails rpc.
    v1SetUserAccountSettingsResponse:
      type: object
      properties:
        response:
          type: string
      description: Response message for the Flow.SetUserAccountSettings rpc.
    v1SendSPToPurchaseDetailsNotificationsRequestSavingsPlanDetailsPurchase:
      type: object
      properties:
        payerId:
          type: string
        linkedAccounts:
          type: string
        accountScope:
          type: string
        savingsPlanType:
          type: string
        term:
          type: integer
          format: int32
        region:
          type: string
        instanceFamily:
          type: string
        recommendedHourlyCommitment:
          type: number
          format: double
        paymentOption:
          type: string
        upfrontCost:
          type: number
          format: double
        monthlyCost:
          type: number
          format: double
        totalCost:
          type: number
          format: double
        expiryDate:
          type: string
      title: Savings plan details to be purchased
    v1GetSettingsHistoryResponse:
      type: object
      properties:
        settingsHistory:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/v1SettingsHistory'
      description: Response message for the Flow.GetSettingsHistory rpc.
    v1GetSPToPurchaseDetailsResponse:
      type: object
      properties:
        recommendation:
          $ref: '#/components/schemas/flowV1SavingsPlanRecommendation'
          title: Recommendation details
        purchases:
          type: array
          items:
            type: object
            $ref: '#/components/schemas/flowV1SavingsPlanDetailsPurchase'
          title: List of purchase items
        ondemandCostBefore:
          type: string
          title: On-demand cost before savings plan
        ondemandCostAfter:
          type: string
          title: On-demand cost after savings plan
        reductionRate:
          type: string
          title: Cost reduction percentage
      description: Response message for the Flow.GetSPToPurchaseDetails rpc.
    v1MonthlyCosts:
      type: object
      properties:
        monthlyOnDemandCost:
          type: number
          format: double
          description: Actual monthly on-demand cost for the payer account.
        monthlyEffectiveCost:
          type: number
          format: double
          description: Actual monthly effective cost after applying Savings Plans.
        monthlyTotalSavings:
          type: number
          format: double
          description: Actual total monthly savings from Savings Plan usage.
      description: Summary of monthly cost values associated with a single Savings Plan.
    v1CheckSPToPurchaseDetailsLinkExpiryResponse:
      type: object
      properties:
        isExpired:
          type: boolean
          title: Whether the link has expired
        expiryDate:
          type: string
          title: The raw expiry date from the URL (ISO8601 format)
        formattedDate:
          type: string
          title: User-friendly formatted date
        message:
          type: string
          title: Human-readable status message
      title: Response message for the Flow.CheckSPToPurchaseDetailsLinkExpiryRequest RPC
    v1CreateCostExplorerAccessResponse:
      type: object
      properties:
        target:
          type: string
          description: The queried target account.
        roleArn:
          type: string
          description: The role ARN that provides the cross-account access permissions.
        externalId:
          type: string
          description: The external id for this role.
        stackId:
          type: string
          description: The id of the CloudFormation stack deployed in the target account.
        stackRegion:
          type: string
          description: The region where the stack is deployed.
        templateUrl:
          type: string
          description: The latest template used to deploy the stack.
        status:
          type: string
          description: This can be `latest`, `outdated`, or some error information.
        lastUpdated:
          type: string
          description: The last updated timestamp, RFC3339 UTC.
        access:
          type: string
          title: 'The access type- partial access to view simulation only: "cloud_explorer_access"'
      description: Response message for the Flow.CreateCostExplorerAccess rpc.
    v1GetUserAccountSettingsResponse:
      type: object
      properties:
        id:
          type: string
          description: The payer ID of the user.
        emails:
          type: array
          items:
            type: string
          description: List of email addresses to send notifications to.
        theme:
          type: string
          description: User interface preferences.
        language:
          type: string
          description: Preferred language for the user interface.
      description: Response message for the Flow.GetUserAccountSettings rpc.
    v1CreateSPRecommendationNotificationResponse:
      type: object
      properties:
        message:
          type: string
        success:
          type: boolean
      title: Response after sending to Slack
    FlowSetUserAccountSettingsBody:
      type: object
      properties:
        emails:
          type: array
          items:
            type: string
          description: Required. List of email addresses to send notifications to.
        theme:
          type: string
          description: Required. User interface preferences.
        language:
          type: string
          description: Required. Preferred language for the user interface.
      description: Request message for the Flow.SetUserAccountSettings rpc.
    v1GetAwsAccountsResponse:
      type: object
      properties:
        groupId:
          type: string
        groupName:
          type: string
        payerAccounts:
          type: array
          items:
            type: string
          title: all payers registered on billing group
        linkedAccountToPayerId:
          type: object
          additionalProperties:
            type: string
          title: map of aws accountid to its payer id
      

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/alphaus/refs/heads/main/openapi/alphaus-flow-api-openapi.yml