Class: Infrawrench::CostCentresNamespace

Inherits:
Object
  • Object
show all
Defined in:
lib/infrawrench/client.rb,
sig/infrawrench/sdk.rbs

Overview

client.cost_centres

Instance Attribute Summary collapse

Instance Method Summary collapse

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.

Parameters:



3815
3816
3817
3818
# File 'lib/infrawrench/client.rb', line 3815

def initialize(transport)
  @transport = transport
  @rules = CostCentresRulesNamespace.new(@transport)
end

Instance Attribute Details

#rulesCostCentresRulesNamespace (readonly)

Returns client.cost_centres.rules.

Returns:



3811
3812
3813
# File 'lib/infrawrench/client.rb', line 3811

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

Parameters:

  • org_id (String, nil) (defaults to: nil)

    Organization id. Defaults to the org_id the client was constructed with.

  • body (Hash)

    Request body, shaped as CostCentreInput.

  • request_options (Hash, nil) (defaults to: nil)

    Per-call :headers, :timeout and :open_timeout.

  • body: (cost_centre_input)
  • org_id: (String, nil) (defaults to: nil)
  • request_options: (Hash[Symbol, untyped], nil) (defaults to: nil)

Returns:

  • (Hash)

    Parsed JSON, shaped as CostCentre — see sig/infrawrench/sdk.rbs.

Raises:



3834
3835
3836
3837
3838
3839
3840
3841
3842
# File 'lib/infrawrench/client.rb', line 3834

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: 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

Parameters:

  • org_id (String, nil) (defaults to: nil)

    Organization id. Defaults to the org_id the client was constructed with.

  • id (String)
  • request_options (Hash, nil) (defaults to: nil)

    Per-call :headers, :timeout and :open_timeout.

  • id: (String)
  • org_id: (String, nil) (defaults to: nil)
  • request_options: (Hash[Symbol, untyped], nil) (defaults to: nil)

Returns:

  • (Hash)

    Parsed JSON, shaped as Ok — see sig/infrawrench/sdk.rbs.

Raises:



3864
3865
3866
3867
3868
3869
3870
3871
# File 'lib/infrawrench/client.rb', line 3864

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: 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

Parameters:

  • org_id (String, nil) (defaults to: nil)

    Organization id. Defaults to the org_id the client was constructed with.

  • request_options (Hash, nil) (defaults to: nil)

    Per-call :headers, :timeout and :open_timeout.

  • org_id: (String, nil) (defaults to: nil)
  • request_options: (Hash[Symbol, untyped], nil) (defaults to: nil)

Returns:

  • (Array<Hash>)

    Parsed JSON, shaped as Array<CostCentre> — see sig/infrawrench/sdk.rbs.

Raises:



3885
3886
3887
3888
3889
3890
3891
3892
# File 'lib/infrawrench/client.rb', line 3885

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: 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

Parameters:

  • org_id (String, nil) (defaults to: nil)

    Organization id. Defaults to the org_id the client was constructed with.

  • id (String)
  • body (Hash)

    Request body, shaped as CostCentreInput.

  • request_options (Hash, nil) (defaults to: nil)

    Per-call :headers, :timeout and :open_timeout.

  • id: (String)
  • body: (cost_centre_input)
  • org_id: (String, nil) (defaults to: nil)
  • request_options: (Hash[Symbol, untyped], nil) (defaults to: nil)

Returns:

  • (Hash)

    Parsed JSON, shaped as CostCentre — see sig/infrawrench/sdk.rbs.

Raises:



3915
3916
3917
3918
3919
3920
3921
3922
3923
# File 'lib/infrawrench/client.rb', line 3915

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: request_options
  )
end