Class: Infrawrench::LeasesNamespace

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

Overview

client.leases

Instance Method Summary collapse

Constructor Details

#initialize(transport) ⇒ LeasesNamespace

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 LeasesNamespace.

Parameters:



8692
8693
8694
# File 'lib/infrawrench/client.rb', line 8692

def initialize(transport)
  @transport = transport
end

Instance Method Details

#cancel(lease_id:, org_id: nil, request_options: nil) ⇒ Hash

Cancel a lease

Stop the countdown — the resource stays, the lease goes canceled and leaves the expiry radar. Audit-logged.

Requires permission: resources:write.

POST /api/org/orgId/leases/leaseId/cancel

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.

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

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

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

Returns:

  • (Hash)

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

Raises:



8715
8716
8717
8718
8719
8720
8721
8722
# File 'lib/infrawrench/client.rb', line 8715

def cancel(lease_id:, org_id: nil, request_options: nil)
  @transport.request(
    http_method: "POST",
    path: "/api/org/{orgId}/leases/{leaseId}/cancel",
    path_params: { "orgId" => org_id, "leaseId" => lease_id },
    request_options: request_options
  )
end

#create(org_id: nil, body: nil, request_options: nil) ⇒ Hash

Create a resource lease

Attach an expiry to a resource — 'give me a test cluster for 3 days'. One lease per resource (an active lease conflicts; a terminal one is replaced). autoDelete: true opts into deletion at expiry — the poller announces it twice first, defers during change freezes, and requires the caller to hold resources:delete. Audit-logged.

Requires permission: resources:write.

POST /api/org/orgId/leases

Raises on 400: Bad request

Raises on 404: Not found

Raises on 409: The resource already has an active lease

Parameters:

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

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

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

    Request body, shaped as ResourceLeaseCreate.

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

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

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

Returns:

  • (Hash)

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

Raises:



8748
8749
8750
8751
8752
8753
8754
8755
8756
# File 'lib/infrawrench/client.rb', line 8748

def create(org_id: nil, body: nil, request_options: nil)
  @transport.request(
    http_method: "POST",
    path: "/api/org/{orgId}/leases",
    path_params: { "orgId" => org_id },
    body: body,
    request_options: request_options
  )
end

#delete(lease_id:, org_id: nil, request_options: nil) ⇒ nil

Delete a lease row

Remove the lease record entirely (including terminal rows). The resource is not touched. Audit-logged.

Requires permission: resources:write.

DELETE /api/org/orgId/leases/leaseId

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.

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

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

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

Returns:

  • (nil)

    This endpoint returns no content.

Raises:



8775
8776
8777
8778
8779
8780
8781
8782
8783
# File 'lib/infrawrench/client.rb', line 8775

def delete(lease_id:, org_id: nil, request_options: nil)
  @transport.request(
    http_method: "DELETE",
    path: "/api/org/{orgId}/leases/{leaseId}",
    path_params: { "orgId" => org_id, "leaseId" => lease_id },
    accept: :empty,
    request_options: request_options
  )
end

#get(org_id: nil, request_options: nil) ⇒ Hash

List resource leases

Every lease in the organization, soonest deadline first. Active leases also appear on the expiry radar (GET /expiring) as kind lease items, so the owner is nagged through the existing expiry alerts.

Requires permission: resources:read.

GET /api/org/orgId/leases

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:

  • (Hash)

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

Raises:



8800
8801
8802
8803
8804
8805
8806
8807
# File 'lib/infrawrench/client.rb', line 8800

def get(org_id: nil, request_options: nil)
  @transport.request(
    http_method: "GET",
    path: "/api/org/{orgId}/leases",
    path_params: { "orgId" => org_id },
    request_options: request_options
  )
end

#resource(resource_id:, org_id: nil, request_options: nil) ⇒ Hash

Get one resource's lease

The (unique) lease on a resource, whatever its status, or null.

Requires permission: resources:read.

GET /api/org/orgId/leases/resource

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.

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

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

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

Returns:

  • (Hash)

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

Raises:



8826
8827
8828
8829
8830
8831
8832
8833
8834
# File 'lib/infrawrench/client.rb', line 8826

def resource(resource_id:, org_id: nil, request_options: nil)
  @transport.request(
    http_method: "GET",
    path: "/api/org/{orgId}/leases/resource",
    path_params: { "orgId" => org_id },
    query: { "resourceId" => resource_id },
    request_options: request_options
  )
end

#update(lease_id:, org_id: nil, body: nil, request_options: nil) ⇒ Hash

Update a lease

Edit the deadline, the auto-delete opt-in and/or the note of an active lease. Changing the deadline or the auto-delete flag re-arms the two-announcement schedule. Audit-logged.

Requires permission: resources:write.

PUT /api/org/orgId/leases/leaseId

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.

  • lease_id (String)
  • body (Hash, nil) (defaults to: nil)

    Request body, shaped as ResourceLeaseUpdate.

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

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

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

Returns:

  • (Hash)

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

Raises:



8857
8858
8859
8860
8861
8862
8863
8864
8865
# File 'lib/infrawrench/client.rb', line 8857

def update(lease_id:, org_id: nil, body: nil, request_options: nil)
  @transport.request(
    http_method: "PUT",
    path: "/api/org/{orgId}/leases/{leaseId}",
    path_params: { "orgId" => org_id, "leaseId" => lease_id },
    body: body,
    request_options: request_options
  )
end