swagger: '2.0' info: title: Blue API reference Admin Cost 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 host: api.alphaus.cloud basePath: /m/blue schemes: - https consumes: - application/json produces: - application/json tags: - name: Cost description: 'Cost API. Base URL: https://api.alphaus.cloud/m/blue/cost' externalDocs: description: Service definition url: https://github.com/alphauslabs/blueapi/tree/main/cost/ paths: /v1/alerts: post: summary: CreateBudgetAlerts description: 'Create the budget alerts. Only available in Wave(Pro).' operationId: Cost_CreateBudgetAlerts responses: '200': description: A successful response. schema: $ref: '#/definitions/v1BudgetAlerts' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body description: Request message for the CreateBudgetAlerts rpc. in: body required: true schema: $ref: '#/definitions/v1CreateBudgetAlertsRequest' tags: - Cost /v1/alerts/{id}: get: summary: GetBudgetAlerts description: 'Gets the budget alerts. Only available in Wave(Pro).' operationId: Cost_GetBudgetAlerts responses: '200': description: A successful response. schema: $ref: '#/definitions/v1BudgetAlerts' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. budget alert id in: path required: true type: string tags: - Cost delete: summary: DeleteBudgetAlerts description: 'Deletes the budget alerts. Only available in Wave(Pro).' operationId: Cost_DeleteBudgetAlerts responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. budget alert id in: path required: true type: string tags: - Cost put: summary: UpdateBudgetAlerts description: 'Updates the budget alerts. Only available in Wave(Pro).' operationId: Cost_UpdateBudgetAlerts responses: '200': description: A successful response. schema: $ref: '#/definitions/v1BudgetAlerts' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. budget alert id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostUpdateBudgetAlertsBody' tags: - Cost /v1/alerts:read: post: summary: ReadBudgetAlerts description: "Reads the budget alerts.\nOnly available in Wave(Pro).\n[ERRORS] \n- Unimplemented:\n - not implemented\n- InvalidArgument:\n - parse error" operationId: Cost_ReadBudgetAlerts responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1BudgetAlerts' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1BudgetAlerts default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body description: Request message for the ReadBudgetAlerts rpc. in: body required: true schema: $ref: '#/definitions/v1ReadBudgetAlertsRequest' tags: - Cost /v1/aws/cur:import: post: summary: Initiates an ondemand import of all registered CUR files. description: See https://help.alphaus.cloud/en/articles/3612555-ripple-aws-things-you-need-to-prepare-before-starting for more information. operationId: Cost_ImportCurFiles responses: '200': description: A successful response. schema: $ref: '#/definitions/protosOperation' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body description: Request message for the Cost.ImportCurFiles rpc. in: body required: true schema: $ref: '#/definitions/v1ImportCurFilesRequest' tags: - Cost /v1/exportcsv/payers:export: post: summary: Exports RI and SP for all payers. operationId: Cost_GetExportRISP responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetExportRISPResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1GetExportRISPRequest' tags: - Cost /v1/invoicecosts:read: post: summary: 'WORK-IN-PROGRESS: Read the invoice costs. Only available in Ripple.' operationId: Cost_ReadInvoiceCosts responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1TotalSection' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1TotalSection default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body description: Request message for the ReadInvoiceCosts rpc. in: body required: true schema: $ref: '#/definitions/v1ReadInvoiceCostsRequest' tags: - Cost /v1/invoicegroupcosts:read: post: summary: 'WORK-IN-PROGRESS: Read the invoice group costs. Only available in Ripple.' operationId: Cost_ReadInvoiceGroupCosts responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1BillingGroupSection' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1BillingGroupSection default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body description: Request message for the ReadInvoiceGroupCosts rpc. in: body required: true schema: $ref: '#/definitions/v1ReadInvoiceGroupCostsRequest' tags: - Cost /v1/invoiceoverviews:read: post: summary: 'WORK-IN-PROGRESS: Read the invoice overviews. Only available in Ripple.' operationId: Cost_ReadInvoiceOverViews responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1OverViewSection' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1OverViewSection default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body description: Request message for the ReadInvoiceOverviews rpc. in: body required: true schema: $ref: '#/definitions/v1ReadInvoiceOverviewsRequest' tags: - Cost /v1/reports:export: post: summary: 'Exports a vendor report and delivers results via email notification channel. Supports multiple report types per vendor. For AWS, this covers RI/SP utilization reports. Returns a long-running operation; use GetOperation to poll for completion.' operationId: Cost_ExportReport responses: '200': description: A successful response. schema: $ref: '#/definitions/protosOperation' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body description: Request message for ExportReport. in: body required: true schema: $ref: '#/definitions/v1ExportReportRequest' tags: - Cost /v1/{vendor}/accounts: get: summary: Lists all vendor accounts. operationId: Cost_ListAccounts responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/blueapiApiAccount' error: $ref: '#/definitions/rpcStatus' title: Stream result of blueapiApiAccount default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, `aws` and `gcp` is supported. in: path required: true type: string - name: groupId description: Optional. The billing group internal id. Only valid for Ripple users. in: query required: false type: string - name: fieldMask description: Optional. in: query required: false type: string tags: - Cost post: summary: Registers a vendor account. operationId: Cost_CreateAccount responses: '200': description: A successful response. schema: $ref: '#/definitions/blueapiApiAccount' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostCreateAccountBody' tags: - Cost /v1/{vendor}/accounts/customers/accounts:check: post: summary: 'WORK-IN-PROGRESS: Check inputed accountIds belong to current MSP or not' operationId: Cost_CheckAccountsBelongToMsp responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CheckAccountsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostCheckAccountsBelongToMspBody' tags: - Cost /v1/{vendor}/accounts/groups/{groupId}: get: summary: Lists all vendor accounts. operationId: Cost_ListAccounts2 responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/blueapiApiAccount' error: $ref: '#/definitions/rpcStatus' title: Stream result of blueapiApiAccount default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, `aws` and `gcp` is supported. in: path required: true type: string - name: groupId description: Optional. The billing group internal id. Only valid for Ripple users. in: path required: true type: string - name: fieldMask description: Optional. in: query required: false type: string tags: - Cost /v1/{vendor}/accounts/{id}: get: summary: Gets a vendor account. This API includes all of the account's metadata. See https://alphauslabs.github.io/blueapi/ for the list of supported attributes. operationId: Cost_GetAccount responses: '200': description: A successful response. schema: $ref: '#/definitions/blueapiApiAccount' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, `aws` and `gcp` is supported. in: path required: true type: string - name: id description: Required. The account id to retrieve. in: path required: true type: string - name: fieldMask description: Optional. in: query required: false type: string tags: - Cost delete: summary: 'WORK-IN-PROGRESS: Deletes a vendor account.' operationId: Cost_DeleteAccount responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. The account id to delete. in: path required: true type: string tags: - Cost put: summary: 'WORK-IN-PROGRESS: Updates a vendor account. Only available in Ripple.' operationId: Cost_UpdateAccount responses: '200': description: A successful response. schema: $ref: '#/definitions/blueapiApiAccount' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. in: path required: true type: string - name: id description: Required. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostUpdateAccountBody' tags: - Cost /v1/{vendor}/adjustments:read: post: summary: Reads the non-usage-based details of an organization (Ripple) or billing group (Wave[Pro]). description: This API covers non-usage-based adjustments, such as Fees, Credits, Discounts, Tax, Upfront Fees, etc. At the moment, the supported `{vendor}` is `aws` or `azure`. If datetime range parameters are not set, month-to-date (current month) will be returned. operationId: Cost_ReadAdjustments responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/blueapiCostV1CostItem' error: $ref: '#/definitions/rpcStatus' title: Stream result of blueapiCostV1CostItem default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` or `azure` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostReadAdjustmentsBody' tags: - Cost /v1/{vendor}/alerts/{id}: get: summary: Get the budget alerts for the account id. Only available in Wave(Pro). operationId: Cost_GetAccountBudgetAlerts responses: '200': description: A successful response. schema: $ref: '#/definitions/apiWaveBudgetAlert' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. Account Id in: path required: true type: string tags: - Cost delete: summary: Delete the budget alerts for the account id. Only available in Wave(Pro). operationId: Cost_DeleteAccountBudgetAlerts responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. Account Id in: path required: true type: string tags: - Cost post: summary: Create the budget alerts for the account id. Only available in Wave(Pro). operationId: Cost_CreateAccountBudgetAlerts responses: '200': description: A successful response. schema: $ref: '#/definitions/apiWaveBudgetAlert' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. Account Id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostCreateAccountBudgetAlertsBody' tags: - Cost put: summary: Update the budget alerts for the account id. Only available in Wave(Pro). operationId: Cost_UpdateAccountBudgetAlerts responses: '200': description: A successful response. schema: $ref: '#/definitions/apiWaveBudgetAlert' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. Account Id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostUpdateAccountBudgetAlertsBody' tags: - Cost /v1/{vendor}/aors:read: post: summary: 'Reads all vendor account-original-resources. Account that have not been used for one month will no longer be retrieved.' operationId: Cost_ReadAccountOriginalResources responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/apiAccountOriginalResource' error: $ref: '#/definitions/rpcStatus' title: Stream result of apiAccountOriginalResource default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws`.`gcp`,`azure` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostReadAccountOriginalResourcesBody' tags: - Cost /v1/{vendor}/bep/{orgId}: get: summary: Get the breakeven point details for the RI or SP. operationId: Cost_GetBreakevenPoint responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetBreakevenPointResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: orgId description: Required. Organization Id. in: path required: true type: string - name: type description: Required. For AWS, "ri" or "sp". in: query required: false type: string - name: arn description: Required. RI/SP Arn. in: query required: false type: string tags: - Cost /v1/{vendor}/budget/{budgetId}: delete: summary: Removes monthly budget for the account/acctgroup id from database. operationId: Cost_DeleteAccountBudget responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: budgetId description: Required. Budget Id in: path required: true type: string tags: - Cost put: summary: Updates monthly budget for the account/acctgroup id. operationId: Cost_UpdateAccountBudget responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: budgetId description: Required. Budget Id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostUpdateAccountBudgetBody' tags: - Cost /v1/{vendor}/budget/{level}/{id}: get: summary: Fetches monthly budget for the account/acctgroup id. operationId: Cost_GetAccountBudget responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetAccountBudgetResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: level description: Required. 'account' or 'acctgroup' in: path required: true type: string - name: id description: Required. Account or AccountGroup Id in: path required: true type: string - name: year description: 'Optional. Default is current year. Format: `yyyy`.' in: query required: false type: string tags: - Cost post: summary: Creates monthly budget for the account/acctgroup id. operationId: Cost_CreateAccountBudget responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateAccountBudgetResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: level description: Required. 'account' or 'acctgroup' in: path required: true type: string - name: id description: Required. Account or AccountGroup Id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostCreateAccountBudgetBody' tags: - Cost /v1/{vendor}/calculation/prerequisites/{month}: get: summary: 'WORK-IN-PROGRESS: List the prerequisites for cost calculations.' operationId: Cost_ListCalculationPrerequisites responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListCalculationPrerequisitesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: month description: Required. Month in format yyyy-mm. in: path required: true type: string tags: - Cost /v1/{vendor}/calculations/history: get: summary: Lists vendor costs calculations history and statuses. operationId: Cost_ListCalculationsHistory responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListCalculationsHistoryResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: asOf description: Optional. List operations on and after this date. Format is yyyymmdd. For example, if you want to list all operations starting from June 01, 2021, set to `20210601`. If not set, defaults to the first day of the current UTC month. in: query required: false type: string - name: excludeDone description: Optional. If true, exclude all operations that are marked as done. Include by default. in: query required: false type: boolean tags: - Cost /v1/{vendor}/calculations/schedules: get: summary: Lists the schedules of your monthly calculations. Only available in Ripple. operationId: Cost_ListCalculationsSchedules responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListCalculationsSchedulesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string tags: - Cost post: summary: Creates a schedule to trigger your monthly calculations. At the moment, only one schedule is allowed per account. Only available in Ripple. operationId: Cost_CreateCalculationsSchedule responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CalculationsSchedule' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostCreateCalculationsScheduleBody' tags: - Cost /v1/{vendor}/calculations/schedules/{id}: delete: summary: Deletes the schedule of your monthly calculations. Only available in Ripple. operationId: Cost_DeleteCalculationsSchedule responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. The id to delete. Can be set to either `-` or `*`, which means all. in: path required: true type: string tags: - Cost /v1/{vendor}/calculator/config: get: summary: 'WORK-IN-PROGRESS: Gets the vendor cost calculator''s current configuration.' operationId: Cost_GetCalculatorConfig responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetCalculatorConfigResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string tags: - Cost /v1/{vendor}/calculator/config/costmods: get: summary: Lists the cost calculator's cost modifiers. At the moment, the supported {vendor} is 'aws'. Only available in Ripple. operationId: Cost_ListCalculatorCostModifiers responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1CalculatorCostModifier' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1CalculatorCostModifier default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` and `azure` are supported. in: path required: true type: string tags: - Cost post: summary: Creates a cost modifier. description: A cost modifier allows you to modify the cost per lineitem. At the moment, the supported `{vendor}` is `aws` and only applies to items not affected by trueunblended calculations. Items not covered include some usages under `AmazonEC2`, `AmazonRDS`, `AmazonElastiCache`, `AmazonES`, and `AmazonRedShift`, that are covered by their respective RIs and/or SPs. Non-usage items such as discounts, refunds, fees, etc. are also not covered. Only available in Ripple. operationId: Cost_CreateCalculatorCostModifier responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateCalculatorCostModifierResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostCreateCalculatorCostModifierBody' tags: - Cost /v1/{vendor}/calculator/config/costmods/{id}: delete: summary: Deletes a cost modifier. At the moment, the supported {vendor} is 'aws'. Only available in Ripple. operationId: Cost_DeleteCalculatorCostModifier responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` and `azure` are supported. in: path required: true type: string - name: id description: Required. The id of the modifier to delete. in: path required: true type: string tags: - Cost /v1/{vendor}/calculator/running:read: post: summary: Lists the vendor calculator's queued accounts for calculation. description: If result is non-empty, it means calculation is still in progress for the returned accounts. Only available in Ripple. operationId: Cost_ListCalculatorRunningAccounts responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1ListCalculatorRunningAccountsResponse' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1ListCalculatorRunningAccountsResponse default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostListCalculatorRunningAccountsBody' tags: - Cost /v1/{vendor}/costattrs: get: summary: 'WORK-IN-PROGRESS: Reads the available cost attributes of an organization (Ripple) or billing group (Wave).' operationId: Cost_GetCostAttributes responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetCostAttributesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: month description: 'Required. Format: `yyyy-mm`.' in: query required: false type: string - name: groupId description: Optional. If set, reads the cost attributes of this group. Only valid for Ripple users. Implied as the parent billing group for Wave(Pro) users. in: query required: false type: string - name: accountId description: Optional. You can set it to a single account or a comma-separated list of accounts. If set, overrides `groupId` in: query required: false type: string - name: category description: Optional. A comma-separated list of dimensions to query. Valid values are `productCode`, `serviceCode`, `region`, `zone`, `usageType`, `instanceType`, `operation`, `invoiceId`, `description`, `resourceId` and `tags`. Sequence doesn't matter. An empty value implies all attributes will be returned. in: query required: false type: string tags: - Cost /v1/{vendor}/costattrs:read: post: summary: Reads the available cost attributes of an organization (Ripple) or billing group (Wave). description: Similar to the `ReadCosts` API but without the aggregated usages and costs. At the moment, the supported `{vendor}` is `aws`. If datetime range parameters are not set, month-to-date (current month) will be returned. operationId: Cost_ReadCostAttributes responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1CostAttributeItem' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1CostAttributeItem default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostReadCostAttributesBody' tags: - Cost /v1/{vendor}/costfilters: get: summary: Lists the usage-based cost filter condition. Only available in Wave(Pro). operationId: Cost_ListCostFilters responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListCostFiltersResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string tags: - Cost post: summary: Creates the usage-based cost filter condition. description: You can consider cost filters as predefined/prefiltered queries using the `v1/{vendor}/costs:read` or `ReadCosts` API. Only available in Wave(Pro). operationId: Cost_CreateCostFilters responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateCostFiltersResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostCreateCostFiltersBody' tags: - Cost /v1/{vendor}/costfilters/{filterId}: delete: summary: Deletes the usage-based cost filter condition. Only available in Wave(Pro). operationId: Cost_DeleteCostFilters responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: filterId description: Required. Filter Id to delete. in: path required: true type: string tags: - Cost put: summary: Updates the usage-based cost filter condition. Only available in Wave(Pro). operationId: Cost_UpdateCostFilters responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateCostFiltersResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: filterId description: Required. Filter Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostUpdateCostFiltersBody' tags: - Cost /v1/{vendor}/costfilters/{filterId}:export: post: summary: Exports the usage-based cost filter condition. Only available in Wave(Pro). operationId: Cost_ExportCostFiltersFile responses: '200': description: A successful response. schema: $ref: '#/definitions/protosOperation' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: filterId description: Required. Filter Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostExportCostFiltersFileBody' tags: - Cost /v1/{vendor}/costs:calculate: post: summary: Triggers monthly calculations for costs and invoices at either organization or billing group level. description: For the AWS calculator, aggregation is done at daily and monthly level. Also, all occurrences of the character `|` (pipe) in the CUR descriptions and tag key/values are replaced with the `/` (forward-slash) character. This is due to the `|` character having a special designation in the data processing workflows. operationId: Cost_CalculateCosts responses: '200': description: A successful response. schema: $ref: '#/definitions/protosOperation' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostCalculateCostsBody' tags: - Cost /v1/{vendor}/costs:read: post: summary: Reads the usage-based cost details of an organization (Ripple) or billing group (Wave). description: You can refer to this [guide](https://labs.alphaus.cloud/docs/guides/aws-query-costs/) for more examples on how to use this API. Although the guide uses `bluectl`, the parameters are the same. operationId: Cost_ReadCosts responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/blueapiCostV1CostItem' error: $ref: '#/definitions/rpcStatus' title: Stream result of blueapiCostV1CostItem default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. Supported vendors are `aws`,`azure` and `gcp`. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostReadCostsBody' tags: - Cost /v1/{vendor}/coverage/ondemand/{orgId}:read: post: summary: Get ondemand cost details for an organization (or MSP). operationId: Cost_GetCoverageOndemand responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetCoverageOndemandResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: orgId description: Required. Organization Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostGetCoverageOndemandBody' tags: - Cost /v1/{vendor}/coverage/options/{orgId}:read: post: summary: Get coverage options details for an organization (or MSP). operationId: Cost_GetCoverageOptions responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetCoverageOptionsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: orgId description: Required. Organization Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostGetCoverageOptionsBody' tags: - Cost /v1/{vendor}/forecasts: get: summary: Fetches cost forecasts for the specified billing group. Includes historical cost (up to previous month) and forecasted cost (up to three months for now). operationId: Cost_GetForecasts responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetForecastsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: billingInternalId description: Optional. Company Id of Billing Group to retrieve. Default value is user's Company Id in: query required: false type: string - name: frequency description: "Optional. Forecast frequency. Valid values are `daily` and `monthly`. \nDefault value is `daily`." in: query required: false type: string - name: level description: Optional. Forecast granularity. Valid values are `account`, `category` and `product`. Default value is `account`. in: query required: false type: string - name: fromDate description: 'Optional. Start date to get cost forecast. If from_date is less than current date, historical costs are included. If from_date is greater than current date, only forecasted costs are returned. Format: `yyyy-mm-dd`.' in: query required: false type: string - name: toDate description: 'Optional. End date to get cost forecast. Currently, we only support 90 days forecasting from the first day of current month. Format: `yyyy-mm-dd`.' in: query required: false type: string tags: - Cost /v1/{vendor}/forecasts/month-on-month/{level}/{id}: get: summary: Fetches previous month cost vs current month forecast vs current accumulated cost per category for id. operationId: Cost_GetMonthOnMonthCostForecast responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetMonthOnMonthCostForecastResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: level description: Required. 'account' or 'acctgroup' in: path required: true type: string - name: id description: Required. Account or AccountGroup Id in: path required: true type: string - name: date description: 'Optional. Default is current month. Format: `yyyymm`.' in: query required: false type: string tags: - Cost /v1/{vendor}/forecasts/month-to-date/{level}/{id}: get: summary: Fetches current month daily forecast vs current accumulated daily cost for id. operationId: Cost_GetMonthToDateCostForecast responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetMonthToDateCostForecastResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: level description: Required. 'account' or 'acctgroup' in: path required: true type: string - name: id description: Required. Account or AccountGroup Id in: path required: true type: string - name: date description: 'Optional. Default is current month. Format: `yyyymm`.' in: query required: false type: string tags: - Cost /v1/{vendor}/forecasts/monthly/{level}/{id}: get: summary: Fetches monthly accumulated costs vs forecasted cost vs budget for the id. operationId: Cost_GetMonthlyCostForecast responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetMonthlyCostForecastResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: level description: Required. 'account' or 'acctgroup' in: path required: true type: string - name: id description: Required. Account or AccountGroup Id in: path required: true type: string - name: fromDate description: 'Optional. Start month to get cost forecast. Format: `yyyymm`.' in: query required: false type: string - name: toDate description: 'Optional. Last month to get cost forecast. Format: `yyyymm`.' in: query required: false type: string tags: - Cost /v1/{vendor}/invoiceids:read: post: summary: Read the invoice ids. Only available in Ripple. operationId: Cost_ReadInvoiceIds responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1ReadInvoiceIdsResponse' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1ReadInvoiceIdsResponse default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostReadInvoiceIdsBody' tags: - Cost /v1/{vendor}/nontagcosts:read: post: summary: Reads the usage-based non tag costs of a billing group. description: At the moment, the supported `{vendor}` is `aws`. If datetime range parameters are not set, month-to-date (current month) will be returned. operationId: Cost_ReadNonTagCosts responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/blueapiCostV1CostItem' error: $ref: '#/definitions/rpcStatus' title: Stream result of blueapiCostV1CostItem default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostReadNonTagCostsBody' tags: - Cost /v1/{vendor}/payers: get: summary: Lists vendor payer accounts. description: For AWS, these are management accounts (formerly known as master or payer accounts); for Azure, these are subscriptions, for GCP, these are projects. operationId: Cost_ListPayerAccounts responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/blueapiApiAccount' error: $ref: '#/definitions/rpcStatus' title: Stream result of blueapiApiAccount default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: fieldMask description: 'Optional. Get only the value that set fieldMask. see more info: https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/field_mask.proto' in: query required: false type: string tags: - Cost post: summary: 'DEPRECATED: Registers a vendor payer account. This is now deprecated for AWS payer accounts. To register an AWS payer account, check out the ''CreateDefaultCostAccess'' API.' operationId: Cost_CreatePayerAccount responses: '200': description: A successful response. schema: $ref: '#/definitions/blueapiApiAccount' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostCreatePayerAccountBody' tags: - Cost /v1/{vendor}/payers/basicdetails: post: summary: 'WORK-IN-PROGRES: Registers a vendor payer account with their basics details such as accountId and accountName.' operationId: Cost_RegisterPayerAccount responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostRegisterPayerAccountBody' tags: - Cost /v1/{vendor}/payers/basicdetails/{id}: put: summary: 'WORK-IN-PROGRES: Updates a vendor payer account''s basics details.' operationId: Cost_UpdatePayerAccount responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. The Payer/Management account Id to update. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostUpdatePayerAccountBody' tags: - Cost /v1/{vendor}/payers/{id}: get: summary: Gets a vendor payer account. description: This API includes all of the account's metadata. See (https://alphauslabs.github.io/blueapi/)[https://alphauslabs.github.io/blueapi/] for the list of supported attributes. For AWS, this means a management account (formerly known as master or payer account); for Azure, this means a subscription, for GCP, this means a project. operationId: Cost_GetPayerAccount responses: '200': description: A successful response. schema: $ref: '#/definitions/ripplePayer' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. The id of the account to get. in: path required: true type: string tags: - Cost delete: summary: Deletes a vendor payer account. operationId: Cost_DeletePayerAccount responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. The id of the account. in: path required: true type: string tags: - Cost /v1/{vendor}/payers/{id}/billingtransfer: post: summary: 'WORK-IN-PROGRESS: Setup payer''s billing transfer information' operationId: Cost_SetupPayerAccountBillingTransfer responses: '200': description: A successful response. schema: type: object properties: {} default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. The vendor. Only 'aws' is supported for now. in: path required: true type: string - name: id description: Required. The Payer account ID in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostSetupPayerAccountBillingTransferBody' tags: - Cost /v1/{vendor}/payers/{id}/importhistory: get: summary: Gets a payer account's import history. description: Import history is a list of timestamps our system tracks when the account's data are imported to our system, which in turn, triggers processing. At the moment, this only supports AWS (CUR files). You can also set `{id}` to `*` to return all payers' information under the organization. operationId: Cost_GetPayerAccountImportHistory responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1GetPayerAccountImportHistoryResponse' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1GetPayerAccountImportHistoryResponse default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. The account id to query. Could be `*`, which implies all payers. in: path required: true type: string - name: month description: Optional. The UTC month to query. If empty, defaults to current month. Format is `yyyymm`. For example, June 2021 will be `202106`. in: query required: false type: string tags: - Cost /v1/{vendor}/payers/{id}/proforma: get: summary: Gets a payer account's proforma reports. Applicable for AWS payer accounts only. operationId: Cost_GetPayerProformaReports responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetPayerProformaReportsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. The account id to query. in: path required: true type: string tags: - Cost /v1/{vendor}/payersextended: get: summary: Lists vendor payer accounts with extended information. WORK IN PROGRESS description: 'This endpoint returns additional fields beyond the standard ListPayerAccounts response. For AWS, these are management accounts (formerly known as master or payer accounts); for Azure, these are subscriptions, for GCP, these are projects.' operationId: Cost_ListPayerAccountsExtended responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1PayerAccountExtended' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1PayerAccountExtended default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: fieldMask description: 'Optional. Get only the value that set fieldMask. see more info: https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/field_mask.proto' in: query required: false type: string tags: - Cost /v1/{vendor}/payersextended/{id}: get: summary: Gets a vendor payer account with extended information. WORK IN PROGRESS description: 'This endpoint returns additional fields beyond the standard GetPayerAccount response. For AWS, this means a management account (formerly known as master or payer account); for Azure, this means a subscription, for GCP, this means a project.' operationId: Cost_GetPayerAccountExtended responses: '200': description: A successful response. schema: $ref: '#/definitions/v1PayerAccountExtended' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: id description: Required. The id of the account to get. in: path required: true type: string tags: - Cost /v1/{vendor}/recommendations/{orgId}:read: post: summary: 'WORK-IN-PROGRESS: Get cost opmtimization recommendations for an organization (or MSP).' operationId: Cost_GetRecommendations responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetRecommendationsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: orgId description: Required. Organization Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostGetRecommendationsBody' tags: - Cost /v1/{vendor}/reduction/{orgId}:read: post: summary: Get cost reduction details for an organization (or MSP). operationId: Cost_GetCostReduction responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetCostReductionResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: orgId description: Required. Organization Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostGetCostReductionBody' tags: - Cost /v1/{vendor}/tagcosts:read: post: summary: Reads the usage-based tag costs of a billing group. description: At the moment, the supported `{vendor}` is `aws`. If datetime range parameters are not set, month-to-date (current month) will be returned. operationId: Cost_ReadTagCosts responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/blueapiCostV1CostItem' error: $ref: '#/definitions/rpcStatus' title: Stream result of blueapiCostV1CostItem default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CostReadTagCostsBody' tags: - Cost /v1/{vendor}/tags: get: summary: Lists all vendor tags. operationId: Cost_ListTags responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/apiCostTag' error: $ref: '#/definitions/rpcStatus' title: Stream result of apiCostTag default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: groupId description: Optional. The billing group internal id. Only valid for Ripple users. in: query required: false type: string - name: fieldMask description: Optional. in: query required: false type: string tags: - Cost /v1/{vendor}/tags/groups/{groupId}: get: summary: Lists all vendor tags. operationId: Cost_ListTags2 responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/apiCostTag' error: $ref: '#/definitions/rpcStatus' title: Stream result of apiCostTag default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: groupId description: Optional. The billing group internal id. Only valid for Ripple users. in: path required: true type: string - name: fieldMask description: Optional. in: query required: false type: string tags: - Cost /v1/{vendor}/utilization/{orgId}: get: summary: Get the utilization details for an organization (or MSP). operationId: Cost_GetUtilization responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetUtilizationResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor description: Required. At the moment, only `aws` is supported. in: path required: true type: string - name: orgId description: Required. Organization Id. in: path required: true type: string - name: type description: Required. For AWS, "ri" or "sp". in: query required: false type: string - name: fromDate description: 'Optional. The start date of the displayed data. If not set, the first day of the current month will be used. Format: yyyy-mm-dd.' in: query required: false type: string - name: toDate description: 'Optional. The end date of the displayed data. If not set, current date will be used. Format: yyyy-mm-dd.' in: query required: false type: string - name: payerId description: Optional. Payer Id. in: query required: false type: string - name: billingInternalId description: Optional. Billing group Id. in: query required: false type: string - name: groupId description: Optional. Account group Id. in: query required: false type: string - name: costGroupId description: Optional. Cost Group Id used in octo. in: query required: false type: string tags: - Cost definitions: v1GetCoverageOndemandResponse: type: object properties: orgId: type: string ondemandData: type: array items: type: object $ref: '#/definitions/apiOndemandData' title: Response message for GetCoverageOndemand apiKeyValueMap: type: object properties: key: type: string stringValue: type: string boolValue: type: boolean description: KeyValueMap resource definition. apiWaveBudget: type: object properties: id: type: string title: 'budget id `previousDay` / `daily` / `monthly` / `customPeriod` / `customMonth`' value: type: number format: double title: budget value enabled: type: boolean title: budget setting enable/disable description: Budget resource definition. v1ReadInvoiceOverviewsRequest: type: object properties: startTime: type: string description: 'Optional. The UTC date to start streaming data from. If not set, the first day of the current month will be used. Format: `yyyymmdd`. The oldest supported date is `20240101`.' endTime: type: string description: 'Optional. The UTC date to end the streaming data. If not set, current date will be used. Format: `yyyymmdd`.' usePeriodRange: type: boolean title: Set true to use period range as date input, startTime and endTime would be ignored periodRange: $ref: '#/definitions/v1PeriodRange' title: Use when usePeriodRange range is true toCurrency: type: string description: Optional. Set to US dollars (USD) by default (AWS CUR's default currency). You can set it to the desired three-letter currency symbol (i.e. JPY, EUR, GBP), in which case, it will use the latest exchange rates provided by https://fixer.io. If you prefer a custom exchange rate, you can append the rate to the currency's three-letter symbol. For example, `JPY:110.622` for the Japanese Yen. Note that the exchange rate should be against the US dollar (USD). description: Request message for the ReadInvoiceOverviews rpc. v1GetExportRISPResponse: type: object properties: downloadLink: type: string title: 'csv direct download link expires in 10 minutes' description: Request message for the ExportBillingGroupInvoiceServiceDiscounts rpc. CostSetupPayerAccountBillingTransferBody: type: object properties: month: type: string description: Required. The billing transfer month. s3Bucket: type: string description: Required. The s3 bucket where the cost and usage report can be downloaded. reportName: type: string description: Required. The actual name of the cost and usage report. roleArn: type: string description: Required. The Role ARN needed to access the s3 bucket. curType: type: string title: 'Required. The type of cur. Valid values are: ''legacy'' and ''2.0''' prefix: type: string title: Optional. Prefix of the report inside the bucket title: Request message for SetupPayerAccountBillingTransfer apiAwsCost: type: object properties: account: type: string description: The account being queried. groupId: type: string description: The group id the account is associated with during the query. type: type: string date: type: string description: For daily data, format is `yyyy-mm-dd`; for monthly, `yyyy-mm`. productCode: type: string description: The product code for an AWS service, such as `AmazonEC2`, `AmazonRDS`, etc. This can also be an Alphaus-specified custom value. serviceCode: type: string description: The CUR service code of the lineitem, if applicable. Sometimes, this is the same as `productCode`, a subset of `productCode`, an Alphaus-specified custom value, or empty. region: type: string description: The region of the lineitem, if applicable. zone: type: string description: The zone of the lineitem, if applicable. usageType: type: string description: The CUR usage type of the lineitem, if applicable. instanceType: type: string description: The CUR instance type of the lineitem, if applicable. operation: type: string description: The CUR operation of the lineitem, if applicable. invoiceId: type: string description: The AWS invoice ID of the lineitem, if applicable. description: type: string description: The description of the lineitem, if applicable. resourceId: type: string description: The resource id of the lineitem, if applicable. At the moment, this is not yet fully supported. tags: type: object additionalProperties: type: string costCategories: type: object additionalProperties: type: string usage: type: number format: double description: Only set when `description` and/or `resourceId` attributes are specified. cost: type: number format: double description: The true cost (calculated) for this lineitem. unblendedCost: type: number format: double description: The unblended cost as reflected in the CUR for this lineitem. baseCurrency: type: string description: The base currency for `cost`, `unblendedCost`, `effectiveCost`, `amortizedCost`. Always set to `USD`, CUR's default currency. exchangeRate: type: number format: double description: The exchange rate used to convert `baseCurrency` to `targetCurrency`. targetCost: type: number format: double description: Converted `cost`. targetUnblendedCost: type: number format: double description: Converted `unblendedCost`. targetCurrency: type: string description: The currency set by `toCurrency`. effectiveCost: type: number format: double targetEffectiveCost: type: number format: double description: Converted `effectiveCost`. amortizedCost: type: number format: double targetAmortizedCost: type: number format: double description: Converted `amortizedCost`. tagId: type: string timestamp: type: string description: Get last update in UNIX time format. metadata: type: array items: type: object $ref: '#/definitions/apiKeyValue' description: Various metadata associated with this lineitem. apiCustomPeriodBudgetAlert: type: object properties: value: type: number format: double title: Required. threshold in budget alerts enabled: type: boolean description: "Required. notification enable/disable \nIf disabled, no alert is sent." startDate: type: string title: Required. start date in budget alerts endDate: type: string title: Required. end date in budget alerts description: CustomPeriodBudgetAlert resource definition. CostExportCostFiltersFileBody: type: object properties: notificationChannelIds: type: array items: type: string description: Required. The channel ids to use for notifications. startTime: type: string description: 'Optional. The UTC date to start streaming data from. If not set, the first day of the current month will be used. Format: `yyyymmdd`. The oldest supported date is `20200101`.' endTime: type: string description: 'Optional. The UTC date to end the streaming data. If not set, current date will be used. Format: `yyyymmd`.' groupByMonth: type: boolean description: Optional. If set to true, return data grouped by month within the date range. If you want data that is grouped per account per month, set this to `true`, then set `groupByColumns` to `none`. groupByColumns: type: string description: 'Optional. A comma-separated list of columns to aggregate the data into. Valid values are `productCode`, `serviceCode`, `region`, `zone`, `usageType`, `instanceType`, `operation`, `invoiceId`, `description`, and `resourceId`. A special value of `none` is also supported, which means query by date or month per account only. For example, if you only want the services and region data, you can set this field to `productCode,region`. Your input sequence doesn''t matter (although the sequence above is recommended) as the actual sequence is already fixed in the return data (see the definition in https://github.com/alphauslabs/blueapi/blob/main/api/aws/cost.proto), which is generic to specific, top to bottom. Invalid values are discarded. Excluded columns will be empty.' includeTags: type: boolean description: Optional. If set to true, stream will include resource tags. description: Request message for the ExportCostFiltersFile rpc. v1CalculatorCostModifierAzureOptionsModifierDescriptionModifier: type: object properties: prefix: type: string description: Optional. Add a prefix to the description. suffix: type: string description: Optional. Add a suffix to the description. replace: type: string description: Optional. Replace the description with the input. apiAwsCostAttribute: type: object properties: account: type: string groupId: type: string productCode: type: string serviceCode: type: string region: type: string zone: type: string usageType: type: string instanceType: type: string operation: type: string invoiceId: type: string description: type: string resourceId: type: string tags: type: object additionalProperties: type: string costCategories: type: object additionalProperties: type: string CostUpdateAccountBudgetAlertsBody: type: object properties: budgetAlert: $ref: '#/definitions/apiWaveBudgetAlert' description: 'Required. Budget alert setting. Set only the setting value to be changed. For example, If you want to change only daily value, set `{"budget":[{"id":"daily","value":100,"enabled":true}}` as a parameter The same goes for notification. If you want to change only email value, set `{"notification":[{"id":"email","destination":"budgetalert-example@alphaus.cloud","enabled":true}}` as a parameter' title: Request message for UpdateAccountBudgetAlerts v1CreateAccountRequestAwsOptions: type: object properties: managementAccountId: type: string description: Optional. The management account id (formerly known as master, or payer) to which an account belongs to, initially. If the account is moved to another management account, the system is able to detect it and set this value accordingly. description: AWS-specific options for registering an account. v1GetForecastsResponse: type: object properties: data: $ref: '#/definitions/apiBillingGroupForecast' description: Response message for GetForecasts per billing group. v1OverViewOptionSection: type: object properties: sppDiscountCost: type: number format: double description: The spp discount cost. edpDiscountCost: type: number format: double description: The edp discount cost. description: OverViewOptionSection resource definition. awsExcludedServiceFromUsage: type: object properties: managementAccount: type: string description: The management account (formerly master account) the `productCode` belongs to. productCode: type: string description: The excluded product code. convertedToAdjustments: type: boolean description: If the product code is converted to Adjustments or not. CostListCalculatorRunningAccountsBody: type: object properties: month: type: string description: Optional. The UTC month to query. Defaults to current month if empty. Format is `yyyymm`. For example, June 2021 will be `202106`. description: Request message for the Cost.ListCalculatorRunningAccounts rpc. v1CreateCostFiltersResponse: type: object properties: filterId: type: string description: Required. Filter Id. description: Response message for the CreateCostFilters rpc. awsRiRecommendation: type: object properties: accountId: type: string productCode: type: string location: type: string instanceType: type: string quantity: type: string format: int64 normalizedUnit: type: number format: double operatingSystem: type: string title: for amazon ec2 only preInstalledSW: type: string tenancy: type: string dbEngine: type: string title: for amazon rds only deploymentOption: type: string ondemandCost: type: number format: double ondemandrate: type: number format: double riRate: type: number format: double upfrontCost: type: number format: double discountedCost: type: number format: double monthlyAmortizedCost: type: number format: double monthlyRecurringCost: type: number format: double yearlyDiscountedCost: type: number format: double reductionRate: type: number format: double estimatedMonthlySavings: type: number format: double daysBeforeBreakEven: type: number format: double apiOndemandChart: type: object properties: date: type: string service: type: string normalizedUsage: type: number format: double ondemandCost: type: number format: double usage: type: number format: double v1CalculatorCostModifier: type: object properties: id: type: string createTime: type: string updateTime: type: string awsOptions: $ref: '#/definitions/v1CalculatorCostModifierAwsOptions' azureOptions: $ref: '#/definitions/v1CalculatorCostModifierAzureOptions' apiDailyRateIncreaseBudgetAlert: type: object properties: value: type: number format: double title: Required. threshold in budget alerts enabled: type: boolean description: "Required. notification enable/disable \nIf disabled, no alert is sent." description: DailyRateIncreaseBudgetAlert resource definition. apiEmailChannel: type: object properties: format: type: string recipients: type: array items: type: string v1GetRecommendationsRequestAwsOptions: type: object properties: recommendationType: type: string description: 'Required. Valid values: ''reservation'', ''rightsizing'', ''scheduling''. Only ''reservation'' is supported for now.' type: type: string title: 'For recommendationType = ''reservation''. Optional. Valid values: ''combined'', ''individual'' Default: ''combined''' riServices: type: array items: type: string description: 'For recommendationType = ''reservation''. Optional. List of Services ["AmazonEC2", "AmazonRDS", "AmazonElastiCache", "AmazonES", "AmazonRedshift"]. Default: Empty list.' spServices: type: array items: type: string description: 'For recommendationType = ''reservation''. Optional. List of Services ["AmazonECS", "AmazonEKS", "AWSLambda"]. Default: Empty list.' purchaseEC2SavingsPlan: type: boolean description: 'For recommendationType = ''reservation''. Optional. If set to "true", recommends EC2 Instance Savings Plan that will cover usage not covered by RI. Default: false.' ec2SpProductFamily: type: string description: 'For recommendationType = ''reservation''. Optional. Valid values: ''EC2Instance'', ''Compute''. Default: ''EC2Instance''.' term: type: string description: 'For recommendationType = ''reservation''. Optional. Valid values: ''1yr'', ''3yr''. Default: ''1yr''.' offeringClass: type: string description: 'For recommendationType = ''reservation''. Optional. Valid values: ''standard'', ''convertible''. Default: ''standard''.' paymentOption: type: string description: 'For recommendationType = ''reservation''. Optional. Valid values: ''allUpfront'', ''partialUpfront'', ''noUpfront''. Default: ''allUpfront''.' coveragePercentage: type: number format: double description: 'For recommendationType = ''reservation''. Optional. Percentage of the usage (in NormalizedUnits) to be covered by Reserved Instance or Savings Plan. Default: 100.' v1GetBreakevenPointResponse: type: object properties: orgId: type: string awsCostBreakeven: $ref: '#/definitions/awsAwsCostBreakeven' title: Response message for GetBreakevenPoint apiOndemandData: type: object properties: id: type: string ondemandChart: type: array items: type: object $ref: '#/definitions/apiOndemandChart' v1ReadCostAttributesRequestAwsOptions: type: object properties: dimensions: type: string description: Optional. A comma-separated list of dimensions to query. Valid values are `productCode`, `serviceCode`, `region`, `zone`, `usageType`, `instanceType`, `operation`, `invoiceId`, `description`, `resourceId`, `tags`, and `costCategories`. Sequence doesn't matter. An empty value implies all attributes will be returned. apiBillingGroupForecast: type: object properties: billingInternalId: type: string data: type: array items: type: object $ref: '#/definitions/apiForecastData' v1CreatePayerAccountRequestAwsOptions: type: object properties: id: type: string description: Required. The id of the management account. name: type: string description: Optional. The name, or description of the management account. This is set to `id` when not specified. bucketName: type: string description: Required. S3 Bucket name. prefix: type: string description: Optional. Prefix. reportName: type: string description: Required. Report name. roleArn: type: string description: Required. Role ARN for Alphaus to assume for access. description: 'See [https://help.alphaus.cloud/en/articles/3612555-ripple-aws-things-you-need-to-prepare-before-starting] for more information. See [https://docs.aws.amazon.com/cur/latest/userguide/cur-create.html] for more information. Requirements include: Additional report details = ''Include Resource IDS'' enabled, Prefix = non-empty (recommendation only), Time granularity = ''Hourly'', File format = ''text/csv''.' v1PayerAccountExtended: type: object properties: payer: $ref: '#/definitions/ripplePayer' title: 'Standard payer account information includes: vendor, id, name, orgId, billingInternalId, and metadata array' target: type: string description: The target payer account ID (from extended response). roleArn: type: string description: The IAM role ARN for cost access (from payer.metadata or extended response). externalId: type: string description: The external ID used for assuming the role (if applicable). stackId: type: string description: The CloudFormation stack ID (if using stack-based deployment). stackRegion: type: string description: The AWS region where the CloudFormation stack is deployed. templateUrl: type: string description: The CloudFormation template URL used for deployment. status: type: string description: The current status of the payer setup. Comma-separated values such as 'curOnly,manualExport', etc. lastUpdated: type: string description: The timestamp when the payer configuration was last updated in RFC3339 format. bucketName: type: string description: S3 bucket name (from payer.metadata). prefix: type: string description: S3 prefix (from payer.metadata). reportName: type: string description: CUR report name (from payer.metadata). defaultCostAccessRoleArn: type: string description: Default cost access role ARN (from payer.metadata). curType: type: string description: The CUR type for AWS payers. Valid values are `legacy` and `2.0` (from payer.metadata). description: Extended payer account information with additional metadata. v1TotalDetailSection: type: object properties: totalCost: type: number format: double description: Cost(True unblended or Unblended) used for invoicing. sppDiscount: type: number format: double description: The spp discount cost. thirdProfitItem: type: number format: double description: The third profit item cost. trueUnblendedProfitRi: type: number format: double description: The profit from RI (True Unblended). trueUnblendedProfitSp: type: number format: double description: The profit from SP (True Unblended). description: TotalDetailSection resource definition. v1CostAttributeItem: type: object properties: aws: $ref: '#/definitions/apiAwsCostAttribute' azure: $ref: '#/definitions/apiAzureCostAttribute' description: Response message for the Cost.ReadCostAttributes rpc. apiMonthToDateCostForecast: type: object properties: date: type: string costPrev: type: number format: double costAccumulated: type: number format: double costForecast: type: number format: double upperBound: type: number format: double lowerBound: type: number format: double CostUpdateCostFiltersBody: type: object properties: filterName: type: string title: Required. Filter Name. Specify characters between 1 ~ 100 groupId: type: string description: 'Required. If set, reads the usage-based cost details of this group. Only valid for Ripple users. Implied as the parent billing group for Wave(Pro) users. For AWS Ripple, only billing internal ids are supported at the moment. Overriden when `accountId` is set to anything other than `*`. Set this and `accountId` to `*` to read the usage-based cost details of the whole organization. Optional for AWS Wave(Pro).' accountId: type: string description: 'Required. You can set it to a single account or a comma-separated list of accounts. For AWS, setting this will override `groupId`. Set this and `groupId` to `*` to read the usage-based cost details of the whole organization.' awsOptions: $ref: '#/definitions/v1ReadCostsRequestAwsOptions' description: Required. Valid only for the `aws` vendor. AWS-specific options. description: Request message for the UpdateCostFilters rpc. v1ReadCostAttributesRequestAzureOptions: type: object properties: customerId: type: string description: Optional. The Azure customer id to which the modifier is applied. A comma-separated list of customers is also valid. subscriptionId: type: string description: Optional. The Azure subscription id to which the modifier is applied. A comma-separated list of subscriptions is also valid. entitlementId: type: string description: Optional. The Azure entitlement id to which the modifier is applied. A comma-separated list of entitlements is also valid. v1GetCalculatorConfigResponse: type: object properties: aws: $ref: '#/definitions/awsCalculatorConfig' description: Response message for the Cost.GetCalculatorConfig rpc. CostUpdateAccountBudgetBody: type: object properties: data: $ref: '#/definitions/blueapiApiBudget' title: Request message for UpdateAccountBudget v1ListCalculationsHistoryAwsResponse: type: object properties: operations: type: array items: type: object $ref: '#/definitions/protosOperation' description: AWS-specific response message for the Cost.ListCalculationsHistory rpc. Should be compatible with the Operations API. v1CalculateCostsRequestAwsOptions: type: object properties: force: type: boolean description: Optional. If set to true, discard existing calculation operation(s), if any, and make this as the active/latest one. By default, if there is an ongoing operation during the call, the request will fail. accountsOnly: type: boolean description: Optional. If set to true, only calculate for account-type billing groups. If both `accountsOnly` and `tagsOnly` are set to true, `accountsOnly` will prevail. tagsOnly: type: boolean description: Optional. If set to true, only calculate for tags-type billing groups. Discarded when the organization doesn't have any tag-based billing groups configured. If both `accountsOnly` and `tagsOnly` are set to true, `accountsOnly` will prevail. apiGcpCost: type: object properties: account: type: string title: account data groupId: type: string description: The group id the account is associated with during the query. date: type: string description: For daily data, format is `yyyy-mm-dd`; for monthly, `yyyy-mm`. invoiceMonth: type: string description: The invoice.month of the lineitem, if applicable. service: type: string description: The service.Description of the lineitem, if applicable. sku: type: string description: The sku.Description of the lineitem, if applicable. region: type: string description: The location.region of the lineitem, if applicable. zone: type: string description: The location.zone of the lineitem, if applicable. creditsType: type: string description: The credits.type of the lineitem, if applicable. creditsName: type: string description: The credits.name of the lineitem, if applicable. usageUnit: type: string description: The usage.pricing_unit of the lineitem, if applicable. usageAmount: type: number format: double description: The usage.amount_in_pricing_units of the lineitem, if applicable. baseCurrency: type: string description: The currency of the lineitem, if applicable. cost: type: number format: double description: The cost of the lineitem, if applicable. description: see gcp billing data schema details:[https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables] title: Cost for Api Response CostReadTagCostsBody: type: object properties: billingInternalId: type: string description: Required. The billing internal id to stream. startTime: type: string description: 'Optional. Timestamp to start streaming data from. If not set, the first day of the current month will be used. Format: `yyyymmdd`.' endTime: type: string description: 'Optional. Timestamp to end the streaming data. If not set, current date will be used. Format: `yyyymmdd`.' groupByMonths: type: boolean description: Optional. Group services and costs by months in the range of `startTime` and `endTime`. If not set, daily data will be returned. awsOptions: $ref: '#/definitions/v1ReadTagCostsRequestAwsOptions' description: Optional. Valid only for the `aws` vendor. AWS-specific options. description: Request message for the Cost.ReadTagCosts rpc. apiBudgetAlertNotificationDetail: type: object properties: channels: type: array items: type: object $ref: '#/definitions/apiNotificationChannel' description: List of channel info. enabled: type: boolean description: "Notification enable/disable \nIf disabled, no alert is sent." description: BudgetAlertNotificationDetail resource definition. blueapiApiChartData: type: object properties: date: type: string service: type: string cost: type: number format: double profit: type: number format: double utilization: type: number format: double commitment: type: number format: double CostGetRecommendationsBody: type: object properties: accounts: type: array items: type: string description: Required. List of Account Ids. costGroupId: type: string description: Required. For OCTO only. awsOptions: $ref: '#/definitions/v1GetRecommendationsRequestAwsOptions' title: Required if vendor = 'aws' title: Request message for GetRecommendations awsCostReductionSummary: type: object properties: totalOnDemandCost: type: number format: double totalEffectiveCost: type: number format: double totalSavings: type: number format: double totalRiOnDemandCost: type: number format: double totalRiEffectiveCost: type: number format: double totalRiSavings: type: number format: double totalSpOnDemandCost: type: number format: double totalSpEffectiveCost: type: number format: double totalSpSavings: type: number format: double v1ReadTagCostsRequestAwsOptions: type: object properties: tagId: type: string description: Optional. If set, only return data for this tagId. groupByColumns: type: string description: 'Optional. A comma-separated list of columns to aggregate the data into. Valid values are `productCode`, `serviceCode`, `region`, `zone`, `usageType`, `instanceType`, `operation`, `invoiceId`, `description`, and `resourceId`. A special value of `none` is also supported, which means query by date or month per account only. For example, if you only want the services and region data, you can set this field to `productCode,region`. Your input sequence doesn''t matter (although the sequence above is recommended) as the actual sequence is already fixed in the return data (see the definition in https://github.com/alphauslabs/blueapi/blob/main/api/aws/cost.proto), which is generic to specific, top to bottom. Invalid values are discarded. Excluded columns will be empty.' groupByMonth: type: boolean description: Optional. If set to true, return data grouped by month within the date range. If you want data that is grouped per account per month, set this to `true`, then set `groupByColumns` to `none`. You can also use `groupByColumns` while setting this to true. filters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestAwsOptionsFilters' description: Optional. A list of filtering options. See [ReadCostsRequestAwsOptionsFilters] for more information on each filter item. Multiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc. tagFilters: type: array items: type: object $ref: '#/definitions/v1ReadTagCostsRequestAwsOptionsTagFilters' description: Optional. A list of filtering options specific for tags. Multiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc. Discarded when `groupByColumns` field is set or if `groupByMonth` is true. includeTags: type: boolean description: Optional. If set to true, stream will include resource tags. Discarded when `groupByColumns` field is set to `none`. includeCostCategories: type: boolean description: Optional. If set to true, stream will include resource cost category information. Discarded when `groupByColumns` field is set to `none`. toCurrency: type: string description: Optional. Set to US dollars (USD) by default (AWS CUR's default currency). You can set it to the desired three-letter currency symbol (i.e. JPY, EUR, GBP), in which case, it will use the latest exchange rates provided by https://fixer.io. If you prefer a custom exchange rate, you can append the rate to the currency's three-letter symbol. For example, `JPY:110.622` for the Japanese Yen. Note that the exchange rate should be against the US dollar (USD). forceLatest: type: boolean description: 'Optional. If set to true, always get the up-to-date calculation results. This data isn''t necessarily in-sync with your invoice data as AWS could still have updated your CUR files even after you created your invoices. By default, returned data are those that are always in-sync with your invoices. This field is discarded for Wave(Pro) users. You will always get the latest data that is in-sync with your invoices.' noCache: type: boolean description: If true, force API to not use cached data. tagIds: type: array items: type: string description: Optional. If set, only return data list tags. CostReadCostsBody: type: object properties: groupId: type: string description: 'Optional. If set, reads the usage-based cost details of this group. Only valid for Ripple users. Implied as the parent billing group for Wave(Pro) users. For AWS Ripple, only billing internal ids are supported at the moment. Overriden when `accountId` is set to anything other than `*`. Set this and `accountId` to `*` to read the usage-based cost details of the whole organization. Optional for AWS Wave(Pro).' accountId: type: string description: 'Optional. You can set it to a single account or a comma-separated list of accounts. For AWS, setting this will override `groupId`. Set this and `groupId` to `*` to read the usage-based cost details of the whole organization.' startTime: type: string description: 'Optional. The UTC date to start streaming data from. If not set, the first day of the current month will be used. Format: `yyyymmdd`. The oldest supported date is `20200101`.' endTime: type: string description: 'Optional. The UTC date to end the streaming data. If not set, current date will be used. Format: `yyyymmdd`.' awsOptions: $ref: '#/definitions/v1ReadCostsRequestAwsOptions' description: Optional. Valid only for the `aws` vendor. AWS-specific options. gcpOptions: $ref: '#/definitions/v1ReadCostsRequestGcpOptions' description: Optional. Valid only for the `gcp` vendor. GCP-specific options. azureOptions: $ref: '#/definitions/v1ReadCostsRequestAzureOptions' description: Optional. Valid only for the `azure` vendor. Azure-specific options. description: Request message for the Cost.ReadCosts rpc. apiKeyValue: type: object properties: key: type: string value: type: string v1CalculatorCostModifierAwsOptionsQualifier: type: object properties: and: type: object additionalProperties: type: string description: 'A map of "key:value" attribute filters. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical ''and'' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc. For example, if you like your modifiers to apply to `productCode:AmazonEC2`, set to `{"productCode":"eq:AmazonEC2"}` or `{"productCode":"AmazonEC2"}`. You can also use a regular expression like `{"productCode":"re:AmazonEC2|AmazonRDS"}`, which means apply to all AmazonEC2 or AmazonRDS lineitems. Or reverse regexp, such as `{"productCode":"!re:^AmazonEC2$"}`, which means apply to all items except `AmazonEC2`. Valid keys are `productCode`, `serviceCode`, `region`, `zone`, `usageType`, `instanceType`, `operation`, `description`, and `resourceId`.' v1CalculatorCostModifierAwsOptionsModifierDescriptionModifier: type: object properties: prefix: type: string description: Optional. Add a prefix to the description. suffix: type: string description: Optional. Add a suffix to the description. replace: type: string description: Optional. Replace the description with the input. replaceMatch: type: object additionalProperties: type: string description: 'Optional. Replace matching occurences with the input. The key part is the regular expression matcher based on https://github.com/google/re2, while the value is the replacement. The order of replacement is not guaranteed. You can use the `{{ondemandrate}}` variable in the replacement value part to reference the public ondemand rate indicated in the CUR.' awsCalculatorConfig: type: object properties: adjustmentsTypeList: $ref: '#/definitions/awsAdjustmentsTypeList' description: CUR lineitem types included in Ripple's 'Adjusting Entries'. excludedServicesFromUsage: type: array items: type: object $ref: '#/definitions/awsExcludedServiceFromUsage' description: 'List of services that are of type ''Usage'' in CUR that are excluded, optionally converted to Adjustments.' description: AWS's calculation engine configuration(s). v1GetCostReductionResponse: type: object properties: orgId: type: string awsCostReductions: $ref: '#/definitions/awsAwsCostReductions' title: Response message for GetCostReduction v1ListCalculatorRunningAccountsResponse: type: object properties: aws: $ref: '#/definitions/ListCalculatorRunningAccountsResponseAwsRunningAccount' description: AWS-specific entry. description: Response message for the Cost.ListCalculatorRunningAccounts rpc. v1OverViewSection: type: object properties: id: type: string description: The id. id:OverViewSection. name: type: string description: The name. name:OverViewSection. currency: type: string description: The currency. invoiceCost: type: number format: double description: The invoice cost. procurementCost: type: number format: double description: The procurement cost. profitCost: type: number format: double description: The profit cost. options: $ref: '#/definitions/v1OverViewOptionSection' description: The options. periodOverPeriod: $ref: '#/definitions/v1PeriodOverPeriodSection' description: The period over period. awsSection: $ref: '#/definitions/v1VendorOverViewSection' description: The aws section. azureSection: $ref: '#/definitions/v1VendorOverViewSection' description: The azure section. gcpSection: $ref: '#/definitions/v1VendorOverViewSection' description: The gcp section. description: OverViewSection resource definition. apiCostTag: type: object properties: id: type: string description: The costtag id. orgId: type: string description: The parent organization id. billingInternalId: type: string description: The parent billing internal id. vendor: type: string description: The vendor. accountId: type: string description: The account id. logic: type: string title: The logic.(and/or) tags: type: array items: type: object $ref: '#/definitions/apiKeyValue' description: The attributes (key/value pair) of the costtag. apiMSTeamsChannel: type: object properties: webhookUrl: type: string v1GetPayerAccountImportHistoryResponse: type: object properties: id: type: string description: The queried account id. month: type: string description: The queried UTC month. timestamps: type: array items: type: string title: 'List of timestamps in RFC3339 format with the `T` separator. Example: `2019-10-12T07:20:50.52Z`' description: Response message for the Cost.GetPayerAccountImportHistory rpc. awsSpCostReduction: type: object properties: id: type: string arn: type: string customerId: type: string customerName: type: string billingGroupId: type: string billingGroupName: type: string currency: type: string service: type: string savingsPlan: type: string start: type: string end: type: string region: type: string instanceFamily: type: string termLength: type: string paymentOption: type: string commitment: type: number format: double upfrontFee: type: number format: double recurringFee: type: number format: double ondemandCost: type: number format: double effectiveCost: type: number format: double savings: type: number format: double breakEven: type: string title: for break even point date awsSpRecommendation: type: object properties: accountId: type: string spProductFamily: type: string location: type: string instanceFamily: type: string ondemandCost: type: number format: double commitment: type: number format: double normalizedUnit: type: number format: double discountedCost: type: number format: double monthlyDiscountedCost: type: number format: double yearlyDiscountedCost: type: number format: double estimatedMonthlySavings: type: number format: double reductionRate: type: number format: double daysBeforeBreakEven: type: number format: double v1VendorTotalSection: type: object properties: id: type: string description: The id. id:VendorTotalSection. name: type: string description: The name. name:VendorTotalSection. currency: type: string description: The currency. yearMonth: type: string title: 'The year-month. format: yyyymm' invoiceCost: type: number format: double description: The invoice cost. procurementCost: type: number format: double description: The procurement cost. profitCost: type: number format: double description: The profit cost. totalDeital: $ref: '#/definitions/v1TotalDetailSection' description: The total detail. thirdProfitItem: type: array items: type: object $ref: '#/definitions/v1ThirdProfitItemSection' description: The yhird profit item. description: VendorTotalSection resource definition. CostGetCoverageOndemandBody: type: object properties: period: type: string title: 'Required. Available values: day, hour' fromDate: type: string description: 'Optional. The start date of the displayed data. If not set, the first day of the current month will be used. Format: yyyy-mm-dd.' toDate: type: string description: 'Optional. The end date of the displayed data. If not set, current date will be used. Format: yyyy-mm-dd.' payerId: type: string description: Optional. Payer Id. billingInternalId: type: string description: Optional. Billing group Id. groupId: type: string description: Optional. Account group Id. costGroupId: type: string title: Optional. Cost Group Id, currently used in octo accounts: type: array items: type: string description: Optional. List of Account Ids. services: type: array items: type: string description: Optional. List of services. title: Request message for GetCoverageOndemand v1ThirdProfitItemSection: type: object properties: id: type: string description: 'The id. The currently supported thirdProfit items are as follows: `Miscellaneous` `CustomizedService` `AgencyFee` `SupportFee`' name: type: string description: 'The name. A value equivalent to the id will be set.' profit: type: number format: double description: The profit cost. description: ThirdProfitItemSection resource definition. 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\": ,\n \"lastName\": \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 }" CostReadCostAttributesBody: type: object properties: groupId: type: string description: 'Optional. If set, reads the cost attributes of this group. Only valid for Ripple users. Implied as the parent billing group for Wave(Pro) users. For AWS Ripple, only billing internal ids are supported at the moment. Overriden when `accountId` is set to anything other than `*`. Set this and `accountId` to `*` to read the cost attributes of the whole organization. Optional for AWS Wave(Pro).' accountId: type: string description: 'Optional. You can set it to a single account or a comma-separated list of accounts. For AWS, setting this will override `groupId`. Set this and `groupId` to `*` to read the cost attributes of the whole organization.' startTime: type: string description: 'Optional. The UTC date to start streaming data from. If not set, the first day of the current month will be used. Format: `yyyymmdd`. The oldest supported date is `20200101`.' endTime: type: string description: 'Optional. The UTC date to end the streaming data. If not set, current date will be used. Format: `yyyymmdd`.' awsOptions: $ref: '#/definitions/v1ReadCostAttributesRequestAwsOptions' description: Optional. Valid only for the `aws` vendor. AWS-specific options. azureOptions: $ref: '#/definitions/v1ReadCostAttributesRequestAzureOptions' description: Request message for the Cost.ReadCostAttributes rpc. v1ReadCostsRequestGcpOptions: type: object properties: groupByColumns: type: string description: Optional. A comma-separated list of columns to aggregate the data into. Valid values are `service`, `sku`, `region`, `zone`, and `usageUnit`. A special value of `none` is also supported, which means query by date or month per account only. groupByMonth: type: boolean description: Optional. If set to true, return data grouped by month within the date range. If you want data that is grouped per account per month, set this to `true`, then set `groupByColumns` to `none`. groupAccounts: type: boolean description: Optional. If set to true, group all input accounts into one. Valid only if `groupByMonth` is true. filters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestGcpOptionsFilters' description: Optional. A list of filtering options. See [ReadCostsRequestGcpOptionsFilters] for more information on each filter item. Multiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc. includeInvoiceMonth: type: boolean description: 'Optional. If set to true, stream will include invoice month. Discarded when `groupByColumns` field is set to `none`. The last usage occurrence of invoice month based on endTime is set to endTime. For example, (Assumption: Last usage start time 2022-02-01 01:00:00 UTC) If you set to "endTime:20210131", automatically set to "endTime:20220101". Ignored if the batch calculation for invoice month has not been completed.' includeCredits: type: boolean description: Optional. If set to true, stream will include credits{"creditsType","creditsName"}. Discarded when `groupByColumns` field is set to `none`. rounding: type: boolean description: Optional. If set to true, round the cost data to a rounded format. It will be rounded off in the unit specified by `groupByColumns`. noCache: type: boolean description: If true, force API to not use cached data. toCurrency: type: string description: 'Optional. Please note that this feature is currently in BETA and may not work as expected. You can set it to the desired three-letter currency symbol (i.e. JPY, USD).' description: GCP-specific options for ReadCostsRequest. apiAzureCostAttribute: type: object properties: customerId: type: string subscriptionId: type: string entitlementId: type: string groupId: type: string productId: type: string productName: type: string skuId: type: string skuName: type: string description: type: string category: type: string domainName: type: string v1VendorOverViewSection: type: object properties: id: type: string description: The id. id:VendorOverViewSection. name: type: string description: The name. name:VendorOverViewSection. currency: type: string description: The currency. invoiceCost: type: number format: double description: The invoice cost. procurementCost: type: number format: double description: The procurement cost. profitCost: type: number format: double description: The profit cost. options: $ref: '#/definitions/v1OverViewOptionSection' description: The options. periodOverPeriod: $ref: '#/definitions/v1PeriodOverPeriodSection' description: The period over period. description: VendorOverViewSection resource definition. CostCalculateCostsBody: type: object properties: groupId: type: string description: 'Optional. A comma-separated list of billing internal ids. If empty, calculate for all billing groups. At the moment, for AWS, this is only valid for account type billing groups, not tag billing groups. If a tag billing group is provided, it is discarded and the calculation is done for the whole organization.' month: type: string description: Optional. The UTC month to calculate. If empty, it defaults to the previous month. Format is `yyyymm`. For example, June 2021 will be `202106`. awsOptions: $ref: '#/definitions/v1CalculateCostsRequestAwsOptions' description: Optional. Valid only for the `aws` vendor. AWS-specific options. description: Request message for the Cost.CalculateCosts rpc. v1BillingGroupSection: type: object properties: id: type: string title: The id. billing group id name: type: string title: The name. billing group name yearMonth: type: string title: 'The year-month. format: yyyymm' currency: type: string description: The currency. invoiceCost: type: number format: double description: The invoice cost. procurementCost: type: number format: double description: The procurement cost. profitCost: type: number format: double description: The profit cost. description: BillingGroupSection resource definition. awsAwsRecommendations: type: object properties: summary: $ref: '#/definitions/awsReservationRecommendationSummary' riRecommendations: type: array items: type: object $ref: '#/definitions/awsRiRecommendation' spRecommendations: type: array items: type: object $ref: '#/definitions/awsSpRecommendation' estimatedCoverage: type: array items: type: object $ref: '#/definitions/awsReservationEstimatedCoverage' apiAzureCost: type: object properties: account: type: string description: The account being queried. groupId: type: string description: The group id the account is associated with during the query. date: type: string description: For daily data, format is `yyyy-mm-dd`; for monthly, `yyyy-mm`. serviceName: type: string description: The service name, such as `Software License`, `Cognosys`, `SendGrid`, `New-Commerce ERP Software License`, etc. productName: type: string description: The product code for an Azure service, such as `Dsv4 Series Windows VM`, `CentOS 7.6`, etc. region: type: string description: The region of lineitem, if applicable. chargeType: type: string description: The charge type of lineitem, if applicable. Such as `New`, `CycleCharge`, `Prorate fees when cancel`, etc. description: type: string description: The description of lineitem, if applicable. billableQuantity: type: number format: double description: The billable quantity of lineitem, if applicable. effectiveUnitPrice: type: number format: double description: The effective unit price of lineitem, if applicable. cost: type: number format: double description: The true cost (calculated) for this lineitem. baseCurrency: type: string description: The base currency for `cost`. exchangeRate: type: number format: double description: The exchange rate used to convert `baseCurrency` to `targetCurrency`. targetCost: type: number format: double description: Converted `cost`. targetCurrency: type: string description: The currency set by `toCurrency`. timeInterval: type: string description: The time interval of lineitem, if applicable. Format is `yyyy-MM-ddThh:MM:ssZ/yyyy-mm-ddTHH:mm:ssZ` (for example 2020-09-16T00:00:00Z/2021-09-24T00:00:00Z). billingType: type: string description: The billing type of lineitem, if applicable. Such as `MARKETPLACE`, `UPFRONT`, `Refund`, `Credit` and `OTHERS`. alternateId: type: string description: The alternate ID of lineitem, if applicable. domainName: type: string description: The domain name of lineitem, if applicable. operation: type: string description: The operation of lineitem, if applicable. Such as `Cool LRS Write Operations`, `Cool LRS Data Write`, `Standard Data Transfer Out`, etc. usageType: type: string description: The usage type of lineitem, if applicable. Such as `Standard HDD Managed Disks`, `Tables`, `Blob Storage`, etc. instanceType: type: string description: The instance type of lineitem, if applicable. Such as `Gateway`, `Standard_B2s`, `Standard_D4s_v3`, etc. category: type: string description: The category of lineitem, if applicable. Such as `Software License`, `Marketplace`, `RI`, `Other`, etc. subscriptionId: type: string description: The subscription id. entitlementId: type: string description: The entitlement id. resourceGroup: type: string description: The resource group of the lineitem, if applicable. CostReadInvoiceIdsBody: type: object properties: month: type: string description: Optional. The UTC month to query. If empty, defaults to current month. Format is `yyyymm`. For example, July 2024 will be `202407`. description: Request message for the ReadInvoiceIds rpc. apiMonthlyBudget: type: object properties: yearMonth: type: string title: 'Format: yyyymm' amount: type: number format: double apiMonthOnMonthCostForecast: type: object properties: category: type: string costCurrent: type: number format: double costPrev: type: number format: double costForecast: type: number format: double ripplePayer: type: object properties: id: type: string description: The payer account id. name: type: string description: The payer account name. metadata: type: array items: type: object $ref: '#/definitions/apiKeyValue' description: The attributes (key/value pair) of the account. members: type: array items: type: object $ref: '#/definitions/blueapiApiAccount' description: List of all members under this payer. description: Payer resource definition. CostUpdateAccountBody: type: object properties: name: type: string description: Optional. description: Request message for the Cost.UpdateAccount rpc. v1ReadCostsRequestAzureOptions: type: object properties: groupByColumns: type: string description: 'Optional. A comma-separated list of columns to aggregate the data into. Valid values are `serviceName`, `productName`, `region`, `chargeType`, `description`, `billableQuantity`, `effectiveUnitPrice`, `timeInterval`, `billingType`, `alternateId`, `domainName` and `resourceGroup`. A special value of `none` is also supported, which means query by date or month per account only. For example, if you only want the services and region data, you can set this field to `serviceName,region`. Your input sequence doesn''t matter (although the sequence above is recommended) as the actual sequence is already fixed in the return data (see the definition in https://github.com/alphauslabs/blueapi/blob/main/api/azure/cost.proto), which is generic to specific, top to bottom. Invalid values are discarded. Excluded columns will be empty.' groupByMonth: type: boolean description: Optional. If set to true, return data grouped by month within the date range. If you want data that is grouped per account per month, set this to `true`. You can also use `groupByColumns` while setting this to true. noCache: type: boolean description: If true, force API to not use cached data. toCurrency: type: string description: Optional. Set to US dollars (USD) by default (AWS CUR's default currency). You can set it to the desired three-letter currency symbol (i.e. JPY, EUR, GBP), in which case, it will use the latest exchange rates provided by https://fixer.io. If you prefer a custom exchange rate, you can append the rate to the currency's three-letter symbol. For example, `JPY:110.622` for the Japanese Yen. Note that the exchange rate should be against the US dollar (USD). resourceGroup: type: string description: Optional. You can set it to a single resource group or a comma-separated list of resource groups. description: Azure-specific options for ReadCostsRequest. CostUpdateBudgetAlertsBody: type: object properties: vendor: type: string description: Required. At the moment, only `aws` is supported. accounts: type: array items: type: string description: Required. Lsit of accountId. For example, you set to ["accountId1","accountId2","accountId3"]. notification: $ref: '#/definitions/apiBudgetAlertNotification' description: Required. daily: $ref: '#/definitions/apiDailyBudgetAlert' description: Optional. dailyRate: $ref: '#/definitions/apiDailyRateIncreaseBudgetAlert' description: Optional. monthly: $ref: '#/definitions/apiMonthlyBudgetAlert' description: Optional. customPeriod: $ref: '#/definitions/apiCustomPeriodBudgetAlert' description: Optional. customMonth: $ref: '#/definitions/apiCustomMonthBudgetAlert' description: Optional. description: Request message for the UpdateBudgetAlerts rpc. v1ReadCostsRequestAwsOptionsFilters: type: object properties: andFilters: type: object additionalProperties: type: string description: 'A map of "key:value" column filters. Dependent on `groupByColumns` and/or `groupByMonth`. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical ''and'' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc. For example, if you like to filter `productCode` to return only `AmazonEC2`, set to `{"productCode":"eq:AmazonEC2"}` or `{"productCode":"AmazonEC2"}`. You can also use a regular expression like `{"productCode":"re:AmazonEC2|AmazonRDS"}`, which means return all AmazonEC2 or AmazonRDS lineitems. Or reverse regexp, such as `{"productCode":"!re:^AmazonEC2$"}`, which means return all items except `AmazonEC2`.' apiOptionsData: type: object properties: id: type: string optionsChart: type: array items: type: object $ref: '#/definitions/apiOptionsChart' v1CreateCalculatorCostModifierResponse: type: object properties: aws: type: array items: type: object $ref: '#/definitions/v1CalculatorCostModifier' azure: type: array items: type: object $ref: '#/definitions/v1CalculatorCostModifier' description: Response message for the Cost.CreateCalculatorCostModifier rpc. ListCalculatorRunningAccountsResponseAwsRunningAccount: type: object properties: month: type: string description: The queried month. Format is yyyy-mm. account: type: string description: The AWS account that is actively processing. date: type: string description: The target date the account is processing for. started: type: string description: The timestamp when the calculation has started. CostReadAccountOriginalResourcesBody: type: object description: Request message for the ReadAccountOriginalResources rpc. v1ReadInvoiceCostsRequest: type: object properties: startTime: type: string description: 'Optional. The UTC date to start streaming data from. If not set, the first day of the current month will be used. Format: `yyyymmdd`. The oldest supported date is `20240101`.' endTime: type: string description: 'Optional. The UTC date to end the streaming data. If not set, current date will be used. Format: `yyyymmdd`.' toCurrency: type: string description: Optional. Set to US dollars (USD) by default (AWS CUR's default currency). You can set it to the desired three-letter currency symbol (i.e. JPY, EUR, GBP), in which case, it will use the latest exchange rates provided by https://fixer.io. If you prefer a custom exchange rate, you can append the rate to the currency's three-letter symbol. For example, `JPY:110.622` for the Japanese Yen. Note that the exchange rate should be against the US dollar (USD). description: Request message for the ReadInvoiceCosts rpc. v1ExportReportRequest: type: object properties: month: type: string description: Required. Billing month in YYYY-MM format. vendor: type: string description: 'Optional. Cloud vendor. Accepted values: "aws", "gcp", "azure". If empty, defaults to "aws" for backward compatibility.' notificationChannelIds: type: array items: type: string description: 'Optional. Notification channel IDs to deliver the report. If empty, the MSP default notification channel configured in DynamoDB is used.' awsOptions: $ref: '#/definitions/v1AwsRispExportOptions' description: 'Optional. Valid only for the `aws` vendor. AWS RI/SP export options. Future vendor-specific options follow the same pattern (e.g. gcp_options, azure_options).' description: Request message for ExportReport. blueapiApiAccount: type: object properties: vendor: type: string title: The vendor id: type: string description: The account id. name: type: string description: The account name. orgId: type: string description: The parent organization id. billingInternalId: type: string description: The parent billing internal id. metadata: type: array items: type: object $ref: '#/definitions/apiKeyValue' description: The attributes (key/value pair) of the account. CostCreateAccountBudgetBody: type: object properties: data: $ref: '#/definitions/blueapiApiBudget' title: Request message for CreateAccountBudget v1BudgetAlerts: type: object properties: id: type: string description: Budget alert Id. vendor: type: string description: Vnedor. At the moment, only `aws` is supported. accounts: type: array items: type: object $ref: '#/definitions/blueapiApiAccount' description: Lsit of accountId. notification: $ref: '#/definitions/apiBudgetAlertNotificationDetail' description: Notification setting for budget alert. daily: $ref: '#/definitions/apiDailyBudgetAlert' description: Daily setting for budget alert. dailyRate: $ref: '#/definitions/apiDailyRateIncreaseBudgetAlert' description: Daily rate increase setting for budget alert. monthly: $ref: '#/definitions/apiMonthlyBudgetAlert' description: Monthly setting for budget alert. customPeriod: $ref: '#/definitions/apiCustomPeriodBudgetAlert' description: Custom Period setting for budget alert. customMonth: $ref: '#/definitions/apiCustomMonthBudgetAlert' description: Custom Month setting for budget alert. description: Request message for the BudgetAlerts rpc. v1GetPayerProformaReportsResponse: type: object properties: reports: type: array items: type: object $ref: '#/definitions/v1ProformaReports' description: Response message for Cost.GetPayerProformaReports rpc. v1ReadInvoiceIdsResponse: type: object properties: id: type: string title: The invoice id description: Response message for the ReadInvoiceIds rpc. v1ListCostFiltersResponse: type: object properties: costFilters: type: array items: type: object $ref: '#/definitions/costV1ListCostFilters' description: Response message for the ListCostFilters rpc. v1CalculatorCostModifierAwsOptionsModifier: type: object properties: formula: type: string description: "Required. Our modifier formula. The final result should be a number. Integers are converted to floating points.\n\nSupported operators are `*`, `/`, `+`, `-`, and `%`. You can use parenthesis `()` to control precedence. Additional supported operators include `==`, `!=`, `!`, `>`, `<`, `>=`, `<=`, and the ternary operator `? :`, or `cond ? expr1 : expr2`.\nExamples:\n `1 + 2 * 3` = 7\n `(1 + 2) * 3` = 9\n `7.8 % 5` = 2.8\n `true ? 1.1 : 2.2` = 1.1\n `1 > 2 ? 1.1 : 2.2` = 2.2\n\nYou can use the `cost` variable to reference the original lineitem cost. For example, if you want to add $10 to the cost, you can use the formula: `cost + 10`. For trueunblended-type billing groups, `cost` refers to the calculated trueunblended cost.\n\nThe `usage` variable refers to the usage amount of a lineitem. For example, if you want to use a different rate of $1.5, you can use the formula: `usage * 1.5`.\n\nThe `unblendedcost` variable refers to the lineitem's unblended cost as indicated in the CUR. Note that the `unblendedcost` variable is different than the `cost` variable, although there are cases where the two are equal.\n\nThe `ondemandrate` variable refers to the lineitem's public ondemand rate as indicated in the CUR.\n\nYou can check out this [guide](https://alphauslabs.github.io/docs/guides/aws-cost-mods/) for more examples." descriptionModifier: $ref: '#/definitions/v1CalculatorCostModifierAwsOptionsModifierDescriptionModifier' description: Optional. A simple description modifier. v1GetCostAttributesResponse: type: object properties: items: type: array items: type: object $ref: '#/definitions/costV1CostAttribute' description: The cost attributes. description: Response message for the Cost.GetCostAttributes rpc. apiDailyBudgetAlert: type: object properties: value: type: number format: double title: Required. threshold in budget alerts enabled: type: boolean description: "Required. notification enable/disable \nIf disabled, no alert is sent." description: DailyBudgetAlert resource definition. v1CheckAccountsResponse: type: object properties: exists: type: object additionalProperties: type: boolean description: Map of accountIds to boolean values indicating if the account exists. rpcStatus: type: object properties: code: type: integer format: int32 description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. message: type: string description: 'A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.' details: type: array items: type: object $ref: '#/definitions/protobufAny' description: 'A list of messages that carry the error details. There is a common set of message types for APIs to use.' description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).' CostReadNonTagCostsBody: type: object properties: billingInternalId: type: string description: Required. The billing internal id to stream. startTime: type: string description: 'Optional. Timestamp to start streaming data from. If not set, the first day of the current month will be used. Format: `yyyymmdd`.' endTime: type: string description: 'Optional. Timestamp to end the streaming data. If not set, current date will be used. Format: `yyyymmdd`.' groupByMonths: type: boolean description: Optional. Group services and costs by months in the range of `startTime` and `endTime`. If not set, daily data will be returned. description: Request message for the Cost.ReadNonTagCosts rpc. v1ImportCurFilesRequest: type: object properties: month: type: string description: Optional. The UTC month to import. If empty, it defaults to the current month. Format is `yyyymm`. For example, June 2021 will be `202106`. filter: type: string description: Optional. A comma-separated list of management accounts to import. If empty, all CURs associated with all your management accounts will be imported. description: Request message for the Cost.ImportCurFiles rpc. apiNotificationChannel: type: object properties: id: type: string enabled: type: boolean name: type: string type: type: string email: $ref: '#/definitions/apiEmailChannel' slack: $ref: '#/definitions/apiSlackChannel' msteams: $ref: '#/definitions/apiMSTeamsChannel' product: type: string apiWaveNotification: type: object properties: id: type: string title: 'notification id `email` / `slack`' destination: type: string title: destination email address /slack webhook url enabled: type: boolean title: notification enable/disable description: Notification resource definition. blueapiApiBudget: type: object properties: id: type: string fiscalYear: type: string title: 'Format: yyyy' monthlyBudget: type: array items: type: object $ref: '#/definitions/apiMonthlyBudget' CostCreateCalculatorCostModifierBody: type: object properties: awsOptions: $ref: '#/definitions/v1CalculatorCostModifierAwsOptions' description: Required if `{vendor}` is `aws`. AWS-specific options. azureOptions: $ref: '#/definitions/v1CalculatorCostModifierAzureOptions' description: Required if `{vendor}` is `azure`. Azure-specific options. description: Request message for the Cost.CreateCalculatorCostModifier rpc. v1CalculationsSchedule: type: object properties: id: type: string description: The schedule id. schedule: type: string description: The desired schedule in UTC, using the [cron](https://man7.org/linux/man-pages/man5/crontab.5.html) format. scheduleMacro: type: string description: The macro that augments `schedule`. targetMonth: type: string description: The target month for the calculation. Empty means previous month (default). nextRun: type: string description: The schedule for the next run in UTC. notificationChannel: type: string description: The channel id to use for notifications. force: type: boolean description: If set to true, force calculations to proceed regardless of run status. dryRun: type: boolean description: If set to true, skips the actual calculations. status: type: string description: The current state of this schedule. Normally set to "OK", or empty if no issues. Otherwise, will contain an error string. awsAwsCostBreakeven: type: object properties: arn: type: string startDate: type: string endDate: type: string breakEvenPoint: type: string upperRatio: type: number format: double lowerRatio: type: number format: double chartData: type: array items: type: object $ref: '#/definitions/apiAwsChartData' CostCreateAccountBody: type: object properties: id: type: string description: Required. The account id to register. name: type: string description: Optional. If empty, set to the value of `id`. parent: type: string description: Optional. The parent `billingInternalId` of the billing group to which this account will belong to. awsOptions: $ref: '#/definitions/v1CreateAccountRequestAwsOptions' description: Required for the `aws` vendor. AWS-specific options. gcpOptions: $ref: '#/definitions/v1CreateAccountRequestGcpOptions' description: Required for the `gcp` vendor. GCP-specific options. description: Request message for the Cost.CreateAccount rpc. CostGetCostReductionBody: type: object properties: reductionDisplay: type: string title: 'Required. Valid values: ''all'', ''reservation'', ''savingsplan''' includeDetails: type: boolean description: 'Optional. If set to "true", details of the RI or SP list is returned. Default: false.' fromDate: type: string description: 'Optional. The start date of the displayed data. If not set, the first day of the current month will be used. Format: yyyy-mm-dd.' toDate: type: string description: 'Optional. The end date of the displayed data. If not set, current date will be used. Format: yyyy-mm-dd.' payerId: type: string description: Optional. Payer Id. billingInternalId: type: string description: Optional. Billing group Id. groupId: type: string description: Optional. Account group Id. costGroupId: type: string description: Optional. Cost Group Id used in octo. accounts: type: array items: type: string description: Optional. List of Account Ids. services: type: array items: type: string description: Optional. List of services. title: Request message for GetCostReduction v1ReadBudgetAlertsRequest: type: object properties: fieldMask: type: string description: Optional. description: Request message for the ReadBudgetAlerts rpc. CostCreateCostFiltersBody: type: object properties: filterName: type: string title: Required. Filter Name. Specify characters between 1 ~ 100 groupId: type: string description: 'Required. If set, reads the usage-based cost details of this group. Only valid for Ripple users. Implied as the parent billing group for Wave(Pro) users. For AWS Ripple, only billing internal ids are supported at the moment. Overriden when `accountId` is set to anything other than `*`. Set this and `accountId` to `*` to read the usage-based cost details of the whole organization. Optional for AWS Wave(Pro).' accountId: type: string description: 'Required. You can set it to a single account or a comma-separated list of accounts. For AWS, setting this will override `groupId`. Set this and `groupId` to `*` to read the usage-based cost details of the whole organization.' awsOptions: $ref: '#/definitions/v1ReadCostsRequestAwsOptions' description: Required. Valid only for the `aws` vendor. AWS-specific options. description: Request message for the CreateCostFilters rpc. apiCustomMonthBudgetAlert: type: object properties: value: type: number format: double title: Required. threshold in budget alerts enabled: type: boolean description: "Required. notification enable/disable \nIf disabled, no alert is sent." startDay: type: string title: Required. start day in budget alerts description: CustomMonthBudgetAlert resource definition. v1GetRecommendationsResponse: type: object properties: orgId: type: string awsRecommendations: $ref: '#/definitions/awsAwsRecommendations' title: Request message for GetRecommendations apiMonthlyCostForecast: type: object properties: date: type: string costActual: type: number format: double costForecast: type: number format: double budget: type: number format: double upperBound: type: number format: double lowerBound: type: number format: double AwsRispExportOptionsColumns: type: object properties: values: type: array items: type: string description: Per-report column filter container. v1CreateBudgetAlertsRequest: type: object properties: vendor: type: string description: Required. At the moment, only `aws` is supported. accounts: type: array items: type: string description: Required. Lsit of accountId. For example, you set to ["accountId1","accountId2","accountId3"]. notification: $ref: '#/definitions/apiBudgetAlertNotification' description: Required. daily: $ref: '#/definitions/apiDailyBudgetAlert' description: Optional. dailyRate: $ref: '#/definitions/apiDailyRateIncreaseBudgetAlert' description: Optional. monthly: $ref: '#/definitions/apiMonthlyBudgetAlert' description: Optional. customPeriod: $ref: '#/definitions/apiCustomPeriodBudgetAlert' description: Optional. customMonth: $ref: '#/definitions/apiCustomMonthBudgetAlert' description: Optional. description: Request message for the CreateBudgetAlerts rpc. v1ReadInvoiceGroupCostsRequest: type: object properties: startTime: type: string description: 'Optional. The UTC date to start streaming data from. If not set, the first day of the current month will be used. Format: `yyyymmdd`. The oldest supported date is `20240101`.' endTime: type: string description: 'Optional. The UTC date to end the streaming data. If not set, current date will be used. Format: `yyyymmdd`.' toCurrency: type: string description: Optional. Set to US dollars (USD) by default (AWS CUR's default currency). You can set it to the desired three-letter currency symbol (i.e. JPY, EUR, GBP), in which case, it will use the latest exchange rates provided by https://fixer.io. If you prefer a custom exchange rate, you can append the rate to the currency's three-letter symbol. For example, `JPY:110.622` for the Japanese Yen. Note that the exchange rate should be against the US dollar (USD). limit: type: integer format: int32 description: Optional. Number of acquisitions. default:100. description: Request message for the ReadInvoiceGroupCosts rpc. CostGetCoverageOptionsBody: type: object properties: period: type: string description: 'Required. Available values: day, hour.' fromDate: type: string description: 'Optional. The start date of the displayed data. If not set, the first day of the current month will be used. Format: yyyy-mm-dd.' toDate: type: string description: 'Optional. The end date of the displayed data. If not set, current date will be used. Format: yyyy-mm-dd.' payerId: type: string description: Optional. Payer Id. billingInternalId: type: string description: Optional. Billing group Id. groupId: type: string description: Optional. Account group Id. costGroupId: type: string title: Optional. Cost Group Id accounts: type: array items: type: string description: Optional. List of Account Ids. services: type: array items: type: string description: Optional. List of services. currency: type: string description: Optional. If not set, default value is `USD`. title: Request message for GetCoverageOptions v1ListCalculationPrerequisitesResponse: type: object properties: prerequisites: type: array items: type: object $ref: '#/definitions/v1CalculationPrerequisite' description: Repeated list of calculation prerequisites. description: Response message for the ListCalculationPrerequisites rpc. v1CalculatorCostModifierAzureOptionsModifier: type: object properties: formula: type: string description: "Required. Our modifier formula. The final result should be a number. Integers are converted to floating points.\n\nSupported operators are `*`, `/`, `+`, `-`, and `%`. You can use parenthesis `()` to control precedence. Additional supported operators include `==`, `!=`, `!`, `>`, `<`, `>=`, `<=`, and the ternary operator `? :`, or `cond ? expr1 : expr2`.\nExamples:\n `1 + 2 * 3` = 7\n `(1 + 2) * 3` = 9\n `7.8 % 5` = 2.8\n `true ? 1.1 : 2.2` = 1.1\n `1 > 2 ? 1.1 : 2.2` = 2.2\n\nYou can use the `cost` variable to reference the original lineitem cost. For example, if you want to add $10 to the cost, you can use the formula: `cost + 10`. For trueunblended-type billing groups, `cost` refers to the calculated trueunblended cost.\n\nThe `quantity` variable refers to the billable quantity amount of a lineitem. For example, if you want to use a different rate of $1.5, you can use the formula: `quantity * 1.5`.\n\nThe `unitPrice` variable refers to the lineitem's effective unit price as indicated in the Azure invoice.\n\nYou can check out this [guide](https://alphauslabs.github.io/docs/guides/aws-cost-mods/) for more examples." descriptionModifier: $ref: '#/definitions/v1CalculatorCostModifierAzureOptionsModifierDescriptionModifier' description: Optional. A simple description modifier. apiForecastData: type: object properties: accountId: type: string productCategory: type: string productCode: type: string frequency: type: string title: daily, monthly date: type: string historicalCost: type: number format: double forecastedCost: type: number format: double upperBound: type: number format: double lowerBound: type: number format: double CostCreateCalculationsScheduleBody: type: object properties: schedule: type: string description: 'Required. The desired schedule in UTC, using the unix-cron string format `* * * * *` which is a set of five fields in a line using the order: `minute hour day-of-the-month month day-of-the-week`. * `minute` values can be `0-59` * `hour` values can be `0-23` * `day-of-the-month` values can be `1-31` * `month` values can be `1-12`, or `JAN-DEC` * `day-of-the-week` values can be `0-6`, or `SUN-SAT`, or `7` for Sunday Special characters: * A field can contain an asterisk (*), which always stands for "first-last". * Ranges are two numbers separated with a hyphen (-) and the specified range is inclusive. * Following a range with `/NUMBER` specifies skips of the number''s value through the range. For example, both `0-23/2` and `*/2` can be used in the `hour` field to specify execution every two hours. * A list is a set of numbers (or ranges) separated by commas (,). For example, `1,2,5,6` in the `month` field specifies an execution on the first, second, fifth, and sixth days of the month.' scheduleMacro: type: string description: 'Optional. Non-standard macro(s) that augment(s) `schedule`''s behavior. The only supported value for now is `@endofmonth`. `@endofmonth` - If set, the backend scheduler will only use the `minute` and `hour` part of `schedule`''s value and set the days to 28th, 29th, 30th, and 31st but the runner will do the filtering for the actual end of the trigger month. Note that this is different than setting `schedule` to, say, `0 0 28-31 * *`.' targetMonth: type: string description: 'Optional. The desired month to calculate. If not set, defaults to previous month. The only supported value for now is `@current`. `@current` - If set, calculate for the month the schedule is triggered (or current month).' notificationChannel: type: string description: Optional. The channel id to use for notifications. At the moment, only email-type notification channels are supported. If not set, your default channel will be used. And if non-existent, an email-type notification channel will be created using your primary email address. force: type: boolean description: Optional. Not used at the moment. dryRun: type: boolean description: Optional. If set to true, skips the actual calculations. Useful as test, or reminder. description: Request message for the Cost.CreateCalculationsSchedule rpc. CostRegisterPayerAccountBody: type: object properties: id: type: string description: Required. The Payer/Management account Id. name: type: string description: Optional. Preferred account name, defaults to id if not provided. curType: type: string description: 'Optional. Valid values are `legacy` and `2.0` for now. Defaults to `legacy` if not provided. Only applicable if vendor is set to `aws`. Do not provide if `gcp` or `azure`.' description: Request message for the RegisterPayerAccountRequest rpc. v1CreateAccountBudgetResponse: type: object properties: budgetId: type: string title: Budget Id title: Response message for CreateAccountBudget apiBudgetAlertNotification: type: object properties: channels: type: array items: type: string description: Required. List of channelId. For example, you set to ["channelId1","channelId2","channelId3"]. enabled: type: boolean description: "Required. notification enable/disable \nIf disabled, no alert is sent." description: BudgetAlertNotification resource definition. v1CalculatorCostModifierAzureOptionsQualifier: type: object properties: and: type: object additionalProperties: type: string description: 'A map of "key:value" attribute filters. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical ''and'' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc. For example, if you like your modifiers to apply to `productId:CFQ7TTC0LFLX` (Microsoft 365 E3), set to `{"productId":"eq:CFQ7TTC0LFLX"}` or `{"productId":"CFQ7TTC0LFLX"}`. You can also use a regular expression like `{"productId":"re:CFQ7TTC0LFLX|DZH318Z0BQ4L"}`, which means apply to all `Microsoft 365 E3` or `Virtual Machines Ev3 Series` lineitems. Or reverse regexp, such as `{"productId":"!re:^CFQ7TTC0LFLX$"}`, which means apply to all items except `Microsoft 365 E3`. Valid keys are `productId`, `productName`, `skuId`, `skuName`, `description`, `category` and `domainName`.' v1PeriodOverPeriodOptionSection: type: object properties: sppDiscountCost: type: number format: double description: The spp discount cost. sppDiscountCostPoP: type: number format: double title: 'The spp discount cost Period-over-Period. Represents a comparison of costs over a specified period of time. currently, supported `Month-over-Month`' edpDiscountCost: type: number format: double description: The edp discount cost. edpDiscountCostPoP: type: number format: double title: 'The edp discount cost Period-over-Period. Represents a comparison of costs over a specified period of time. currently, supported `Month-over-Month`' description: PeriodOverPeriodOptionSection resource definition. v1ReadTagCostsRequestAwsOptionsTagFilters: type: object properties: andFilters: type: object additionalProperties: type: string description: 'A map of "key:value" tag filters. The key indicates the tag key while the value is the filter tag value which can be prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical ''and'' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc. For example, if you want to query lineitems with the tag `project:MY_PROJECT`, set to `{"project":"MY_PROJECT"}`. You can also use regular expressions for tag values, such as `{"name":"re:[A-Za-z0-9]*"}`.' awsAwsCostReductions: type: object properties: summary: $ref: '#/definitions/awsCostReductionSummary' riCostReductions: type: array items: type: object $ref: '#/definitions/awsRiCostReduction' spCostReductions: type: array items: type: object $ref: '#/definitions/awsSpCostReduction' v1ReadCostsRequestGcpOptionsFilters: type: object properties: andFilters: type: object additionalProperties: type: string description: 'A map of "key:value" column filters. Dependent on `groupByColumns` and/or `groupByMonth`. The key indicates the column name while the value is the filter value prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical ''and'' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc. For example, if you like to filter `service` to return only `Compute Engine`, set to `{"service":"eq:Compute Engine"}` or `{"service":"Compute Engine"}`. You can also use a regular expression like `{"service":"re:Compute Engine|Cloud Storage"}`, which means return all Compute Engine or Cloud Storage lineitems. Or reverse regexp, such as `{"service":"!re:^Cloud Engine$"}`, which means return all items except `Cloud Engine`.' awsReservationRecommendationSummary: type: object properties: totalMonthlyOnDemandCost: type: number format: double totalEstimatedMonthlySavings: type: number format: double totalMonthlyDiscountedCost: type: number format: double reductionRate: type: number format: double totalUpfrontCost: type: number format: double totalRecurringMonthlyCost: type: number format: double protosOperation: type: object properties: name: type: string description: The server-assigned name. metadata: $ref: '#/definitions/protobufAny' description: 'Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.' done: type: boolean description: 'If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.' error: $ref: '#/definitions/rpcStatus' description: The error result of the operation in case of failure or cancellation. response: $ref: '#/definitions/protobufAny' description: 'The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.' description: 'This resource represents a long-running operation that is the result of a network API call.' apiAccountOriginalResource: type: object properties: id: type: string title: 'The id is associated with CostUsage or BillingReport. Vendor positioning is AWS: `lineItem/UsageAccountId` GoogleCloud: `projectId` Azure: `azure customer id`' name: type: string description: 'The name is associated with CostUsage or BillingReport. Basically the same as id.' payerId: type: string description: 'The payerId associated with CostUsage or BillingReport. It will be the organization Id associated with the id.' vendor: type: string title: The vendor. supported by `aws`,`gcp`,`azure` productRegistered: type: boolean description: The ProductRegistered indicates whether it is linked to a product(Ripple or Wave(Pro)). metadata: type: array items: type: object $ref: '#/definitions/apiKeyValueMap' description: The attributes (key/value pair) of the account original resource. description: AccountOriginalResource resource definition. v1AwsRispExportOptions: type: object properties: includeExpired: type: boolean description: 'Optional. Include expired RIs/SPs in the results. Default: false.' language: type: string description: 'Optional. CSV header language: "en" or "ja". If empty, defaults to the MSP or login user''s language.' queries: type: array items: type: string description: 'Required. Report queries to include in the export. Must contain at least 1 value. Valid values: "ri_summary", "sp_summary", "ri_usageaccount", "sp_usageaccount".' columns: type: array items: type: string description: 'Optional. Global column filter applied to all reports. Superseded per-report by columns_by_query if that key is present.' columnsByQuery: type: object additionalProperties: $ref: '#/definitions/AwsRispExportOptionsColumns' description: 'Optional. Per-report column overrides. Keys must be valid query names (ri_summary, sp_summary, ri_usageaccount, sp_usageaccount).' description: AWS RI/SP export options for ExportReport. required: - queries costV1ListCostFilters: type: object properties: filterId: type: string description: Required. Filter Id. filterName: type: string description: Required. Filter Name. vendor: type: string description: Required. Vendor. groupId: type: string description: 'Optional. If set, reads the usage-based cost details of this group. Only valid for Ripple users. Implied as the parent billing group for Wave(Pro) users. For AWS Ripple, only billing internal ids are supported at the moment. Overriden when `accountId` is set to anything other than `*`. Set this and `accountId` to `*` to read the usage-based cost details of the whole organization. Optional for AWS Wave(Pro).' accountId: type: string description: 'Optional. You can set it to a single account or a comma-separated list of accounts. For AWS, setting this will override `groupId`. Set this and `groupId` to `*` to read the usage-based cost details of the whole organization.' awsOptions: $ref: '#/definitions/v1ReadCostsRequestAwsOptions' description: Optional. Valid only for the `aws` vendor. AWS-specific options. description: Response message for the ListCostFilters rpc. v1ListCalculationsSchedulesResponse: type: object properties: schedules: type: array items: type: object $ref: '#/definitions/v1CalculationsSchedule' description: Response message for the Cost.ListCalculationsSchedules rpc. apiUtilizationData: type: object properties: id: type: string chartData: type: array items: type: object $ref: '#/definitions/blueapiApiChartData' apiWaveBudgetAlert: type: object properties: id: type: string description: account id. readOnly: true notification: type: array items: type: object $ref: '#/definitions/apiWaveNotification' description: notification setting. budget: type: array items: type: object $ref: '#/definitions/apiWaveBudget' description: budget setting. description: Budget resource definition. CostCheckAccountsBelongToMspBody: type: object properties: accountIds: type: array items: type: string description: Required. A comma-separated list of account ids. For example, you set to ["accountId1","accountId2","accountId3"]. v1TotalSection: type: object properties: id: type: string description: The id. id:TotalSection. name: type: string description: The name. name:TotalSection. currency: type: string description: The currency. yearMonth: type: string title: 'The year-month. format: yyyymm' invoiceCost: type: number format: double description: The invoice cost. procurementCost: type: number format: double description: The procurement cost. profitCost: type: number format: double description: The profit cost. totalDeital: $ref: '#/definitions/v1TotalDetailSection' description: The total detail. thirdProfitItem: type: array items: type: object $ref: '#/definitions/v1ThirdProfitItemSection' description: The third profit item. awsSection: $ref: '#/definitions/v1VendorTotalSection' description: The aws section. azureSection: $ref: '#/definitions/v1VendorTotalSection' description: The azure section. gcpSection: $ref: '#/definitions/v1VendorTotalSection' description: The gcp section. description: TotalSection resource definition. awsReservationEstimatedCoverage: type: object properties: accountId: type: string productCode: type: string instanceFamily: type: string riUsageCoverage: type: number format: double ec2SpUsageCoverage: type: number format: double computeSpOnDemandCost: type: number format: double computeSpDiscountedCost: type: number format: double apiSlackChannel: type: object properties: webhookUrl: type: string channelId: type: string channel: type: string configurationUrl: type: string code: type: string redirectUri: type: string apiAwsChartData: type: object properties: date: type: string actualOndemand: type: number format: double actualCost: type: number format: double utilization: type: number format: double v1GetExportRISPRequest: type: object properties: type: type: string description: Required. For AWS, "ri" or "sp". language: type: string description: "Usually the language of the user information is used, \nbut it may be a different language due to cahce.\nIn that case, you can use this option to change the language of CSV." includeExpired: type: boolean title: Required. Include expired v1ReadAdjustmentsRequestAwsOptions: type: object properties: toCurrency: type: string description: Optional. Set to US dollars (USD) by default (AWS CUR's default currency). You can set it to the desired three-letter currency symbol (i.e. JPY, EUR, GBP), in which case, it will use the latest exchange rates provided by https://fixer.io. If you prefer a custom exchange rate, you can append the rate to the currency's three-letter symbol. For example, `JPY:110.622` for the Japanese Yen. Note that the exchange rate should be against the US dollar (USD). v1CalculatorCostModifierAzureOptions: type: object properties: groupId: type: string description: Optional. The group to which the modifier is applied. Accepts billing internal ids. A comma-separated list of billing internal ids is also valid. payerId: type: string description: Optional. The payer id (a.k.a Azure billing id) to which the modifier is applied. A comma-separated list of payer ids is also valid. customerId: type: string description: Optional. The Azure customer id to which the modifier is applied. A comma-separated list of customers is also valid. subscriptionId: type: string description: Optional. The Azure subscription id to which the modifier is applied. A comma-separated list of subscriptions is also valid. entitlementId: type: string description: Optional. The Azure entitlement id to which the modifier is applied. A comma-separated list of entitlements is also valid. qualifiers: type: array items: type: object $ref: '#/definitions/v1CalculatorCostModifierAzureOptionsQualifier' description: Optional. Conditional qualifiers to further filter the modifier targets. Multiple qualifiers use the logical `or` operator; `qualifiers[0] || qualifiers[1] || qualifiers[n]`. modifier: $ref: '#/definitions/v1CalculatorCostModifierAzureOptionsModifier' after: type: string description: Optional. Specifies the modifier id in which this modifier will be applied after. For example, if you have another modifier `mod1` and you create a new modifier with `after` set to `mod1`, the calculator will apply `mod1` first, then this modifier. If `after` is not set, the application sequence for multiple overlapping modifiers will be by update timestamp, newest to oldest. description: Azure-specific options definition. v1GetAccountBudgetResponse: type: object properties: data: $ref: '#/definitions/blueapiApiBudget' title: Response message for GetAccountBudget v1UpdateCostFiltersResponse: type: object properties: filterId: type: string description: Required. Filter Id. description: Response message for the UpdateCostFilters rpc. v1PeriodOverPeriodSection: type: object properties: isDataComplete: type: boolean title: returns true if the previous data range is available dateRange: type: string title: a formatted date of the previous data range it was compared invoiceCost: type: number format: double title: The invoice cost procurementCost: type: number format: double title: The procurement cost profitCost: type: number format: double title: The profit cost invoiceCostPoP: type: number format: double title: 'The invoice cost Period-over-Period. Represents a comparison of costs over a specified period of time. currently, supported `Month-over-Month`' procurementCostPoP: type: number format: double title: 'The procurement cost Period-over-Period. Represents a comparison of costs over a specified period of time. currently, supported `Month-over-Month`' profitCostPoP: type: number format: double title: 'The profit cost Period-over-Period. Represents a comparison of costs over a specified period of time. currently, supported `Month-over-Month`' options: $ref: '#/definitions/v1PeriodOverPeriodOptionSection' description: The options cost Period-over-Period. description: PeriodOverPeriodSection resource definition. awsAdjustmentsTypeList: type: object properties: types: type: array items: type: string v1GetMonthToDateCostForecastResponse: type: object properties: id: type: string budget: type: number format: double data: type: array items: type: object $ref: '#/definitions/apiMonthToDateCostForecast' timestamp: type: string title: Response message for GetMonthToDateCostForecast v1GetCoverageOptionsResponse: type: object properties: orgId: type: string optionsData: type: array items: type: object $ref: '#/definitions/apiOptionsData' title: Response message for GetCoverageOptions CostUpdatePayerAccountBody: type: object properties: name: type: string description: Optional. Preferred account name, defaults to id if not provided. curType: type: string description: 'Optional. Valid values are `legacy` and `2.0` for now. Defaults to `legacy` if not provided. Only applicable if vendor is set to `aws`. Do not provide if `gcp` or `azure`.' v1GetUtilizationResponse: type: object properties: orgId: type: string utilizationData: type: array items: type: object $ref: '#/definitions/apiUtilizationData' title: Response message for GetUtilization v1ReadCostsRequestAwsOptions: type: object properties: groupByColumns: type: string description: 'Optional. A comma-separated list of columns to aggregate the data into. Valid values are `productCode`, `serviceCode`, `region`, `zone`, `usageType`, `instanceType`, `operation`, `invoiceId`, `description`, and `resourceId`. A special value of `none` is also supported, which means query by date or month per account only. For example, if you only want the services and region data, you can set this field to `productCode,region`. Your input sequence doesn''t matter (although the sequence above is recommended) as the actual sequence is already fixed in the return data (see the definition in https://github.com/alphauslabs/blueapi/blob/main/api/aws/cost.proto), which is generic to specific, top to bottom. Invalid values are discarded. Excluded columns will be empty.' groupByMonth: type: boolean description: Optional. If set to true, return data grouped by month within the date range. If you want data that is grouped per account per month, set this to `true`, then set `groupByColumns` to `none`. You can also use `groupByColumns` while setting this to true. groupAccounts: type: boolean description: Optional. If set to true, group all input accounts into one. groupByTagKey: type: string description: Optional. Required if groupByColumn is set to tag. filters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestAwsOptionsFilters' description: Optional. A list of filtering options. See [ReadCostsRequestAwsOptionsFilters] for more information on each filter item. Multiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc. tagFilters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestAwsOptionsTagFilters' description: Optional. A list of filtering options specific for tags. Multiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc. Discarded when `groupByColumns` field is set or if `groupByMonth` is true. includeTags: type: boolean title: Optional. If set to true, stream will include resource tags. Discarded when `groupByColumns` field is set to `none`. `IncludeTags` is set to `false` if `groupByColumns` includes `tags` and `GroupByTagKey` has a value includeCostCategories: type: boolean description: Optional. If set to true, stream will include resource cost category information. Discarded when `groupByColumns` field is set to `none`. toCurrency: type: string description: Optional. Set to US dollars (USD) by default (AWS CUR's default currency). You can set it to the desired three-letter currency symbol (i.e. JPY, EUR, GBP), in which case, it will use the latest exchange rates provided by https://fixer.io. If you prefer a custom exchange rate, you can append the rate to the currency's three-letter symbol. For example, `JPY:110.622` for the Japanese Yen. Note that the exchange rate should be against the US dollar (USD). forceLatest: type: boolean description: 'Optional. If set to true, always get the up-to-date calculation results. This data isn''t necessarily in-sync with your invoice data as AWS could still have updated your CUR files even after you created your invoices. By default, returned data are those that are always in-sync with your invoices. This field is discarded for Wave(Pro) users. You will always get the latest data that is in-sync with your invoices.' noCache: type: boolean description: If true, force API to not use cached data. includeAdjustments: type: boolean description: 'WORK-IN-PROGRESS: Optional. If set to true, include adjustment entries in the output. Adjustments include fees, discounts, credits, etc. The output here is the same as the ReadAdjustments API.' description: AWS-specific options for ReadCostsRequest. v1CalculatorCostModifierAwsOptions: type: object properties: accountId: type: string description: Optional. The account to which the modifier is applied. A comma-separated list of accounts is also valid. groupId: type: string description: Optional. The group to which the modifier is applied. Accepts billing internal ids. A comma-separated list of billing internal ids is also valid. payerId: type: string description: Optional. The payer id to which the modifier is applied. A comma-separated list of payer ids is also valid. qualifiers: type: array items: type: object $ref: '#/definitions/v1CalculatorCostModifierAwsOptionsQualifier' description: Optional. Conditional qualifiers to further filter the modifier targets. Multiple qualifiers use the logical `or` operator; `qualifiers[0] || qualifiers[1] || qualifiers[n]`. modifier: $ref: '#/definitions/v1CalculatorCostModifierAwsOptionsModifier' after: type: string description: Optional. Specifies the modifier id in which this modifier will be applied after. For example, if you have another modifier `mod1` and you create a new modifier with `after` set to `mod1`, the calculator will apply `mod1` first, then this modifier. If `after` is not set, the application sequence for multiple overlapping modifiers will be by update timestamp, newest to oldest. createNewRow: type: boolean description: Optional. Default to false. If set to true, the modifier will create a new row in the table with similar data that satisfies the qualifier the only differences is it contains the amount to be subtracted or to be added. If set to false, the modifier will update the cost directly. description: AWS-specific options definition. CostReadAdjustmentsBody: type: object properties: groupId: type: string description: Optional. At the moment, only billing internal ids are supported. If set, reads the non-usage-based adjustment details of this group. Valid only if `accountId` is not set. If both `groupId` and `accountId` are not set, reads the adjustment details of the whole organization. Only valid for Ripple users. Implied (or discarded) for Wave(Pro) users. accountId: type: string description: Optional. If set, reads the non-usaged-based adjustment details of this account. Also invalidates the `groupId` value even if set. If both `groupId` and `accountId` are not set, reads the adjustment details of the whole organization. startTime: type: string description: 'Optional. The UTC date to start streaming data from. If not set, the first day of the current month will be used. Format: `yyyymmdd`.' endTime: type: string description: 'Optional. The UTC date to end the streaming data. If not set, current date will be used. Format: `yyyymmdd`.' awsOptions: $ref: '#/definitions/v1ReadAdjustmentsRequestAwsOptions' description: Optional. Valid only for the `aws` vendor. AWS-specific options. description: Request message for the Cost.ReadAdjustments rpc. costV1CostAttribute: type: object properties: vendor: type: string category: type: string data: type: array items: type: string blueapiCostV1CostItem: type: object properties: aws: $ref: '#/definitions/apiAwsCost' gcp: $ref: '#/definitions/apiGcpCost' azure: $ref: '#/definitions/apiAzureCost' description: Response message wrapper for cloud costs. awsRiCostReduction: type: object properties: id: type: string arn: type: string customerId: type: string customerName: type: string billingInternalId: type: string billingGroupId: type: string billingGroupName: type: string destCustomerId: type: string start: type: string end: type: string service: type: string instanceType: type: string modificationStatus: type: string number: type: string format: int64 offerClass: type: string deploymentOption: type: string paidBy: type: string paymentOption: type: string operation: type: string platform: type: string region: type: string remove: type: boolean scope: type: string tenancy: type: string termLength: type: string usageType: type: string vendor: type: string zone: type: string disabled: type: boolean normalizationFactor: type: number format: double unblendedRate: type: number format: double upfrontValue: type: number format: double ondemandCost: type: number format: double effectiveCost: type: number format: double savings: type: number format: double breakEven: type: string title: for break even point date v1CreateAccountRequestGcpOptions: type: object properties: managementAccountId: type: string description: Optional. managementBillingId: type: string description: Optional. description: GCP-specific options for registering an account. v1ReadCostsRequestAwsOptionsTagFilters: type: object properties: andFilters: type: object additionalProperties: type: string description: 'A map of "key:value" tag filters. The key indicates the tag key while the value is the filter tag value which can be prefixed by either "eq:" (equal), "re:" (regular expressions based on https://github.com/google/re2), or "!re:" (reverse "re:"). No prefix is the same as "eq:". Multiple map items will use the logical ''and'' operator, e.g. mapfilter1 && mapfilter2 && mapfilter3, etc. For example, if you want to query lineitems with the tag `project:MY_PROJECT`, set to `{"project":"MY_PROJECT"}`. You can also use regular expressions for tag values, such as `{"name":"re:[A-Za-z0-9]*"}`.' apiMonthlyBudgetAlert: type: object properties: value: type: number format: double title: Required. threshold in budget alerts enabled: type: boolean description: "Required. notification enable/disable \nIf disabled, no alert is sent." description: MonthlyBudgetAlert resource definition. apiOptionsChart: type: object properties: date: type: string cost: type: number format: double coverage: type: number format: double usage: type: number format: double usageCoverage: type: number format: double v1GetMonthOnMonthCostForecastResponse: type: object properties: id: type: string data: type: array items: type: object $ref: '#/definitions/apiMonthOnMonthCostForecast' timestamp: type: string title: Response message for GetMonthOnMonthCostForecast v1ProformaReports: type: object properties: id: type: string title: payer account id billingInternalId: type: string title: billing group internal id billingGroupName: type: string title: billing group name bucketName: type: string title: s3 bucket name prefix: type: string title: s3 report prefix reportName: type: string title: report name roleArn: type: string title: role arn CostCreatePayerAccountBody: type: object properties: awsOptions: $ref: '#/definitions/v1CreatePayerAccountRequestAwsOptions' description: Required for the `aws` vendor. AWS-specific options. description: Request message for the Cost.CreatePayerAccount rpc. v1GetMonthlyCostForecastResponse: type: object properties: id: type: string data: type: array items: type: object $ref: '#/definitions/apiMonthlyCostForecast' timestamp: type: string title: Response message for GetMonthlyCostForecast v1ListCalculationsHistoryResponse: type: object properties: aws: $ref: '#/definitions/v1ListCalculationsHistoryAwsResponse' description: Response message for the Cost.ListCalculationsHistory rpc. v1CalculationPrerequisite: type: object properties: invoiceId: type: string description: The invoice id. payerId: type: string description: The payer account id. exchangeRate: type: number format: double description: The exchange rate. unblendedCostInCur: type: number format: double description: The unblended cost in CUR. name: type: string description: The account name. curType: type: string description: The CUR type, valid values are `legacy` and `2.0`. PeriodRangeUnit: type: string enum: - UNIT_UNSPECIFIED - MONTH - QUARTER - YEAR default: UNIT_UNSPECIFIED CostCreateAccountBudgetAlertsBody: type: object properties: budgetAlert: $ref: '#/definitions/apiWaveBudgetAlert' description: Required. Budget alert setting. title: Request message for CreateAccountBudgetAlerts v1PeriodRange: type: object properties: unit: $ref: '#/definitions/PeriodRangeUnit' title: Time unit of the range year: type: integer format: int64 title: Year (e.g., 2025) starting: type: integer format: int64 title: Start month/quarter (1-based), ignored if YEAR duration: type: integer format: int64 title: Length in units of unit