@@ -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
@@ -4720,6 +4727,135 @@ components:
4720
4727
data:
4721
4728
$ref: '#/components/schemas/BillingDimensionsMappingBody'
4722
4729
type: object
4730
+ Budget:
4731
+ description: A budget.
4732
+ properties:
4733
+ attributes:
4734
+ $ref: '#/components/schemas/BudgetAttributes'
4735
+ id:
4736
+ description: The id of the budget.
4737
+ type: string
4738
+ type:
4739
+ description: The type of the object, must be `budget`.
4740
+ type: string
4741
+ type: object
4742
+ BudgetArray:
4743
+ description: An array of budgets.
4744
+ example:
4745
+ data:
4746
+ - attributes:
4747
+ created_at: 1741011342772
4748
+ created_by: user1
4749
+ end_month: 202502
4750
+ metrics_query: aws.cost.amortized{service:ec2} by {service}
4751
+ name: my budget
4752
+ org_id: 123
4753
+ start_month: 202501
4754
+ total_amount: 1000
4755
+ updated_at: 1741011342772
4756
+ updated_by: user2
4757
+ id: 00000000-0a0a-0a0a-aaa0-00000000000a
4758
+ type: budget
4759
+ properties:
4760
+ data:
4761
+ description: The `BudgetArray` `data`.
4762
+ items:
4763
+ $ref: '#/components/schemas/Budget'
4764
+ type: array
4765
+ type: object
4766
+ BudgetAttributes:
4767
+ description: The attributes of a budget.
4768
+ properties:
4769
+ created_at:
4770
+ description: The timestamp when the budget was created.
4771
+ example: 1738258683590
4772
+ format: int64
4773
+ type: integer
4774
+ created_by:
4775
+ description: The id of the user that created the budget.
4776
+ example: 00000000-0a0a-0a0a-aaa0-00000000000a
4777
+ type: string
4778
+ end_month:
4779
+ description: The month when the budget ends.
4780
+ example: 202502
4781
+ format: int64
4782
+ type: integer
4783
+ entries:
4784
+ description: The entries of the budget.
4785
+ items:
4786
+ $ref: '#/components/schemas/BudgetEntry'
4787
+ type: array
4788
+ metrics_query:
4789
+ description: The cost query used to track against the budget.
4790
+ example: aws.cost.amortized{service:ec2} by {service}
4791
+ type: string
4792
+ name:
4793
+ description: The name of the budget.
4794
+ example: my budget
4795
+ type: string
4796
+ org_id:
4797
+ description: The id of the org the budget belongs to.
4798
+ example: 123
4799
+ format: int64
4800
+ type: integer
4801
+ start_month:
4802
+ description: The month when the budget starts.
4803
+ example: 202501
4804
+ format: int64
4805
+ type: integer
4806
+ total_amount:
4807
+ description: The sum of all budget entries' amounts.
4808
+ example: 1000
4809
+ format: double
4810
+ type: number
4811
+ updated_at:
4812
+ description: The timestamp when the budget was last updated.
4813
+ example: 1738258683590
4814
+ format: int64
4815
+ type: integer
4816
+ updated_by:
4817
+ description: The id of the user that created the budget.
4818
+ example: 00000000-0a0a-0a0a-aaa0-00000000000a
4819
+ type: string
4820
+ type: object
4821
+ BudgetEntry:
4822
+ description: The entry of a budget.
4823
+ properties:
4824
+ amount:
4825
+ description: The `amount` of the budget entry.
4826
+ example: 500
4827
+ format: double
4828
+ type: number
4829
+ month:
4830
+ description: The `month` of the budget entry.
4831
+ example: 202501
4832
+ format: int64
4833
+ type: integer
4834
+ tag_filters:
4835
+ description: The `tag_filters` of the budget entry.
4836
+ items:
4837
+ $ref: '#/components/schemas/TagFilter'
4838
+ type: array
4839
+ type: object
4840
+ BudgetWithEntries:
4841
+ description: The definition of the `BudgetWithEntries` object.
4842
+ properties:
4843
+ data:
4844
+ $ref: '#/components/schemas/BudgetWithEntriesData'
4845
+ type: object
4846
+ BudgetWithEntriesData:
4847
+ description: A budget and all its entries.
4848
+ properties:
4849
+ attributes:
4850
+ $ref: '#/components/schemas/BudgetAttributes'
4851
+ id:
4852
+ description: The `BudgetWithEntriesData` `id`.
4853
+ example: 00000000-0a0a-0a0a-aaa0-00000000000a
4854
+ type: string
4855
+ type:
4856
+ description: The type of the object, must be `budget`.
4857
+ type: string
4858
+ type: object
4723
4859
BulkMuteFindingsRequest:
4724
4860
description: The new bulk mute finding request.
4725
4861
properties:
@@ -36898,6 +37034,18 @@ components:
36898
37034
format: double
36899
37035
type: number
36900
37036
type: object
37037
+ TagFilter:
37038
+ description: Tag filter for the budget's entries.
37039
+ properties:
37040
+ tag_key:
37041
+ description: The key of the tag.
37042
+ example: service
37043
+ type: string
37044
+ tag_value:
37045
+ description: The value of the tag.
37046
+ example: ec2
37047
+ type: string
37048
+ type: object
36901
37049
TagsEventAttribute:
36902
37050
description: Array of tags associated with your event.
36903
37051
example:
@@ -43463,6 +43611,105 @@ paths:
43463
43611
operator: OR
43464
43612
permissions:
43465
43613
- cloud_cost_management_write
43614
+ /api/v2/cost/budget:
43615
+ put:
43616
+ description: Create a new budget or update an existing one.
43617
+ operationId: UpsertBudget
43618
+ requestBody:
43619
+ content:
43620
+ application/json:
43621
+ schema:
43622
+ $ref: '#/components/schemas/BudgetWithEntries'
43623
+ required: true
43624
+ responses:
43625
+ '200':
43626
+ content:
43627
+ application/json:
43628
+ schema:
43629
+ $ref: '#/components/schemas/BudgetWithEntries'
43630
+ description: OK
43631
+ '400':
43632
+ $ref: '#/components/responses/BadRequestResponse'
43633
+ '404':
43634
+ $ref: '#/components/responses/NotFoundResponse'
43635
+ '429':
43636
+ $ref: '#/components/responses/TooManyRequestsResponse'
43637
+ security:
43638
+ - apiKeyAuth: []
43639
+ appKeyAuth: []
43640
+ - AuthZ:
43641
+ - cloud_cost_management_write
43642
+ summary: Create or update a budget
43643
+ tags:
43644
+ - Cloud Cost Management
43645
+ /api/v2/cost/budget/{budget_id}:
43646
+ delete:
43647
+ description: Delete a budget.
43648
+ operationId: DeleteBudget
43649
+ parameters:
43650
+ - $ref: '#/components/parameters/BudgetID'
43651
+ responses:
43652
+ '204':
43653
+ description: No Content
43654
+ '400':
43655
+ $ref: '#/components/responses/BadRequestResponse'
43656
+ '429':
43657
+ $ref: '#/components/responses/TooManyRequestsResponse'
43658
+ security:
43659
+ - apiKeyAuth: []
43660
+ appKeyAuth: []
43661
+ - AuthZ:
43662
+ - cloud_cost_management_write
43663
+ summary: Delete a budget
43664
+ tags:
43665
+ - Cloud Cost Management
43666
+ get:
43667
+ description: Get a budget.
43668
+ operationId: GetBudget
43669
+ parameters:
43670
+ - $ref: '#/components/parameters/BudgetID'
43671
+ responses:
43672
+ '200':
43673
+ content:
43674
+ application/json:
43675
+ schema:
43676
+ $ref: '#/components/schemas/BudgetWithEntries'
43677
+ description: OK
43678
+ '400':
43679
+ $ref: '#/components/responses/BadRequestResponse'
43680
+ '404':
43681
+ $ref: '#/components/responses/NotFoundResponse'
43682
+ '429':
43683
+ $ref: '#/components/responses/TooManyRequestsResponse'
43684
+ security:
43685
+ - apiKeyAuth: []
43686
+ appKeyAuth: []
43687
+ - AuthZ:
43688
+ - cloud_cost_management_read
43689
+ summary: Get a budget
43690
+ tags:
43691
+ - Cloud Cost Management
43692
+ /api/v2/cost/budgets:
43693
+ get:
43694
+ description: List budgets.
43695
+ operationId: ListBudgets
43696
+ responses:
43697
+ '200':
43698
+ content:
43699
+ application/json:
43700
+ schema:
43701
+ $ref: '#/components/schemas/BudgetArray'
43702
+ description: OK
43703
+ '429':
43704
+ $ref: '#/components/responses/TooManyRequestsResponse'
43705
+ security:
43706
+ - apiKeyAuth: []
43707
+ appKeyAuth: []
43708
+ - AuthZ:
43709
+ - cloud_cost_management_read
43710
+ summary: List budgets
43711
+ tags:
43712
+ - Cloud Cost Management
43466
43713
/api/v2/cost/custom_costs:
43467
43714
get:
43468
43715
description: List the Custom Costs files.
0 commit comments