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:



8617
8618
8619
# File 'lib/infrawrench/client.rb', line 8617

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:



8640
8641
8642
8643
8644
8645
8646
8647
# File 'lib/infrawrench/client.rb', line 8640

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:



8673
8674
8675
8676
8677
8678
8679
8680
8681
# File 'lib/infrawrench/client.rb', line 8673

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:



8700
8701
8702
8703
8704
8705
8706
8707
8708
# File 'lib/infrawrench/client.rb', line 8700

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:



8725
8726
8727
8728
8729
8730
8731
8732
# File 'lib/infrawrench/client.rb', line 8725

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:



8751
8752
8753
8754
8755
8756
8757
8758
8759
# File 'lib/infrawrench/client.rb', line 8751

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:



8782
8783
8784
8785
8786
8787
8788
8789
8790
# File 'lib/infrawrench/client.rb', line 8782

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