Vantage ReportNotifications API

Operations about ReportNotifications

OpenAPI Specification

vantage-sh-reportnotifications-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Vantage AccessGrants ReportNotifications API
  description: The Vantage API provides programmatic access to the Vantage cloud cost management and FinOps platform. It covers cost reporting and querying (Costs, Cost Reports, forecasts, unit costs), cost visibility and optimization (Resources, Recommendations, Financial Commitments, Kubernetes efficiency), governance and alerting (Budgets, Budget Alerts, Cost Alerts, Anomaly Alerts and Notifications), organization (Segments, Folders, Saved Filters, Dashboards, Workspaces, Teams), and billing (Billing Profiles, Billing Rules, Invoices). The API spans AWS, Azure, GCP, Kubernetes, Datadog, Snowflake, MongoDB, and other supported providers. Base URL https://api.vantage.sh/v2. Authentication is via OAuth2 (client credentials / bearer token) with read and write scopes.
  termsOfService: https://www.vantage.sh/terms-of-use
  contact:
    name: Vantage Support
    url: https://www.vantage.sh
    email: support@vantage.sh
  version: 2.0.0
servers:
- url: https://api.vantage.sh/v2
security:
- oauth2:
  - read
tags:
- name: ReportNotifications
  description: Operations about ReportNotifications
paths:
  /report_notifications:
    get:
      tags:
      - ReportNotifications
      summary: Get all report notifications
      description: Return all ReportNotifications.
      operationId: getReportNotifications
      parameters:
      - name: page
        in: query
        description: The page of results to return.
        schema:
          type: integer
          format: int32
      - name: limit
        in: query
        description: The amount of results to return. The maximum is 1000.
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportNotifications'
              example:
                links:
                  self: https://api.vantage.sh/v2/report_notifications
                  first: https://api.vantage.sh/v2/report_notifications?page=1
                  next: null
                  last: https://api.vantage.sh/v2/report_notifications?page=1
                  prev: null
                report_notifications:
                - token: rprt_ntfctn_7c09ca27d07d8d1e
                  title: Test Notification
                  cost_report_token: rprt_ba0a5a5201390d72
                  user_tokens:
                  - usr_27edb13f3beac3cb
                  frequency: weekly
                  change: percentage
      security:
      - oauth2:
        - read
    post:
      tags:
      - ReportNotifications
      summary: Create report notification
      description: Create a ReportNotification.
      operationId: createReportNotification
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createReportNotification'
        required: true
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportNotification'
              example:
                token: rprt_ntfctn_8ce31b43a149cd2e
                title: New Report Notification
                cost_report_token: rprt_933010600676b02f
                user_tokens:
                - usr_45e7d17e9f402226
                frequency: daily
                change: percentage
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '422':
          description: UnprocessableEntity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - oauth2:
        - write
      x-codegen-request-body-name: createReportNotification
  /report_notifications/{report_notification_token}:
    get:
      tags:
      - ReportNotifications
      summary: Get report notification by token
      description: Return a ReportNotification.
      operationId: getReportNotification
      parameters:
      - name: report_notification_token
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportNotification'
              example:
                token: rprt_ntfctn_21b4287a212406b1
                title: Test Notification
                cost_report_token: rprt_d084c84455edc606
                user_tokens:
                - usr_56d53f802edba3e6
                frequency: weekly
                change: percentage
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - oauth2:
        - read
    put:
      tags:
      - ReportNotifications
      summary: Update report notification
      description: Update a ReportNotification.
      operationId: updateReportNotification
      parameters:
      - name: report_notification_token
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/updateReportNotification'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportNotification'
              example:
                token: rprt_ntfctn_b36b208a90ee87f6
                title: Updated Report Notification
                cost_report_token: rprt_07b88c04aa6bed8c
                user_tokens:
                - usr_35ed19fadcfed8c9
                frequency: weekly
                change: dollars
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - oauth2:
        - write
      x-codegen-request-body-name: updateReportNotification
    delete:
      tags:
      - ReportNotifications
      summary: Delete report notification
      description: Delete a ReportNotification.
      operationId: deleteReportNotification
      parameters:
      - name: report_notification_token
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportNotification'
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
      security:
      - oauth2:
        - write
components:
  schemas:
    Errors:
      required:
      - errors
      type: object
      properties:
        links:
          $ref: '#/components/schemas/Links'
        errors:
          type: array
          nullable: false
          items:
            type: string
      description: Errors model
    updateReportNotification:
      type: object
      properties:
        title:
          type: string
          description: The title of the ReportNotification.
        cost_report_token:
          type: string
          description: The CostReport token.
        user_tokens:
          type: array
          description: The Users that receive the notification.
          items:
            type: string
        recipient_channels:
          type: array
          description: The Slack or Microsoft Teams channels that receive the notification.
          items:
            type: string
        frequency:
          type: string
          description: 'The frequency the ReportNotification is sent. Possible values: daily, weekly, monthly.'
        change:
          type: string
          description: 'The type of change the ReportNotification is tracking. Possible values: percentage, dollars.'
      description: Update a ReportNotification.
    ReportNotification:
      required:
      - change
      - cost_report_token
      - frequency
      - recipient_channels
      - title
      - token
      - user_tokens
      type: object
      properties:
        token:
          type: string
          nullable: false
        title:
          type: string
          description: The title of the ReportNotification.
          nullable: false
          example: Acme Report Notification
        cost_report_token:
          type: string
          description: The token for a CostReport the ReportNotification is applied to.
          nullable: false
          example: rprt_abcd1234
        user_tokens:
          type: array
          description: The Users that receive the notification.
          nullable: false
          items:
            type: string
            example: ''
        recipient_channels:
          type: array
          description: The Slack or Microsoft Teams channels that receive the notification.
          nullable: false
          items:
            type: string
            example: ''
        frequency:
          type: string
          description: The frequency the ReportNotification is sent.
          nullable: false
          example: weekly
          enum:
          - daily
          - weekly
          - monthly
        change:
          type: string
          description: The type of change the ReportNotification is tracking.
          nullable: false
          example: percentage
          enum:
          - percentage
          - dollars
      description: ReportNotification model
    ReportNotifications:
      required:
      - report_notifications
      type: object
      properties:
        links:
          $ref: '#/components/schemas/Links'
        report_notifications:
          type: array
          items:
            $ref: '#/components/schemas/ReportNotification'
      description: ReportNotifications model
    createReportNotification:
      required:
      - change
      - cost_report_token
      - frequency
      - title
      type: object
      properties:
        title:
          type: string
          description: The title of the ReportNotification.
        cost_report_token:
          type: string
          description: The CostReport token.
        workspace_token:
          type: string
          description: The token of the Workspace to add the ReportNotification to. Required if the API token is associated with multiple Workspaces.
        user_tokens:
          type: array
          description: The Users that receive the notification.
          items:
            type: string
        recipient_channels:
          type: array
          description: The Slack or Microsoft Teams channels that receive the notification.
          items:
            type: string
        frequency:
          type: string
          description: 'The frequency the ReportNotification is sent. Possible values: daily, weekly, monthly.'
        change:
          type: string
          description: 'The type of change the ReportNotification is tracking. Possible values: percentage, dollars.'
      description: Create a ReportNotification.
    Links:
      type: object
      properties:
        self:
          type: string
          description: The URL of the current page of results.
          nullable: true
        first:
          type: string
          description: The URL of the first page of results.
          nullable: true
        next:
          type: string
          description: The URL of the next page of results, if one exists.
          nullable: true
        last:
          type: string
          description: The URL of the last page of results, if one exists.
          nullable: true
        prev:
          type: string
          description: The URL of the previous page of results, if one exists.
          nullable: true
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://console.vantage.sh/account/profile
          scopes:
            read: Grants read access
            write: Grants write access
x-original-swagger-version: '2.0'