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:



3727
3728
3729
# File 'lib/infrawrench/client.rb', line 3727

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:



3750
3751
3752
3753
3754
3755
3756
3757
# File 'lib/infrawrench/client.rb', line 3750

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:



3783
3784
3785
3786
3787
3788
3789
3790
3791
# File 'lib/infrawrench/client.rb', line 3783

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:



3810
3811
3812
3813
3814
3815
3816
3817
3818
# File 'lib/infrawrench/client.rb', line 3810

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:



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

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:



3861
3862
3863
3864
3865
3866
3867
3868
3869
# File 'lib/infrawrench/client.rb', line 3861

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:



3892
3893
3894
3895
3896
3897
3898
3899
3900
# File 'lib/infrawrench/client.rb', line 3892

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