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:



3680
3681
3682
# File 'lib/infrawrench/client.rb', line 3680

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:



3703
3704
3705
3706
3707
3708
3709
3710
# File 'lib/infrawrench/client.rb', line 3703

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:



3736
3737
3738
3739
3740
3741
3742
3743
3744
# File 'lib/infrawrench/client.rb', line 3736

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:



3763
3764
3765
3766
3767
3768
3769
3770
3771
# File 'lib/infrawrench/client.rb', line 3763

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:



3788
3789
3790
3791
3792
3793
3794
3795
# File 'lib/infrawrench/client.rb', line 3788

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:



3814
3815
3816
3817
3818
3819
3820
3821
3822
# File 'lib/infrawrench/client.rb', line 3814

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:



3845
3846
3847
3848
3849
3850
3851
3852
3853
# File 'lib/infrawrench/client.rb', line 3845

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