Class: Infrawrench::AccountsNamespace
- Inherits:
-
Object
- Object
- Infrawrench::AccountsNamespace
- Defined in:
- lib/infrawrench/client.rb,
sig/infrawrench/sdk.rbs
Overview
client.accounts
Instance Attribute Summary collapse
-
#credentials ⇒ AccountsCredentialsNamespace
readonly
client.accounts.credentials. -
#plugins ⇒ AccountsPluginsNamespace
readonly
client.accounts.plugins. -
#preflight ⇒ AccountsPreflightNamespace
readonly
client.accounts.preflight. -
#sync_type ⇒ AccountsSyncTypeNamespace
readonly
client.accounts.sync_type.
Instance Method Summary collapse
-
#create(body:, org_id: nil, request_options: nil) ⇒ Hash
Create an account.
-
#delete(id:, org_id: nil, request_options: nil) ⇒ Hash
Delete an account.
-
#detail(id:, org_id: nil, request_options: nil) ⇒ Hash
Account metadata + resource type list.
-
#export_terraform(id:, org_id: nil, request_options: nil) ⇒ Hash
Generate Terraform HCL for the account's stored inventory.
-
#initialize(transport) ⇒ AccountsNamespace
constructor
private
A new instance of AccountsNamespace.
-
#list(org_id: nil, request_options: nil) ⇒ Array<Hash>
List accounts in this organization.
-
#resources(id:, org_id: nil, top_level_only: nil, request_options: nil) ⇒ Array<Hash>
List cached resources for an account.
-
#sync(id:, org_id: nil, request_options: nil) ⇒ Hash
Sync all resource types for an account.
-
#update(id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Update an account (rename and/or change bastion binding).
Constructor Details
#initialize(transport) ⇒ AccountsNamespace
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 AccountsNamespace.
659 660 661 662 663 664 665 |
# File 'lib/infrawrench/client.rb', line 659 def initialize(transport) @transport = transport @credentials = AccountsCredentialsNamespace.new(@transport) @plugins = AccountsPluginsNamespace.new(@transport) @preflight = AccountsPreflightNamespace.new(@transport) @sync_type = AccountsSyncTypeNamespace.new(@transport) end |
Instance Attribute Details
#credentials ⇒ AccountsCredentialsNamespace (readonly)
Returns client.accounts.credentials.
649 650 651 |
# File 'lib/infrawrench/client.rb', line 649 def credentials @credentials end |
#plugins ⇒ AccountsPluginsNamespace (readonly)
Returns client.accounts.plugins.
651 652 653 |
# File 'lib/infrawrench/client.rb', line 651 def plugins @plugins end |
#preflight ⇒ AccountsPreflightNamespace (readonly)
Returns client.accounts.preflight.
653 654 655 |
# File 'lib/infrawrench/client.rb', line 653 def preflight @preflight end |
#sync_type ⇒ AccountsSyncTypeNamespace (readonly)
Returns client.accounts.sync_type.
655 656 657 |
# File 'lib/infrawrench/client.rb', line 655 def sync_type @sync_type end |
Instance Method Details
#create(body:, org_id: nil, request_options: nil) ⇒ Hash
Create an account
Stores encrypted credentials and triggers a first sync. syncError is set
if the initial sync failed (the account row is still created).
Requires permission: accounts:write.
POST /api/org/orgId/accounts
Raises on 400: Bad request
Raises on 402: Payment required — the organization's plan does not include this
688 689 690 691 692 693 694 695 696 |
# File 'lib/infrawrench/client.rb', line 688 def create(body:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/accounts", path_params: { "orgId" => org_id }, body: body, request_options: ) end |
#delete(id:, org_id: nil, request_options: nil) ⇒ Hash
Delete an account
Requires permission: accounts:delete.
DELETE /api/org/orgId/accounts/id
710 711 712 713 714 715 716 717 |
# File 'lib/infrawrench/client.rb', line 710 def delete(id:, org_id: nil, request_options: nil) @transport.request( http_method: "DELETE", path: "/api/org/{orgId}/accounts/{id}", path_params: { "orgId" => org_id, "id" => id }, request_options: ) end |
#detail(id:, org_id: nil, request_options: nil) ⇒ Hash
Account metadata + resource type list
Requires permission: accounts:read.
GET /api/org/orgId/accounts/id/detail
Raises on 404: Not found
733 734 735 736 737 738 739 740 |
# File 'lib/infrawrench/client.rb', line 733 def detail(id:, org_id: nil, request_options: nil) @transport.request( http_method: "GET", path: "/api/org/{orgId}/accounts/{id}/detail", path_params: { "orgId" => org_id, "id" => id }, request_options: ) end |
#export_terraform(id:, org_id: nil, request_options: nil) ⇒ Hash
Generate Terraform HCL for the account's stored inventory
Requires permission: resources:read.
GET /api/org/orgId/accounts/id/export-terraform
Raises on 404: Not found
756 757 758 759 760 761 762 763 |
# File 'lib/infrawrench/client.rb', line 756 def export_terraform(id:, org_id: nil, request_options: nil) @transport.request( http_method: "GET", path: "/api/org/{orgId}/accounts/{id}/export-terraform", path_params: { "orgId" => org_id, "id" => id }, request_options: ) end |
#list(org_id: nil, request_options: nil) ⇒ Array<Hash>
List accounts in this organization
Requires permission: accounts:read.
GET /api/org/orgId/accounts
777 778 779 780 781 782 783 784 |
# File 'lib/infrawrench/client.rb', line 777 def list(org_id: nil, request_options: nil) @transport.request( http_method: "GET", path: "/api/org/{orgId}/accounts", path_params: { "orgId" => org_id }, request_options: ) end |
#resources(id:, org_id: nil, top_level_only: nil, request_options: nil) ⇒ Array<Hash>
List cached resources for an account
Requires permission: resources:read.
GET /api/org/orgId/accounts/id/resources
801 802 803 804 805 806 807 808 809 |
# File 'lib/infrawrench/client.rb', line 801 def resources(id:, org_id: nil, top_level_only: nil, request_options: nil) @transport.request( http_method: "GET", path: "/api/org/{orgId}/accounts/{id}/resources", path_params: { "orgId" => org_id, "id" => id }, query: { "topLevelOnly" => top_level_only }, request_options: ) end |
#sync(id:, org_id: nil, request_options: nil) ⇒ Hash
Sync all resource types for an account
Requires permission: resources:read.
POST /api/org/orgId/accounts/id/sync
823 824 825 826 827 828 829 830 |
# File 'lib/infrawrench/client.rb', line 823 def sync(id:, org_id: nil, request_options: nil) @transport.request( http_method: "POST", path: "/api/org/{orgId}/accounts/{id}/sync", path_params: { "orgId" => org_id, "id" => id }, request_options: ) end |
#update(id:, body:, org_id: nil, request_options: nil) ⇒ Hash
Update an account (rename and/or change bastion binding)
Requires permission: accounts:write.
PATCH /api/org/orgId/accounts/id
Raises on 400: Bad request
Raises on 404: Not found
849 850 851 852 853 854 855 856 857 |
# File 'lib/infrawrench/client.rb', line 849 def update(id:, body:, org_id: nil, request_options: nil) @transport.request( http_method: "PATCH", path: "/api/org/{orgId}/accounts/{id}", path_params: { "orgId" => org_id, "id" => id }, body: body, request_options: ) end |