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.
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
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: ) 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
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: ) 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
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: ) 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
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: ) 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
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: ) 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
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: ) end |