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