Amazon Billing And Cost Management Billing And Cost Management Contractual Investment Attestation API

The Billing And Cost Management Contractual Investment Attestation API from Amazon Billing And Cost Management — 3 operation(s) for billing and cost management contractual investment attestation.

GitHub OpenAPI

Operations 3

POST /#CancelContractualInvestmentAttestation Cancel Contractual Investment Attestation #
POST /#CreateContractualInvestmentAttestation Create Contractual Investment Attestation #
POST /#ListContractualInvestmentAttestations List Contractual Investment Attestations #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/amazon-billing-and-cost-management:amazon-billing-and-cost-management-contractual-investment-attestation-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

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

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

OpenAPI Specification

amazon-billing-and-cost-management-contractual-investment-attestation-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: AWS Cost Explorer Service Contractual Investment Attestation API
  version: '2017-10-25'
  description: Generated from AWS's published Smithy model for AWS Cost Explorer Service. 3 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://billing.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
paths:
  /#CancelContractualInvestmentAttestation:
    post:
      operationId: CancelContractualInvestmentAttestation
      summary: Cancel Contractual Investment Attestation
      description: Cancels a contractual investment attestation. This operation is idempotent, so retrying is safe. You can
        cancel an attestation only while it is still pending (its isCancellable value is true).
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/CancelContractualInvestmentAttestationResponse'
              example: {}
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '409':
          description: ConflictException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ConflictException'
        '500':
          description: InternalServerException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: ResourceNotFoundException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/BillingResourceNotFoundException'
        '429':
          description: ThrottlingException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '400':
          description: ValidationException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ValidationException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSBilling.CancelContractualInvestmentAttestation
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/CancelContractualInvestmentAttestationRequest'
            example:
              attestationId: a1b2c3d4-5678-90ab-cdef-111122223333
              contractArn: arn:aws:billing::123456789012:contract/1a2b3c4d-5e6f-7a8b-9c0d-111122223333
              reason: Example cancellation reason
      tags:
      - Contractual Investment Attestation
  /#CreateContractualInvestmentAttestation:
    post:
      operationId: CreateContractualInvestmentAttestation
      summary: Create Contractual Investment Attestation
      description: Creates an attestation that claims an investment award for a completed milestone or outcome within a private
        pricing contract. Supply a clientToken to make the request idempotent so a safe retry does not create a duplicate
        attestation. This operation starts an asynchronous review and returns an attestationId while the attestation is pending.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/CreateContractualInvestmentAttestationResponse'
              example:
                attestationId: a1b2c3d4-5678-90ab-cdef-111122223333
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '409':
          description: ConflictException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ConflictException'
        '500':
          description: InternalServerException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: ResourceNotFoundException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/BillingResourceNotFoundException'
        '429':
          description: ThrottlingException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '400':
          description: ValidationException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ValidationException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSBilling.CreateContractualInvestmentAttestation
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/CreateContractualInvestmentAttestationRequest'
            example:
              contractArn: arn:aws:billing::123456789012:contract/1a2b3c4d-5e6f-7a8b-9c0d-111122223333
              investmentSummaryId: Example-Investment-Summary-Id
              investmentId: Investment-Id
              contractDocumentId: CC OTH XXXXXXXX XXXX TR
              approverDetails:
                name: First-Name Last-Name
                title: Title
                email: first-name.last-name@example.com
              attestationDetails:
                attestationValue:
                  attestationAmount:
                    currencyCode: USD
                    currencyAmount: '1.00'
                investmentDistributions:
                - accountId: '123456789012'
                  investmentAmount:
                    currencyCode: USD
                    currencyAmount: '1.00'
              investmentDisbursedAt: 1199923200
              additionalRecipients:
              - email: recipient@example.com
              clientToken: c0ffee00-1234-4abc-9def-0123456789ab
      tags:
      - Contractual Investment Attestation
  /#ListContractualInvestmentAttestations:
    post:
      operationId: ListContractualInvestmentAttestations
      summary: List Contractual Investment Attestations
      description: Lists the investment attestations submitted under a specific private pricing contract. Use this operation
        to track attestation status, including the terminal statuses DISBURSED, REJECTED, and CANCELLED. This operation is
        read-only and paginated.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ListContractualInvestmentAttestationsResponse'
              example:
                items:
                - attestationId: a1b2c3d4-5678-90ab-cdef-111122223333
                  investmentName: Example Investment Name
                  outcomeDescription: Example outcome description
                  investmentSummaryId: Example-Investment-Summary-Id
                  investmentId: Investment-Id
                  attestedAt: 1333333333
                  updatedAt: 1444444444
                  attestationStatus: PENDING_CANCELLATION
                  attestedValue:
                    currencyCode: USD
                    currencyAmount: '1.00'
                - attestationId: b2c3d4e5-6789-01bc-def0-222233334444
                  investmentName: Example Investment Name
                  outcomeDescription: Example outcome description
                  investmentSummaryId: Example-Investment-Summary-Id
                  investmentId: Investment-Id
                  attestedAt: 1555555555
                  updatedAt: 1666666666
                  attestationStatus: CANCELLED
                  attestedValue:
                    currencyCode: USD
                    currencyAmount: '1.00'
        '403':
          description: AccessDeniedException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServerException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: ResourceNotFoundException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/BillingResourceNotFoundException'
        '429':
          description: ThrottlingException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ThrottlingException'
        '400':
          description: ValidationException
          content:
            application/x-amz-json-1.0:
              schema:
                $ref: '#/components/schemas/ValidationException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSBilling.ListContractualInvestmentAttestations
      requestBody:
        required: true
        content:
          application/x-amz-json-1.0:
            schema:
              $ref: '#/components/schemas/ListContractualInvestmentAttestationsRequest'
            example:
              contractArn: arn:aws:billing::123456789012:contract/1a2b3c4d-5e6f-7a8b-9c0d-111122223333
              maxResults: 25
      tags:
      - Contractual Investment Attestation
components:
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical
        request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: billing
  schemas:
    AccessDeniedException:
      type: object
      properties:
        message:
          type: string
      required:
      - message
    AdditionalRecipient:
      type: object
      properties:
        email:
          type: string
          description: The email address of the recipient. This value is 3–256 characters and must be a valid email address.
      required:
      - email
    Amount:
      type: object
      properties:
        currencyCode:
          type: string
          description: The ISO 4217 currency code for the amount (for example, USD).
        currencyAmount:
          type: string
          description: The amount as a decimal string (for example, "743.21"). Negative values represent credits that reduce
            a bill.
      required:
      - currencyCode
      - currencyAmount
    ApproverDetails:
      type: object
      properties:
        name:
          type: string
          description: The name of the approver as it appears on the contract. This value can be up to 256 characters.
        title:
          type: string
          description: The title of the approver, such as Chief Financial Officer. This value can be up to 256 characters.
        email:
          type: string
          description: The email address of the approver. This value is 3–256 characters and must be a valid email address.
      required:
      - name
      - title
      - email
    AttestationDetails:
      type: object
      properties:
        attestationValue:
          $ref: '#/components/schemas/AttestationValue'
        investmentDistributions:
          type: array
          items:
            $ref: '#/components/schemas/InvestmentDistribution'
          description: The distribution of the resulting investment across the eligible investment accounts on the contract.
            If you omit this value, the full investment is allocated to the single eligible investment account on the contract.
            This value is required when multiple investment accounts are eligible. When you provide this value, the sum of
            all distributions must equal the resulting monetary investment value (the attested amount, or the value computed
            from the attested quantities using the investment multipliers). The list contains at most 200 distributions.
      required:
      - attestationValue
    AttestationQuantity:
      type: object
      properties:
        attestationVolume:
          type: string
          description: The number of units being attested, expressed as a decimal string to preserve precision. The value
            is digits with an optional decimal point and is 1–1000 characters.
        attestationUnit:
          type: string
          description: The unit of the attestation, such as workloads migrated. This value is 1–1000 characters.
      required:
      - attestationVolume
      - attestationUnit
    AttestationValue:
      type: object
      properties:
        attestationAmount:
          $ref: '#/components/schemas/Amount'
        attestationQuantities:
          type: array
          items:
            $ref: '#/components/schemas/AttestationQuantity'
          description: The value attested as one or more quantities, each with its own unit. The list contains at most 50
            quantities.
      description: Exactly one member is set.
    BillingResourceNotFoundException:
      type: object
      properties:
        message:
          type: string
        resourceId:
          type: string
          description: Value is a list of resource IDs that were not found.
        resourceType:
          type: string
          description: Value is the type of resource that was not found.
      required:
      - message
      - resourceId
      - resourceType
    CancelContractualInvestmentAttestationRequest:
      type: object
      properties:
        attestationId:
          type: string
          description: The identifier of the investment attestation to cancel.
        contractArn:
          type: string
          description: The Amazon Resource Name (ARN) of the contract that contains the attested investment.
        reason:
          type: string
          description: The reason for the cancellation. This value can be 1 to 80 characters.
      required:
      - attestationId
      - contractArn
      - reason
    CancelContractualInvestmentAttestationResponse:
      type: object
      properties: {}
    ConflictException:
      type: object
      properties:
        message:
          type: string
        resourceId:
          type: string
          description: The identifier for the service resource associated with the request.
        resourceType:
          type: string
          description: The type of resource associated with the request.
      required:
      - message
      - resourceId
      - resourceType
    CreateContractualInvestmentAttestationRequest:
      type: object
      properties:
        contractArn:
          type: string
          description: The Amazon Resource Name (ARN) of the contract that contains the investment being attested.
        investmentSummaryId:
          type: string
          description: The identifier of the investment summary being attested. This is the parent to the investmentId.
        investmentId:
          type: string
          description: The identifier of the investment (outcome) being attested.
        contractDocumentId:
          type: string
          description: The contract ID from the contract document, located in the top-right corner of the private pricing
            contract pages. This value confirms that you have access to the contract.
        approverDetails:
          $ref: '#/components/schemas/ApproverDetails'
        investmentDisbursedAt:
          type: string
          description: The date on which the investment is disbursed to the investment accounts. The disbursement date is
            subject to review timelines.
        attestationDetails:
          $ref: '#/components/schemas/AttestationDetails'
        additionalRecipients:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalRecipient'
          description: The email addresses to copy as viewers on the executive approval request.
        clientToken:
          type: string
          description: A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you
            retry a request that completed successfully using the same client token and parameters, the retry completes without
            performing any further actions.
      required:
      - contractArn
      - investmentSummaryId
      - investmentId
      - contractDocumentId
      - approverDetails
      - attestationDetails
    CreateContractualInvestmentAttestationResponse:
      type: object
      properties:
        attestationId:
          type: string
          description: The identifier of the submitted attestation.
      required:
      - attestationId
    InternalServerException:
      type: object
      properties:
        message:
          type: string
      required:
      - message
    InvestmentAttestation:
      type: object
      properties:
        attestationId:
          type: string
          description: The identifier of the attestation. This value is returned by CreateContractualInvestmentAttestation
            and is used to cancel the attestation with CancelContractualInvestmentAttestation. This value is 1–36 characters.
        investmentName:
          type: string
          description: The name of the investment summary that contains the attested outcome. This value is 1–400 characters.
        outcomeDescription:
          type: string
          description: The description of the attested outcome. This value is 1–2048 characters.
        investmentSummaryId:
          type: string
          description: The identifier of the investment summary that was attested, as returned by ListContractualInvestmentSummaries.
        investmentId:
          type: string
          description: The identifier of the investment that was attested, as returned by ListContractualInvestments.
        attestedAt:
          type: string
          description: The date on which the attestation was submitted.
        updatedAt:
          type: string
          description: The date on which the attestation was last updated.
        attestationStatus:
          type: string
          enum:
          - PENDING_REVIEW
          - PENDING_C_LEVEL_APPROVAL
          - PENDING_CANCELLATION
          - REJECTED
          - CANCELLED
          - DISBURSED
          description: The current status of the attestation. Valid values are PENDING_REVIEW, PENDING_C_LEVEL_APPROVAL, PENDING_CANCELLATION,
            REJECTED, CANCELLED, and DISBURSED. The values DISBURSED, REJECTED, and CANCELLED are terminal. The other values
            indicate the attestation is still in progress.
        investmentDisbursedAt:
          type: string
          description: The start date on which the investment is disbursed to the investment accounts. This is not the same
            as the time of disbursement, but reflects the date you submitted with the attestation.
        attestedValue:
          $ref: '#/components/schemas/Amount'
        investmentDistributions:
          type: array
          items:
            $ref: '#/components/schemas/InvestmentDistribution'
          description: The distribution of the attested investment across the eligible investment accounts. The list contains
            at most 200 distributions.
        rejectionReasons:
          type: array
          items:
            type: string
          description: The reasons the attestation was rejected. This value is present only when attestationStatus is REJECTED.
            The list contains at most 30 reasons.
        isCancellable:
          type: boolean
          description: Indicates whether the attestation can be canceled with CancelContractualInvestmentAttestation.
      required:
      - attestationId
      - investmentName
      - outcomeDescription
      - investmentSummaryId
      - investmentId
      - attestedAt
      - updatedAt
      - attestationStatus
    InvestmentDistribution:
      type: object
      properties:
        accountId:
          type: string
          description: The recipient Amazon Web Services account ID that receives this portion of the investment. This must
            be one of the eligible investment accounts on the contract.
        investmentAmount:
          $ref: '#/components/schemas/Amount'
      required:
      - accountId
      - investmentAmount
    ListContractualInvestmentAttestationsRequest:
      type: object
      properties:
        contractArn:
          type: string
          description: The Amazon Resource Name (ARN) of the contract whose attestations you want to list.
        investmentSummaryId:
          type: string
          description: The identifier of a specific investment summary to filter the attestations by. If omitted, attestations
            for all investment summaries in the contract are returned.
        nextToken:
          type: string
          description: The pagination token that indicates the next set of results to retrieve.
        maxResults:
          type: integer
          description: The maximum number of attestations to return in a single call. Minimum value of 1, maximum value of
            100.
      required:
      - contractArn
    ListContractualInvestmentAttestationsResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/InvestmentAttestation'
          description: The list of investment attestations submitted under the contract.
        nextToken:
          type: string
          description: The pagination token to use on subsequent calls to retrieve the next set of results.
      required:
      - items
    ThrottlingException:
      type: object
      properties:
        message:
          type: string
      required:
      - message
    ValidationException:
      type: object
      properties:
        message:
          type: string
        reason:
          type: string
          enum:
          - unknownOperation
          - cannotParse
          - fieldValidationFailed
          - other
          description: The input fails to satisfy the constraints specified by an Amazon Web Services service.
        fieldList:
          type: array
          items:
            $ref: '#/components/schemas/ValidationExceptionField'
          description: The input fails to satisfy the constraints specified by an Amazon Web Services service.
      required:
      - message
      - reason
    ValidationExceptionField:
      type: object
      properties:
        name:
          type: string
          description: The name of the field.
        message:
          type: string
          description: The message describing why the field failed validation.
      required:
      - name
      - message
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/3cd98287b471c106254abd89279cc87308d38bfd/models/billing/service/2023-09-07/billing-2023-09-07.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)