Alphaus Cover API
(BETA) Cover API. Base URL: https://api.alphaus.cloud/m/blue/cover
(BETA) Cover API. Base URL: https://api.alphaus.cloud/m/blue/cover
swagger: '2.0'
info:
title: Blue API reference Admin Cover 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: Cover
description: '(BETA) Cover API. Base URL: https://api.alphaus.cloud/m/blue/cover'
externalDocs:
description: Service definition
url: https://github.com/alphauslabs/blueapi/tree/main/cover/
paths:
/v1/account:
post:
summary: Registers GCP/Azure account.
operationId: Cover_RegisterDataAccess
responses:
'200':
description: A successful response.
schema:
type: object
properties: {}
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
description: Request message for Register Data Access. For azure and gcp.
in: body
required: true
schema:
$ref: '#/definitions/v1RegisterDataAccessRequest'
tags:
- Cover
/v1/account/all:read:
post:
summary: Lists Azure and GCP accounts.
operationId: Cover_ListDataAccess
responses:
'200':
description: A successful response.(streaming responses)
schema:
type: object
properties:
result:
$ref: '#/definitions/v1DataAccess'
error:
$ref: '#/definitions/rpcStatus'
title: Stream result of v1DataAccess
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
tags:
- Cover
/v1/account/unregistered:read:
post:
summary: Lists unregistered linked accounts
operationId: Cover_ListUnregisteredAccounts
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1ListUnregisteredAccountsResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
tags:
- Cover
/v1/account/{target}:
get:
summary: Gets the current account. For GCP and Azure.
operationId: Cover_GetDataAccess
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1DataAccess'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: target
description: Required. (Billing ID for GCP / Account ID for Azure)
in: path
required: true
type: string
- name: vendor
description: Vendor (GCP/Azure)
in: query
required: false
type: string
- name: accountType
description: In the context of fetching account details, specifying the account type is necessary. This is because the target alone might not uniquely identify an account and could result in multiple data points.
in: query
required: false
type: string
tags:
- Cover
delete:
summary: Deletes GCP or Azure accounts based on the provided request.
operationId: Cover_DeleteDataAccess
responses:
'200':
description: A successful response.
schema:
type: object
properties: {}
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: target
description: Required. (Billing ID for GCP / Account ID for Azure)
in: path
required: true
type: string
- name: vendor
description: Vendor (GCP/Azure)
in: query
required: false
type: string
- name: accountType
description: In the context of fetching account details, specifying the account type is necessary. This is because the target alone might not uniquely identify an account and could result in multiple data points.
in: query
required: false
type: string
tags:
- Cover
put:
summary: Update GCP/Azure account info
operationId: Cover_UpdateDataAccess
responses:
'200':
description: A successful response.
schema:
type: object
properties: {}
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: target
description: Billing Id for GCP, Account Id for Azure
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: '#/definitions/CoverUpdateDataAccessBody'
tags:
- Cover
/v1/acctaccess/{target}:
delete:
summary: Deletes the current account access role attached to this target account. This does not delete the CloudFormation deployment in your account.
operationId: Cover_DeleteAccountAccess
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1DeleteAccountAccessResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: target
description: Required. The target AWS account to delete.
in: path
required: true
type: string
- name: vendor
in: query
required: false
type: string
tags:
- Cover
/v1/ai/costusage:
post:
operationId: Cover_GetAICostAndUsage
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1GetAICostAndUsageResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/v1GetAICostAndUsageRequest'
tags:
- Cover
/v1/alerts/anomaly:
post:
summary: Create Anomaly Alert
operationId: Cover_CreateAnomalyAlert
responses:
'200':
description: A successful response.
schema:
type: object
properties: {}
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/v1CreateAnomalyAlertRequest'
tags:
- Cover
/v1/alerts/anomaly/all:read:
post:
summary: List all the Anomaly Alert Data
operationId: Cover_ListAnomalyAlert
responses:
'200':
description: A successful response.(streaming responses)
schema:
type: object
properties:
result:
$ref: '#/definitions/v1AnomalyAlertData'
error:
$ref: '#/definitions/rpcStatus'
title: Stream result of v1AnomalyAlertData
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
tags:
- Cover
/v1/alerts/anomaly/{id}:
get:
summary: Get Anomaly Alert Data
operationId: Cover_GetAnomalyAlert
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1AnomalyAlertData'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: id
description: required. Id
in: path
required: true
type: string
tags:
- Cover
delete:
summary: Delete Anomaly Alert
operationId: Cover_DeleteAnomalyAlert
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. Id
in: path
required: true
type: string
tags:
- Cover
put:
summary: Update Anomaly Alert
operationId: Cover_UpdateAnomalyAlert
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. Id
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: '#/definitions/CoverUpdateAnomalyAlertBody'
tags:
- Cover
/v1/alerts/cost:
get:
summary: Get Alerts under organization
operationId: Cover_GetAlerts
responses:
'200':
description: A successful response.(streaming responses)
schema:
type: object
properties:
result:
$ref: '#/definitions/v1GetAlertsResponse'
error:
$ref: '#/definitions/rpcStatus'
title: Stream result of v1GetAlertsResponse
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
tags:
- Cover
post:
summary: Create Alerts under organization
operationId: Cover_CreateAlert
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1CreateAlertResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/v1CreateAlertRequest'
tags:
- Cover
/v1/alerts/cost/{id}:
get:
summary: Get Specific Alert under organization
operationId: Cover_GetAlertDetails
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1GetAlertDetailsResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: id
description: Required. Alert ID.
in: path
required: true
type: string
tags:
- Cover
delete:
summary: Delete Specific Alert under organization
operationId: Cover_DeleteAlert
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1DeleteAlertResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: id
description: Required. Alert ID.
in: path
required: true
type: string
tags:
- Cover
put:
summary: Update Specific Alert under organization
operationId: Cover_UpdateAlertDetails
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1UpdateAlertDetailsResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: id
description: Required. Alert ID.
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: '#/definitions/CoverUpdateAlertDetailsBody'
tags:
- Cover
/v1/alerts/expire/discount:
post:
summary: Create discount Expiration Alert.
operationId: Cover_CreateDiscountExpirationAlert
responses:
'200':
description: A successful response.
schema:
type: object
properties: {}
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/v1CreateDiscountExpirationAlertRequest'
tags:
- Cover
/v1/alerts/expire/discount/all:read:
post:
summary: List all discount Expiration Alert Data
operationId: Cover_ListDiscountExpirationAlert
responses:
'200':
description: A successful response.(streaming responses)
schema:
type: object
properties:
result:
$ref: '#/definitions/v1DiscountExpiryAlertData'
error:
$ref: '#/definitions/rpcStatus'
title: Stream result of v1DiscountExpiryAlertData
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
tags:
- Cover
/v1/alerts/expire/discount/{id}:
get:
summary: Get discount Expiration Alert Data
operationId: Cover_GetDiscountExpirationAlert
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1DiscountExpiryAlertData'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: id
description: required. Id
in: path
required: true
type: string
tags:
- Cover
delete:
summary: Delete selected discount Expiration Alert Data
operationId: Cover_DeleteDiscountExpirationAlert
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. Id
in: path
required: true
type: string
tags:
- Cover
put:
summary: Update discount Expiration Alert
operationId: Cover_UpdateDiscountExpirationAlert
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. Id
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: '#/definitions/CoverUpdateDiscountExpirationAlertBody'
tags:
- Cover
/v1/allocations:read:
post:
summary: 'WORK-IN-PROGRESS: Get all available allocation items for the specified cost group'
operationId: Cover_GetCostGroupAllocation
responses:
'200':
description: A successful response.(streaming responses)
schema:
type: object
properties:
result:
$ref: '#/definitions/v1AllocationItem'
error:
$ref: '#/definitions/rpcStatus'
title: Stream result of v1AllocationItem
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
description: Request message for the GetCostGroupAllocation rpc.
in: body
required: true
schema:
$ref: '#/definitions/v1GetCostGroupAllocationRequest'
tags:
- Cover
/v1/allocators:
get:
summary: 'WORK-IN-PROGRESS: Lists all the allocators'
operationId: Cover_ListAllocators
responses:
'200':
description: A successful response.(streaming responses)
schema:
type: object
properties:
result:
$ref: '#/definitions/v1CostAllocatorDetails'
error:
$ref: '#/definitions/rpcStatus'
title: Stream result of v1CostAllocatorDetails
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
tags:
- Cover
post:
summary: 'WORK-IN-PROGRESS: Creates cost allocator item'
operationId: Cover_CreateAllocator
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1CostAllocatorDetails'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
description: Request message for the CreateAllocator rpc.
in: body
required: true
schema:
$ref: '#/definitions/v1CreateAllocatorRequest'
tags:
- Cover
/v1/allocators/attribute:
get:
summary: Get all available attributes for the charges
operationId: Cover_GetAllocationAttributes
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1GetAllocationAttributesResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: category
in: query
required: false
type: string
tags:
- Cover
/v1/allocators/source:
get:
summary: Get all values of the allocation source
operationId: Cover_GetAllocationSources
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1GetAllocationSourcesResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: type
in: query
required: false
type: string
- name: accountId
in: query
required: false
type: string
tags:
- Cover
/v1/allocators/{id}:
delete:
summary: 'WORK-IN-PROGRESS: Deletes a cost allocator'
operationId: Cover_DeleteAllocator
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. The id of the allocator to delete.
in: path
required: true
type: string
tags:
- Cover
put:
summary: 'WORK-IN-PROGRESS: Updates a cost allocator item'
operationId: Cover_UpdateAllocator
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1CostAllocatorDetails'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: id
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: '#/definitions/CoverUpdateAllocatorBody'
tags:
- Cover
/v1/anomaly:
post:
summary: Get the data of a cost group containing anomaly values
operationId: Cover_GetAnomalyinCostGroup
responses:
'200':
description: A successful response.(streaming responses)
schema:
type: object
properties:
result:
$ref: '#/definitions/v1AnomalyData'
error:
$ref: '#/definitions/rpcStatus'
title: Stream result of v1AnomalyData
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/v1GetAnomalyinCostGroupRequest'
tags:
- Cover
/v1/apiaccess/verify:
get:
operationId: Cover_VerifyAPIAccess
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1VerifyAPIAccessResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: vendor
description: 'Required: gcp'
in: query
required: false
type: string
- name: target
description: 'Required: projectId'
in: query
required: false
type: string
tags:
- Cover
/v1/assets/summary/{costGroupId}:
get:
summary: 'WORK-IN-PROGRESS: Assets summary for costgroup'
operationId: Cover_GetAssetsSummary
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1GetAssetsSummaryResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: costGroupId
description: Required. Cost Group Id.
in: path
required: true
type: string
- name: startMonth
description: 'Optional. If not set, current month will be used. Format: `yyyymm`.'
in: query
required: false
type: string
- name: endMonth
description: 'Optional. If not set, current month will be used. Format: `yyyymm`.'
in: query
required: false
type: string
- name: combineDates
description: Optional. If true, return the assets summary for the requested period. Else, summary per month is returned.
in: query
required: false
type: boolean
tags:
- Cover
/v1/assets:read:
post:
summary: 'WORK-IN-PROGRESS: Lists assets for costgroup'
operationId: Cover_ListAssets
responses:
'200':
description: A successful response.(streaming responses)
schema:
type: object
properties:
result:
$ref: '#/definitions/blueapiCoverV1Resource'
error:
$ref: '#/definitions/rpcStatus'
title: Stream result of blueapiCoverV1Resource
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
description: Request message for the Asset.ListResources rpc.
in: body
required: true
schema:
$ref: '#/definitions/v1ListAssetsRequest'
tags:
- Cover
/v1/attributes:
post:
summary: 'WORK-IN-PROGRESS: Get Cost Group by Attribute Type'
operationId: Cover_GetCostGroupAttribute
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1GetCostGroupAttributeResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/v1GetCostGroupAttributeRequest'
tags:
- Cover
/v1/aws/acctaccess:
get:
summary: Gets a CloudFormation launch URL for enabling the account access.
operationId: Cover_GetAccountAccessTemplateUrl
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1GetAccountAccessTemplateUrlResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: type
description: All templates are publicly available from the reponse link (`templateUrl`) if you want to audit the included permissions.
in: query
required: false
type: string
tags:
- Cover
post:
summary: Starts validation of the account access stack deployment. If successful, the IAM role created from the CloudFormation stack will be registered to the target.
operationId: Cover_CreateAccountAccess
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1AccountAccess'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
description: Request message for the CreateAccountAccess rpc.
in: body
required: true
schema:
$ref: '#/definitions/v1CreateAccountAccessRequest'
tags:
- Cover
/v1/aws/acctaccess/cur:
post:
summary: Starts validation of the account access cur stack deployment. If successful, the IAM role created from the CloudFormation stack will be registered to the target.
operationId: Cover_CreateAccountAccessCur
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1AccountAccess'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
description: Request message for the CreateAccountAccess rpc.
in: body
required: true
schema:
$ref: '#/definitions/v1CreateAccountAccessRequest'
tags:
- Cover
/v1/aws/acctaccess/stackset:
post:
summary: Starts validation of the account access stackset deployment. If successful, the IAM role created from the CloudFormation stackset will be registered to the linked accounts.
operationId: Cover_CreateAccountAccessStackset
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1AccountAccess'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
description: Request message for the CreateAccountAccessStackset rpc.
in: body
required: true
schema:
$ref: '#/definitions/v1CreateAccountAccessStacksetRequest'
tags:
- Cover
/v1/aws/acctaccess/{target}:
put:
summary: Starts an update to an existing account access CloudFormation stack for template changes, if any. Only call this API if the status of your account access is 'outdated'.
operationId: Cover_UpdateAccountAccess
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/protosOperation'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: target
description: Required. The target AWS account to update.
in: path
required: true
type: string
tags:
- Cover
/v1/azure/credentials/mpn:
post:
summary: 'WORK-IN-PROGRESS: Adding MpnSetting for Azure'
operationId: Cover_AddMpnSetting
responses:
'200':
description: A successful response.
schema:
type: object
properties: {}
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/v1AddMpnSettingRequest'
tags:
- Cover
/v1/azure/credentials/partnercenter:
post:
summary: 'WORK-IN-PROGRESS: PartnerCenterCredentials for Azure'
operationId: Cover_AddPartnerCenterCredentials
responses:
'200':
description: A successful response.
schema:
type: object
properties: {}
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/v1AddPartnerCenterCredentialsRequest'
tags:
- Cover
/v1/billing/status:
get:
summary: Get the Customer Subscription status from marketplace
operationId: Cover_GetCustomerSubscriptionStatus
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1GetCustomerSubscriptionStatusResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
tags:
- Cover
/v1/billingacct:
post:
summary: Add Billing Account ID for GCP.
operationId: Cover_AddBillingAccount
responses:
'200':
description: A successful response.
schema:
type: object
properties: {}
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/v1BillingAccountRequest'
tags:
- Cover
/v1/budget:
post:
summary: 'WORK-IN-PROGRESS: Create Budget for specific cost group in an organization'
operationId: Cover_CreateBudget
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1CreateBudgetResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
in: body
required: true
schema:
$ref: '#/definitions/v1CreateBudgetRequest'
tags:
- Cover
/v1/budget/{id}:
get:
summary: 'WORK-IN-PROGRESS: Get specific Budget data for a cost group in an organization'
operationId: Cover_GetBudget
responses:
'200':
description: A successful response.
schema:
$ref: '#/definitions/v1GetBudgetResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: id
description: Required. Budget ID.
in: path
# --- truncated at 32 KB (277 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/alphaus/refs/heads/main/openapi/alphaus-cover-api-openapi.yml