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.
4045 4046 4047 |
# File 'lib/infrawrench/client.rb', line 4045 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
4076 4077 4078 4079 4080 4081 4082 4083 4084 |
# File 'lib/infrawrench/client.rb', line 4076 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
4100 4101 4102 4103 4104 4105 4106 4107 4108 |
# File 'lib/infrawrench/client.rb', line 4100 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
4127 4128 4129 4130 4131 4132 4133 4134 |
# File 'lib/infrawrench/client.rb', line 4127 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
4153 4154 4155 4156 4157 4158 4159 4160 4161 |
# File 'lib/infrawrench/client.rb', line 4153 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
4183 4184 4185 4186 4187 4188 4189 4190 4191 |
# File 'lib/infrawrench/client.rb', line 4183 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 |