@@ -186,6 +186,13 @@ components:
186
186
required: true
187
187
schema:
188
188
type: string
189
+ BudgetID:
190
+ description: Budget id.
191
+ in: path
192
+ name: budget_id
193
+ required: true
194
+ schema:
195
+ type: string
189
196
CaseIDPathParameter:
190
197
description: Case's UUID or key
191
198
example: f98a5a5b-e0ff-45d4-b2f5-afe6e74de504
@@ -4664,6 +4671,135 @@ components:
4664
4671
data:
4665
4672
$ref: '#/components/schemas/BillingDimensionsMappingBody'
4666
4673
type: object
4674
+ Budget:
4675
+ description: A budget.
4676
+ properties:
4677
+ attributes:
4678
+ $ref: '#/components/schemas/BudgetAttributes'
4679
+ id:
4680
+ description: The id of the budget.
4681
+ type: string
4682
+ type:
4683
+ description: The type of the object, must be `budget`.
4684
+ type: string
4685
+ type: object
4686
+ BudgetArray:
4687
+ description: An array of budgets.
4688
+ example:
4689
+ data:
4690
+ - attributes:
4691
+ created_at: 1741011342772
4692
+ created_by: user1
4693
+ end_month: 202502
4694
+ metrics_query: aws.cost.amortized{service:ec2} by {service}
4695
+ name: my budget
4696
+ org_id: 123
4697
+ start_month: 202501
4698
+ total_amount: 1000
4699
+ updated_at: 1741011342772
4700
+ updated_by: user2
4701
+ id: 00000000-0a0a-0a0a-aaa0-00000000000a
4702
+ type: budget
4703
+ properties:
4704
+ data:
4705
+ description: The `BudgetArray` `data`.
4706
+ items:
4707
+ $ref: '#/components/schemas/Budget'
4708
+ type: array
4709
+ type: object
4710
+ BudgetAttributes:
4711
+ description: The attributes of a budget.
4712
+ properties:
4713
+ created_at:
4714
+ description: The timestamp when the budget was created.
4715
+ example: 1738258683590
4716
+ format: int64
4717
+ type: integer
4718
+ created_by:
4719
+ description: The id of the user that created the budget.
4720
+ example: 00000000-0a0a-0a0a-aaa0-00000000000a
4721
+ type: string
4722
+ end_month:
4723
+ description: The month when the budget ends.
4724
+ example: 202502
4725
+ format: int64
4726
+ type: integer
4727
+ entries:
4728
+ description: The entries of the budget.
4729
+ items:
4730
+ $ref: '#/components/schemas/BudgetEntry'
4731
+ type: array
4732
+ metrics_query:
4733
+ description: The cost query used to track against the budget.
4734
+ example: aws.cost.amortized{service:ec2} by {service}
4735
+ type: string
4736
+ name:
4737
+ description: The name of the budget.
4738
+ example: my budget
4739
+ type: string
4740
+ org_id:
4741
+ description: The id of the org the budget belongs to.
4742
+ example: 123
4743
+ format: int64
4744
+ type: integer
4745
+ start_month:
4746
+ description: The month when the budget starts.
4747
+ example: 202501
4748
+ format: int64
4749
+ type: integer
4750
+ total_amount:
4751
+ description: The sum of all budget entries' amounts.
4752
+ example: 1000
4753
+ format: double
4754
+ type: number
4755
+ updated_at:
4756
+ description: The timestamp when the budget was last updated.
4757
+ example: 1738258683590
4758
+ format: int64
4759
+ type: integer
4760
+ updated_by:
4761
+ description: The id of the user that created the budget.
4762
+ example: 00000000-0a0a-0a0a-aaa0-00000000000a
4763
+ type: string
4764
+ type: object
4765
+ BudgetEntry:
4766
+ description: The entry of a budget.
4767
+ properties:
4768
+ amount:
4769
+ description: The `amount` of the budget entry.
4770
+ example: 500
4771
+ format: double
4772
+ type: number
4773
+ month:
4774
+ description: The `month` of the budget entry.
4775
+ example: 202501
4776
+ format: int64
4777
+ type: integer
4778
+ tag_filters:
4779
+ description: The `BudgetEntry` `tag_filters`.
4780
+ items:
4781
+ $ref: '#/components/schemas/TagFilter'
4782
+ type: array
4783
+ type: object
4784
+ BudgetWithEntries:
4785
+ description: The definition of the `BudgetWithEntries` object.
4786
+ properties:
4787
+ data:
4788
+ $ref: '#/components/schemas/BudgetWithEntriesData'
4789
+ type: object
4790
+ BudgetWithEntriesData:
4791
+ description: A budget and all its entries.
4792
+ properties:
4793
+ attributes:
4794
+ $ref: '#/components/schemas/BudgetAttributes'
4795
+ id:
4796
+ description: The `BudgetWithEntriesData` `id`.
4797
+ example: 00000000-0a0a-0a0a-aaa0-00000000000a
4798
+ type: string
4799
+ type:
4800
+ description: The type of the object, must be `budget`.
4801
+ type: string
4802
+ type: object
4667
4803
BulkMuteFindingsRequest:
4668
4804
description: The new bulk mute finding request.
4669
4805
properties:
@@ -34059,6 +34195,18 @@ components:
34059
34195
format: double
34060
34196
type: number
34061
34197
type: object
34198
+ TagFilter:
34199
+ description: Tag filter for the budget's entries.
34200
+ properties:
34201
+ tag_key:
34202
+ description: The key of the tag.
34203
+ example: service
34204
+ type: string
34205
+ tag_value:
34206
+ description: The value of the tag.
34207
+ example: ec2
34208
+ type: string
34209
+ type: object
34062
34210
TagsEventAttribute:
34063
34211
description: Array of tags associated with your event.
34064
34212
example:
@@ -40412,6 +40560,105 @@ paths:
40412
40560
operator: OR
40413
40561
permissions:
40414
40562
- cloud_cost_management_write
40563
+ /api/v2/cost/budget:
40564
+ put:
40565
+ description: Create a new budget or update an existing one.
40566
+ operationId: UpsertBudget
40567
+ requestBody:
40568
+ content:
40569
+ application/json:
40570
+ schema:
40571
+ $ref: '#/components/schemas/BudgetWithEntries'
40572
+ required: true
40573
+ responses:
40574
+ '200':
40575
+ content:
40576
+ application/json:
40577
+ schema:
40578
+ $ref: '#/components/schemas/BudgetWithEntries'
40579
+ description: OK
40580
+ '400':
40581
+ $ref: '#/components/responses/BadRequestResponse'
40582
+ '404':
40583
+ $ref: '#/components/responses/NotFoundResponse'
40584
+ '429':
40585
+ $ref: '#/components/responses/TooManyRequestsResponse'
40586
+ security:
40587
+ - apiKeyAuth: []
40588
+ appKeyAuth: []
40589
+ - AuthZ:
40590
+ - cloud_cost_management_write
40591
+ summary: Update if exists, or create a new budget
40592
+ tags:
40593
+ - Cloud Cost Management
40594
+ /api/v2/cost/budget/{budget_id}:
40595
+ delete:
40596
+ description: Delete a budget.
40597
+ operationId: DeleteBudget
40598
+ parameters:
40599
+ - $ref: '#/components/parameters/BudgetID'
40600
+ responses:
40601
+ '204':
40602
+ description: No Content
40603
+ '400':
40604
+ $ref: '#/components/responses/BadRequestResponse'
40605
+ '429':
40606
+ $ref: '#/components/responses/TooManyRequestsResponse'
40607
+ security:
40608
+ - apiKeyAuth: []
40609
+ appKeyAuth: []
40610
+ - AuthZ:
40611
+ - cloud_cost_management_write
40612
+ summary: Delete a budget
40613
+ tags:
40614
+ - Cloud Cost Management
40615
+ get:
40616
+ description: Get a budget.
40617
+ operationId: GetBudget
40618
+ parameters:
40619
+ - $ref: '#/components/parameters/BudgetID'
40620
+ responses:
40621
+ '200':
40622
+ content:
40623
+ application/json:
40624
+ schema:
40625
+ $ref: '#/components/schemas/BudgetWithEntries'
40626
+ description: OK
40627
+ '400':
40628
+ $ref: '#/components/responses/BadRequestResponse'
40629
+ '404':
40630
+ $ref: '#/components/responses/NotFoundResponse'
40631
+ '429':
40632
+ $ref: '#/components/responses/TooManyRequestsResponse'
40633
+ security:
40634
+ - apiKeyAuth: []
40635
+ appKeyAuth: []
40636
+ - AuthZ:
40637
+ - cloud_cost_management_read
40638
+ summary: Get a budget
40639
+ tags:
40640
+ - Cloud Cost Management
40641
+ /api/v2/cost/budgets:
40642
+ get:
40643
+ description: List budgets.
40644
+ operationId: ListBudgets
40645
+ responses:
40646
+ '200':
40647
+ content:
40648
+ application/json:
40649
+ schema:
40650
+ $ref: '#/components/schemas/BudgetArray'
40651
+ description: OK
40652
+ '429':
40653
+ $ref: '#/components/responses/TooManyRequestsResponse'
40654
+ security:
40655
+ - apiKeyAuth: []
40656
+ appKeyAuth: []
40657
+ - AuthZ:
40658
+ - cloud_cost_management_read
40659
+ summary: List budgets
40660
+ tags:
40661
+ - Cloud Cost Management
40415
40662
/api/v2/cost/custom_costs:
40416
40663
get:
40417
40664
description: List the Custom Costs files.
0 commit comments