Class: Infrawrench::CostCentresNamespace
- Inherits:
-
Object
- Object
- Infrawrench::CostCentresNamespace
- Defined in:
- lib/infrawrench/client.rb,
sig/infrawrench/sdk.rbs
Overview
client.cost_centres
Instance Attribute Summary collapse
-
#rules ⇒ CostCentresRulesNamespace
readonly
client.cost_centres.rules.
Instance Method Summary collapse
-
#create(body:, org_id: nil, request_options: nil) ⇒ Hash
Create a cost centre.
-
#delete(id:, org_id: nil, request_options: nil) ⇒ Hash
Delete a cost centre (its allocation rules go with it).
-
#initialize(transport) ⇒ CostCentresNamespace
constructor
private
A new instance of CostCentresNamespace.
-
#list(org_id: nil, request_options: nil) ⇒ Array<Hash>
List cost centres.
-
#update(id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Update or move a cost centre.
Constructor Details
#initialize(transport) ⇒ CostCentresNamespace
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 CostCentresNamespace.
3740 3741 3742 3743 |
# File 'lib/infrawrench/client.rb', line 3740 def initialize(transport) @transport = transport @rules = CostCentresRulesNamespace.new(@transport) end |
Instance Attribute Details
#rules ⇒ CostCentresRulesNamespace (readonly)
Returns client.cost_centres.rules.
3736 3737 3738 |
# File 'lib/infrawrench/client.rb', line 3736 def rules @rules end |
Instance Method Details
#create(body:, org_id: nil, request_options: nil) ⇒ Hash
Create a cost centre
Requires permission: costs:write.
POST /api/org/orgId/cost-centres
Raises on 400: Bad request
3759 3760 3761 3762 3763 3764 3765 3766 3767 |
# File 'lib/infrawrench/client.rb', line 3759 def create(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/cost-centres", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#delete(id:, org_id: nil, request_options: nil) ⇒ Hash
Delete a cost centre (its allocation rules go with it)
The centre's allocation rules are deleted with it, so the spend they claimed falls through to the next matching rule or to "Unallocated". Child centres are not deleted: they are re-parented onto the deleted centre's own parent (a root's children become roots), so a subtree keeps its shape and no ancestor's subtree total moves unexpectedly.
Requires permission: costs:write.
DELETE /api/org/orgId/cost-centres/id
Raises on 404: Not found
3789 3790 3791 3792 3793 3794 3795 3796 |
# File 'lib/infrawrench/client.rb', line 3789 def delete(id:, org_id: nil, request_options: nil) @transport.request( http_method: "DELETE", path: "/api/org/{orgId}/cost-centres/{id}", path_params: { "orgId" => org_id, "id" => id }, request_options: ) end |
#list(org_id: nil, request_options: nil) ⇒ Array<Hash>
List cost centres
Requires permission: costs:read.
GET /api/org/orgId/cost-centres
3810 3811 3812 3813 3814 3815 3816 3817 |
# File 'lib/infrawrench/client.rb', line 3810 def list(org_id: nil, request_options: nil) @transport.request( http_method: "GET", path: "/api/org/{orgId}/cost-centres", path_params: { "orgId" => org_id }, request_options: ) end |
#update(id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Update or move a cost centre
Renames, redescribes, and/or moves a centre. Moving is parentId
changing; omitting the field leaves the centre where it is. 400 when the
move would cycle or breach the depth cap.
Requires permission: costs:write.
PUT /api/org/orgId/cost-centres/id
Raises on 400: Bad request
Raises on 404: Not found
3840 3841 3842 3843 3844 3845 3846 3847 3848 |
# File 'lib/infrawrench/client.rb', line 3840 def update(id:, body:, org_id: nil, request_options: nil) @transport.request( http_method: "PUT", path: "/api/org/{orgId}/cost-centres/{id}", path_params: { "orgId" => org_id, "id" => id }, body: body, request_options: ) end |