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.
9340 9341 9342 |
# File 'lib/infrawrench/client.rb', line 9340 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
9363 9364 9365 9366 9367 9368 9369 9370 |
# File 'lib/infrawrench/client.rb', line 9363 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
9396 9397 9398 9399 9400 9401 9402 9403 9404 |
# File 'lib/infrawrench/client.rb', line 9396 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
9423 9424 9425 9426 9427 9428 9429 9430 9431 |
# File 'lib/infrawrench/client.rb', line 9423 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
9448 9449 9450 9451 9452 9453 9454 9455 |
# File 'lib/infrawrench/client.rb', line 9448 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
9474 9475 9476 9477 9478 9479 9480 9481 9482 |
# File 'lib/infrawrench/client.rb', line 9474 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
9505 9506 9507 9508 9509 9510 9511 9512 9513 |
# File 'lib/infrawrench/client.rb', line 9505 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 |