swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  title: CostManagementClient
  version: 2019-04-01-preview
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/cost-management/resource-manager/Microsoft.CostManagement/preview/2019-04-01-preview/costmanagement.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: cost-management-costmanagement
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow.
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  apiVersionParameter:
    description: Version of the API to be used with the client request. The current version is 2019-04-01-preview
    in: query
    name: api-version
    required: true
    type: string
  billingAccountIdParameter:
    description: BillingAccount ID
    in: path
    name: billingAccountId
    required: true
    type: string
    x-ms-parameter-location: method
  budgetNameParameter:
    description: Budget Name.
    in: path
    name: budgetName
    required: true
    type: string
    x-ms-parameter-location: method
  departmentIdParameter:
    description: Department ID
    in: path
    name: departmentId
    required: true
    type: string
    x-ms-parameter-location: method
  enrollmentAccountIdParameter:
    description: Enrollment Account ID
    in: path
    name: enrollmentAccountId
    required: true
    type: string
    x-ms-parameter-location: method
  managementGroupIdParameter:
    description: ManagementGroup ID
    in: path
    name: managementGroupId
    required: true
    type: string
    x-ms-parameter-location: method
  resourceGroupNameParameter:
    description: Azure Resource Group Name.
    in: path
    name: resourceGroupName
    required: true
    type: string
    x-ms-parameter-location: method
  scopeBudgetParameter:
    description: The scope associated with budget operations. This includes '/subscriptions/{subscriptionId}/' for subscription scope, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope, '/providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope, '/providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for billingProfile scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' for invoiceSection scope.
    in: path
    name: scope
    required: true
    type: string
    x-ms-parameter-location: method
    x-ms-skip-url-encoding: true
  scopeViewParameter:
    description: The scope associated with view operations. This includes 'subscriptions/{subscriptionId}' for subscription scope, 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for BillingProfile scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope, 'providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for External Billing Account scope and 'providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for External Subscription scope.
    in: path
    name: scope
    required: true
    type: string
    x-ms-parameter-location: method
  subscriptionIdParameter:
    description: Azure Subscription ID.
    in: path
    name: subscriptionId
    required: true
    type: string
  viewNameParameter:
    description: View name
    in: path
    name: viewName
    required: true
    type: string
    x-ms-parameter-location: method
paths:
  /providers/Microsoft.CostManagement/operations:
    get:
      description: Lists all of the available consumption REST API operations.
      operationId: Operations_List
      parameters:
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/OperationListResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Operations
      x-ms-pageable:
        nextLinkName: nextLink
  /providers/Microsoft.CostManagement/views:
    get:
      description: Lists all views by tenant and object.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/costmanagement/
      operationId: Views_List
      parameters:
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/ViewListResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Views
      x-ms-examples:
        PrivateViewList:
          parameters:
            api-version: 2019-04-01-preview
          responses:
            "200":
              body:
                value:
                  - eTag: '"1d4ff9fe66f1d10"'
                    id: /providers/Microsoft.CostManagement/views/swaggerExample
                    name: swaggerExample
                    properties:
                      accumulated: "true"
                      chart: Table
                      displayName: swagger Example
                      kpis:
                        - enabled: true
                          id: null
                          type: Forecast
                        - enabled: true
                          id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                          type: Budget
                      metric: ActualCost
                      pivots:
                        - name: ServiceName
                          type: Dimension
                        - name: MeterCategory
                          type: Dimension
                        - name: swaggerTagKey
                          type: TagKey
                      query:
                        dataset:
                          aggregation:
                            totalCost:
                              function: Sum
                              name: PreTaxCost
                          granularity: Daily
                          grouping: []
                          sorting:
                            - direction: Ascending
                              name: UsageDate
                        timeframe: MonthToDate
                        type: Usage
                      scope: ""
                    type: Microsoft.CostManagement/Views
                  - eTag: '"1d4ffa5a9c2430c"'
                    id: /providers/Microsoft.CostManagement/views/swaggerExample2
                    name: swaggerExample2
                    properties:
                      accumulated: "true"
                      chart: GroupedColumn
                      displayName: swagger Example 2
                      kpis:
                        - enabled: true
                          id: null
                          type: Forecast
                        - enabled: true
                          id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                          type: Budget
                      metric: ActualCost
                      pivots:
                        - name: ServiceName
                          type: Dimension
                        - name: MeterCategory
                          type: Dimension
                        - name: swaggerTagKey
                          type: TagKey
                      query:
                        dataset:
                          aggregation:
                            totalCost:
                              function: Sum
                              name: PreTaxCost
                          granularity: Daily
                          grouping: []
                          sorting:
                            - direction: Ascending
                              name: UsageDate
                        timeframe: LastMonthToDate
                        type: Usage
                      scope: ""
                    type: Microsoft.CostManagement/Views
      x-ms-pageable:
        nextLinkName: nextLink
  "/providers/Microsoft.CostManagement/views/{viewName}":
    delete:
      description: The operation to delete a view.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/costmanagement/
      operationId: Views_Delete
      parameters:
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/viewNameParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
        "204":
          description: NoContent. Resource is not available.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Views
      x-ms-examples:
        DeletePrivateView:
          parameters:
            api-version: 2019-04-01-preview
            viewName: TestView
          responses:
            "200": {}
            "204": {}
    get:
      description: Gets the view by view name.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/costmanagement/
      operationId: Views_Get
      parameters:
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/viewNameParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/View"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Views
      x-ms-examples:
        PrivateView:
          parameters:
            api-version: 2019-04-01-preview
            viewName: swaggerExample
          responses:
            "200":
              body:
                eTag: '"1d4ff9fe66f1d10"'
                id: /providers/Microsoft.CostManagement/views/swaggerExample
                name: swaggerExample
                properties:
                  accumulated: "true"
                  chart: Table
                  displayName: swagger Example
                  kpis:
                    - enabled: true
                      id: null
                      type: Forecast
                    - enabled: true
                      id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                      type: Budget
                  metric: ActualCost
                  pivots:
                    - name: ServiceName
                      type: Dimension
                    - name: MeterCategory
                      type: Dimension
                    - name: swaggerTagKey
                      type: TagKey
                  query:
                    dataset:
                      aggregation:
                        totalCost:
                          function: Sum
                          name: PreTaxCost
                      granularity: Daily
                      grouping: []
                      sorting:
                        - direction: Ascending
                          name: UsageDate
                    timeframe: MonthToDate
                    type: Usage
                  scope: ""
                type: Microsoft.CostManagement/Views
    put:
      description: The operation to create or update a view. Update operation requires latest eTag to be set in the request. You may obtain the latest eTag by performing a get operation. Create operation does not require eTag.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/costmanagement/
      operationId: Views_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/viewNameParameter"
        - description: Parameters supplied to the CreateOrUpdate View operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/View"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/View"
        "201":
          description: Created.
          schema:
            $ref: "#/definitions/View"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Views
      x-ms-examples:
        CreateOrUpdatePrivateView:
          parameters:
            api-version: 2019-04-01-preview
            parameters:
              eTag: '"1d4ff9fe66f1d10"'
              properties:
                accumulated: "true"
                chart: Table
                displayName: swagger Example
                kpis:
                  - enabled: true
                    id: null
                    type: Forecast
                  - enabled: true
                    id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                    type: Budget
                metric: ActualCost
                pivots:
                  - name: ServiceName
                    type: Dimension
                  - name: MeterCategory
                    type: Dimension
                  - name: swaggerTagKey
                    type: TagKey
                query:
                  dataset:
                    aggregation:
                      totalCost:
                        function: Sum
                        name: PreTaxCost
                    granularity: Daily
                    grouping: []
                    sorting:
                      - direction: Ascending
                        name: UsageDate
                  timeframe: MonthToDate
                  type: Usage
            viewName: swaggerExample
          responses:
            "200":
              body:
                eTag: '"1d4ffa5a9c2430c"'
                id: /providers/Microsoft.CostManagement/views/swaggerExample
                name: swaggerExample
                properties:
                  accumulated: "true"
                  chart: Table
                  displayName: swagger Example
                  kpis:
                    - enabled: true
                      id: null
                      type: Forecast
                    - enabled: true
                      id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                      type: Budget
                  metric: ActualCost
                  pivots:
                    - name: ServiceName
                      type: Dimension
                    - name: MeterCategory
                      type: Dimension
                    - name: swaggerTagKey
                      type: TagKey
                  query:
                    dataset:
                      aggregation:
                        totalCost:
                          function: Sum
                          name: PreTaxCost
                      granularity: Daily
                      grouping: []
                      sorting:
                        - direction: Ascending
                          name: UsageDate
                    timeframe: MonthToDate
                    type: Usage
                  scope: ""
                type: Microsoft.CostManagement/Views
            "201":
              body:
                eTag: '"1d4ffa5a9c2430c"'
                id: /providers/Microsoft.CostManagement/views/swaggerExample
                name: swaggerExample
                properties:
                  accumulated: "true"
                  chart: Table
                  displayName: swagger Example
                  kpis:
                    - enabled: true
                      id: null
                      type: Forecast
                    - enabled: true
                      id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                      type: Budget
                  metric: ActualCost
                  pivots:
                    - name: ServiceName
                      type: Dimension
                    - name: MeterCategory
                      type: Dimension
                    - name: swaggerTagKey
                      type: TagKey
                  query:
                    dataset:
                      aggregation:
                        totalCost:
                          function: Sum
                          name: PreTaxCost
                      granularity: Daily
                      grouping: []
                      sorting:
                        - direction: Ascending
                          name: UsageDate
                    timeframe: MonthToDate
                    type: Usage
                  scope: ""
                type: Microsoft.CostManagement/Views
  "/{scope}/providers/Microsoft.CostManagement/budgets":
    get:
      description: Lists all budgets for the defined scope.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/cost-management/
      operationId: Budgets_List
      parameters:
        - $ref: "#/parameters/scopeBudgetParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/BudgetsListResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Budgets
      x-ms-examples:
        BudgetsList:
          parameters:
            api-version: 2019-05-01-preview
            resourceGroupName: MYDEVTESTRG
            scope: subscriptions/00000000-0000-0000-0000-000000000000
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                value:
                  - eTag: '"1d34d012214157f"'
                    id: subscriptions/{subscription-id}/providers/Microsoft.Consumption/budgets/TestBudget
                    name: TestBudget
                    properties:
                      amount: 100.65
                      category: Cost
                      currentSpend:
                        amount: 80.89
                        unit: USD
                      filter:
                        and:
                          - dimension:
                              name: ResourceGroupName
                              operator: In
                              values:
                                - MYDEVTESTRG
                          - dimension:
                              name: ResourceId
                              operator: In
                              values:
                                - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2
                                - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1
                          - dimension:
                              name: Meter
                              operator: In
                              values:
                                - 00000000-0000-0000-0000-000000000000
                          - tag:
                              name: Dev
                              operator: In
                              values:
                                - engineering
                      notifications:
                        Actual_GreaterThanOrEqualTo_90_Percent:
                          contactEmails:
                            - johndoe@contoso.com
                            - janesmith@contoso.com
                          contactGroups:
                            - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup
                          contactRoles:
                            - Contributor
                            - Reader
                          enabled: true
                          operator: GreaterThanOrEqualTo
                          threshold: 90
                        Actual_GreaterThan_80_Percent:
                          contactEmails:
                            - johndoe@contoso.com
                            - janesmith@contoso.com
                          contactRoles:
                            - Contributor
                            - Reader
                          enabled: true
                          operator: GreaterThan
                          threshold: 80
                      timeGrain: Monthly
                      timePeriod:
                        endDate: 2018-10-31T00:00:00Z
                        startDate: 2017-10-01T00:00:00Z
                    type: Microsoft.Consumption/budgets
                  - eTag: '"1d34d012214157f"'
                    id: subscriptions/{subscription-id}/providers/Microsoft.Consumption/budgets/TestBudget
                    name: TestBudget
                    properties:
                      amount: 600.65
                      category: Cost
                      currentSpend:
                        amount: 120.89
                        unit: USD
                      filter:
                        and:
                          - dimension:
                              name: ResourceGroupName
                              operator: In
                              values:
                                - MYDEVTESTRG
                          - dimension:
                              name: ResourceId
                              operator: In
                              values:
                                - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2
                                - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1
                          - dimension:
                              name: Meter
                              operator: In
                              values:
                                - 00000000-0000-0000-0000-000000000000
                          - tag:
                              name: Dev
                              operator: In
                              values:
                                - engineering
                      notifications:
                        Actual_GreaterThanOrEqualTo_60_Percent:
                          contactEmails:
                            - johndoe@contoso.com
                            - janesmith@contoso.com
                          contactGroups:
                            - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup
                          contactRoles:
                            - Contributor
                            - Reader
                          enabled: true
                          operator: GreaterThanOrEqualTo
                          threshold: 60
                        Actual_GreaterThan_40_Percent:
                          contactEmails:
                            - johndoe@contoso.com
                            - janesmith@contoso.com
                          contactRoles:
                            - Contributor
                            - Reader
                          enabled: true
                          operator: GreaterThan
                          threshold: 40
                      timeGrain: Monthly
                      timePeriod:
                        endDate: 2018-10-31T00:00:00Z
                        startDate: 2017-10-01T00:00:00Z
                    type: Microsoft.Consumption/budgets
      x-ms-pageable:
        nextLinkName: nextLink
  "/{scope}/providers/Microsoft.CostManagement/budgets/{budgetName}":
    delete:
      description: The operation to delete a budget.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/cost-management/
      operationId: Budget_Delete
      parameters:
        - $ref: "#/parameters/scopeBudgetParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/budgetNameParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
        "204":
          description: NoContent. Resource is not available.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Budgets
      x-ms-examples:
        DeleteBudget:
          parameters:
            api-version: 2019-05-01-preview
            budgetName: TestBudget
            resourceGroupName: MYDEVTESTRG
            scope: subscriptions/00000000-0000-0000-0000-000000000000
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200": {}
            "204": {}
    get:
      description: Gets the budget for the scope by budget name.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/cost-management/
      operationId: Budget_Get
      parameters:
        - $ref: "#/parameters/scopeBudgetParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/budgetNameParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/BudgetModel"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Budgets
      x-ms-examples:
        Budget:
          parameters:
            api-version: 2019-05-01-preview
            budgetName: TestBudget
            resourceGroupName: MYDEVTESTRG
            scope: subscriptions/00000000-0000-0000-0000-000000000000
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                eTag: '"1d34d012214157f"'
                id: subscriptions/{subscription-id}/providers/Microsoft.Consumption/budgets/TestBudget
                name: TestBudget
                properties:
                  amount: 100.65
                  category: Cost
                  currentSpend:
                    amount: 80.89
                    unit: USD
                  filter:
                    and:
                      - dimension:
                          name: ResourceGroupName
                          operator: In
                          values:
                            - MYDEVTESTRG
                      - dimension:
                          name: ResourceId
                          operator: In
                          values:
                            - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2
                            - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1
                      - dimension:
                          name: Meter
                          operator: In
                          values:
                            - 00000000-0000-0000-0000-000000000000
                      - tag:
                          name: Dev
                          operator: In
                          values:
                            - engineering
                  notifications:
                    Actual_GreaterThan_80_Percent:
                      contactEmails:
                        - johndoe@contoso.com
                        - janesmith@contoso.com
                      contactGroups:
                        - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup
                      contactRoles:
                        - Contributor
                        - Reader
                      enabled: true
                      operator: GreaterThan
                      threshold: 80
                  timeGrain: Monthly
                  timePeriod:
                    endDate: 2018-10-31T00:00:00Z
                    startDate: 2017-10-01T00:00:00Z
                type: Microsoft.Consumption/budgets
    put:
      description: The operation to create or update a budget. Update operation requires latest eTag to be set in the request mandatorily. You may obtain the latest eTag by performing a get operation. Create operation does not require eTag.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/cost-management/
      operationId: Budget_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/scopeBudgetParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/budgetNameParameter"
        - description: Parameters supplied to the Create Budget operation.
          in: body
          name: parameters
          schema:
            $ref: "#/definitions/BudgetModel"
          x-required: true
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/BudgetModel"
        "201":
          description: Created.
          schema:
            $ref: "#/definitions/BudgetModel"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Budgets
      x-ms-examples:
        CreateOrUpdateBudget:
          parameters:
            api-version: 2019-05-01-preview
            budgetName: TestBudget
            parameters:
              eTag: '"1d34d016a593709"'
              properties:
                amount: 100.65
                category: Cost
                filter:
                  and:
                    - dimension:
                        name: ResourceGroupName
                        operator: In
                        values:
                          - MYDEVTESTRG
                    - dimension:
                        name: ResourceId
                        operator: In
                        values:
                          - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2
                          - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1
                    - dimension:
                        name: Meter
                        operator: In
                        values:
                          - 00000000-0000-0000-0000-000000000000
                    - tag:
                        name: Dev
                        operator: In
                        values:
                          - engineering
                notifications:
                  Actual_GreaterThan_80_Percent:
                    contactEmails:
                      - johndoe@contoso.com
                      - janesmith@contoso.com
                    contactGroups:
                      - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup
                    contactRoles:
                      - Contributor
                      - Reader
                    enabled: true
                    operator: GreaterThan
                    threshold: 80
                timeGrain: Monthly
                timePeriod:
                  endDate: 2018-10-31T00:00:00Z
                  startDate: 2017-10-01T00:00:00Z
            resourceGroupName: MYDEVTESTRG
            scope: subscriptions/00000000-0000-0000-0000-000000000000
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                eTag: '"1d34d012214157f"'
                id: subscriptions/{subscription-id}/providers/Microsoft.Consumption/budgets/TestBudget
                name: TestBudget
                properties:
                  amount: 100.65
                  category: Cost
                  currentSpend:
                    amount: 80.89
                    unit: USD
                  filter:
                    and:
                      - dimension:
                          name: ResourceGroupName
                          operator: In
                          values:
                            - MYDEVTESTRG
                      - dimension:
                          name: ResourceId
                          operator: In
                          values:
                            - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2
                            - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1
                      - dimension:
                          name: Meter
                          operator: In
                          values:
                            - 00000000-0000-0000-0000-000000000000
                      - tag:
                          name: Dev
                          operator: In
                          values:
                            - engineering
                  notifications:
                    Actual_GreaterThan_80_Percent:
                      contactEmails:
                        - johndoe@contoso.com
                        - janesmith@contoso.com
                      contactGroups:
                        - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup
                      contactRoles:
                        - Contributor
                        - Reader
                      enabled: true
                      operator: GreaterThan
                      threshold: 80
                  timeGrain: Monthly
                  timePeriod:
                    endDate: 2018-10-31T00:00:00Z
                    startDate: 2017-10-01T00:00:00Z
                type: Microsoft.Consumption/budgets
            "201":
              body:
                eTag: '"1d34d012214157f"'
                id: subscriptions/{subscription-id}/providers/Microsoft.Consumption/budgets/TestBudget
                name: TestBudget
                properties:
                  amount: 100.65
                  category: Cost
                  currentSpend:
                    amount: 80.89
                    unit: USD
                  filter:
                    and:
                      - dimension:
                          name: ResourceGroupName
                          operator: In
                          values:
                            - MYDEVTESTRG
                      - dimension:
                          name: ResourceId
                          operator: In
                          values:
                            - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/MYVM2
                            - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/Microsoft.Compute/virtualMachines/platformcloudplatformGeneric1
                      - dimension:
                          name: Meter
                          operator: In
                          values:
                            - 00000000-0000-0000-0000-000000000000
                      - tag:
                          name: Dev
                          operator: In
                          values:
                            - engineering
                  notifications:
                    Actual_GreaterThan_80_Percent:
                      contactEmails:
                        - johndoe@contoso.com
                        - janesmith@contoso.com
                      contactGroups:
                        - /subscriptions/{subscription-id}/resourceGroups/MYDEVTESTRG/providers/microsoft.insights/actionGroups/SampleActionGroup
                      contactRoles:
                        - Contributor
                        - Reader
                      enabled: true
                      operator: GreaterThan
                      threshold: 80
                  timeGrain: Monthly
                  timePeriod:
                    endDate: 2018-10-31T00:00:00Z
                    startDate: 2017-10-01T00:00:00Z
                type: Microsoft.Consumption/budgets
  "/{scope}/providers/Microsoft.CostManagement/views":
    get:
      description: Lists all views at the given scope.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/costmanagement/
      operationId: Views_ListByScope
      parameters:
        - $ref: "#/parameters/scopeViewParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/ViewListResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Views
      x-ms-examples:
        ResourceGroupViewList:
          parameters:
            api-version: 2019-04-01-preview
            scope: subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG
          responses:
            "200":
              body:
                value:
                  - eTag: '"1d4ff9fe66f1d10"'
                    id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.CostManagement/views/swaggerExample
                    name: swaggerExample
                    properties:
                      accumulated: "true"
                      chart: Table
                      displayName: swagger Example
                      kpis:
                        - enabled: true
                          id: null
                          type: Forecast
                        - enabled: true
                          id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                          type: Budget
                      metric: ActualCost
                      pivots:
                        - name: ServiceName
                          type: Dimension
                        - name: MeterCategory
                          type: Dimension
                        - name: swaggerTagKey
                          type: TagKey
                      query:
                        dataset:
                          aggregation:
                            totalCost:
                              function: Sum
                              name: PreTaxCost
                          granularity: Daily
                          grouping: []
                          sorting:
                            - direction: Ascending
                              name: UsageDate
                        timeframe: MonthToDate
                        type: Usage
                      scope: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG
                    type: Microsoft.CostManagement/Views
                  - eTag: '"1d4ffa5a9c2430c"'
                    id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.CostManagement/views/swaggerExample2
                    name: swaggerExample2
                    properties:
                      accumulated: "true"
                      chart: GroupedColumn
                      displayName: swagger Example 2
                      kpis:
                        - enabled: true
                          id: null
                          type: Forecast
                        - enabled: true
                          id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                          type: Budget
                      metric: ActualCost
                      pivots:
                        - name: ServiceName
                          type: Dimension
                        - name: MeterCategory
                          type: Dimension
                        - name: swaggerTagKey
                          type: TagKey
                      query:
                        dataset:
                          aggregation:
                            totalCost:
                              function: Sum
                              name: PreTaxCost
                          granularity: Daily
                          grouping: []
                          sorting:
                            - direction: Ascending
                              name: UsageDate
                        timeframe: LastMonthToDate
                        type: Usage
                      scope: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG
                    type: Microsoft.CostManagement/Views
      x-ms-pageable:
        nextLinkName: nextLink
  "/{scope}/providers/Microsoft.CostManagement/views/{viewName}":
    delete:
      description: The operation to delete a view.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/costmanagement/
      operationId: Views_DeleteByScope
      parameters:
        - $ref: "#/parameters/scopeViewParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/viewNameParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
        "204":
          description: NoContent. Resource is not available.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Views
      x-ms-examples:
        ResourceGroupDeleteView:
          parameters:
            api-version: 2019-04-01-preview
            scope: subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG
            viewName: TestView
          responses:
            "200": {}
            "204": {}
    get:
      description: Gets the view for the defined scope by view name.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/costmanagement/
      operationId: Views_GetByScope
      parameters:
        - $ref: "#/parameters/scopeViewParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/viewNameParameter"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/View"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Views
      x-ms-examples:
        ResourceGroupView:
          parameters:
            api-version: 2019-04-01-preview
            scope: subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG
            viewName: swaggerExample
          responses:
            "200":
              body:
                eTag: '"1d4ff9fe66f1d10"'
                id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.CostManagement/views/swaggerExample
                name: swaggerExample
                properties:
                  accumulated: "true"
                  chart: Table
                  displayName: swagger Example
                  kpis:
                    - enabled: true
                      id: null
                      type: Forecast
                    - enabled: true
                      id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                      type: Budget
                  metric: ActualCost
                  pivots:
                    - name: ServiceName
                      type: Dimension
                    - name: MeterCategory
                      type: Dimension
                    - name: swaggerTagKey
                      type: TagKey
                  query:
                    dataset:
                      aggregation:
                        totalCost:
                          function: Sum
                          name: PreTaxCost
                      granularity: Daily
                      grouping: []
                      sorting:
                        - direction: Ascending
                          name: UsageDate
                    timeframe: MonthToDate
                    type: Usage
                  scope: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG
                type: Microsoft.CostManagement/Views
    put:
      description: The operation to create or update a view. Update operation requires latest eTag to be set in the request. You may obtain the latest eTag by performing a get operation. Create operation does not require eTag.
      externalDocs:
        url: https://docs.microsoft.com/en-us/rest/api/costmanagement/
      operationId: Views_CreateOrUpdateByScope
      parameters:
        - $ref: "#/parameters/scopeViewParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/viewNameParameter"
        - description: Parameters supplied to the CreateOrUpdate View operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/View"
      responses:
        "200":
          description: OK. The request has succeeded.
          schema:
            $ref: "#/definitions/View"
        "201":
          description: Created.
          schema:
            $ref: "#/definitions/View"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - Views
      x-ms-examples:
        ResourceGroupCreateOrUpdateView:
          parameters:
            api-version: 2019-04-01-preview
            parameters:
              eTag: '"1d4ff9fe66f1d10"'
              properties:
                accumulated: "true"
                chart: Table
                displayName: swagger Example
                kpis:
                  - enabled: true
                    id: null
                    type: Forecast
                  - enabled: true
                    id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                    type: Budget
                metric: ActualCost
                pivots:
                  - name: ServiceName
                    type: Dimension
                  - name: MeterCategory
                    type: Dimension
                  - name: swaggerTagKey
                    type: TagKey
                query:
                  dataset:
                    aggregation:
                      totalCost:
                        function: Sum
                        name: PreTaxCost
                    granularity: Daily
                    grouping: []
                    sorting:
                      - direction: Ascending
                        name: UsageDate
                  timeframe: MonthToDate
                  type: Usage
            scope: subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG
            viewName: swaggerExample
          responses:
            "200":
              body:
                eTag: '"1d4ffa5a9c2430c"'
                id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.CostManagement/views/swaggerExample
                name: swaggerExample
                properties:
                  accumulated: "true"
                  chart: Table
                  displayName: swagger Example
                  kpis:
                    - enabled: true
                      id: null
                      type: Forecast
                    - enabled: true
                      id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                      type: Budget
                  metric: ActualCost
                  pivots:
                    - name: ServiceName
                      type: Dimension
                    - name: MeterCategory
                      type: Dimension
                    - name: swaggerTagKey
                      type: TagKey
                  query:
                    dataset:
                      aggregation:
                        totalCost:
                          function: Sum
                          name: PreTaxCost
                      granularity: Daily
                      grouping: []
                      sorting:
                        - direction: Ascending
                          name: UsageDate
                    timeframe: MonthToDate
                    type: Usage
                  scope: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG
                type: Microsoft.CostManagement/Views
            "201":
              body:
                eTag: '"1d4ffa5a9c2430c"'
                id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.CostManagement/views/swaggerExample
                name: swaggerExample
                properties:
                  accumulated: "true"
                  chart: Table
                  displayName: swagger Example
                  kpis:
                    - enabled: true
                      id: null
                      type: Forecast
                    - enabled: true
                      id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG/providers/Microsoft.Consumption/budgets/swaggerDemo
                      type: Budget
                  metric: ActualCost
                  pivots:
                    - name: ServiceName
                      type: Dimension
                    - name: MeterCategory
                      type: Dimension
                    - name: swaggerTagKey
                      type: TagKey
                  query:
                    dataset:
                      aggregation:
                        totalCost:
                          function: Sum
                          name: PreTaxCost
                      granularity: Daily
                      grouping: []
                      sorting:
                        - direction: Ascending
                          name: UsageDate
                    timeframe: MonthToDate
                    type: Usage
                  scope: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MYDEVTESTRG
                type: Microsoft.CostManagement/Views
definitions:
  BudgetModel:
    allOf:
      - $ref: "#/definitions/ProxyResource"
    description: A budget resource.
    properties:
      properties:
        $ref: "#/definitions/BudgetProperties"
        title: Budget properties
        x-ms-client-flatten: true
  BudgetProperties:
    description: The properties of the budget.
    properties:
      amount:
        description: The total amount of cost to track with the budget
        format: decimal
        type: number
      category:
        description: The category of the budget, whether the budget tracks cost or usage.
        enum:
          - Cost
          - Usage
        type: string
        x-ms-enum:
          modelAsString: true
          name: CategoryType
      currentSpend:
        $ref: "#/definitions/CurrentSpend"
        description: The current amount of cost which is being tracked for a budget.
        readOnly: true
      filter:
        $ref: "#/definitions/ReportConfigFilter"
        description: May be used to filter budgets.
        type: object
      notifications:
        additionalProperties:
          $ref: "#/definitions/Notification"
          type: object
        description: Dictionary of notifications associated with the budget. Budget can have up to five notifications.
        maxItems: 5
        type: object
      timeGrain:
        description: The time covered by a budget. Tracking of the amount will be reset based on the time grain.
        enum:
          - Monthly
          - Quarterly
          - Annually
        type: string
        x-ms-enum:
          modelAsString: true
          name: TimeGrainType
      timePeriod:
        $ref: "#/definitions/BudgetTimePeriod"
        description: Has start and end date of the budget. The start date must be first of the month and should be less than the end date. Budget start date must be on or after June 1, 2017. Future start date should not be more than three months. Past start date should  be selected within the timegrain period. There are no restrictions on the end date.
    required:
      - category
      - amount
      - timeGrain
      - timePeriod
  BudgetTimePeriod:
    description: The start and end date for a budget.
    properties:
      endDate:
        description: The end date for the budget. If not provided, we default this to 10 years from the start date.
        format: date-time
        type: string
      startDate:
        description: The start date for the budget.
        format: date-time
        type: string
    required:
      - startDate
  BudgetsListResult:
    description: Result of listing budgets. It contains a list of available budgets in the scope provided.
    properties:
      nextLink:
        description: The link (url) to the next page of results.
        readOnly: true
        type: string
      value:
        description: The list of budgets.
        items:
          $ref: "#/definitions/BudgetModel"
        readOnly: true
        type: array
  CurrentSpend:
    description: The current amount of cost which is being tracked for a budget.
    properties:
      amount:
        description: The total amount of cost which is being tracked by the budget.
        format: decimal
        readOnly: true
        type: number
      unit:
        description: The unit of measure for the budget amount.
        readOnly: true
        type: string
  ErrorBase:
    description: The details of the error.
    properties:
      code:
        description: A machine readable error code.
        readOnly: true
        type: string
      message:
        description: A human readable error message.
        readOnly: true
        type: string
      target:
        description: Indicates which property in the request is responsible for the error.
        readOnly: true
        type: string
  ErrorDetails:
    description: The details of the error.
    properties:
      code:
        description: A machine readable error code.
        readOnly: true
        type: string
      details:
        description: error details.
        items:
          $ref: "#/definitions/ErrorBase"
        type: array
      message:
        description: A human readable error message.
        readOnly: true
        type: string
      target:
        description: Indicates which property in the request is responsible for the error.
        type: string
  ErrorResponse:
    description: Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message.
    properties:
      error:
        $ref: "#/definitions/ErrorDetails"
        description: The details of the error.
    type: object
  KpiProperties:
    description: Each KPI must contain a 'type' and 'enabled' key.
    properties:
      enabled:
        description: show the KPI in the UI?
        type: boolean
      id:
        description: ID of resource related to metric (budget).
        type: string
      type:
        description: KPI type (Forecast, Budget).
        enum:
          - Forecast
          - Budget
        type: string
        x-ms-enum:
          modelAsString: true
          name: KpiTypeType
    type: object
  Notification:
    description: The notification associated with a budget.
    properties:
      contactEmails:
        description: Email addresses to send the budget notification to when the threshold is exceeded.
        items:
          type: string
        maxItems: 50
        minItems: 1
        type: array
      contactGroups:
        description: Action groups to send the budget notification to when the threshold is exceeded.
        items:
          type: string
        maxItems: 50
        minItems: 0
        type: array
      contactRoles:
        description: Contact roles to send the budget notification to when the threshold is exceeded.
        items:
          type: string
        type: array
      enabled:
        description: The notification is enabled or not.
        type: boolean
      operator:
        description: The comparison operator.
        enum:
          - EqualTo
          - GreaterThan
          - GreaterThanOrEqualTo
        type: string
        x-ms-enum:
          modelAsString: true
          name: NotificationOperatorType
      threshold:
        description: Threshold value associated with a notification. Notification is sent when the cost exceeded the threshold. It is always percent and has to be between 0 and 1000.
        format: decimal
        type: number
    required:
      - enabled
      - operator
      - threshold
      - contactEmails
  Operation:
    description: A Cost management REST API operation.
    properties:
      display:
        description: The object that represents the operation.
        properties:
          operation:
            description: "Operation type: Read, write, delete, etc."
            readOnly: true
            type: string
          provider:
            description: "Service provider: Microsoft.CostManagement."
            readOnly: true
            type: string
          resource:
            description: "Resource on which the operation is performed: Dimensions, Query."
            readOnly: true
            type: string
      name:
        description: "Operation name: {provider}/{resource}/{operation}."
        readOnly: true
        type: string
    type: object
  OperationListResult:
    description: Result of listing cost management operations. It contains a list of operations and a URL link to get the next set of results.
    properties:
      nextLink:
        description: URL to get the next set of operation list results if there are any.
        readOnly: true
        type: string
      value:
        description: List of cost management operations supported by the Microsoft.CostManagement resource provider.
        items:
          $ref: "#/definitions/Operation"
        readOnly: true
        type: array
  PivotProperties:
    description: Each pivot must contain a 'type' and 'name'.
    properties:
      name:
        description: Data field to show in view.
        type: string
      type:
        description: Data type to show in view.
        enum:
          - Dimension
          - TagKey
        type: string
        x-ms-enum:
          modelAsString: true
          name: PivotTypeType
    type: object
  ProxyResource:
    description: The Resource model definition.
    properties:
      eTag:
        description: eTag of the resource. To handle concurrent update scenario, this field will be used to determine whether the user is updating the latest version or not.
        type: string
      id:
        description: Resource Id.
        readOnly: true
        type: string
      name:
        description: Resource name.
        readOnly: true
        type: string
      type:
        description: Resource type.
        readOnly: true
        type: string
    x-ms-azure-resource: true
  ReportConfigAggregation:
    description: The aggregation expression to be used in the report.
    properties:
      function:
        description: The name of the aggregation function to use.
        enum:
          - Sum
        type: string
        x-ms-enum:
          modelAsString: true
          name: FunctionType
      name:
        description: The name of the column to aggregate.
        type: string
    required:
      - name
      - function
  ReportConfigColumnType:
    description: The type of the column in the report.
    enum:
      - Tag
      - Dimension
    type: string
    x-ms-enum:
      modelAsString: true
      name: ReportConfigColumnType
  ReportConfigComparisonExpression:
    description: The comparison expression to be used in the report.
    properties:
      name:
        description: The name of the column to use in comparison.
        type: string
      operator:
        description: The operator to use for comparison.
        enum:
          - In
          - Contains
        type: string
        x-ms-enum:
          modelAsString: true
          name: OperatorType
      values:
        description: Array of values to use for comparison
        items:
          type: string
        minItems: 1
        type: array
    required:
      - name
      - operator
      - values
  ReportConfigDataset:
    description: The definition of data present in the report.
    properties:
      aggregation:
        additionalProperties:
          $ref: "#/definitions/ReportConfigAggregation"
          type: object
        description: Dictionary of aggregation expression to use in the report. The key of each item in the dictionary is the alias for the aggregated column. Report can have up to 2 aggregation clauses.
        maxItems: 2
        type: object
      configuration:
        $ref: "#/definitions/ReportConfigDatasetConfiguration"
        description: Has configuration information for the data in the report. The configuration will be ignored if aggregation and grouping are provided.
      filter:
        $ref: "#/definitions/ReportConfigFilter"
        description: Has filter expression to use in the report.
        type: object
      granularity:
        description: The granularity of rows in the report.
        enum:
          - Daily
          - Monthly
        type: string
        x-ms-enum:
          modelAsString: true
          name: GranularityType
      grouping:
        description: Array of group by expression to use in the report. Report can have up to 2 group by clauses.
        items:
          $ref: "#/definitions/ReportConfigGrouping"
        maxItems: 2
        type: array
      sorting:
        description: Array of order by expression to use in the report.
        items:
          $ref: "#/definitions/ReportConfigSorting"
        type: array
  ReportConfigDatasetConfiguration:
    description: The configuration of dataset in the report.
    properties:
      columns:
        description: Array of column names to be included in the report. Any valid report column name is allowed. If not provided, then report includes all columns.
        items:
          type: string
        type: array
  ReportConfigDefinition:
    description: The definition of a report config.
    properties:
      dataset:
        $ref: "#/definitions/ReportConfigDataset"
        description: Has definition for data in this report config.
      timePeriod:
        $ref: "#/definitions/ReportConfigTimePeriod"
        description: Has time period for pulling data for the report.
      timeframe:
        description: The time frame for pulling data for the report. If custom, then a specific time period must be provided.
        enum:
          - WeekToDate
          - MonthToDate
          - YearToDate
          - Custom
        type: string
        x-ms-enum:
          modelAsString: true
          name: TimeframeType
      type:
        description: The type of the report. Usage represents actual usage, forecast represents forecasted data and UsageAndForecast represents both usage and forecasted data. Actual usage and forecasted data can be differentiated based on dates.
        enum:
          - Usage
        type: string
        x-ms-enum:
          modelAsString: true
          name: ReportType
    required:
      - type
      - timeframe
  ReportConfigFilter:
    description: The filter expression to be used in the report.
    properties:
      and:
        description: The logical "AND" expression. Must have at least 2 items.
        items:
          $ref: "#/definitions/ReportConfigFilter"
        minItems: 2
        type: array
      dimension:
        $ref: "#/definitions/ReportConfigComparisonExpression"
        description: Has comparison expression for a dimension
      not:
        $ref: "#/definitions/ReportConfigFilter"
        description: The logical "NOT" expression.
      or:
        description: The logical "OR" expression. Must have at least 2 items.
        items:
          $ref: "#/definitions/ReportConfigFilter"
        minItems: 2
        type: array
      tag:
        $ref: "#/definitions/ReportConfigComparisonExpression"
        description: Has comparison expression for a tag
  ReportConfigGrouping:
    description: The group by expression to be used in the report.
    properties:
      name:
        description: The name of the column to group. This version supports subscription lowest possible grain.
        type: string
      type:
        $ref: "#/definitions/ReportConfigColumnType"
        description: Has type of the column to group.
    required:
      - type
      - name
  ReportConfigSorting:
    description: The order by expression to be used in the report.
    properties:
      direction:
        description: Direction of sort.
        enum:
          - Ascending
          - Descending
        type: string
      name:
        description: The name of the column to sort.
        type: string
    required:
      - name
  ReportConfigTimePeriod:
    description: The start and end date for pulling data for the report.
    properties:
      from:
        description: The start date to pull data from.
        format: date-time
        type: string
      to:
        description: The end date to pull data to.
        format: date-time
        type: string
    required:
      - from
      - to
  Resource:
    description: The Resource model definition.
    properties:
      id:
        description: Resource Id.
        readOnly: true
        type: string
      name:
        description: Resource name.
        readOnly: true
        type: string
      tags:
        additionalProperties:
          type: string
        description: Resource tags.
        readOnly: true
        type: object
      type:
        description: Resource type.
        readOnly: true
        type: string
    x-ms-azure-resource: true
  Scope:
    description: The Scope model definition
    properties:
      childScope:
        $ref: "#/definitions/Scope"
      id:
        description: Scope id
        type: string
      name:
        description: Scope name
        type: string
      type:
        description: Scope type
        type: string
    type: object
  View:
    allOf:
      - $ref: "#/definitions/ProxyResource"
    description: States and configurations of Cost Analysis.
    properties:
      properties:
        $ref: "#/definitions/ViewProperties"
        title: View properties
        x-ms-client-flatten: true
    type: object
  ViewListResult:
    description: Result of listing views. It contains a list of available views.
    properties:
      nextLink:
        description: The link (url) to the next page of results.
        readOnly: true
        type: string
      value:
        description: The list of views.
        items:
          $ref: "#/definitions/View"
        readOnly: true
        type: array
    type: object
  ViewProperties:
    description: The properties of the view.
    properties:
      accumulated:
        description: Show costs accumulated over time.
        enum:
          - "true"
          - "false"
        type: string
        x-ms-enum:
          modelAsString: true
          name: AccumulatedType
      chart:
        description: Chart type of the main view in Cost Analysis. Required.
        enum:
          - Area
          - Line
          - StackedColumn
          - GroupedColumn
          - Table
        type: string
        x-ms-enum:
          modelAsString: true
          name: ChartType
      createdOn:
        description: Date the user created this view.
        format: date-time
        readOnly: true
        type: string
      displayName:
        description: User input name of the view. Required.
        type: string
      kpis:
        description: List of KPIs to show in Cost Analysis UI.
        items:
          $ref: "#/definitions/KpiProperties"
        type: array
      metric:
        description: Metric to use when displaying costs.
        enum:
          - ActualCost
          - AmortizedCost
          - AHUB
        type: string
        x-ms-enum:
          modelAsString: true
          name: MetricType
      modifiedOn:
        description: Date when the user last modified this view.
        format: date-time
        readOnly: true
        type: string
      pivots:
        description: Configuration of 3 sub-views in the Cost Analysis UI.
        items:
          $ref: "#/definitions/PivotProperties"
        type: array
      query:
        $ref: "#/definitions/ReportConfigDefinition"
        description: Query body configuration. Required.
        type: object
        x-ms-client-flatten: true
      scope:
        description: Cost Management scope to save the view on. This includes 'subscriptions/{subscriptionId}' for subscription scope, 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for resourceGroup scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}' for Billing Account scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/departments/{departmentId}' for Department scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/enrollmentAccounts/{enrollmentAccountId}' for EnrollmentAccount scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/billingProfiles/{billingProfileId}' for BillingProfile scope, 'providers/Microsoft.Billing/billingAccounts/{billingAccountId}/invoiceSections/{invoiceSectionId}' for InvoiceSection scope, 'providers/Microsoft.Management/managementGroups/{managementGroupId}' for Management Group scope, '/providers/Microsoft.CostManagement/externalBillingAccounts/{externalBillingAccountName}' for ExternalBillingAccount scope, and '/providers/Microsoft.CostManagement/externalSubscriptions/{externalSubscriptionName}' for ExternalSubscription scope.
        type: string
    type: object
