Class: Infrawrench::CostAnnotationsNamespace
- Inherits:
-
Object
- Object
- Infrawrench::CostAnnotationsNamespace
- Defined in:
- lib/infrawrench/client.rb,
sig/infrawrench/sdk.rbs
Overview
client.cost_annotations
Instance Method Summary collapse
-
#change_impact(org_id: nil, body: nil, request_options: nil) ⇒ Hash
Pin a change's or deploy's cost impact onto the cost charts.
-
#create(body:, org_id: nil, request_options: nil) ⇒ Hash
Create a cost annotation.
-
#delete(id:, org_id: nil, request_options: nil) ⇒ Hash
Delete a cost annotation.
-
#get(org_id: nil, report_id: nil, request_options: nil) ⇒ Hash
List cost annotations.
-
#initialize(transport) ⇒ CostAnnotationsNamespace
constructor
private
A new instance of CostAnnotationsNamespace.
-
#update(id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Update a cost annotation.
Constructor Details
#initialize(transport) ⇒ CostAnnotationsNamespace
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of CostAnnotationsNamespace.
3444 3445 3446 |
# File 'lib/infrawrench/client.rb', line 3444 def initialize(transport) @transport = transport end |
Instance Method Details
#change_impact(org_id: nil, body: nil, request_options: nil) ⇒ Hash
Pin a change's or deploy's cost impact onto the cost charts
Writes the finding as a cost annotation, so the step in the run rate is explained on the graph where it shows. Re-posting the same subject rewords the existing note rather than adding a second — which is what makes it safe to pin a finding again once the provider has finished restating. The note's date and report scope are never rewritten: they may have been edited deliberately.
A subject with no measurable impact is a 400, not a note reading
$0.00/day.
Requires permission: costs:write.
POST /api/org/orgId/cost-annotations/change-impact
Raises on 400: Bad request
Raises on 404: Not found
3475 3476 3477 3478 3479 3480 3481 3482 3483 |
# File 'lib/infrawrench/client.rb', line 3475 def change_impact(org_id: nil, body: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/cost-annotations/change-impact", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#create(body:, org_id: nil, request_options: nil) ⇒ Hash
Create a cost annotation
Requires permission: costs:write.
POST /api/org/orgId/cost-annotations
Raises on 400: Bad request
3499 3500 3501 3502 3503 3504 3505 3506 3507 |
# File 'lib/infrawrench/client.rb', line 3499 def create(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/cost-annotations", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#delete(id:, org_id: nil, request_options: nil) ⇒ Hash
Delete a cost annotation
A hard delete. A withdrawn explanation should stop being drawn, and nothing references a note by id.
Requires permission: costs:write.
DELETE /api/org/orgId/cost-annotations/id
Raises on 404: Not found
3526 3527 3528 3529 3530 3531 3532 3533 |
# File 'lib/infrawrench/client.rb', line 3526 def delete(id:, org_id: nil, request_options: nil) @transport.request( http_method: "DELETE", path: "/api/org/{orgId}/cost-annotations/{id}", path_params: { "orgId" => org_id, "id" => id }, request_options: ) end |
#get(org_id: nil, report_id: nil, request_options: nil) ⇒ Hash
List cost annotations
Dated notes drawn over cost charts. With reportId, the set a chart for
that report draws: the org-wide notes plus that report's own. Without it,
every annotation in the org. Annotations are an overlay — they never
appear in a series, a total, or an axis.
Requires permission: costs:read.
GET /api/org/orgId/cost-annotations
3552 3553 3554 3555 3556 3557 3558 3559 3560 |
# File 'lib/infrawrench/client.rb', line 3552 def get(org_id: nil, report_id: nil, request_options: nil) @transport.request( http_method: "GET", path: "/api/org/{orgId}/cost-annotations", path_params: { "orgId" => org_id }, query: { "reportId" => report_id }, request_options: ) end |
#update(id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Update a cost annotation
Replaces the note's dates, text and scope. Moving a note between org-wide
and one report is this same PUT with a different costReportId.
Requires permission: costs:write.
PUT /api/org/orgId/cost-annotations/id
Raises on 400: Bad request
Raises on 404: Not found
3582 3583 3584 3585 3586 3587 3588 3589 3590 |
# File 'lib/infrawrench/client.rb', line 3582 def update(id:, body:, org_id: nil, request_options: nil) @transport.request( http_method: "PUT", path: "/api/org/{orgId}/cost-annotations/{id}", path_params: { "orgId" => org_id, "id" => id }, body: body, request_options: ) end |