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 required: true type: string tags: - Cover delete: summary: 'WORK-IN-PROGRESS: Delete Budget for specific cost group in an organization' operationId: Cover_DeleteBudget responses: '200': description: A successful response. schema: $ref: '#/definitions/v1DeleteBudgetResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Budget ID. in: path required: true type: string tags: - Cover put: summary: 'WORK-IN-PROGRESS: Update Budget for specific cost group in an organization' operationId: Cover_UpdateBudget responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateBudgetResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Budget ID. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateBudgetBody' tags: - Cover /v1/budget:read: post: summary: 'WORK-IN-PROGRESS: List all Budgets in an organization or Budgets under specific cost group' operationId: Cover_ListBudgets responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1ListBudgetsResponse' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1ListBudgetsResponse default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ListBudgetsRequest' tags: - Cover /v1/categories: get: summary: Retrieve the categories to be utilized in the creation of the cost group. operationId: Cover_GetCategories responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetCategoriesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor in: query required: false type: string tags: - Cover /v1/channels: post: summary: 'WORK-IN-PROGRESS: Create Channel under organization' operationId: Cover_CreateChannel responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateChannelResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1CreateChannelRequest' tags: - Cover /v1/channels/{id}: get: summary: 'WORK-IN-PROGRESS: Get Specific Channel under organization' operationId: Cover_GetChannelDetails responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetChannelDetailsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Channel ID. in: path required: true type: string tags: - Cover delete: summary: 'WORK-IN-PROGRESS: Delete Specific Channel under organization' operationId: Cover_DeleteChannel responses: '200': description: A successful response. schema: $ref: '#/definitions/v1DeleteChannelResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Channel ID. in: path required: true type: string tags: - Cover put: summary: 'WORK-IN-PROGRESS: Update Specific Channel under organization' operationId: Cover_UpdateChannelDetails responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateChannelDetailsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Channel ID. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateChannelDetailsBody' tags: - Cover /v1/channels:read: post: summary: 'WORK-IN-PROGRESS: Get Channels under organization' operationId: Cover_GetChannels responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1GetChannelsResponse' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1GetChannelsResponse default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1GetChannelsRequest' tags: - Cover /v1/containers/costusage: post: operationId: Cover_GetContainerCostUsage responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ContainerCostUsageResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ContainerCostUsageRequest' tags: - Cover /v1/costgroups: get: summary: Get all the cost groups operationId: Cover_GetCostGroups responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetCostGroupsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' tags: - Cover post: summary: Create a cost group operationId: Cover_CreateCostGroup responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateCostGroupResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1CreateCostGroupRequest' tags: - Cover /v1/costgroups/resolve/{costGroupId}: get: operationId: Cover_ResolveCostGroupCombinations responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ResolveCostGroupCombinationsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: costGroupId description: Required. Cost Group Id. in: path required: true type: string tags: - Cover /v1/costgroups/{costGroupId}: get: summary: Get the details of the cost group operationId: Cover_GetCostGroupDetails responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetCostGroupDetailsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: costGroupId description: Required. Cost Group Id. in: path required: true type: string tags: - Cover delete: summary: Deletes a cost group operationId: Cover_DeleteCostGroup responses: '200': description: A successful response. schema: $ref: '#/definitions/v1DeleteCostGroupResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: costGroupId description: Required. Cost Group Id. in: path required: true type: string tags: - Cover /v1/costgroups/{costGroupId}/anomaly: post: summary: Sets Cost group's anomaly options operationId: Cover_SetCostGroupAnomalyOptions responses: '200': description: A successful response. schema: $ref: '#/definitions/v1SetCostGroupAnomalyOptionsResponse' 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: body in: body required: true schema: $ref: '#/definitions/CoverSetCostGroupAnomalyOptionsBody' tags: - Cover /v1/costgroups/{costGroupId}/colortheme: put: summary: Update cost group's color theme operationId: Cover_UpdateCostGroupColorTheme responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateCostGroupColorThemeResponse' 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: body in: body required: true schema: $ref: '#/definitions/CoverUpdateCostGroupColorThemeBody' tags: - Cover /v1/costgroups/{costGroupId}/combinations: put: summary: Update cost group's combinations operationId: Cover_UpdateCostGroupCombinations responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateCostGroupCombinationsResponse' 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: body in: body required: true schema: $ref: '#/definitions/CoverUpdateCostGroupCombinationsBody' tags: - Cover /v1/costgroups/{costGroupId}/description: put: summary: Update cost group's description operationId: Cover_UpdateCostGroupDescription responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateCostGroupDescriptionResponse' 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: body in: body required: true schema: $ref: '#/definitions/CoverUpdateCostGroupDescriptionBody' tags: - Cover /v1/costgroups/{costGroupId}/eventIndicator: post: summary: Sets Cost group's event indicator operationId: Cover_SetCostGroupEventIndicator responses: '200': description: A successful response. schema: $ref: '#/definitions/v1SetCostGroupEventIndicatorResponse' 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: body in: body required: true schema: $ref: '#/definitions/CoverSetCostGroupEventIndicatorBody' tags: - Cover /v1/costgroups/{costGroupId}/icon: put: summary: Update cost group's icon operationId: Cover_UpdateCostGroupIcon responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateCostGroupIconResponse' 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: body in: body required: true schema: $ref: '#/definitions/CoverUpdateCostGroupIconBody' tags: - Cover /v1/costgroups/{costGroupId}/image: put: summary: Update cost group's image operationId: Cover_UpdateCostGroupImage responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateCostGroupImageResponse' 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: body in: body required: true schema: $ref: '#/definitions/CoverUpdateCostGroupImageBody' tags: - Cover /v1/costgroups/{costGroupId}/name: put: summary: Update cost group's name operationId: Cover_UpdateCostGroupName responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateCostGroupNameResponse' 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: body in: body required: true schema: $ref: '#/definitions/CoverUpdateCostGroupNameBody' tags: - Cover /v1/costusage: post: operationId: Cover_GetCostUsageV2 responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1GetCostUsageV2Response' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1GetCostUsageV2Response default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1GetCostUsageV2Request' tags: - Cover /v1/costusage:read: post: summary: 'WORK-IN-PROGRESS: Get usage and usage-based costs for the specified costgroup' operationId: Cover_GetCostUsage responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/blueapiCoverV1CostItem' error: $ref: '#/definitions/rpcStatus' title: Stream result of blueapiCoverV1CostItem default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1GetCostUsageRequest' tags: - Cover /v1/demo/populate: post: summary: 'WORK-IN-PROGRESS: Populate demo data' operationId: Cover_PopulateDemoData responses: '200': description: A successful response. schema: $ref: '#/definitions/v1PopulateDemoDataResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1PopulateDemoDataRequest' tags: - Cover /v1/demo/reset: post: summary: 'WORK-IN-PROGRESS: Reset demo data' operationId: Cover_ResetDemoData responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ResetDemoDataResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ResetDemoDataRequest' tags: - Cover /v1/forecasts: post: operationId: Cover_CreateCostForecast responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateCostForecastResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1CreateCostForecastRequest' tags: - Cover /v1/forecasts/data:read: post: operationId: Cover_GetCostForecastsData responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1GetCostForecastsDataResponse' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1GetCostForecastsDataResponse default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1GetCostForecastsDataRequest' tags: - Cover /v1/forecasts/{id}: get: operationId: Cover_GetCostForecast responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetCostForecastResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Forecast Id in: path required: true type: string tags: - Cover delete: operationId: Cover_DeleteCostForecast responses: '200': description: A successful response. schema: $ref: '#/definitions/v1DeleteCostForecastResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Forecast Id in: path required: true type: string tags: - Cover put: operationId: Cover_UpdateCostForecast responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateCostForecastResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Forecast Id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateCostForecastBody' tags: - Cover /v1/forecasts:read: post: operationId: Cover_ListForecasts responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListForecastsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ListForecastsRequest' tags: - Cover /v1/marketplace/info: post: summary: Adding orgId to marketplace customers operationId: Cover_AddInfotoMarketplace responses: '200': description: A successful response. schema: $ref: '#/definitions/v1AddInfotoMarketplaceResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1AddInfotoMarketplaceRequest' tags: - Cover /v1/me: get: summary: Get the details of the logged-in user operationId: Cover_GetUserDetails responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetUserDetailsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' tags: - Cover /v1/me/apptheme: put: summary: Modify user's app theme operationId: Cover_UpdateUserAppTheme responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserAppThemeResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1UpdateUserAppThemeRequest' tags: - Cover /v1/me/attributes: put: summary: Modify attributes operationId: Cover_UpdateUserAttributes responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserAttributesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1UpdateUserAttributesRequest' tags: - Cover /v1/me/avatar: put: summary: Modify user's avatar operationId: Cover_UpdateUserAvatar responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserAvatarResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1UpdateUserAvatarRequest' tags: - Cover /v1/me/colortheme: put: summary: Modify user's color theme operationId: Cover_UpdateUserColorTheme responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserColorThemeResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1UpdateUserColorThemeRequest' tags: - Cover /v1/me/costgroupcreation: put: summary: 'WORK-IN-PROGRESS: Set user preference in cost group creation UI' operationId: Cover_UpdateCostGroupCreationUI responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateCostGroupCreationUIResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1UpdateCostGroupCreationUIRequest' tags: - Cover /v1/me/email: put: summary: Modify user's email operationId: Cover_UpdateUserEmail responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserEmailResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1UpdateUserEmailRequest' tags: - Cover /v1/me/icon: put: summary: Modify user's icon operationId: Cover_UpdateUserIcon responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserIconResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1UpdateUserIconRequest' tags: - Cover /v1/me/locale: put: summary: Modify user's locale operationId: Cover_UpdateUserLocale responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserLocaleResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1UpdateUserLocaleRequest' tags: - Cover /v1/me/mainview: put: summary: Modify user's main view operationId: Cover_UpdateUserMainView responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserMainViewResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1UpdateUserMainViewRequest' tags: - Cover /v1/me/name: put: summary: Modify user's name operationId: Cover_UpdateUserName responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserNameResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1UpdateUserNameRequest' tags: - Cover /v1/me/password: post: summary: Reset user's password operationId: Cover_ResetUserPassword responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ResetUserPasswordResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ResetUserPasswordRequest' tags: - Cover /v1/me/roles: get: summary: Lists the roles and cost groups assigned to the authenticated user. operationId: Cover_GetMyRoles responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetMyRolesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' tags: - Cover /v1/me/timezone: put: summary: Modify user's timezone operationId: Cover_UpdateUserTimezone responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserTimezoneResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1UpdateUserTimezoneRequest' tags: - Cover /v1/members/activate: post: summary: Activate the added user operationId: Cover_ActivateUser responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ActivateUserResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ActivateUserRequest' tags: - Cover /v1/members/auth0: post: summary: 'WORK-IN-PROGRESS: Add or read user from Auth0' operationId: Cover_ProcessAuth0User responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ProcessAuth0UserResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ProcessAuth0UserRequest' tags: - Cover /v1/members/aws/subscription: post: summary: WORK-IN-PROGRESS:Resolve user for aws marketplace subscription integration operationId: Cover_ResolveAWSMarketplaceTokenForOnboarding responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ResolveAWSMarketplaceTokenForOnboardingResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ResolveAWSMarketplaceTokenForOnboardingRequest' tags: - Cover /v1/members/onboard: post: summary: Onboard an organization with an admin account and default cost group operationId: Cover_OnboardOrg responses: '200': description: A successful response. schema: $ref: '#/definitions/v1OnboardOrgResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1OnboardOrgRequest' tags: - Cover /v1/members/profile: post: summary: Profiling for new users. operationId: Cover_CreateProfiling responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateProfilingResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1CreateProfilingRequest' tags: - Cover /v1/members/profile/{email}: get: summary: Octo getting user profile operationId: Cover_GetUserProfile responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetUserProfileResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: email description: required email in: path required: true type: string tags: - Cover put: summary: Update user profile operationId: Cover_UpdateUserProfile responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserProfileResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: email description: required email in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateUserProfileBody' tags: - Cover /v1/members/register: post: summary: Octo new user registration operationId: Cover_RegisterNewUser responses: '200': description: A successful response. schema: $ref: '#/definitions/v1RegisterNewUserResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1RegisterNewUserRequest' tags: - Cover /v1/members/resetpassword: post: summary: Reset member's password operationId: Cover_ResetPassword responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ResetPasswordResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ResetPasswordRequest' tags: - Cover /v1/organizations/currency: get: summary: Get Org's reference of currency exchange rate operationId: Cover_GetOrgUpdateCurrency responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetOrgUpdateCurrencyResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' tags: - Cover post: summary: Sets Org's reference of currency exchange rate operationId: Cover_SetOrgUpdateCurrency responses: '200': description: A successful response. schema: $ref: '#/definitions/v1SetOrgUpdateCurrencyResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1SetOrgUpdateCurrencyRequest' tags: - Cover /v1/organizations/rates: get: summary: Get list of exchange rates for a fixed report operationId: Cover_ListExchangeRates responses: '200': description: A successful response. schema: $ref: '#/definitions/blueapiCoverV1ListExchangeRatesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: startDate description: 'Required. Start date Format: "YYYYMMDD"' in: query required: false type: string - name: endDate description: 'Required. End date Format: "YYYYMMDD"' in: query required: false type: string tags: - Cover /v1/organizations/transfer/{target}: get: summary: 'WORK-IN-PROGRESS: Transfer the account from the original organization to Alphaus payer account' operationId: Cover_TransferOrganization responses: '200': description: A successful response. schema: $ref: '#/definitions/v1TransferOrganizationResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: target description: Required. The target account to be transferred. in: path required: true type: string - name: region description: Required. The region of the target account. in: query required: false type: string - name: payer description: Optional. Alphaus payer account to be used for the transfer. in: query required: false type: string - name: orgId description: Optional. The org id of the payer account. in: query required: false type: string tags: - Cover /v1/recommendation/execute: post: operationId: Cover_ExecuteRecommendationV3 responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ExecuteRecommendationV3Response' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ExecuteRecommendationV3Request' tags: - Cover /v1/recommendations: get: operationId: Cover_GetRecommendationV3 responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetRecommendationV3Response' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: ids in: query required: false type: array items: type: string collectionFormat: multi tags: - Cover /v1/recommendations/all:read: post: summary: Lists recommendations based on specified criteria. operationId: Cover_ListRecommendationsV2 responses: '200': description: A successful response.(streaming responses) schema: type: object properties: result: $ref: '#/definitions/v1ListRecommendationResponse' error: $ref: '#/definitions/rpcStatus' title: Stream result of v1ListRecommendationResponse default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ListRecommendationV2Request' tags: - Cover /v1/recommendations/details/{id}: get: summary: Retrieves a specific recommendation by its ID. (Version 2) operationId: Cover_GetRecommendationV2 responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetRecommendationV2Response' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id in: path required: true type: string - name: costGroupId in: query required: false type: string - name: periodOption in: query required: false type: string - name: currency in: query required: false type: string tags: - Cover /v1/recommendations/summaries: post: operationId: Cover_ListRecommendationsV3 responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListRecommendationsV3Response' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ListRecommendationsV3Request' tags: - Cover /v1/reports/fiscalmonth: get: summary: Get Org's starting month/ fiscal month operationId: Cover_GetOrgFiscalMonth responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetOrgFiscalMonthResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' tags: - Cover post: summary: Sets Org's starting month/ fiscal month operationId: Cover_SetOrgFiscalMonth responses: '200': description: A successful response. schema: $ref: '#/definitions/v1SetOrgFiscalMonthResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1SetOrgFiscalMonthRequest' tags: - Cover /v1/reports/insight/summary/{costGroupId}: get: summary: Get data for insights reports summary operationId: Cover_GetReportSummary responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetReportSummaryResponse' 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: startDate description: 'Required. Start date Format: "YYYYMMDD"' in: query required: false type: string - name: endDate description: 'Required. End date Format: "YYYYMMDD"' in: query required: false type: string - name: reportType description: 'Required. Report Type. Valid inputs are: "quarterly", "yearly"' in: query required: false type: string - name: currency description: Optional. If not set, default value is `USD`. in: query required: false type: string tags: - Cover /v1/reports/rate/nonperforming:read: post: operationId: Cover_ListNonperformingRate responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListNonperformingRateResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ListNonperformingRateRequest' tags: - Cover /v1/reports/resources/untagged:read: post: operationId: Cover_ListUntaggedResources responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListUntaggedResourcesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ListUntaggedResourcesRequest' tags: - Cover /v1/unitcost: get: summary: Lists Unit Types operationId: Cover_ListUnitTypes responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListUnitTypesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' tags: - Cover post: summary: Create Unit Type operationId: Cover_CreateUnitType responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateUnitTypeResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1CreateUnitTypeRequest' tags: - Cover /v1/unitcost/autosuggest: get: summary: List Suggested Unit Types operationId: Cover_ListSuggestedUnits responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListSuggestedUnitsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' tags: - Cover /v1/unitcost/autosuggest/create: post: summary: Create Unit from Suggested Units operationId: Cover_CreateUnitFromSuggested responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateUnitFromSuggestedResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1CreateUnitFromSuggestedRequest' tags: - Cover /v1/unitcost/autosuggest/merge: post: summary: Merge Suggested Units operationId: Cover_MergeSuggestedUnits responses: '200': description: A successful response. schema: $ref: '#/definitions/v1MergeSuggestedUnitsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1MergeSuggestedUnitsRequest' tags: - Cover /v1/unitcost/merge: post: summary: Merge Existing Unit Types operationId: Cover_MergeUnits responses: '200': description: A successful response. schema: $ref: '#/definitions/v1MergeUnitsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1MergeUnitsRequest' tags: - Cover /v1/unitcost/metrics: get: summary: List all Unit Metrics operationId: Cover_ListUnitMetrics responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListUnitMetricsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: aggregationMethod description: Optional. Filter by aggregation method. in: query required: false type: string - name: dataSource description: Optional. Filter by data source. in: query required: false type: string - name: status description: Optional. Filter by status. in: query required: false type: string tags: - Cover post: summary: Create Unit Metric operationId: Cover_CreateUnitMetric responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateUnitMetricResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1CreateUnitMetricRequest' tags: - Cover /v1/unitcost/metrics/cloudwatch/metadata: get: summary: Get Cloudwatch Metadata operationId: Cover_GetCloudwatchMetadata responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetCloudwatchMetadataResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: accountId description: Required. The AWS account ID to assume when querying CloudWatch. in: query required: false type: string - name: region description: Required. The AWS region where the metrics should be queried (e.g., "us-east-1"). in: query required: false type: string - name: type description: 'Required. The type of metadata to retrieve. Valid values: "namespace", "metric", or "dimension".' in: query required: false type: string - name: namespace description: 'Conditionally required. Must be provided when `type` is "metric" or "dimension". Example: "AWS/EC2", "AWS/Lambda", or a custom namespace like "MyApp/BusinessMetrics".' in: query required: false type: string - name: metricName description: 'Conditionally required. Must be provided when `type` is "dimension". Example: "CPUUtilization", "Invocations", etc.' in: query required: false type: string tags: - Cover /v1/unitcost/metrics/googlesheet/confirm: post: summary: Confirm Google Sheet Access operationId: Cover_ConfirmGoogleSheetAccess responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ConfirmGoogleSheetAccessResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1ConfirmGoogleSheetAccessRequest' tags: - Cover /v1/unitcost/metrics/googlesheet/preview: post: summary: Preview Google Sheet Data operationId: Cover_PreviewGoogleSheet responses: '200': description: A successful response. schema: $ref: '#/definitions/v1PreviewGoogleSheetResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1PreviewGoogleSheetRequest' tags: - Cover /v1/unitcost/metrics/{id}: get: summary: Get Specific Unit Metric operationId: Cover_GetUnitMetric responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetUnitMetricResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Unit Metric Id in: path required: true type: string tags: - Cover delete: summary: Delete Specific Unit Metric operationId: Cover_DeleteUnitMetric responses: '200': description: A successful response. schema: $ref: '#/definitions/v1DeleteUnitMetricResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Unit Metric Id in: path required: true type: string tags: - Cover put: summary: Update Specific Unit Metric operationId: Cover_UpdateUnitMetric responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUnitMetricResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Unit Metric Id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateUnitMetricBody' tags: - Cover /v1/unitcost/sharedresources: get: summary: List all Shared Resources operationId: Cover_ListSharedResources responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListSharedResourcesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' tags: - Cover post: summary: Create Shared Resource operationId: Cover_CreateSharedResource responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateSharedResourcesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1CreateSharedResourcesRequest' tags: - Cover /v1/unitcost/sharedresources/{id}: get: summary: Get Specific Shared Resource operationId: Cover_GetSharedResource responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetSharedResourcesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Shared Resource Id in: path required: true type: string tags: - Cover delete: summary: Delete Specific Shared Resource operationId: Cover_DeleteSharedResource responses: '200': description: A successful response. schema: $ref: '#/definitions/v1DeleteSharedResourcesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Shared Resource Id in: path required: true type: string tags: - Cover put: summary: Update Specific Shared Resource operationId: Cover_UpdateSharedResource responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateSharedResourcesResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Shared Resource Id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateSharedResourceBody' tags: - Cover /v1/unitcost/{id}: get: summary: Get Specific Unit Type operationId: Cover_GetUnitType responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetUnitTypeResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Unit Type Id in: path required: true type: string tags: - Cover delete: summary: Delete Specific Unit Type operationId: Cover_DeleteUnitType responses: '200': description: A successful response. schema: $ref: '#/definitions/v1DeleteUnitTypeResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Unit Type Id in: path required: true type: string tags: - Cover put: summary: Update Specific Unit Type operationId: Cover_UpdateUnitType responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUnitTypeResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id description: Required. Unit Type Id in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateUnitTypeBody' tags: - Cover /v1/users: get: summary: Lists all users in the organization operationId: Cover_ListUsers responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ListUsersResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' tags: - Cover /v1/users/invite: post: summary: Invites users to join the organization and assigns them roles. operationId: Cover_InviteUsers responses: '200': description: A successful response. schema: $ref: '#/definitions/v1InviteUsersResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1InviteUsersRequest' tags: - Cover /v1/users/{id}: get: summary: Retrieves a user's details by their ID. operationId: Cover_GetUser responses: '200': description: A successful response. schema: $ref: '#/definitions/blueapiCoverV1GetUserResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id in: path required: true type: string tags: - Cover delete: summary: Deletes a user from the organization. operationId: Cover_DeleteUser responses: '200': description: A successful response. schema: $ref: '#/definitions/v1DeleteUserResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: id in: path required: true type: string tags: - Cover /v1/users/{id}/reinvite: post: summary: Reinvites a user to join the organization. This can be used when the user did not receive or lost the original invitation email. operationId: Cover_ReinviteUser responses: '200': description: A successful response. schema: $ref: '#/definitions/v1ReinviteUserResponse' 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/CoverReinviteUserBody' tags: - Cover /v1/users/{userId}: put: summary: Updates a user's role and cost group access. operationId: Cover_UpdateUserRole responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateUserRoleResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: userId in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateUserRoleBody' tags: - Cover /v1/views: get: summary: Get all the views operationId: Cover_GetViews responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetViewsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' tags: - Cover post: summary: Create a view operationId: Cover_CreateView responses: '200': description: A successful response. schema: $ref: '#/definitions/v1CreateViewResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1CreateViewRequest' tags: - Cover /v1/views/favorite/add: put: summary: Add to favorites operationId: Cover_AddFavorite responses: '200': description: A successful response. schema: $ref: '#/definitions/v1AddFavoriteResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1AddFavoriteRequest' tags: - Cover /v1/views/favorite/remove: put: summary: Remove from favorites operationId: Cover_RemoveFavorite responses: '200': description: A successful response. schema: $ref: '#/definitions/v1RemoveFavoriteResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1RemoveFavoriteRequest' tags: - Cover /v1/views/favorites: get: summary: Get favorite views operationId: Cover_GetFavoriteViews responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetFavoriteViewsResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' tags: - Cover /v1/views/layout/{viewId}: put: summary: Updates the view's layout operationId: Cover_UpdateViewLayout responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateViewLayoutResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: viewId description: Required. View Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateViewLayoutBody' tags: - Cover /v1/views/layout/{viewId}/{widgetId}: put: summary: Updates the view's widget operationId: Cover_UpdateViewWidget responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateViewWidgetResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: viewId description: Required. View Id. in: path required: true type: string - name: widgetId description: Required. Widget Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateViewWidgetBody' tags: - Cover /v1/views/publish: post: summary: Publish current view operationId: Cover_PublishView responses: '200': description: A successful response. schema: $ref: '#/definitions/v1PublishViewResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: body in: body required: true schema: $ref: '#/definitions/v1PublishViewRequest' tags: - Cover /v1/views/{viewId}: get: summary: Get the details of the current view operationId: Cover_GetCurrentView responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetCurrentViewResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: viewId description: Required. View Id. in: path required: true type: string tags: - Cover delete: summary: Deletes a view operationId: Cover_DeleteView responses: '200': description: A successful response. schema: $ref: '#/definitions/v1DeleteViewResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: viewId description: Required. View Id. in: path required: true type: string tags: - Cover put: summary: Updates the view details operationId: Cover_UpdateView responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateViewResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: viewId description: Required. View Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateViewBody' tags: - Cover /v1/views/{viewId}/colortheme: put: summary: Update view's color theme operationId: Cover_UpdateViewColorTheme responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateViewColorThemeResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: viewId in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateViewColorThemeBody' tags: - Cover /v1/views/{viewId}/currency: put: summary: Update report's currency settings operationId: Cover_UpdateViewCurrency responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateViewCurrencyResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: viewId in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateViewCurrencyBody' tags: - Cover /v1/views/{viewId}/sidemenufavorite: post: summary: Add as side menu favorite operationId: Cover_AddSideMenuFavorite responses: '200': description: A successful response. schema: $ref: '#/definitions/v1AddSideMenuFavoriteResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: viewId description: Required. View Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverAddSideMenuFavoriteBody' tags: - Cover /v1/views/{viewId}/sidemenustate: put: summary: Updates the side menu state operationId: Cover_UpdateSideMenuState responses: '200': description: A successful response. schema: $ref: '#/definitions/v1UpdateSideMenuStateResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: viewId description: Required. View Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverUpdateSideMenuStateBody' tags: - Cover /v1/views/{viewId}/sidemenuunfavorite: post: summary: Remove from side menu favorite operationId: Cover_RemoveSideMenuFavorite responses: '200': description: A successful response. schema: $ref: '#/definitions/v1RemoveSideMenuFavoriteResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: viewId description: Required. View Id. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverRemoveSideMenuFavoriteBody' tags: - Cover /v1/{vendor_1}/payers: post: summary: Assign payer to a linked account operationId: Cover_AssignPayer responses: '200': description: A successful response. schema: $ref: '#/definitions/v1AssignPayerResponse' default: description: An unexpected error response. schema: $ref: '#/definitions/rpcStatus' parameters: - name: vendor_1 description: Required. Cloud vendor. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverAssignPayerBody' tags: - Cover /v1/{vendor}/account: post: summary: Registers an account operationId: Cover_RegisterAccount 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. Cloud vendor. in: path required: true type: string - name: body in: body required: true schema: $ref: '#/definitions/CoverRegisterAccountBody' tags: - Cover /v1/{vendor}/discountplan/{orgId}:read: post: summary: Get discount plan details for an organization (or MSP). operationId: Cover_GetDiscountPlan responses: '200': description: A successful response. schema: $ref: '#/definitions/v1GetDiscountPlanResponse' 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/CoverGetDiscountPlanBody' tags: - Cover definitions: TrustedAdvisorRecommendationsEC2ConsolidationForMSSqlServer: type: object properties: ec2Details: $ref: '#/definitions/AWSResourceDetailsEC2DetailsInstanceDetails' minVCpu: type: string sqlServerEdition: type: string InstanceDetailsEC2Metrics: type: object properties: cpuUtilizationMetrics: $ref: '#/definitions/awsMetricData' diskUtilizationMetrics: $ref: '#/definitions/awsMetricData' networkUtilizationMetrics: $ref: '#/definitions/awsMetricData' memoryUtilizationMetrics: $ref: '#/definitions/awsMetricData' GcpOptionsBillingOption: type: object properties: accountName: type: string projectId: type: string datasetId: type: string datasetRegion: type: string bigQueryStatus: type: boolean title: V2 CoverUpdateSharedResourceBody: type: object properties: sharedResourceName: type: string title: Optional sharedResourcesCombinations: $ref: '#/definitions/coverResourcesCombinations' title: Optional distribution: type: object additionalProperties: type: number format: double title: Optional allocated: type: number format: double title: Optional unallocated: type: number format: double title: Optional description: type: string title: Optional v1GetAlertsResponse: type: object properties: alertData: $ref: '#/definitions/coverAlertData' title: Response message for GetAlerts v1ListSharedResourcesResponse: type: object properties: sharedResources: type: array items: type: object $ref: '#/definitions/coverSharedResourcesCombination' CoverUpdateCostGroupImageBody: type: object properties: image: type: string description: Required. Image. title: Request message for UpdateCostGroupImage v1GetChannelDetailsResponse: type: object properties: channelData: $ref: '#/definitions/coverChannelData' title: Response message for GetChannelDetails coverCostGroupAzureOptions: type: object properties: filters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' description: 'Optional. A list of filtering options. Multiple filter items will use the logical ''or'' operator, e.g. filter1 || filter2 || filter3, etc. A map of "key:value" column 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 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`.' tagFilters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' 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. 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]*"}`.' description: Azure-specific options for CreateCostGroupRequest. octoawsOctoGeneratedAWSRecommendationsDetails: type: object properties: ec2Details: $ref: '#/definitions/AWSResourceDetailsEC2Details' v1UpdateUserAppThemeRequest: type: object properties: appTheme: type: string title: Request message for UpdateUserAppTheme AWSResourceDetailsNetworkFirewallDetailsEndpoint: type: object properties: id: type: string subnet: type: string az: type: string v1GetFavoriteViewsResponse: type: object properties: favorites: type: array items: type: object $ref: '#/definitions/coverFavorites' title: Response message for GetFavoriteViews AWSResourceDetailsReservedInstance: type: object properties: expirationDate: type: string instanceCount: type: number format: double instanceType: type: string platform: type: string id: type: string metrics: $ref: '#/definitions/ReservedInstanceRIMetrics' CoverUpdateCostGroupCombinationsBody: type: object properties: combinations: $ref: '#/definitions/coverCombinations' title: Request message for UpdateCostGroupCombinations TrustedAdvisorRecommendationsIdleLoadBalancer: type: object properties: elbDetails: $ref: '#/definitions/AWSResourceDetailsELBDetails' reason: type: string MetricDataMetrics: type: object properties: date: type: string value: type: number format: double TrustedAdvisorRecommendationsComprehendUnderutilizedEndpoints: type: object properties: endpoint: $ref: '#/definitions/AWSResourceDetailsComprehendDetailsEndpoint' reason: type: string v1DeleteAlertResponse: type: object properties: id: type: string title: Response message for DeleteAlert AWSResourceDetailsEC2AutoScalingGroupDetails: type: object properties: instanceConfigurationDetails: $ref: '#/definitions/EC2AutoScalingGroupDetailsInstanceConfigurationDetails' v1MergeSuggestedUnitsRequest: type: object properties: suggestedUnitIds: type: array items: type: string unitItemIds: type: array items: type: string unitName: type: string description: type: string AWSResourceDetailsS3Details: type: object properties: bucket: $ref: '#/definitions/S3DetailsBucketDetails' v1ContainerCostUsageRequest: type: object properties: costGroupId: type: string vendor: type: string metricType: $ref: '#/definitions/ContainerCostUsageRequestMetricType' startTime: type: string endTime: type: string granularity: $ref: '#/definitions/ContainerCostUsageRequestTimeGranularity' groupBys: type: array items: type: string filters: type: array items: type: object $ref: '#/definitions/ContainerCostUsageRequestFilterCriteria' serviceType: $ref: '#/definitions/ContainerCostUsageRequestServiceType' v1UpdateUserNameResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for UpdateUserName AWSResourceDetailsEC2Details: type: object properties: instance: $ref: '#/definitions/AWSResourceDetailsEC2DetailsInstanceDetails' riSpecsDetails: $ref: '#/definitions/EC2DetailsRISpecsDetails' v1GetCostUsageRequestCustomOptions: type: object properties: groupByColumns: type: string description: "Optional. A comma-separated list of columns to aggregate the data into. \nA special value of `none` is also supported, which means query by date or month per account only.\n\nFor example, if you only want the services and location data, you can set this field to `serviceName,location`." groupAccounts: type: boolean description: Optional. If set to true, group all input projects into one. filters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' description: "Optional. A list of filtering options. See [ReadCostsRequestOptionsFilters] for more information on each filter item. \nMultiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc." tagFilters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' description: "Optional. A list of filtering options specific for tags. \nMultiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc." labelFilters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' projectLabelFilters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' tagKey: type: string description: Optional. Tag key, only used when groupBy is set to `tag`. coverCostGroupAwsOptions: type: object properties: filters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' description: 'Optional. A list of filtering options. Multiple filter items will use the logical ''or'' operator, e.g. filter1 || filter2 || filter3, etc. A map of "key:value" column 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 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`.' tagFilters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' 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. 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]*"}`.' description: AWS-specific options for CreateCostGroupRequest. v1UpdateUserAvatarResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for UpdateUserAvatar v1GetCostForecastsDataRequestGranularity: type: string enum: - GRANULARITY_UNSPECIFIED - DAILY - MONTHLY default: GRANULARITY_UNSPECIFIED v1GetReportSummaryResponse: type: object properties: costGroupId: type: string startDate: type: string endDate: type: string executiveSummary: $ref: '#/definitions/coverExecutiveSummary' optimizationRecommendationSummary: $ref: '#/definitions/coverOptimizationRecommendationSummary' savingsSummary: $ref: '#/definitions/coverSavingsSummary' v1RemoveFavoriteRequest: type: object properties: viewId: type: string description: Required. View Id. title: Request message for RemoveFavorite apiCoverUser: type: object properties: id: type: string name: type: string email: type: string roles: type: array items: type: object $ref: '#/definitions/coverUserRole' invitedBy: type: object lastUpdated: type: string createdOn: type: string avatar: type: string activated: type: boolean colorTheme: type: string coverCostGroupAzureCspOptions: type: object properties: filters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' description: 'Optional. A list of filtering options. Multiple filter items will use the logical ''or'' operator, e.g. filter1 || filter2 || filter3, etc. A map of "key:value" column 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 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`.' tagFilters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' 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. 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]*"}`.' description: AzureCsp-specific options for CreateCostGroupRequest. CoverUpdateChannelDetailsBody: type: object properties: name: type: string title: 'If optional fields are not supplied, no changes occur. Optional. Either actual email address or slack/msteams channel name' type: type: string description: Optional. email, slack, or msteams. webhookUrl: type: string description: Optional. Only needed for slack and msteams type. title: Request message for UpdateChannelDetails v1ListUntaggedResourcesRequest: type: object properties: vendor: type: string description: Required. costGroupId: type: string description: Required. Cost Group Id. 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.' limit: type: string format: int64 description: Optional. The number of top untagged resources to be displayed. If not set, top 10 untagged resources are returned. title: Request message for ListUntaggedResources v1CreateUnitTypeRequest: type: object properties: unitName: type: string unitItems: type: array items: type: object $ref: '#/definitions/coverUnitItem' sharedResources: type: array items: type: object $ref: '#/definitions/coverSharedResourcesCombination' description: type: string CostExplorerRecommendationsDiscountPlans: type: object properties: paymentOption: type: string term: type: string upfrontCost: type: number format: double riOption: $ref: '#/definitions/DiscountPlansRIOption' spOption: $ref: '#/definitions/DiscountPlansSPOption' coverCostGroupData: type: object properties: id: type: string name: type: string description: type: string image: type: string icon: type: string colorTheme: type: string createdAt: type: string updatedAt: type: string members: type: array items: type: object $ref: '#/definitions/coverMemberUserData' combinations: $ref: '#/definitions/coverCombinations' createdBy: $ref: '#/definitions/coverMemberUserData' eventIndicator: $ref: '#/definitions/coverEventIndicator' anomalyOptions: $ref: '#/definitions/coverAnomalyOptions' type: $ref: '#/definitions/coverCostGroupType' apiCoverAzureOptions: type: object properties: accountName: type: string azureCustomerId: type: string azurePlanId: type: string serviceAcct: type: string partnerAcct: type: string companyId: type: string payerId: type: string v1UpdateUserTimezoneResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for UpdateUserTimezone v1UpdateUserLocaleRequest: type: object properties: locale: type: string title: Request message for UpdateUserLocale AWSResourceDetailsEBSDetails: type: object properties: volumeDetails: $ref: '#/definitions/EBSDetailsVolumeDetails' coverFavorites: type: object properties: id: type: string name: type: string description: type: string isPrivate: type: boolean icon: type: string createdAt: type: string updatedAt: type: string colorTheme: type: string reportType: type: string reportPeriod: type: string v1ContainerCostUsageResponse: type: object properties: results: type: array items: type: object $ref: '#/definitions/ContainerCostUsageResponseGroupedResult' highlights: $ref: '#/definitions/ContainerCostUsageResponseResourceHighlights' totalCost: type: number format: double avgEfficiency: type: number format: double v1AddInfotoMarketplaceResponse: type: object CoverUpdateViewLayoutBody: type: object properties: layout: type: array items: type: object $ref: '#/definitions/coverWidgetData' title: Request message for UpdateViewLayout CoverUpdateDiscountExpirationAlertBody: type: object properties: alertEnabled: type: boolean description: required. channels: type: array items: type: string description: required. Notification Channel Ids. frequencies: type: array items: type: string format: int64 description: required. Frequencies. costGroups: type: array items: type: string title: Required. Cost Group Ids name: type: string title: required. Name ListUntaggedResourcesResponseUntaggedResources: type: object properties: resource: type: string service: type: string accountId: type: string costGroup: type: string cost: type: number format: double vendor: type: string v1PopulateDemoDataResponse: type: object v1GetCostGroupDetailsResponse: type: object properties: costGroupData: $ref: '#/definitions/coverCostGroupData' title: Response message for GetCostGroupDetails v1ResetDemoDataResponse: type: object v1CreateCostGroupResponse: type: object properties: costGroupData: $ref: '#/definitions/coverCostGroupData' title: Response message for CreateCostGroup v1ResetPasswordResponse: type: object properties: userId: type: string title: Response message for ResetPassword DetailsCostCalculation: type: object properties: estimatedCostAfterDiscount: type: number format: double estimatedCostBeforeDiscount: type: number format: double estimatedNetUnusedAmortizedCommitments: type: number format: double estimatedDiscounts: $ref: '#/definitions/CostCalculationEstimatedDiscounts' usageTypes: type: array items: type: object $ref: '#/definitions/CostCalculationUsageTypes' v1OnboardOrgResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for OnboardOrg v1RegisterNewUserResponse: type: object properties: isAuthorized: type: boolean v1GetOrgFiscalMonthResponse: type: object properties: fiscalMonth: type: string dateRegistered: type: string v1GetCostUsageRequestGcpOptions: type: object properties: groupByColumns: type: string description: "Optional. A comma-separated list of columns to aggregate the data into. \nA special value of `none` is also supported, which means query by date or month per account only.\n\nFor example, if you only want the services and location data, you can set this field to `serviceName,location`." groupAccounts: type: boolean description: Optional. If set to true, group all input projects into one. filters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' description: "Optional. A list of filtering options. See [ReadCostsRequestOptionsFilters] for more information on each filter item. \nMultiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc." tagFilters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' description: "Optional. A list of filtering options specific for tags. \nMultiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc." labelFilters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' projectLabelFilters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' tagKey: type: string description: Optional. Tag key, only used when groupBy is set to `tag`. v1GetAICostAndUsageResponseResult: type: object properties: attributes: type: object additionalProperties: type: string metrics: type: array items: type: object $ref: '#/definitions/GetAICostAndUsageResponseMetric' TrustedAdvisorRecommendationsEC2RILeaseExpiration: type: object properties: currentMonthlyCost: type: number format: double estMonthlySavings: type: number format: double reason: type: string riDetails: $ref: '#/definitions/AWSResourceDetailsReservedInstance' v1DeleteUserResponse: type: object TrustedAdvisorRecommendationsAWSWellArchitectedHighRiskIssues: type: object properties: workloadArn: type: string workloadName: type: string reviewerName: type: string workloadType: type: string workloadStartedDate: type: string workloadLastModifiedDate: type: string numberOfIDHRI: type: string numberOfHRIResolved: type: string numberOfQuestionsAnswered: type: string totalNumberOfQuestions: type: string ListRecommendationV2RequestRateSettings: type: object properties: spType: type: string rateModel: type: string paymentOption: type: string term: type: string service: type: string offeringClass: type: string vendor: type: string coverThreshold: type: object properties: type: type: string title: exact or percentage value: type: number format: float title: actual value of threshold GetRecommendationV3ResponseRecommendationDetail: type: object properties: id: type: string name: type: string vendor: type: string source: type: string code: type: string service: type: string target: type: string targetName: type: string dateDetected: type: string region: type: string estimatedMonthlyBeforeCost: type: number format: double estimatedMonthlyAfterCost: type: number format: double estimatedMonthlySavings: type: number format: double resourceId: type: string category: type: string type: type: string lastUpdated: type: string status: type: string risk: type: string effort: type: string details: type: object v1GetAllocationAttributesResponse: type: object properties: attribute: type: array items: type: object $ref: '#/definitions/GetAllocationAttributesResponseAllocationAttribute' description: Response message for the GetAllocationAttributes rpc. octoazurecspOctoGeneratedAzureCSPRecommendations: type: object v1UpdateUnitMetricResponse: type: object properties: unitMetric: $ref: '#/definitions/coverUnitMetric' coverAwsDiscountPlans: type: object properties: summary: $ref: '#/definitions/coverDiscountPlanSummary' riDiscountPlans: type: array items: type: object $ref: '#/definitions/coverRiDiscountPlan' spDiscountPlans: type: array items: type: object $ref: '#/definitions/coverSpDiscountPlan' v1ExchangeRates: type: object properties: month: type: string exchangeRate: type: number format: float date: type: string v1ResetUserPasswordResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for ResetUserPassword v1SetOrgUpdateCurrencyRequest: type: object properties: updateCurrency: type: string format: int64 title: 'Required. Day of the month. Valid inputs are: "1 - 31"' v1SetCostGroupEventIndicatorResponse: type: object properties: costGroupId: type: string eventIndicator: $ref: '#/definitions/coverEventIndicator' ContainerCostUsageRequestServiceType: type: string enum: - SERVICE_UNSPECIFIED - ECS - EKS default: SERVICE_UNSPECIFIED v1CreateProfilingResponse: type: object v1UpdateUserColorThemeRequest: type: object properties: colorTheme: type: string title: Request message for UpdateUserColorTheme v1UpdateUserAppThemeResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for UpdateUserAppTheme v1ReinviteUserResponse: type: object properties: user: $ref: '#/definitions/apiCoverUser' v1ListAssetsFilters: type: object properties: andFilters: type: object additionalProperties: type: string blueapiCoverV1ListExchangeRatesResponse: type: object properties: orgId: type: string exchangeRates: type: array items: type: object $ref: '#/definitions/v1ExchangeRates' title: Response message for ListExchangeRates CoverRegisterAccountBody: type: object properties: accountId: type: string description: Required. The AWS account Id. accountName: type: string title: The account name description: Request message for the RegisterAccount rpc. v1CreateBudgetRequest: type: object properties: budgetData: $ref: '#/definitions/coverBudgetData' apiCoverAwsOptions: type: object properties: AccountName: type: string PayerId: type: string RoleArn: type: string ExternalId: type: string StackId: type: string StackRegion: type: string TemplateUrl: type: string BucketName: type: string Prefix: type: string ReportName: type: string registrationStatus: $ref: '#/definitions/coverRegistrationStatus' Status: type: string RegistrationMethod: type: string title: 'Valid values for now are: ''console'', ''terraform''. default would be ''console''' templateVersion: type: string v1ProcessAuth0UserRequest: type: object properties: source: type: string customerId: type: string email: type: string subuserId: type: string title: Request message for AddUserFromAuth0asRoot rpc v1UpdateCostGroupCreationUIResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' v1ActivateUserResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for ActivateUser CoverUpdateViewCurrencyBody: type: object properties: currency: type: string title: Request message for UpdateViewCurrency v1AddPartnerCenterCredentialsRequest: type: object properties: accountId: type: string title: The account Id applicationId: type: string title: Application Id secretKey: type: string title: Secret Key title: Request message for AddPartnerCenterCredentials EC2AutoScalingGroupDetailsInstanceConfigurationDetails: type: object properties: type: type: string v1DeleteUnitMetricResponse: type: object properties: id: type: string v1AddInfotoMarketplaceRequest: type: object properties: customerIdentifier: type: string v1AnomalyData: type: object properties: account: type: string costGroupId: type: string vendor: type: string product: type: string date: type: string totalCost: type: number format: float isAnomaly: type: boolean title: The value will be true if there is an anomaly for a specific account and product lowerLimit: type: number format: float title: Lower bound. If the total cost is lesser than the lowerlimit it is considered as anomaly upperLimit: type: number format: float title: Upper bound. If the total cost is greater than the upperlimit it is considered as anomaly anomalyCost: type: number format: float title: The difference of the total cost and the upperlimit or lowerlimit if it is anomamly, if not anomaly then anomaly cost is 0 anomalyProbability: type: number format: float title: How many percentage does the data is considered anomaly title: Message response for anomaly detection TrustedAdvisorRecommendationsInactiveAWSNetworkFirewall: type: object properties: firewallDetails: $ref: '#/definitions/AWSResourceDetailsNetworkFirewallDetails' totalBytesProcessed: type: number format: double v1GetBudgetResponse: type: object properties: budgetData: $ref: '#/definitions/coverBudgetData' v1CreateUnitTypeResponse: type: object properties: unitCostData: $ref: '#/definitions/coverUnitCostData' v1UpdateBudgetResponse: type: object properties: budgetData: $ref: '#/definitions/coverBudgetData' v1ResetUserPasswordRequest: type: object properties: previousPassword: type: string newPassword: type: string title: Request message for ResetUserPassword coverUnitMetric: type: object properties: id: type: string orgId: type: string metricName: type: string description: type: string aggregationMethod: type: string dataSource: type: string status: type: string costgroupId: type: array items: type: string sourceInfo: $ref: '#/definitions/coverSourceInfo' createdBy: type: string createTime: type: string lastUpdatedAt: type: string v1GetCostGroupAllocationRequest: type: object properties: category: type: string description: Required. The category to display on the cost group. Supports `fee` or `savings`. costGroupId: type: string description: Required. Cost Group Id. startDate: type: string endDate: type: string description: Request message for the GetCostGroupAllocation rpc. gcpRecommendationHubRecommendations: type: object properties: insights: type: array items: type: object $ref: '#/definitions/RecommendationHubRecommendationsInsights' recommendedAction: type: string resource: type: string priorityLevel: type: string additionalData: type: object v1GetCostGroupAttributeRequest: type: object properties: vendor: type: string attributeType: type: string costGroupId: type: string existingCombinations: type: array items: type: object $ref: '#/definitions/coverCombinations' description: Optional, This is for Unit Cost. When present, the api will return all attributes except the combination in this item. currentCombination: $ref: '#/definitions/coverCombinations' description: "Optional, This is for Unit Cost. \nWhen present, the currentCombination field represents a combination that is not yet finalized. \nThis field is used to compare with existingCombinations to analyze both sets \nand determine the appropriate attributes to return." title: Request message for GetCostGroupAttribute GcpOptionsProjectOption: type: object properties: apiAccess: type: boolean projectName: type: string projectNumber: type: string billingAccountId: type: string v1DeleteBudgetResponse: type: object properties: id: type: string v1CreateUnitFromSuggestedRequest: type: object properties: suggestedUnitIds: type: array items: type: string coverUnitItem: type: object properties: itemName: type: string distribution: type: number format: double dedicatedResourcesCombinations: $ref: '#/definitions/coverResourcesCombinations' vendors: type: array items: type: string createTime: type: string lastUpdatedAt: type: string NatGatewayDetailsNatGatewayMetrics: type: object properties: bytesInFromDest: $ref: '#/definitions/awsMetricData' bytesInFromSrc: $ref: '#/definitions/awsMetricData' bytesOutToDest: $ref: '#/definitions/awsMetricData' bytesOutToSrc: $ref: '#/definitions/awsMetricData' RIOptionEstOutcomeFromPurchaseRI: type: object properties: aveUtilization: type: number format: double aveNormalizesUnitsUsedPerHour: type: number format: double aveNumberOfInstanceUsedPerHour: type: number format: double breakEvenInMonths: type: number format: double monthlyOnDemandCost: type: number format: double monthlyRICost: type: number format: double monthlySavings: type: number format: double monthlySavingsPercentage: type: number format: double maxNormalizedUnitsUsedPerHour: type: number format: double minNormalizedUnitsUsedPerHour: type: number format: double minNumberOfInstanceUsedPerHour: type: number format: double maxNumberOfInstanceUsedPerHour: type: number format: double v1GetCostForecastsDataRequest: type: object properties: costGroupId: type: string title: Required. Cost Group Id startTime: type: string title: Required. Start Time in 2006-01-02 format endTime: type: string title: Required. End Time in 2006-01-02 format granularity: $ref: '#/definitions/v1GetCostForecastsDataRequestGranularity' v1UpdateUserAttributesResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for UpdateUserAttributes S3DetailsBucketDetails: type: object properties: arn: type: string name: type: string v1UpdateCostGroupNameResponse: type: object properties: name: type: string title: Response message for UpdateCostGroupName v1GetCostUsageV2RequestCategory: type: string enum: - Category_UNSPECIFIED - COST - USAGE default: Category_UNSPECIFIED v1UpdateUserEmailRequest: type: object properties: email: type: string title: Request message for UpdateUserEmail GetAICostAndUsageRequestFilter: type: object properties: key: type: string operator: $ref: '#/definitions/FilterOperator' values: type: array items: type: string description: 'TEMPORARY. retain the old parameter to avoid errors in UI prod. Will remove once the latest changes in UI is released.' value: type: string v1ResetDemoDataRequest: type: object v1ExecuteRecommendationV3Request: type: object properties: ids: type: array items: type: string executeType: $ref: '#/definitions/ExecuteRecommendationV3RequestExecuteType' v1GetOrgUpdateCurrencyResponse: type: object properties: orgId: type: string updateCurrency: type: string format: int64 lastUpdate: type: string TrustedAdvisorRecommendationsUnderutilizedRedshiftCluster: type: object properties: cluster: $ref: '#/definitions/RedshiftDetailsClusterDetails' reason: type: string estimatedMonthlySavings: type: number format: double DiscountPlansRIOption: type: object properties: ec2Details: $ref: '#/definitions/AWSResourceDetailsEC2Details' rdsDetails: $ref: '#/definitions/AWSResourceDetailsRDSDetails' elasticacheDetails: $ref: '#/definitions/AWSResourceDetailsElastiCacheDetails' redshiftDetails: $ref: '#/definitions/AWSResourceDetailsRedshiftDetails' opensearchDetails: $ref: '#/definitions/AWSResourceDetailsOpensearchDetails' memoryDBDetails: $ref: '#/definitions/AWSResourceDetailsMemoryDBDetails' recommendedNormalizedUnits: type: number format: double recommendedNumberOfInstanceToPurchase: type: number format: double estOutcomeFromPurchaseRI: $ref: '#/definitions/RIOptionEstOutcomeFromPurchaseRI' region: type: string sizeFlexEligible: type: boolean tenancy: type: string currentGeneration: type: boolean CoverUpdateCostGroupDescriptionBody: type: object properties: description: type: string description: Required. Description. title: Request message for UpdateCostGroupDescription coverSuggestedUnit: type: object properties: id: type: string vendor: type: string potentialUnitName: type: string potentialUnitItems: type: array items: type: object $ref: '#/definitions/coverPotentialUnitItem' coverOptimizationRecommendationSummary: type: object properties: potentialSavings: type: array items: type: number format: double title: Potential savings per month action: type: array items: type: string title: The recommended action to perform to achieve potential savings v1UpdateUserProfileResponse: type: object properties: email: type: string name: type: string role: type: string usage: type: string intention: type: string companyName: type: string linkSource: type: string hasSubscribedUpdates: type: boolean coverCostGroupCustomOptions: type: object properties: filters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' description: Optional. A list of filtering options. Multiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc. tagFilters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' 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. 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]*"}`.' labelFilters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' description: 'Labels on gcp help you organize resources and manage your costs at scale, with the granularity you need. For example, on Compute Engine, you can use labels to group VMs in categories such as production, staging, or development so that you can search for resources that belong to each development stage. If you want to query lineitems with the label `vm-prod: prod`, set to `{"vm-prod":"prod"}`. You can also use regular expressions for tag values, such as `{"name":"re:[A-Za-z0-9]*"}`.' projectLabelFilters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' description: "Project Labels refers to labels that have been assigned to GCP projects. \nFor example, projectId \"mobingi-main\" assigned as \"env:prod\"\nIf you want to query lineitems with the label `env: prod`, set to `{\"env\":\"prod\"}`. You can also use regular expressions for tag values, such as `{\"name\":\"re:[A-Za-z0-9]*\"}`." description: Custom-specific options for CreateCostGroupRequest. v1GetAICostAndUsageRequestGranularity: type: string enum: - GRANULARITY_UNSPECIFIED - DAILY - MONTHLY default: GRANULARITY_UNSPECIFIED recommendationOCTOGeneratedRecommendations: type: object properties: aws: $ref: '#/definitions/octoawsOctoGeneratedAWSRecommendations' gcp: $ref: '#/definitions/octogcpOctoGeneratedGCPRecommendations' azurecsp: $ref: '#/definitions/octoazurecspOctoGeneratedAzureCSPRecommendations' coverAlertData: type: object properties: id: type: string name: type: string granularity: type: string costGroups: type: array items: type: object $ref: '#/definitions/coverAlertCostGroup' channels: $ref: '#/definitions/coverAlertChannels' createdBy: type: string createdAt: type: string updatedAt: type: string fixedAmount: type: number format: float percentage: type: number format: float AWSResourceDetailsELBDetails: type: object properties: loadBalancer: $ref: '#/definitions/ELBDetailsLoadBalancer' v1ListUntaggedResourcesResponse: type: object properties: untaggedResources: type: array items: type: object $ref: '#/definitions/ListUntaggedResourcesResponseUntaggedResources' title: Response message for ListUntaggedResources v1UpdateCostGroupColorThemeResponse: type: object properties: colorTheme: type: string title: Response message for UpdateCostGroupColorTheme v1ListUnregisteredAccountsResponse: type: object properties: orgId: type: string unregisteredAccts: type: array items: type: object $ref: '#/definitions/v1UnregisteredAccts' title: Response message for ListUnregisteredAccounts apiCoverBudgetAlert: type: object properties: threshold: type: array items: type: object $ref: '#/definitions/coverThreshold' channels: $ref: '#/definitions/coverAlertChannels' v1UpdateSharedResourcesResponse: type: object properties: sharedResources: $ref: '#/definitions/coverSharedResourcesCombination' v1AssignPayerResponse: type: object properties: accountId: type: string payerId: type: string title: Response message for AssignPayer coverGranularBudgetData: type: object properties: date: type: string title: use yyyymm format budget: type: number format: float v1GetUserDetailsResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for GetUserDetails v1UpdateUserLocaleResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for UpdateUserLocale CoverSetCostGroupEventIndicatorBody: type: object properties: anomaly: type: boolean title: Required. Only anomaly is supported as of now visualBuilder: type: boolean title: Optional. Temporary storage of cost group creation UI preference v1CreateAlertResponse: type: object properties: alertData: $ref: '#/definitions/coverAlertData' title: Response message for CreateAlert coverAnomalyOptions: type: object properties: threshold: type: number format: float isPercentage: type: boolean pastDataInMonths: type: string format: int64 v1GetAlertDetailsResponse: type: object properties: alertData: $ref: '#/definitions/coverAlertData' title: Response message for GetAlertDetails EC2DetailsRISpecsDetails: type: object properties: offeringClass: type: string v1CreateViewResponse: type: object properties: viewData: $ref: '#/definitions/coverViewData' title: Response message for CreateView ECSDetailsServiceDetails: type: object properties: architecture: type: string memorySizeInMB: type: string format: int64 platform: type: string vCpu: type: number format: double v1MergeSuggestedUnitsResponse: type: object properties: mergedSuggestedUnits: $ref: '#/definitions/coverSuggestedUnit' coverCostForecastDetails: type: object properties: id: type: string forecastName: type: string description: type: string costgroup: $ref: '#/definitions/apiCoverCostGroup' startDate: type: string endDate: type: string createdBy: type: string creationDate: type: string lastUpdatedDate: type: string ELBDetailsLoadBalancer: type: object properties: name: type: string TrustedAdvisorRecommendationsLambdaWithExcessiveTimeouts: type: object properties: maxDailyTimeoutRate: type: number format: double dateOfDailyTimeoutRate: type: string aveDailyTimeoutRate: type: number format: double functionTimeoutSettings: type: number format: double lostDailyComputeCost: type: number format: double aveDailyInvokes: type: number format: double currentDayInvokes: type: number format: double currentDayTimeoutRate: type: number format: double function: $ref: '#/definitions/LambdaDetailsFunctionDetails' v1ListBudgetsResponse: type: object properties: budgetData: $ref: '#/definitions/coverBudgetData' CoverUpdateUnitMetricBody: type: object properties: metricName: type: string title: Optional aggregationMethod: type: string title: Optional dataSource: type: string title: Optional description: type: string title: Optional costgroupId: type: array items: type: string title: Optional sourceInfo: $ref: '#/definitions/coverSourceInfo' title: Optional v1GetChannelsResponse: type: object properties: channelData: $ref: '#/definitions/coverChannelData' title: Response message for GetChannels CoverUpdateViewBody: type: object properties: name: type: string description: type: string icon: type: string isPrivate: type: boolean isEditable: type: boolean colorTheme: type: string title: Request message for UpdateView v1GetAnomalyinCostGroupRequest: type: object properties: costGroupId: type: string startDate: type: string title: 'Start date for detecting anomalies. Valid format: YYYYMMDD' endDate: type: string title: 'End date for detection anomalies. Valid format: YYYYMMDD' title: Request message for getting anomaly v1ProcessAuth0UserResponse: type: object properties: isAuthorized: type: boolean title: Response message wrapper for adding user from Auth0 as root v1ListBudgetsRequest: type: object properties: includeSpendAndForecast: type: boolean title: Optional. Set to true to include monthly spending and forecast within the budget period costGroup: type: string description: Optional. Cost group ID. Return budgets under this specific cost group. CoverAssignPayerBody: type: object properties: accountId: type: string description: Required. Account Id. payerId: type: string description: Required. The Payer Id. title: Request message for AssignPayer blueapiCoverV1Resource: type: object properties: date: type: string title: Format is `yyyy-mm` orgId: type: string title: Organization ID vendor: type: string description: Only `aws` is supported for now. account: type: string title: Resource owner account service: type: string description: Only `AmazonEC2` is supported for now. resourceId: type: string title: Resource unique identifier resourceType: type: string title: Only `AWS::EC2::Instance` is supported for now cost: type: number format: double description: Cost incurred for the resource on specified month. properties: type: string title: 'Format: JSON String' recommendation: type: string title: 'Format: JSON String' CoverUpdateCostGroupNameBody: type: object properties: name: type: string description: Required. Name. title: Request message for UpdateCostGroupName v1ListRecommendationResponse: type: object properties: recommendationId: type: string recommendation: type: string service: type: string estimatedMonthlySaving: type: number format: double estimatedMonthlyCost: type: number format: double scoring: type: string vendor: type: string category: type: string optimizationStatus: type: string errorMessage: type: string accountId: type: string accountName: type: string instanceName: type: string instanceId: type: string instanceType: type: string region: type: string commitment: type: number format: double spType: type: string numberToPurchase: type: string format: int64 riType: type: string type: type: string source: type: string dateRecommended: type: string recommendationGroup: type: string lastUpdatedAt: type: string purchaseOption: $ref: '#/definitions/ListRecommendationResponsePurchaseOption' AWSResourceDetailsMemoryDBDetails: type: object properties: node: $ref: '#/definitions/AWSResourceDetailsMemoryDBDetailsNodeDetails' CoverUpdateViewWidgetBody: type: object properties: options: type: object requests: type: array items: type: object $ref: '#/definitions/coverLayoutRequests' title: Request message for UpdateViewWidget v1RegisterDataAccessRequest: type: object properties: vendor: type: string title: Vendor (Azure/GCP) target: type: string title: Billing Id for GCP, Account Id for Azure accountType: type: string title: Account type (payer/linked) gcpOptions: $ref: '#/definitions/coverGcpOptions' title: GCP Options. Specific for GCP azureOptions: $ref: '#/definitions/apiCoverAzureOptions' title: Azure Options. Specific for Azure awsOptions: $ref: '#/definitions/apiCoverAwsOptions' title: Aws Options. Specific for Aws description: Request message for Register Data Access. For azure and gcp. ListNonperformingRateResponseNonperforming: type: object properties: type: type: string account: type: string utilization: type: number format: double waste: type: number format: double v1ListRecommendationsV3Request: type: object properties: costgroupId: type: string statuses: type: array items: type: string filters: type: object additionalProperties: type: string v1ListForecastsResponse: type: object properties: costForecastDetails: type: array items: type: object $ref: '#/definitions/coverCostForecastDetails' TrustedAdvisorRecommendationsEC2OverProvisionedForMSSqlServer: type: object properties: ec2Details: $ref: '#/definitions/AWSResourceDetailsEC2DetailsInstanceDetails' maxVCpu: type: string recommendedInstanceType: type: string CoverUpdateCostForecastBody: type: object properties: forecastName: type: string title: Optional. Name of the forecast description: type: string title: Optional. Description of the forecast costGroup: $ref: '#/definitions/apiCoverCostGroup' title: Optional. Cost Group Id and Name pastActualCostRange: type: string format: int64 title: 'Optional. The range of past actual cost to be used in forecasting. Valid values are: ''1'', ''3'', ''6'', and ''12'' (in months)' lookForwardPeriod: type: string format: int64 title: 'Optional. The number of months to look forward in the forecast. Valid values are: ''1'', ''3'', ''6'', and ''12'' (in months)' externalAdjustments: type: array items: type: object $ref: '#/definitions/coverExternalAdjustment' description: Optional. v1UpdateUserNameRequest: type: object properties: name: type: string title: Request message for UpdateUserName RedshiftDetailsClusterDetails: type: object properties: type: type: string clusterId: type: string status: type: string CostCalculationUsageTypes: type: object properties: operation: type: string productCode: type: string unit: type: string usageAmount: type: number format: double usageType: type: string v1UpdateUserColorThemeResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for UpdateUserColorTheme v1UpdateUserIconResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for UpdateUserIcon v1GetCostUsageV2Response: type: object properties: value: type: number format: double date: type: string vendor: type: string details: type: object v1UpdateChannelDetailsResponse: type: object properties: channelData: $ref: '#/definitions/coverChannelData' title: Response message for UpdateChannelDetails ExecuteRecommendationV3RequestExecuteType: type: string enum: - DEFAULT - MARK_AS_EXECUTED - UNDO_EXECUTED - SUBMIT_TEMPLATE - RETRY_EXECUTE default: DEFAULT v1CreateAlertRequest: type: object properties: name: type: string description: Required. fixedAmount: type: number format: float description: At least one in either fixedAmount or percentage. percentage: type: number format: float granularity: type: string description: Optional. daily or monthly. Only 'daily' is supported for now. costGroups: type: array items: type: string description: Required. Cost group IDs. channels: type: array items: type: string description: Required. Channel IDs. title: Request message for CreateAlert v1AddFavoriteRequest: type: object properties: viewId: type: string description: Required. View Id. title: Request message for AddFavorite DiscountPlansSPOption: type: object properties: type: type: string currencyCode: type: string hourlyCommitmentToPurchase: type: number format: double offeringId: type: string currentUtilizationDetails: $ref: '#/definitions/SPOptionCurrentUtilizationDetails' estOutcomeFromPurchaseSP: $ref: '#/definitions/SPOptionEstOutcomeFromPurchaseSP' CostExplorerRecommendationsEC2RightsizeDetails: type: object properties: monthlyCost: type: number format: double monthlySavingsAmount: type: number format: double monthlySavingsPercentage: type: number format: double ec2Details: $ref: '#/definitions/AWSResourceDetailsEC2Details' v1GetCostUsageV2Request: type: object properties: costGroupId: type: string startTime: type: string endTime: type: string granularity: $ref: '#/definitions/v1GetCostUsageV2RequestGranularity' groupBys: type: array items: type: string category: $ref: '#/definitions/v1GetCostUsageV2RequestCategory' currency: type: string awsOptions: $ref: '#/definitions/coverCostGroupAwsOptions' azurecspOptions: $ref: '#/definitions/coverCostGroupAzureCspOptions' gcpOptions: $ref: '#/definitions/coverCostGroupGcpOptions' octogcpOctoGeneratedGCPRecommendations: type: object coverResourcesCombinations: type: object properties: awsOptions: $ref: '#/definitions/coverCostGroupAwsOptions' description: Optional. Valid only for the `aws` vendor. AWS-specific options. azureOptions: $ref: '#/definitions/coverCostGroupAzureOptions' description: Optional. Valid only for the `azure` vendor. Azure-specific options. gcpOptions: $ref: '#/definitions/coverCostGroupGcpOptions' description: Optional. Valid only for the `gcp` vendor. GCP-specific options. azurecspOptions: $ref: '#/definitions/coverCostGroupAzureCspOptions' description: Optional. Valid only for the `azurecsp` vendor. AzureCSP-specific options. CoverGetDiscountPlanBody: 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 GetDiscountPlan v1PreviewGoogleSheetResponse: type: object properties: header: type: array items: type: string description: Contains the column headers of the Google Sheet. rowData: type: array items: type: object $ref: '#/definitions/coverRowData' description: Contains the data rows of the Google Sheet. v1GetCostUsageRequestAzureOptions: type: object properties: groupByColumns: type: string description: "Optional. A comma-separated list of columns to aggregate the data into. \nValid values are `accountId`, `serviceName`, `serviceTier`, `location`, `product`, `partNumber`, `resourceGuid`, `offerId`, `consumedService`, `departmentId`, `departmentName`, `resourceGroup`, `enrollment`, `additionalInfo`\nA special value of `none` is also supported, which means query by date or month per account only.\n\nFor example, if you only want the services and location data, you can set this field to `serviceName,location`." groupAccounts: type: boolean description: Optional. If set to true, group all input subscription into one. filters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' description: "Optional. A list of filtering options. See [ReadCostsRequestOptionsFilters] for more information on each filter item. \nMultiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc." tagFilters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' description: "Optional. A list of filtering options specific for tags. \nMultiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc." GetAICostAndUsageResponseUsage: type: object properties: unit: type: string amount: type: number format: double TrustedAdvisorRecommendationsCommonDetails: type: object properties: awsConfigRule: type: string inputParameters: type: string resource: type: string AWSResourceDetailsComprehendDetailsEndpoint: type: object properties: arn: type: string provisionedInferenceUnit: type: number format: double autoScalingStatus: type: string status: type: string coverCsvInfo: type: object properties: s3key: type: string title: 'The S3 key of the CSV file. For example, "path/to/file.csv"' s3url: type: string title: 'The URL of the CSV file. For example, "https://s3.amazonaws.com/bucket/path/to/file.csv"' requiredColumns: $ref: '#/definitions/coverRequiredColumns' v1GetCostForecastsDataResponse: type: object properties: date: type: string forecastCost: type: number format: double upperBound: type: number format: double lowerBound: type: number format: double v1AddFavoriteResponse: type: object properties: viewId: type: string title: Response message for AddFavorite v1UpdateAlertDetailsResponse: type: object properties: alertData: $ref: '#/definitions/coverAlertData' title: Response message for UpdateAlertDetails TrustedAdvisorRecommendationsLambdaHighErrorRates: type: object properties: avgDailyErrorRates: type: number format: double avgDailyInvokes: type: number format: double currentDayErrorRates: type: number format: double currentDayInvokes: type: number format: double dateForMaxErrorRates: type: string lostDailyComputeCost: type: number format: double maxDailyErrorRates: type: number format: double lambdaDetails: $ref: '#/definitions/AWSResourceDetailsLambdaDetails' AWSResourceDetailsOpensearchDetails: type: object properties: instance: $ref: '#/definitions/AWSResourceDetailsOpensearchDetailsInstanceDetails' InstanceDetailsNatGatewayDetails: type: object properties: id: type: string subnetId: type: string vpcId: type: string metrics: $ref: '#/definitions/NatGatewayDetailsNatGatewayMetrics' v1GetRecommendationV3Response: type: object properties: recommendations: type: array items: type: object $ref: '#/definitions/GetRecommendationV3ResponseRecommendationDetail' v1CreateDiscountExpirationAlertRequest: type: object properties: frequencies: type: array items: type: string format: int64 title: 'Required if the alertEnabled is set to true Supported values are the following: [0, 7, 30, 60, 90]' costGroups: type: array items: type: string title: Required. Cost Group Id alertEnabled: type: boolean description: required. Switch in enabling alert. channels: type: array items: type: string description: required. Array of notificationChannel Ids from DynamoDB. Existing in ripple. name: type: string title: required. Name of alert title: Request message for CreateDiscountExpirationAlert CoverReinviteUserBody: type: object v1GetAICostAndUsageResponseCost: type: object properties: amount: type: number format: double currency: type: string coverWidgetData: type: object properties: id: type: string x: type: number format: double y: type: number format: double componentId: type: string options: type: object requests: type: array items: type: object $ref: '#/definitions/coverLayoutRequests' ListRecommendationResponsePurchaseOption: type: object properties: spType: type: string offeringClass: type: string commitment: type: number format: double numberToPurchase: type: string format: int64 paymentOption: type: string term: type: string currentGeneration: type: boolean serviceType: type: string upfrontCost: type: number format: double v1VerifyAPIAccessResponse: type: object properties: result: type: boolean v1MergeUnitsRequest: type: object properties: unitCostIds: type: array items: type: string unitName: type: string description: type: string blueapiCoverV1GetUserResponse: type: object properties: user: $ref: '#/definitions/apiCoverUser' v1UpdateUserRoleRequestRole: type: object properties: id: type: string costGroupIds: type: array items: type: string v1ResetPasswordRequest: type: object properties: userId: type: string description: Required. UserId. title: Request message for ResetPassword coverExecutiveSummary: type: object properties: costUsage: type: number format: double title: The total cost usage of the current period previousPeriodCostUsage: type: number format: double title: The total cost usage of the previous period status: type: string title: The status of the cost usage compared to the previous period. "increased", "decreased" percentageChanged: type: number format: double title: The percentage changed compared to the previous period averageMonthlyChanged: type: number format: double title: The average monthly changed differenceFromPreviousPeriod: type: number format: double ListRecommendationsV3ResponseRecommendationSummary: type: object properties: id: type: string name: type: string target: type: string targetName: type: string category: type: string type: type: string vendor: type: string source: type: string code: type: string service: type: string region: type: string resourceId: type: string estimatedMonthlySavings: type: number format: double estimatedMonthlyBeforeCost: type: number format: double estimatedMonthlyAfterCost: type: number format: double risk: type: string effort: type: string status: type: string additionalDetails: type: object AWSResourceDetailsOpensearchDetailsInstanceDetails: type: object properties: instanceClass: type: string instanceSize: type: string v1UpdateCostGroupImageResponse: type: object properties: image: type: string title: Response message for UpdateCostGroupImage AWSResourceDetailsLambdaDetails: type: object properties: function: $ref: '#/definitions/LambdaDetailsFunctionDetails' CostExplorerRecommendationsEC2Rightsize: type: object properties: currentDetails: $ref: '#/definitions/CostExplorerRecommendationsEC2RightsizeDetails' recommendationDetails: $ref: '#/definitions/CostExplorerRecommendationsEC2RightsizeDetails' v1CostAllocatorDetails: type: object properties: id: type: string category: type: string expiration: type: string format: int64 startMonth: type: string description: Optional. The starting month of the allocator to be effective. defaultAccount: type: string description: Optional. The default account for remaining costs. If not set, will allocate the cost to the original account. criteria: $ref: '#/definitions/coverCombinations' description: Required. Criteria for the adjustment to be applied. allocator: type: array items: type: object $ref: '#/definitions/v1Allocator' createTime: type: string updateTime: type: string name: type: string description: type: string ListUsersResponseUserSummary: type: object properties: id: type: string email: type: string name: type: string roles: type: array items: type: string activated: type: boolean avatar: type: string colorTheme: type: string GetAllocationAttributesResponseAllocationAttribute: type: object properties: type: type: string service: type: array items: type: string awsCostExplorerRecommendations: type: object properties: ec2Rightsize: $ref: '#/definitions/CostExplorerRecommendationsEC2Rightsize' discountPlans: $ref: '#/definitions/CostExplorerRecommendationsDiscountPlans' terminateEc2: $ref: '#/definitions/CostExplorerRecommendationsTerminateEC2' coverCostGroupOptionsFilters: type: object properties: andFilters: type: object additionalProperties: type: string v1UpdateUserAvatarRequest: type: object properties: avatar: type: string title: Request message for UpdateUserAvatar RecommendationHubRecommendationsInsights: type: object properties: type: type: string description: type: string coverRegistrationStatus: type: object properties: apiAccess: type: boolean cloudwatchStreaming: type: boolean curExport: type: boolean payer: type: boolean stackSet: type: boolean transferAccount: type: boolean isDataAvailable: type: boolean CoverUpdateBudgetBody: type: object properties: budgetData: $ref: '#/definitions/coverBudgetData' v1ResolveAWSMarketplaceTokenForOnboardingResponse: type: object properties: isAllowedToOnboard: type: boolean customerId: type: string LambdaDetailsFunctionDetails: type: object properties: architecture: type: string memorySizeInMB: type: string format: int64 arn: type: string status: type: string v1DeleteSharedResourcesResponse: type: object properties: id: type: string coverAlertCostGroup: type: object properties: id: type: string name: type: string v1CreateChannelRequest: type: object properties: name: type: string title: Required. Either actual email address or slack/msteams channel name type: type: string description: Required. email, slack, or msteams. webhookUrl: type: string description: Optional. Only needed for slack and msteams type. title: Request message for CreateChannel CoverUpdateCostGroupIconBody: type: object properties: icon: type: string description: Required. Icon. title: Request message for UpdateCostGroupIcon apiCoverAccount: type: object properties: accountId: type: string name: type: string type: type: string title: account, subscription, project CoverUpdateCostGroupColorThemeBody: type: object properties: colorTheme: type: string description: Required. Color Theme. title: Request message for UpdateCostGroupColorTheme InstanceDetailsEIPDetails: type: object properties: ipAddress: type: string coverViewData: type: object properties: id: type: string name: type: string description: type: string isPrivate: type: boolean isEditable: type: boolean icon: type: string createdBy: $ref: '#/definitions/coverMemberUserData' createdAt: type: string updatedBy: $ref: '#/definitions/coverMemberUserData' updatedAt: type: string layout: type: array items: type: object $ref: '#/definitions/coverWidgetData' sideMenu: $ref: '#/definitions/coverSideMenu' reportType: type: string colorTheme: type: string currency: type: string reportPeriod: type: string v1ListAssetsRequest: type: object properties: costGroupId: type: string description: Required. Cost Group Id. startMonth: type: string description: 'Optional. If not set, current month will be used. Format: `yyyymm`.' endMonth: type: string description: 'Optional. If not set, current month will be used. Format: `yyyymm`.' withRecommendation: type: boolean title: Optional. If true, returns only all assets with recommendation awsOptions: type: array items: type: object $ref: '#/definitions/v1ListAssetsFilters' description: Optional. For AWS-specific filter options. awsPropertiesOptions: type: array items: type: object $ref: '#/definitions/v1ListAssetsFilters' description: Optional. For AWS-specific properties filter options. description: Request message for the Asset.ListResources rpc. v1RegisterNewUserRequest: type: object properties: email: type: string title: required email password: type: string title: required password name: type: string title: required user Name company: type: string title: required company name role: type: string title: required company role amount: type: string title: optional company monthly cloud usage intention: type: string title: optional intention title: Request message for RegisterNewUser CoverAddSideMenuFavoriteBody: type: object properties: menuItemId: type: string title: Request message for AddSideMenuFavorite AWSResourceDetailsRoute53Details: type: object properties: hostedZoneName: type: string hostedZoneId: type: string resourceRecordSetName: type: string resourceRecordSetType: type: string ContainerCostUsageResponseCostMetric: type: object properties: amount: type: number format: double currency: type: string unusedAmount: type: number format: double CoverUpdateAnomalyAlertBody: type: object properties: name: type: string title: required. alert name alertEnabled: type: boolean description: required. notificationChannels: type: array items: type: string description: required. Notification Channel Ids. frequency: type: string description: required. Frequency. costGroupId: type: string title: required. cost group id coverSideMenu: type: object properties: favorite: type: array items: type: string isOpenedAdmin: type: boolean isOpenedFeatures: type: boolean isOpenedCostGroups: type: boolean v1UpdateUserAttributesRequest: type: object properties: attributes: type: array items: type: string title: Request message for UpdateUserAttributes v1SetCostGroupAnomalyOptionsResponse: type: object properties: costGroupId: type: string anomalyOptions: $ref: '#/definitions/coverAnomalyOptions' v1ListUnitMetricsResponse: type: object properties: unitMetrics: type: array items: type: object $ref: '#/definitions/coverUnitMetric' azurecspAzureCSPRecommendations: type: object gcpGCPRecommendations: type: object properties: recommendationHubRecommendations: $ref: '#/definitions/gcpRecommendationHubRecommendations' coverRiDiscountPlan: 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 allocationCategory: type: string sourceCostGroup: type: string targetCostGroup: type: string allocatorId: type: string DBInstanceDetailsStorage: type: object properties: allocatedStorageInGb: type: number format: double iops: type: number format: double storageThroughput: type: number format: double type: type: string AWSResourceDetailsElastiCacheDetailsNodeDetails: type: object properties: type: type: string family: type: string SPOptionCurrentUtilizationDetails: type: object properties: aveCoverage: type: number format: double aveHourOnDemandSpend: type: number format: double maxHourlyOnDemandSpend: type: number format: double minHourlyOnDemandSpend: type: number format: double existingHourlyCommitment: type: number format: double estOnDemandCostWithHourlyCommitment: type: number format: double v1GetCostUsageV2RequestGranularity: type: string enum: - GRANULARITY_UNSPECIFIED - DAILY - MONTHLY default: GRANULARITY_UNSPECIFIED v1CreateCostForecastRequest: type: object properties: forecastName: type: string title: Required. Name of the forecast description: type: string title: Optional. Description of the forecast costGroup: $ref: '#/definitions/apiCoverCostGroup' title: Required. Cost Group Id and Name pastActualCostRange: type: string format: int64 title: 'Required. The range of past actual cost to be used in forecasting. Valid values are: ''1'', ''3'', ''6'', and ''12'' (in months)' lookForwardPeriod: type: string format: int64 title: 'Required. The number of months to look forward in the forecast. Valid values are: ''1'', ''3'', ''6'', and ''12'' (in months)' externalAdjustments: type: array items: type: object $ref: '#/definitions/coverExternalAdjustment' description: Optional. coverCostForecastAdjustment: type: object properties: month: type: string description: For monthly adjustment, format is yyyy-mm. adjustment: type: number format: double AWSResourceDetailsRedshiftDetails: type: object properties: cluster: $ref: '#/definitions/RedshiftDetailsClusterDetails' node: $ref: '#/definitions/AWSResourceDetailsRedshiftDetailsNodeDetails' v1SetOrgUpdateCurrencyResponse: type: object properties: updateCurrency: type: string format: int64 GetAllocationSourcesResponseAllocationSources: type: object properties: accountName: type: string service: type: string costGroup: type: string apiCoverTagData: type: object properties: tagKey: type: string tagValue: type: array items: type: string CoverUpdateAlertDetailsBody: type: object properties: name: type: string description: 'If optional fields are not supplied, no changes occur. Optional.' fixedAmount: type: number format: float description: Both are optional. percentage: type: number format: float granularity: type: string description: Optional. daily or monthly. Only 'daily' is supported for now. costGroups: type: array items: type: string description: Optional. Cost group IDs. channels: type: array items: type: string description: Optional. Channel IDs. title: Request message for UpdateAlertDetails coverSideMenuState: type: object properties: key: type: string value: type: boolean TrustedAdvisorRecommendationsInactiveNATGateways: type: object properties: natGatewayDetails: $ref: '#/definitions/InstanceDetailsNatGatewayDetails' totalBytesFromDest: type: number format: double totalBytesFromSrc: type: number format: double totalBytes: type: number format: double TrustedAdvisorRecommendationsLowUtilizationEC2Instances: type: object properties: ec2Instance: $ref: '#/definitions/AWSResourceDetailsEC2Details' aveCpuUtilizationBy14Day: type: number format: double aveNetworkIOBy14Day: type: number format: double 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 }" AWSResourceDetailsMemoryDBDetailsNodeDetails: type: object properties: type: type: string family: type: string coverAlertChannel: type: object properties: id: type: string name: type: string v1CreateCostForecastResponse: type: object properties: id: type: string forecastName: type: string description: type: string costGroup: $ref: '#/definitions/apiCoverCostGroup' pastActualCostRange: type: string format: int64 lookForwardPeriod: type: string format: int64 externalAdjustments: type: array items: type: object $ref: '#/definitions/coverExternalAdjustment' v1GetCostUsageRequestAwsOptions: type: object properties: groupByColumns: type: string description: "Optional. A comma-separated list of columns to aggregate the data into. \nValid values are `productCode`, `serviceCode`, `region`, `zone`, `usageType`, `instanceType`, `operation`, `invoiceId`, `description`, and `resourceId`. \nA special value of `none` is also supported, which means query by date or month per account only.\n\nFor example, if you only want the services and region data, you can set this field to `productCode,region`. \nYour 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." groupAccounts: type: boolean description: Optional. If set to true, group all input accounts into one. filters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' description: "Optional. A list of filtering options. See [ReadCostsRequestOptionsFilters] for more information on each filter item. \nMultiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc." tagFilters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' description: "Optional. A list of filtering options specific for tags. \nMultiple 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." tagKey: type: string description: Optional. Tag key, only used when groupBy is set to `tag`. ContainerCostUsageResponseMetricDataPoint: type: object properties: date: type: string cost: $ref: '#/definitions/ContainerCostUsageResponseCostMetric' usage: $ref: '#/definitions/ContainerCostUsageResponseUsageMetric' SPOptionEstOutcomeFromPurchaseSP: type: object properties: aveCoverage: type: number format: double aveUtilization: type: number format: double monthlySavingsAmount: type: number format: double onDemandCost: type: number format: double roi: type: number format: double savingsPlanCost: type: number format: double savingsPercentage: type: number format: double v1AllocationItem: type: object properties: vendor: type: string month: type: string product: type: string account: type: string type: type: string cost: type: number format: double costGroup: type: string description: Response message wrapper for cost group allocations. v1RemoveSideMenuFavoriteResponse: type: object properties: viewId: type: string title: Response message for RemoveSideMenuFavorite awsAWSRecommendations: type: object properties: costExplorerRecommendations: $ref: '#/definitions/awsCostExplorerRecommendations' costOptimizationHubRecommendations: $ref: '#/definitions/awsCostOptimizationHubRecommendations' trustedAdvisorRecommendations: $ref: '#/definitions/awsTrustedAdvisorRecommendations' resourceArn: type: string apiCoverCostGroup: type: object properties: id: type: string name: type: string title: cost group name DBInstanceDetailsRDSMetrics: type: object properties: cpuUtilizationMetrics: $ref: '#/definitions/awsMetricData' v1GetAICostAndUsageRequest: type: object properties: costGroupId: type: string vendor: type: string startTime: type: string endTime: type: string granularity: $ref: '#/definitions/v1GetAICostAndUsageRequestGranularity' groupBys: type: array items: type: string filters: type: array items: type: object $ref: '#/definitions/GetAICostAndUsageRequestFilter' coverGoogleSheetInfo: type: object properties: googleSheetId: type: string title: 'The ID of the Google Sheet. For example, "1BxiMVs0XRA5nFMd29P8v4g"' sheetUrl: type: string title: 'The URL of the Google Sheet. For example, "https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMd29P8v4g/edit"' sheetName: type: string title: 'The name of the sheet within the Google Sheet For example, "Sheet1"' sheetRange: type: string title: 'The range of cells to read from the sheet. For example, "A1:D10" to read cells A1 to D10' requiredColumns: $ref: '#/definitions/coverRequiredColumns' description: The required columns in the Google Sheet. v1GetRecommendationV2Response: type: object properties: data: $ref: '#/definitions/recommendationRecommendationData' v1GetCloudwatchMetadataResponse: type: object properties: namespaces: type: array items: type: string metrics: type: array items: type: string dimensions: type: array items: type: object $ref: '#/definitions/GetCloudwatchMetadataResponseDimension' v1UpdateCostGroupDescriptionResponse: type: object properties: description: type: string title: Response message for UpdateCostGroupDescription v1CreateUnitMetricRequest: type: object properties: metricName: type: string title: Required. Unit Metric Name aggregationMethod: type: string dataSource: type: string description: type: string costgroupId: type: array items: type: string sourceInfo: $ref: '#/definitions/coverSourceInfo' v1UpdateCostGroupCombinationsResponse: type: object properties: combinations: $ref: '#/definitions/coverCombinations' title: Response message for UpdateCostGroupCombinations TrustedAdvisorRecommendationsUnassociatedEIP: type: object properties: eipDetails: $ref: '#/definitions/InstanceDetailsEIPDetails' CoverUpdateDataAccessBody: type: object properties: vendor: type: string title: GCP or Azure gcpOptions: $ref: '#/definitions/coverGcpOptions' title: GCP Options azureOptions: $ref: '#/definitions/apiCoverAzureOptions' title: Azure Options awsOptions: $ref: '#/definitions/apiCoverAwsOptions' title: AWS Options accountType: type: string title: Account Type title: Request message for UpdateDataAccess (GCP/Azure) v1GetUserProfileResponse: type: object properties: hasCreatedProfile: type: boolean name: type: string role: type: string usage: type: string intention: type: string companyName: type: string emailAddress: type: string linkSource: type: string hasSubscribedUpdates: type: boolean 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).' coverDiscountPlanSummary: 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 totalAllocatedSavings: type: number format: double v1ListSuggestedUnitsResponse: type: object properties: suggestedUnits: type: array items: type: object $ref: '#/definitions/coverSuggestedUnit' v1GetCategoriesResponse: type: object properties: category: type: array items: type: object $ref: '#/definitions/apiCoverCategory' coverEventIndicator: type: object properties: anomaly: type: boolean title: Anomaly is supported for now visualBuilder: type: boolean title: Temporary indicator if cost group was created via new visual builder CoverUpdateUserProfileBody: type: object properties: name: type: string role: type: string usage: type: string intention: type: string companyName: type: string linkSource: type: string hasSubscribedUpdates: type: boolean title: Request message for UpdateUserProfile coverRowData: type: object properties: data: type: object additionalProperties: type: string v1UpdateSideMenuStateResponse: type: object properties: viewId: type: string title: Response message for UpdateSideMenuState v1PreviewGoogleSheetRequest: type: object properties: googleSheetId: type: string title: 'Required. The id of the Google Sheet. Example: "1A2B3C4D5E6F7G8H9I0J"' sheetUrl: type: string description: 'Example: "https://docs.google.com/spreadsheets/d/1A2B3C4D5E6F7G8H9I0J/edit" Optional. The URL of the Google Sheet.' sheetName: type: string title: 'Required. The name of the sheet within the Google Sheet. Example: "Sheet1"' range: type: string title: "Required. The range of cells to preview. \nExample: \"A1:Z100\"" CoverUpdateAllocatorBody: type: object properties: category: type: string expiration: type: string format: int64 startMonth: type: string description: Optional. The starting month of the allocator to be effective. defaultAccount: type: string description: Optional. The default account for remaining costs. If not set, will allocate the cost to the original account. criteria: $ref: '#/definitions/coverCombinations' description: Required. Criteria for the adjustment to be applied. allocator: type: array items: type: object $ref: '#/definitions/v1Allocator' name: type: string description: type: string coverBudgetData: type: object properties: id: type: string title: not required for creating budget startDate: type: string title: use yyyymmdd format endDate: type: string title: use yyyymmdd format totalBudget: type: number format: float period: type: string format: int64 title: 3, 6, 12 months granularBudget: type: array items: type: object $ref: '#/definitions/coverGranularBudgetData' title: budget per month costGroup: $ref: '#/definitions/coverAlertCostGroup' alerts: type: array items: type: object $ref: '#/definitions/apiCoverBudgetAlert' title: threshold(s) and its respective channel(s) to alert forecastedData: type: array items: type: object $ref: '#/definitions/coverGranularForecastData' title: forecast for ongoing months of an active budget; if expired, archived forecast record spendingData: type: array items: type: object $ref: '#/definitions/coverGranularSpendingData' title: spending data expired: type: boolean title: true if budget has expired draft: type: boolean title: true if the current budget set is still a draft createdBy: type: string title: not required for creating budget createdAt: type: string title: not required for creating budget updatedBy: type: string title: not required for creating budget updatedAt: type: string title: not required for creating budget totalSpend: type: number format: float title: total accumulated spending within the budget period budgetName: type: string title: name of the budget coverMemberCostGroup: type: object properties: id: type: string name: type: string description: type: string image: type: string icon: type: string colorTheme: type: string createdAt: type: string updatedAt: type: string v1DeleteCostForecastResponse: type: object properties: id: type: string AWSResourceDetailsECSDetails: type: object properties: service: $ref: '#/definitions/ECSDetailsServiceDetails' GetAICostAndUsageResponseMetric: type: object properties: date: type: string cost: $ref: '#/definitions/v1GetAICostAndUsageResponseCost' usage: $ref: '#/definitions/GetAICostAndUsageResponseUsage' v1CreateUnitFromSuggestedResponse: type: object properties: unitCostIds: type: array items: type: string coverRequiredColumns: type: object properties: dateColumn: type: string amountColumn: type: string TrustedAdvisorRecommendationsS3IncompleteMPU: type: object properties: s3Details: $ref: '#/definitions/AWSResourceDetailsS3Details' lifecycleRuleForDeletingIMPU: type: string daysAfterInitiation: type: string RDSDetailsDBInstanceDetails: type: object properties: storage: $ref: '#/definitions/DBInstanceDetailsStorage' name: type: string instanceClass: type: string dbEdition: type: string dbEngine: type: string deploymentOptions: type: string family: type: string multiAZ: type: string licenseModel: type: string metrics: $ref: '#/definitions/DBInstanceDetailsRDSMetrics' coverGranularForecastData: type: object properties: date: type: string title: use yyyymm format mid: type: number format: float upperBound: type: number format: float lowerBound: type: number format: float CoverUpdateUnitTypeBody: type: object properties: unitName: type: string title: Optional unitItems: type: array items: type: object $ref: '#/definitions/coverUnitItem' title: Optional sharedResources: type: array items: type: object $ref: '#/definitions/coverSharedResourcesCombination' title: Optional description: type: string title: Optional v1ConfirmGoogleSheetAccessRequest: type: object properties: sheetUrl: type: string title: 'Required. The URL of the Google Sheet. Example: "https://docs.google.com/spreadsheets/d/1A2B3C4D5E6F7G8H9I0J/edit"' apiCoverCategory: type: object properties: display: type: string query: type: string v1BillingAccountRequest: type: object properties: billingId: type: string description: Required. The billing account id. datasetId: type: string description: Name of dataset you created. datasetRegion: type: string description: In creating dataset, It requires you to select a region. projectId: type: string description: Project Id where the datasetId of BQ can be found. billingName: type: string description: Optional. Billing Name, this can be set by the users in Octo UI. title: Request message for AddBillingAccount AWSResourceDetailsEC2DetailsInstanceDetails: type: object properties: type: type: string architecture: type: string tenancy: type: string platform: type: string family: type: string metrics: $ref: '#/definitions/InstanceDetailsEC2Metrics' name: type: string eip: $ref: '#/definitions/InstanceDetailsEIPDetails' status: type: string vCpu: type: string natGateway: $ref: '#/definitions/InstanceDetailsNatGatewayDetails' coverUserData: type: object properties: id: type: string name: type: string email: type: string avatar: type: string icon: type: string colorTheme: type: string initial: type: string activated: type: boolean isAdmin: type: boolean attributes: type: array items: type: string locale: type: string timeZone: type: string registered: type: string ssoEnabled: type: boolean mfaEnabled: type: boolean appTheme: type: string mainView: type: string costGroups: type: array items: type: object $ref: '#/definitions/coverMemberCostGroup' createdBy: $ref: '#/definitions/coverMemberUserData' updatedAt: type: string orgId: type: string isProfilingDone: type: boolean passwordLastRenewed: type: string isOwner: type: boolean isAuth0: type: boolean readCostGroupCreationPopup: type: boolean useNewCostGroupCreationUI: type: boolean autoTimeZone: type: boolean isDemoAccount: type: boolean v1GetCustomerSubscriptionStatusResponse: type: object properties: dateRegistered: type: string subscriptionExpiry: type: string daysLeft: type: integer format: int32 isSubscribed: type: boolean isExpired: type: boolean plan: type: string amount: type: string paymentOption: type: string paymentMethod: type: string credit: type: number format: double CoverUpdateUserRoleBody: type: object properties: roles: type: array items: type: object $ref: '#/definitions/v1UpdateUserRoleRequestRole' ContainerCostUsageResponseResourceHighlights: type: object properties: highestClusterCost: $ref: '#/definitions/ContainerCostUsageResponseResourceHighlight' highestUnusedCost: $ref: '#/definitions/ContainerCostUsageResponseResourceHighlight' highestWorkloadCost: $ref: '#/definitions/ContainerCostUsageResponseResourceHighlight' highestComputeCost: $ref: '#/definitions/ContainerCostUsageResponseResourceHighlight' v1CreateChannelResponse: type: object properties: channelData: $ref: '#/definitions/coverChannelData' title: Response message for CreateChannel v1CreateCostGroupRequest: type: object properties: name: type: string type: $ref: '#/definitions/coverCostGroupType' description: type: string image: type: string icon: type: string colorTheme: type: string combinations: $ref: '#/definitions/coverCombinations' title: Request message for CreateCostGroup v1GetChannelsRequest: type: object properties: type: type: string title: 'Optional. Use email, slack, or msteams to filter the type of channels Otherwise, it returns all channels' title: Request message for GetChannels coverViewList: type: object properties: id: type: string name: type: string description: type: string isPrivate: type: boolean isEditable: type: boolean icon: type: string createdAt: type: string updatedAt: type: string colorTheme: type: string reportType: type: string reportPeriod: type: string CoverUpdateSideMenuStateBody: type: object properties: sidemenustate: type: array items: type: object $ref: '#/definitions/coverSideMenuState' title: Request message for UpdateSideMenuState v1ResolveCostGroupCombinationsResponse: type: object properties: costGroupId: type: string accounts: type: array items: type: object $ref: '#/definitions/apiCoverAccount' v1ConfirmGoogleSheetAccessResponse: type: object properties: googleSheetId: type: string title: 'The extracted id from the Google Sheet URL. Example: "1A2B3C4D5E6F7G8H9I0J"' sheetNames: type: array items: type: string title: 'The name of the sheet within the Google Sheet. Example: "Sheet1"' v1ListNonperformingRateRequest: type: object properties: vendor: type: string description: Required. At the moment, only `aws` is supported. costGroupId: type: string description: Required. Cost Group Id. 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.' type: type: string description: Optional. The type of optimization; `ri`, `sp`, or `all`. title: Request message for ListNonperformingRate v1AddMpnSettingRequest: type: object properties: mpnId: type: string title: Partner Id / MPN Id title: Request message for AddMpnSetting v1UpdateUserMainViewRequest: type: object properties: viewId: type: string title: Request message for UpdateUserMainView v1UpdateUnitTypeResponse: type: object properties: unitCostData: $ref: '#/definitions/coverUnitCostData' coverChannelData: type: object properties: id: type: string name: type: string title: actual email value of channel name in slack or ms teams type: type: string title: email, slack, msteams webhookUrl: type: string ContainerCostUsageResponseGroupedResult: type: object properties: attributes: type: object additionalProperties: type: string metricDataPoints: type: array items: type: object $ref: '#/definitions/ContainerCostUsageResponseMetricDataPoint' v1ListRecommendationV2Request: type: object properties: costgroupId: type: string dateRangeStart: type: string dateRangeEnd: type: string rateSettings: $ref: '#/definitions/ListRecommendationV2RequestRateSettings' currency: type: string description: Optional. If not set, default value is `USD`. v1GetSharedResourcesResponse: type: object properties: sharedResources: $ref: '#/definitions/coverSharedResourcesCombination' v1ListForecastsRequest: type: object v1UpdateUserTimezoneRequest: type: object properties: timeZone: type: string autoTimeZone: type: boolean title: Request message for UpdateUserTimezone coverUnitCostData: type: object properties: id: type: string unitName: type: string description: type: string unitItems: type: array items: type: object $ref: '#/definitions/coverUnitItem' vendors: type: array items: type: string sharedResources: type: array items: type: object $ref: '#/definitions/coverSharedResourcesCombination' createdBy: type: string createTime: type: string lastUpdatedAt: type: string coverSpDiscountPlan: 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 allocationCategory: type: string sourceCostGroup: type: string targetCostGroup: type: string allocatorId: type: string v1DeleteCostGroupResponse: type: object properties: costGroupId: type: string title: Response message for DeleteCostGroup v1CreateProfilingRequest: type: object properties: name: type: string role: type: string usage: type: string intention: type: string companyName: type: string emailAddress: type: string linkSource: type: string hasSubscribedUpdates: type: boolean v1GetCurrentViewResponse: type: object properties: viewData: $ref: '#/definitions/coverViewData' title: Response message for GetCurrentView coverLayoutRequests: type: object properties: id: type: string name: type: string url: type: string params: type: object hash: type: string v1DiscountExpiryAlertData: type: object properties: id: type: string orgId: type: string alertEnabled: type: boolean frequencies: type: array items: type: string format: int64 costGroups: type: array items: type: object $ref: '#/definitions/coverAlertCostGroup' details: type: string channels: $ref: '#/definitions/coverAlertChannels' name: type: string apiCoverRole: type: object properties: id: type: string name: type: string costgroupsIds: type: array items: type: string permissions: type: array items: type: string v1CreateAccountAccessStacksetRequest: type: object properties: target: type: string description: Required. The AWS payer account to validate. region: type: string description: Required. The region of the stack deployment. description: Request message for the CreateAccountAccessStackset rpc. coverCloudWatchInfo: type: object properties: region: type: string description: The AWS region where the CloudWatch metric is located. accountId: type: string title: The account ID of the AWS account where the CloudWatch metric is located namespace: type: string description: 'The namespace of the CloudWatch metric. For example, "AWS/EC2" for EC2 metrics.' metricName: type: string title: 'The name of the CloudWatch metric. For example, "CPUUtilization" for EC2 CPU utilization' dimensions: type: object additionalProperties: type: string description: 'The dimensions of the CloudWatch metric. For example, "InstanceId" for EC2 instance metrics. The dimensions are represented as key-value pairs. For example, {"InstanceId": "i-1234567890abcdef0"} for a specific EC2 instance.' aggregationMethod: type: string title: The aggregation method to use for the CloudWatch metric FilterCriteriaFilterOperator: type: string enum: - OPERATOR_UNSPECIFIED - EQUAL - NOT_EQUAL default: OPERATOR_UNSPECIFIED v1DeleteUnitTypeResponse: type: object properties: id: type: string GetCloudwatchMetadataResponseDimension: type: object properties: name: type: string values: type: array items: type: string coverTelemetryInfo: type: object v1PublishViewRequest: type: object properties: viewId: type: string description: Required. View Id. title: Request message for PublishView AWSResourceDetailsRDSDetails: type: object properties: dbInstance: $ref: '#/definitions/RDSDetailsDBInstanceDetails' TrustedAdvisorRecommendationsAmazonEC2InstanceStopped: type: object properties: ec2Details: $ref: '#/definitions/AWSResourceDetailsEC2Details' awsConfigRule: type: string inputParameters: type: string resource: type: string v1CreateAccountAccessRequest: type: object properties: target: type: string description: Required. The target AWS account to validate. fromTerraform: type: boolean title: Optional. Set to true if deployment is done through terraform description: Request message for the CreateAccountAccess rpc. v1AnomalyAlertData: type: object properties: id: type: string orgId: type: string name: type: string alertEnabled: type: boolean frequency: type: string costGroupId: $ref: '#/definitions/coverAlertCostGroup' channels: $ref: '#/definitions/coverAlertChannels' v1GetViewsResponse: type: object properties: viewList: type: array items: type: object $ref: '#/definitions/coverViewList' title: Response message for GetViews v1ListUsersResponse: type: object properties: users: type: array items: type: object $ref: '#/definitions/ListUsersResponseUserSummary' ContainerCostUsageResponseResourceHighlight: type: object properties: resourceId: type: string resourceName: type: string value: type: number format: double v1UpdateViewLayoutResponse: type: object properties: layout: type: array items: type: object $ref: '#/definitions/coverViewLayout' title: Response message for UpdateViewLayout v1ListUnitTypesResponse: type: object properties: unitCostData: type: array items: type: object $ref: '#/definitions/coverUnitCostData' coverPotentialUnitItem: type: object properties: id: type: string itemName: type: string vendor: type: string tag: type: object additionalProperties: type: string recommendationRecommendationData: type: object properties: awsRecommendations: $ref: '#/definitions/awsAWSRecommendations' gcpRecommendations: $ref: '#/definitions/gcpGCPRecommendations' azureCspRecommendations: $ref: '#/definitions/azurecspAzureCSPRecommendations' octoGeneratedRecommendations: $ref: '#/definitions/recommendationOCTOGeneratedRecommendations' target: type: string targetName: type: string resourceId: type: string service: type: string costGroup: type: string recommendationGroup: type: string category: type: string source: type: string id: type: string lastUpdatedAt: type: string region: type: string recommendation: type: string estimatedMonthlyCost: type: number format: double estimatedMonthlySavings: type: number format: double estimatedSavingsPercentage: type: number format: double resourceName: type: string restartNeeded: type: boolean rollbackPossible: type: boolean launchUrl: type: string vendor: type: string status: type: string v1UpdateViewColorThemeResponse: type: object properties: viewData: $ref: '#/definitions/coverViewData' title: Response message for UpdateViewColorTheme v1UpdateUserMainViewResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for UpdateUserMainView v1AssetsSummary: type: object properties: date: type: string title: Format is `yyyy-mm` vendor: type: string description: Only `aws` is supported for now. totalResources: type: string format: int64 title: Total number of resources totalCost: type: number format: double description: Total Cost incurred for the resources on specified month. v1ActivateUserRequest: type: object properties: userId: type: string previousPassword: type: string password: type: string name: type: string locale: type: string email: type: string description: Email. For auth0 email validation. isAuth0: type: boolean auth0UserId: type: string description: Auth0 user Id. For updating of user metadata. title: Request message for ActivateUser octoawsOctoGeneratedAWSRecommendations: type: object properties: currentDetails: $ref: '#/definitions/octoawsOctoGeneratedAWSRecommendationsDetails' recommendationDetails: $ref: '#/definitions/octoawsOctoGeneratedAWSRecommendationsDetails' coverExternalAdjustment: type: object properties: id: type: string name: type: string title: Name of the adjustment description: type: string adjustments: type: array items: type: object $ref: '#/definitions/coverCostForecastAdjustment' coverViewLayout: type: object properties: widgetId: type: string widgetData: $ref: '#/definitions/coverWidgetData' v1CreateViewRequest: type: object properties: name: type: string description: type: string isPrivate: type: boolean isEditable: type: boolean icon: type: string reportType: type: string colorTheme: type: string reportPeriod: type: string currency: type: string title: Request message for CreateView coverGranularSpendingData: type: object properties: date: type: string title: use yyyymm format value: type: number format: float title: actual cost for the month v1CreateBudgetResponse: type: object properties: budgetData: $ref: '#/definitions/coverBudgetData' awsMetricData: type: object properties: metrics: type: array items: type: object $ref: '#/definitions/MetricDataMetrics' maxMetricInPercentage: type: number format: double metricCapacity: type: string v1GetCostUsageRequest: type: object properties: costGroupId: type: string description: Required. Cost Group Id. startTime: type: string description: 'Optional. If not set, the first day of the current month will be used. Format: `yyyymmdd`.' endTime: type: string description: 'Optional. If not set, current date will be used. Format: `yyyymmdd`.' groupByMonth: type: boolean description: "Optional. If set to true, return data grouped by month within the date range. \nIf you want data that is grouped per account per month, set this to `true`, then set `groupByColumns` to `none`. \nYou can also use `groupByColumns` while setting this to true." limit: type: string format: int64 description: 'Optional. If set, returns only the services or accounts with the highest cost or usage Default value is 0.' category: type: string description: "Optional. Valid values are `cost` and `usage`. \nDefault value is `cost`. Used only when limit is not 0." groupBy: type: string description: "Optional. Valid values are `service` and `account`. Only `service` is supported for now \nDefault value is `service`. Used only when limit is not 0." includeZeroCost: type: boolean description: 'Optional. If set to true, return all available data including the data with zero cost. Default value is `false` which means that only data with non-zero cost are returned.' awsOptions: $ref: '#/definitions/v1GetCostUsageRequestAwsOptions' description: Optional. Valid only for the `aws` vendor. AWS-specific options. azureOptions: $ref: '#/definitions/v1GetCostUsageRequestAzureOptions' description: Optional. Valid only for the `azure` vendor. Azure-specific options. gcpOptions: $ref: '#/definitions/v1GetCostUsageRequestGcpOptions' description: Optional. Valid only for the `gcp` vendor. gcp-specific options. azurecspOptions: $ref: '#/definitions/v1GetCostUsageRequestAzureCspOptions' description: Optional. Valid only for the `azurecsp` vendor. AzureCsp-specific options. customOptions: $ref: '#/definitions/v1GetCostUsageRequestCustomOptions' description: 'Optional. For custom selection when creating cost groups. This field allows custom options for specifying criteria for cost group creation.' includeForecast: type: boolean title: Optional. If set to true, include cost forecast currency: type: string description: Optional. If not set, default value is `USD`. v1GetAssetsSummaryResponse: type: object properties: summary: type: array items: type: object $ref: '#/definitions/v1AssetsSummary' recommendationSummary: type: string title: 'Format: JSON String' v1UnregisteredAccts: type: object properties: id: type: string description: Id of the unregistered account. payerId: type: string status: type: string lastUpdate: type: string v1ListRecommendationsV3Response: type: object properties: recommendations: type: array items: type: object $ref: '#/definitions/ListRecommendationsV3ResponseRecommendationSummary' coverCostGroupGcpOptions: type: object properties: filters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' description: 'Optional. A list of filtering options. Multiple filter items will use the logical ''or'' operator, e.g. filter1 || filter2 || filter3, etc. A map of "key:value" column 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 to filter `serviceDescriptinon` to return only `Cloud Spanner`, set to `{"serviceDescription":"eq:Cloud Spanner"}` or `{"serviceDescription":"Cloud Spanner"}`. You can also use a regular expression like `{"serviceDescription":"re:Cloud Spanner|BigQuery"}`, which means return all Cloud Spanner or BigQuery lineitems. Or reverse regexp, such as `{"serviceDescription":"!re:^Cloud Spanner$"}`, which means return all items except `Cloud Spanner`.' tagFilters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' description: 'Tags on gcp used to conditionally allow or deny policies based on whether a supported resource has a specific tag. Suppose you have a set of virtual machines (VMs) running various applications, and you want to distinguish between them based on their roles. You could assign tags like "app:webserver" and "app:database" to identify which VMs serve as web servers and which ones are database servers. If you want to query lineitems with the tag `app:database`, set to `{"app":"database"}`. You can also use regular expressions for tag values, such as `{"name":"re:[A-Za-z0-9]*"}`.' labelFilters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' description: 'Labels on gcp help you organize resources and manage your costs at scale, with the granularity you need. For example, on Compute Engine, you can use labels to group VMs in categories such as production, staging, or development so that you can search for resources that belong to each development stage. If you want to query lineitems with the label `vm-prod: prod`, set to `{"vm-prod":"prod"}`. You can also use regular expressions for tag values, such as `{"name":"re:[A-Za-z0-9]*"}`.' projectLabelFilters: type: array items: type: object $ref: '#/definitions/coverCostGroupOptionsFilters' description: "Project Labels refers to labels that have been assigned to GCP projects. \nFor example, projectId \"mobingi-main\" assigned as \"env:prod\"\nIf you want to query lineitems with the label `env: prod`, set to `{\"env\":\"prod\"}`. You can also use regular expressions for tag values, such as `{\"name\":\"re:[A-Za-z0-9]*\"}`." description: GCP-specific options for CreateCostGroupRequest. CostExplorerRecommendationsTerminateEC2: type: object properties: ec2Details: $ref: '#/definitions/AWSResourceDetailsEC2Details' monthlyCost: type: number format: double v1SetOrgFiscalMonthResponse: type: object properties: fiscalMonth: type: string v1DataAccess: type: object properties: target: type: string title: Billing Id for GCP, Account Id for Azure orgId: type: string title: Org Id gcpOptions: $ref: '#/definitions/coverGcpOptions' title: GCP Options azureOptions: $ref: '#/definitions/apiCoverAzureOptions' title: Azure Options awsOptions: $ref: '#/definitions/apiCoverAwsOptions' accountType: type: string title: Account type, linked or payer lastUpdate: type: string title: Last Update createTime: type: string title: Time Created vendor: type: string title: Message Response for GetDataAccess. For Azure and GCP v1DeleteAccountAccessResponse: type: object properties: targetId: type: string description: Response message for the DeleteAccountAccess rpc. coverMemberUserData: type: object properties: id: type: string name: type: string email: type: string avatar: type: string icon: type: string colorTheme: type: string initial: type: string activated: type: boolean isAdmin: type: boolean attributes: type: array items: type: string locale: type: string timeZone: type: string registered: type: string ssoEnabled: type: boolean mfaEnabled: type: boolean appTheme: type: string mainView: type: string costGroups: type: array items: type: object $ref: '#/definitions/coverMemberCostGroup' updatedAt: type: string v1GetCostGroupAttributeResponse: type: object properties: result: type: array items: type: object $ref: '#/definitions/apiCoverResult' tagData: type: array items: type: object $ref: '#/definitions/apiCoverTagData' title: Response message for GetCostGroupAttribute v1GetAccountAccessTemplateUrlResponse: type: object properties: launchUrl: type: string description: The CloudFormation launch url. Open it in your browser. templateUrl: type: string description: The latest CloudFormation template. The version is included in the filename. stackName: type: string description: The default stack name used. Can be modified. principal: type: string description: The AWS account that will receive the access. Do not change. externalId: type: string description: The external id for this role. Do not change. templateVersion: type: string description: Response message for the GetAccountAccessTemplateUrlResponse rpc. v1UpdateViewResponse: type: object properties: viewId: type: string title: Response message for UpdateView v1UpdateUserRoleResponse: type: object properties: user: $ref: '#/definitions/apiCoverUser' coverCostGroupType: type: string enum: - default - ai - container default: default v1GetAllocationSourcesResponse: type: object properties: source: type: array items: type: object $ref: '#/definitions/GetAllocationSourcesResponseAllocationSources' tagData: type: array items: type: object $ref: '#/definitions/apiCoverTagData' description: Response message for the GetAllocationSources rpc. v1GetMyRolesResponse: type: object properties: roles: type: array items: type: object $ref: '#/definitions/apiCoverRole' EBSDetailsVolumeDetails: type: object properties: attachmentState: type: string iops: type: number format: double throughput: type: number format: double sizeInGb: type: number format: double type: type: string id: type: string coverUserRole: type: object properties: id: type: string name: type: string costgroups: type: array items: type: object $ref: '#/definitions/UserRoleCostGroup' TrustedAdvisorRecommendationsRDSIdleDBInstances: type: object properties: rdsDetails: $ref: '#/definitions/AWSResourceDetailsRDSDetails' daysLastConnection: type: string AWSResourceDetailsElastiCacheDetails: type: object properties: node: $ref: '#/definitions/AWSResourceDetailsElastiCacheDetailsNodeDetails' v1CreateAnomalyAlertRequest: type: object properties: name: type: string title: Required. Name of the Anomaly Alert alertEnabled: type: boolean title: Required. Toggle disable and enable status of the alert frequency: type: string title: Required. How often the user wants to receive alerts. Daily or Weekly costGroupId: type: string title: Requried. The Id of the cost group you want to monitor if there is an anomaly notificationChannels: type: array items: type: string description: Required. The Channels where you want to send the alerts. title: Rquest message for CreateAnomalyAlert v1RemoveFavoriteResponse: type: object properties: viewId: type: string title: Response message for RemoveFavorite v1PublishViewResponse: type: object properties: url: type: string title: Response message for PublishView CostCalculationEstimatedDiscounts: type: object properties: reservedInstancesDiscount: type: number format: double savingsPlansDiscount: type: number format: double otherDiscount: type: number format: double v1ExecuteRecommendationV3Response: type: object properties: result: type: object coverAwsCostForecast: type: object properties: date: type: string description: For daily data, format is `yyyy-mm-dd`; for monthly, `yyyy-mm`. account: type: string description: The account being queried. productCode: type: string title: The product code for an AWS service cost: type: number format: double title: Forcasted cost based on true cost (calculated) lowerBound: type: number format: double upperBound: type: number format: double unblendedCost: type: number format: double title: Forcasted cost based on unblended cost unblendedLowerBound: type: number format: double unblendedUpperBound: type: number format: double ContainerCostUsageRequestFilterCriteria: type: object properties: key: type: string operator: $ref: '#/definitions/FilterCriteriaFilterOperator' value: type: string UserRoleCostGroup: type: object properties: id: type: string name: type: string v1UpdateCostGroupIconResponse: type: object properties: icon: type: string title: Response message for UpdateCostGroupIcon ContainerCostUsageRequestTimeGranularity: type: string enum: - GRANULARITY_UNSPECIFIED - DAILY - MONTHLY default: GRANULARITY_UNSPECIFIED FilterOperator: type: string enum: - OPERATOR_UNSPECIFIED - EQUAL - NOT_EQUAL default: OPERATOR_UNSPECIFIED v1PopulateDemoDataRequest: type: object CoverUpdateViewColorThemeBody: type: object properties: colorTheme: type: string title: Request message for UpdateViewColorTheme v1UpdateCostGroupCreationUIRequest: type: object properties: useNewCostGroupCreationUI: type: boolean v1CreateSharedResourcesResponse: type: object properties: sharedResources: $ref: '#/definitions/coverSharedResourcesCombination' v1GetDiscountPlanResponse: type: object properties: orgId: type: string awsDiscountPlans: $ref: '#/definitions/coverAwsDiscountPlans' title: Response message for GetDiscountPlan v1SetOrgFiscalMonthRequest: type: object properties: fiscalMonth: type: string title: 'Required. Fiscal month. Valid inputs are: "01 - 12"' ContainerCostUsageResponseUsageMetric: type: object properties: unit: type: string reservedAmount: type: number format: double actualAmount: type: number format: double efficiency: type: number format: double cpuUtilization: type: number format: double memoryUtilization: type: number format: double v1DeleteViewResponse: type: object properties: viewId: type: string title: Response message for DeleteView coverCombinations: type: object properties: awsOptions: $ref: '#/definitions/coverCostGroupAwsOptions' description: Optional. Valid only for the `aws` vendor. AWS-specific options. azureOptions: $ref: '#/definitions/coverCostGroupAzureOptions' description: Optional. Valid only for the `azure` vendor. Azure-specific options. gcpOptions: $ref: '#/definitions/coverCostGroupGcpOptions' description: Optional. Valid only for the `gcp` vendor. GCP-specific options. azurecspOptions: $ref: '#/definitions/coverCostGroupAzureCspOptions' description: Optional. Valid only for the `azurecsp` vendor. AzureCSP-specific options. customOptions: $ref: '#/definitions/coverCostGroupCustomOptions' description: 'Optional. For custom selection when creating cost groups. This field allows custom options for specifying criteria for cost group creation.' awsTrustedAdvisorRecommendations: type: object properties: severityStatus: type: string recommendationArn: type: string exclusionStatus: type: string lowUtilizationEc2Instances: $ref: '#/definitions/TrustedAdvisorRecommendationsLowUtilizationEC2Instances' rdsIdleDbInstances: $ref: '#/definitions/TrustedAdvisorRecommendationsRDSIdleDBInstances' s3IncompleteMPU: $ref: '#/definitions/TrustedAdvisorRecommendationsS3IncompleteMPU' lambdaHighErrorRates: $ref: '#/definitions/TrustedAdvisorRecommendationsLambdaHighErrorRates' underutilizedEBSVolume: $ref: '#/definitions/TrustedAdvisorRecommendationsUnderutilizedEBSVolume' unassociatedEIP: $ref: '#/definitions/TrustedAdvisorRecommendationsUnassociatedEIP' idleLoadBalancer: $ref: '#/definitions/TrustedAdvisorRecommendationsIdleLoadBalancer' ec2InstancesStopped: $ref: '#/definitions/TrustedAdvisorRecommendationsAmazonEC2InstanceStopped' ec2RILeaseExpiration: $ref: '#/definitions/TrustedAdvisorRecommendationsEC2RILeaseExpiration' comprehendUnderutilizedEndpoints: $ref: '#/definitions/TrustedAdvisorRecommendationsComprehendUnderutilizedEndpoints' underutilizedRedshiftCluster: $ref: '#/definitions/TrustedAdvisorRecommendationsUnderutilizedRedshiftCluster' lambdaWithExcessiveTimeouts: $ref: '#/definitions/TrustedAdvisorRecommendationsLambdaWithExcessiveTimeouts' awsWellArchitectedHighRiskIssues: $ref: '#/definitions/TrustedAdvisorRecommendationsAWSWellArchitectedHighRiskIssues' commonDetails: $ref: '#/definitions/TrustedAdvisorRecommendationsCommonDetails' inactiveNatGateways: $ref: '#/definitions/TrustedAdvisorRecommendationsInactiveNATGateways' networkFirewallEndpointAZIndependence: $ref: '#/definitions/TrustedAdvisorRecommendationsNetworkFirewallEndpointAZIndependence' inactiveNetworkFirewall: $ref: '#/definitions/TrustedAdvisorRecommendationsInactiveAWSNetworkFirewall' ec2OverprovisionedMSSqlServer: $ref: '#/definitions/TrustedAdvisorRecommendationsEC2OverProvisionedForMSSqlServer' ec2ConsolidationMSSqlServer: $ref: '#/definitions/TrustedAdvisorRecommendationsEC2ConsolidationForMSSqlServer' route53LatencyResourceRecordSets: $ref: '#/definitions/TrustedAdvisorRecommendationsRoute53LatencyResourceRecordsSets' AWSResourceDetailsNetworkFirewallDetails: type: object properties: endpoint: $ref: '#/definitions/AWSResourceDetailsNetworkFirewallDetailsEndpoint' arn: type: string vpcId: type: string subnets: type: array items: type: string v1AccountAccess: type: object properties: target: type: string description: The queried target account. accountName: type: string title: The account name accountType: type: string description: The account type. Payer or linked account. payerId: type: string description: The payer account of the account. roleArn: type: string description: The role ARN that provides the cross-account access permissions. externalId: type: string description: The external id for this role. stackId: type: string description: The id of the CloudFormation stack deployed in the target account. stackRegion: type: string description: The region where the stack is deployed. templateUrl: type: string description: The latest template used to deploy the stack. bucketName: type: string title: The s3 bucket name prefix: type: string title: Report path prefix reportName: type: string title: The report name registrationStatus: $ref: '#/definitions/coverRegistrationStatus' title: The status of registration for CUR export, API access and Cloudwatch streaming status: type: string description: This can be `latest`, `outdated`, or some error information. lastUpdated: type: string description: The last updated timestamp, RFC3339 UTC. description: Response message for GetAccountAccess, CreateAccountAccess rpc. awsCostOptimizationHubRecommendations: type: object properties: currentDetails: $ref: '#/definitions/awsCostOptimizationHubRecommendationsDetails' recommendationDetails: $ref: '#/definitions/awsCostOptimizationHubRecommendationsDetails' v1DeleteChannelResponse: type: object properties: id: type: string title: Response message for DeleteChannel coverSharedResourcesCombination: type: object properties: id: type: string combinationName: type: string sharedResourcesCombinations: $ref: '#/definitions/coverResourcesCombinations' distribution: type: object additionalProperties: type: number format: double description: List the unit items and their corresponding percentages. allocated: type: number format: double unallocated: type: number format: double coverAlertChannels: type: object properties: email: type: array items: type: object $ref: '#/definitions/coverAlertChannel' slack: type: array items: type: object $ref: '#/definitions/coverAlertChannel' msteams: type: array items: type: object $ref: '#/definitions/coverAlertChannel' v1GetCostForecastResponse: type: object properties: id: type: string forecastName: type: string description: type: string costGroup: $ref: '#/definitions/apiCoverCostGroup' pastActualCostRange: type: string format: int64 lookForwardPeriod: type: string format: int64 externalAdjustments: type: array items: type: object $ref: '#/definitions/coverExternalAdjustment' createdBy: type: string creationDate: type: string lastUpdatedDate: type: string TrustedAdvisorRecommendationsNetworkFirewallEndpointAZIndependence: type: object properties: endpoint: $ref: '#/definitions/AWSResourceDetailsNetworkFirewallDetailsEndpoint' crossAZSubnetsList: type: string v1InviteUsersRequest: type: object properties: emails: type: array items: type: string roleId: type: string costGroupIds: type: array items: type: string TrustedAdvisorRecommendationsRoute53LatencyResourceRecordsSets: type: object properties: route53Details: $ref: '#/definitions/AWSResourceDetailsRoute53Details' v1CreateSharedResourcesRequest: type: object properties: sharedResourceName: type: string sharedResourcesCombinations: $ref: '#/definitions/coverResourcesCombinations' distribution: type: object additionalProperties: type: number format: double description: List the unit items and their corresponding percentages. allocated: type: number format: double unallocated: type: number format: double description: type: string coverSavingsSummary: type: object properties: totalRecommendations: type: string format: int64 title: Total number of detected recommendation for a given period totalExecutedRecommendations: type: string format: int64 title: Total number of executed recommendations for a given period totalEstimatedSavings: type: number format: double title: Total of estimated savings for a given period, as a result of executed recommendations totalEstimatedCost: type: number format: double title: Total of estimated cost for a given period, as a result of executed recommendations percentageSavings: type: number format: double title: Total of estimated percentage savings for a given period, as a result of executed recommendations mostEffectiveRecommendation: type: string title: The most effective recommendation mostEffectiveRecommendationEstimatedSavings: type: number format: double title: The most effective recommendation savings mostEffectiveRecommendationEstimatedCost: type: number format: double title: The most effective recommendation cost mostEffectiveRecommendationPercentageSavings: type: number format: double title: The most effective recommendation percentage savings awsCostOptimizationHubRecommendationsDetails: type: object properties: costCalculation: $ref: '#/definitions/DetailsCostCalculation' ec2Details: $ref: '#/definitions/AWSResourceDetailsEC2Details' rdsDetails: $ref: '#/definitions/AWSResourceDetailsRDSDetails' ebsDetails: $ref: '#/definitions/AWSResourceDetailsEBSDetails' ec2AutoScalingGroupDetails: $ref: '#/definitions/AWSResourceDetailsEC2AutoScalingGroupDetails' ecsDetails: $ref: '#/definitions/AWSResourceDetailsECSDetails' lambdaDetails: $ref: '#/definitions/AWSResourceDetailsLambdaDetails' v1UpdateCostForecastResponse: type: object properties: id: type: string forecastName: type: string description: type: string costGroup: $ref: '#/definitions/apiCoverCostGroup' pastActualCostRange: type: string format: int64 lookForwardPeriod: type: string format: int64 externalAdjustments: type: array items: type: object $ref: '#/definitions/coverExternalAdjustment' createdBy: type: string creationDate: type: string lastUpdatedDate: type: string 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.' v1ResolveAWSMarketplaceTokenForOnboardingRequest: type: object properties: registrationToken: type: string coverSourceInfo: type: object properties: dataSource: type: string csv: $ref: '#/definitions/coverCsvInfo' googleSheet: $ref: '#/definitions/coverGoogleSheetInfo' cloudWatch: $ref: '#/definitions/coverCloudWatchInfo' telemetry: $ref: '#/definitions/coverTelemetryInfo' v1UpdateUserEmailResponse: type: object properties: userData: $ref: '#/definitions/coverUserData' title: Response message for UpdateUserEmail v1CreateAllocatorRequest: type: object properties: category: type: string description: Optional. The category where the allocator is to be applied. Applicable values are `fee`, `account`, or `savings`. Default value is `fee`. expiration: type: string format: int64 startMonth: type: string description: Optional. The starting month of the allocator to be effective. defaultAccount: type: string description: Optional. The default account for remaining costs. If not set, will allocate the cost to the original account. criteria: $ref: '#/definitions/coverCombinations' description: Required. Criteria for the adjustment to be applied. allocator: type: array items: type: object $ref: '#/definitions/v1Allocator' name: type: string description: type: string description: Request message for the CreateAllocator rpc. ReservedInstanceRIMetrics: type: object properties: utilization: type: array items: type: object $ref: '#/definitions/MetricDataMetrics' v1MergeUnitsResponse: type: object properties: mergedUnitCost: $ref: '#/definitions/coverUnitCostData' ContainerCostUsageRequestMetricType: type: string enum: - METRIC_UNSPECIFIED - COST - USAGE - EFFICIENCY - UNUSED_COST default: METRIC_UNSPECIFIED v1GetUnitTypeResponse: type: object properties: unitCostData: $ref: '#/definitions/coverUnitCostData' v1GetCostGroupsResponse: type: object properties: costGroupData: type: array items: type: object $ref: '#/definitions/coverCostGroupData' title: Response message for GetCostGroups v1OnboardOrgRequest: type: object properties: email: type: string password: type: string name: type: string orgId: type: string title: Request message for OnboardOrg AWSResourceDetailsRedshiftDetailsNodeDetails: type: object properties: type: type: string family: type: string blueapiCoverV1CostItem: type: object properties: vendor: type: string title: '`aws`, `azure`, `azureea` or `gcp`' date: type: string product: type: string account: type: string title: AWS account, GCP projectId, AzureCSP accountId usageType: type: string description: Usage Type. Supports AWS usage types only. Other vendors will be grouped into one for each vendor. chargeType: type: string description: Charge Type. Supports AWS usage types only. Types of charges in the CUR such as tax, discounts, fee, usage, etc. cost: type: number format: double details: type: string title: Could be AWS, Azure or GCP Cost forecast: $ref: '#/definitions/coverAwsCostForecast' title: Cost Forecast region: type: string billingAccount: type: string title: AWS payer acount, GCP billing account, Azure Payer account tagValue: type: string title: Tag Value. Contains tag value of the input tag key. Only used if groupBy is set to tag lastUpdate: type: string unit: type: string description: 'Contains the list of unit items. Used only when groupBy is set to the selected unit type (e.g., "Product", "Environment", "Customer"). Example: If groupBy is set to "Environment", this field might include values like "dev", "next", or "prod".' category: type: string description: Category. Contains the category to which a service belongs. Only used if groupBy is set to category. tagged: type: boolean description: Indicates whether the item is tagged (true) or not (false). numberOfUnits: type: number format: double description: Contains the number of units for unit metric. Only used when feature flag for unit cost metric is enabled. unitcostmetric: type: object additionalProperties: type: number format: double description: Contains the unit cost metric. Only used when feature flag for unit cost metric is enabled. allocationCategory: type: string description: Indicates the allocation category. "target" or "source". For target, allocated cost from other account while source is the cost allocated to other account. description: Response message wrapper for cloud costs. coverGcpOptions: type: object properties: billingOption: $ref: '#/definitions/GcpOptionsBillingOption' projectOption: $ref: '#/definitions/GcpOptionsProjectOption' accountName: type: string title: "We'll keep this to avoid crash in production. \nWe will remove this after this changes released to prod" projectId: type: string title: where dataset is stored datasetId: type: string datasetRegion: type: string v1GetUnitMetricResponse: type: object properties: unitMetric: $ref: '#/definitions/coverUnitMetric' v1UpdateViewCurrencyResponse: type: object properties: viewData: $ref: '#/definitions/coverViewData' title: Response message for UpdateViewCurrency v1GetAICostAndUsageResponse: type: object properties: results: type: array items: type: object $ref: '#/definitions/v1GetAICostAndUsageResponseResult' v1GetCostUsageRequestAzureCspOptions: type: object properties: groupByColumns: type: string description: "Optional. A comma-separated list of columns to aggregate the data into. \nA special value of `none` is also supported, which means query by date or month per account only.\n\nFor example, if you only want the services and location data, you can set this field to `serviceName,location`." groupAccounts: type: boolean description: Optional. If set to true, group all input projects into one. filters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' description: "Optional. A list of filtering options. See [ReadCostsRequestOptionsFilters] for more information on each filter item. \nMultiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc." tagFilters: type: array items: type: object $ref: '#/definitions/v1ReadCostsRequestOptionsFilters' description: "Optional. A list of filtering options specific for tags. \nMultiple filter items will use the logical 'or' operator, e.g. filter1 || filter2 || filter3, etc." tagKey: type: string description: Optional. Tag key, only used when groupBy is set to `tag`. v1InviteUsersResponse: type: object properties: users: type: array items: type: object $ref: '#/definitions/apiCoverUser' TrustedAdvisorRecommendationsUnderutilizedEBSVolume: type: object properties: ebsDetails: $ref: '#/definitions/AWSResourceDetailsEBSDetails' monthlyStorageCost: type: number format: double v1UpdateViewWidgetResponse: type: object properties: widgetId: type: string widgetData: $ref: '#/definitions/coverWidgetData' title: Response message for UpdateViewWidget apiCoverResult: type: object properties: id: type: string name: type: string v1ReadCostsRequestOptionsFilters: 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`.' v1ListNonperformingRateResponse: type: object properties: nonperforming: type: array items: type: object $ref: '#/definitions/ListNonperformingRateResponseNonperforming' title: Response message for ListNonperformingRate v1Allocator: type: object properties: type: type: string description: Required. The type where the adjustments are to be applied. This can support `account`, `costGroup` and `payer`. value: type: string description: Required. The value for the specified attribute. `accountId` for account, `costGroupId` for cost group, `payerId` for payer and account name regex for account name. formula: type: string description: Required. The formula to use to compute the value of the allocation on an attribute. If left blank, allocation is based on usage. months: type: string format: int64 description: Optional. The number of months the adjustment is to be applied. If set, it will divide the cost equally to the number of months. v1UpdateUserIconRequest: type: object properties: icon: type: string title: Request message for UpdateUserIcon CoverRemoveSideMenuFavoriteBody: type: object properties: menuItemId: type: string title: Request message for RemoveSideMenuFavorite v1AddSideMenuFavoriteResponse: type: object properties: viewId: type: string title: Response message for AddSideMenuFavorite v1CreateUnitMetricResponse: type: object properties: unitMetric: $ref: '#/definitions/coverUnitMetric' v1TransferOrganizationResponse: type: object properties: target: type: string CoverSetCostGroupAnomalyOptionsBody: type: object properties: threshold: type: number format: float title: Required isPercentage: type: boolean description: Required. When set to true, the threshold is a percentage to the actual cost. Otherwise, it is a fixed amount. pastDataInMonths: type: string format: int64 description: 'Optional. The number of past months to be used in training the model. Note: This will affect the results of anomaly detection. Default and max is 9 while min is 1.'