Class: Infrawrench::LeasesNamespace
- Inherits:
-
Object
- Object
- Infrawrench::LeasesNamespace
- Defined in:
- lib/infrawrench/client.rb,
sig/infrawrench/sdk.rbs
Overview
client.leases
Instance Method Summary collapse
-
#cancel(lease_id:, org_id: nil, request_options: nil) ⇒ Hash
Cancel a lease.
-
#create(org_id: nil, body: nil, request_options: nil) ⇒ Hash
Create a resource lease.
-
#delete(lease_id:, org_id: nil, request_options: nil) ⇒ nil
Delete a lease row.
-
#get(org_id: nil, request_options: nil) ⇒ Hash
List resource leases.
-
#initialize(transport) ⇒ LeasesNamespace
constructor
private
A new instance of LeasesNamespace.
-
#resource(resource_id:, org_id: nil, request_options: nil) ⇒ Hash
Get one resource's lease.
-
#update(lease_id:, org_id: nil, body: nil, request_options: nil) ⇒ Hash
Update a lease.
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.
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
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: ) 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
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: ) 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
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: ) 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
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: ) 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
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: ) 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
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: ) end |