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:



4463
4464
4465
4466
# File 'lib/infrawrench/client.rb', line 4463

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

Instance Attribute Details

#rulesCostCentresRulesNamespace (readonly)

Returns client.cost_centres.rules.

Returns:



4459
4460
4461
# File 'lib/infrawrench/client.rb', line 4459

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:



4482
4483
4484
4485
4486
4487
4488
4489
4490
# File 'lib/infrawrench/client.rb', line 4482

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:



4512
4513
4514
4515
4516
4517
4518
4519
# File 'lib/infrawrench/client.rb', line 4512

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:



4533
4534
4535
4536
4537
4538
4539
4540
# File 'lib/infrawrench/client.rb', line 4533

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:



4563
4564
4565
4566
4567
4568
4569
4570
4571
# File 'lib/infrawrench/client.rb', line 4563

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