infrawrench

package module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 26, 2026 License: MIT Imports: 13 Imported by: 0

README

github.com/Infrawrench/infrawrench-go

Generated Go client for the Infrawrench API.

API version 0.2.0. A Go module takes its version from a VCS tag rather than from a manifest field, so the API version lives in this README and in the APIVersion constant — check that constant, not the module tag, when you need to know which API shape you have.

Do not edit this module by hand — it is regenerated from openapi.json and is not checked into the repository. Run pnpm --filter @infrawrench/web generate:sdk to rebuild it; the generator lives in app/packages/web/scripts/sdk.

Install

go get github.com/Infrawrench/infrawrench-go

Go 1.24 or newer. No dependencies: the module requires nothing but the standard library, and go.mod has no require block at all.

Usage

package main

import (
	"context"
	"errors"
	"fmt"
	"os"

	"github.com/Infrawrench/infrawrench-go"
)

func main() {
	ctx := context.Background()
	client := infrawrench.NewAPIV1Client(
		infrawrench.WithAPIKey(os.Getenv("INFRAWRENCH_API_KEY")),
		infrawrench.WithOrgID(os.Getenv("INFRAWRENCH_ORG_ID")),
	)

	accounts, err := client.Accounts.List(ctx, nil)
	if err != nil {
		var apiErr *infrawrench.APIError
		if errors.As(err, &apiErr) {
			fmt.Println(apiErr.StatusCode, apiErr.Code, string(apiErr.Body))
		}
		return
	}
	fmt.Println(len(accounts))
}

Conventions

  • Context first. Every call takes a context.Context as its first argument and a variadic ...RequestOption as its last. Timeouts and cancellation belong on the context, so there is no per-call timeout option.
  • Dotted namespaces. Calls mirror the URL structure, so POST /api/org/{orgId}/accounts/{id}/sync is client.Accounts.Sync(...).
  • Parameters. A call with at least one mandatory parameter takes its params struct by value; a call where everything is optional takes a pointer, so nil means "no arguments". A call with no parameters at all takes neither.
  • Organization id. Pass WithOrgID once when constructing the client and every scoped call can leave OrgID unset; set OrgID on an individual call to override it. With neither, the call returns an error wrapping ErrMissingPathParam rather than sending a malformed URL.
  • Optional fields are pointers. Go cannot tell an omitted false from a deliberate one, so anything the wire may omit or null is a *T. Slices and maps keep their own nil.
  • Errors are returned, never panicked. Any non-2xx response comes back as *APIError, carrying StatusCode, the raw Body, the decoded Data and the machine-readable Code when the API sends one. Use errors.As, or the AsAPIError shorthand.
  • Downloads stream. An endpoint that returns a file returns an io.ReadCloser; close it.

Scope

This module covers the published API surface only. Operations marked x-internal in the spec — the admin surface, webhook receivers, desktop sync, push registration, and the browser auth redirects — are not generated, so there is no namespace for them to be called through.

Topics: infrawrench, sdk, api-client, openapi, infrastructure, cloud, devops.

License

MIT — see LICENSE. Copyright (c) 2026 Infrawrench LLC.

Note that this client is more permissively licensed than the service it talks to: the Infrawrench source is BUSL-1.1, but the generated clients are MIT so you can link one into your own software without inheriting those terms.

Maintained by Infrawrench LLC astrid@infrawrench.com. Documentation: https://infrawrench.com/docs/team-and-billing/client-sdks. Issues: https://github.com/Infrawrench/Infrawrench/issues

Documentation

Overview

Package infrawrench is a client for the Infrawrench API.

Construct a client, then call through the namespaces that mirror the URL structure:

client := infrawrench.NewAPIV1Client(
	infrawrench.WithAPIKey(os.Getenv("INFRAWRENCH_API_KEY")),
	infrawrench.WithOrgID(os.Getenv("INFRAWRENCH_ORG_ID")),
)
accounts, err := client.Accounts.List(ctx, nil)

Every call takes a context.Context first and a variadic list of RequestOption last. Non-2xx responses come back as *APIError.

Index

Constants

View Source
const APIVersion = "0.2.0"

APIVersion is info.version from the spec this package was generated from.

A Go module takes its version from a VCS tag rather than from a manifest field, so there is nowhere else for the API version to live — this constant is what you compare against when you need to know which API shape you have.

View Source
const DefaultBaseURL = "https://app.infrawrench.com"

DefaultBaseURL is the deployment a client talks to unless WithBaseURL says otherwise. It is the first server the OpenAPI document advertises.

Variables

View Source
var ErrMissingPathParam = errors.New("infrawrench: missing path parameter")

ErrMissingPathParam is returned when a path parameter was supplied by neither the call nor the client configuration. Match it with errors.Is.

Functions

This section is empty.

Types

type APIError

type APIError struct {
	// StatusCode is the HTTP status code, for example 403.
	StatusCode int
	// Status is the full HTTP status line, for example "403 Forbidden".
	Status string
	// Code is the value of the body's "code" field, or "" when absent.
	Code string
	// Message is the body's "error" or "message" field, falling back to the
	// status line.
	Message string
	// Body is the raw response body. Always populated, even when it is not
	// JSON, so nothing is lost when an intermediary answers instead of the API.
	Body []byte
	// Data is Body decoded as JSON, or nil when the body was not valid JSON.
	Data any
	// Method is the HTTP method of the request that failed.
	Method string
	// URL is the fully resolved URL of the request that failed.
	URL string
}

APIError is returned for every non-2xx response.

Branch on Code, not on Message: Code is the machine-readable discriminator the API sends (for example "reauthentication_required" on a step-up 403), while Message is prose that may change.

func AsAPIError

func AsAPIError(err error) (*APIError, bool)

AsAPIError reports whether err is, or wraps, an *APIError. It is a shorthand for errors.As with the right variable already declared.

func (*APIError) Error

func (e *APIError) Error() string

Error implements the error interface.

type APIKey

type APIKey struct {
	ID         string       `json:"id"`
	Name       string       `json:"name"`
	Prefix     string       `json:"prefix"`
	Scopes     []Permission `json:"scopes"`
	LastUsedAt *string      `json:"lastUsedAt"`
	ExpiresAt  *string      `json:"expiresAt"`
	RevokedAt  *string      `json:"revokedAt"`
	// LegacyHashSunsetAt: Cutover date past which a key still on the legacy
	// SHA-256 hash will be refused. Null once rehashed to HMAC.
	LegacyHashSunsetAt *string `json:"legacyHashSunsetAt"`
	// NeedsRotation: True when this key is still hashed with the legacy SHA-256
	// scheme and should be rotated before `legacyHashSunsetAt`.
	NeedsRotation bool   `json:"needsRotation"`
	CreatedAt     string `json:"createdAt"`
}

APIKey is the `ApiKey` schema.

Spec schema: `ApiKey`.

type APIKeysCreateParams

type APIKeysCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body CreateAPIKeyRequest
}

APIKeysCreateParams holds the parameters for `client.apiKeys.create`.

type APIKeysListParams

type APIKeysListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

APIKeysListParams holds the parameters for `client.apiKeys.list`.

Every field is optional; pass nil to take the defaults.

type APIKeysNamespace

type APIKeysNamespace struct {
	// contains filtered or unexported fields
}

APIKeysNamespace is `client.apiKeys`.

func (*APIKeysNamespace) Create

Create: Create an API key (plaintext returned once)

POST /api/org/{orgId}/api-keys

func (*APIKeysNamespace) List

func (n *APIKeysNamespace) List(ctx context.Context, params *APIKeysListParams, opts ...RequestOption) ([]APIKey, error)

List: List API keys (no plaintext)

GET /api/org/{orgId}/api-keys

func (*APIKeysNamespace) Revoke

func (n *APIKeysNamespace) Revoke(ctx context.Context, params APIKeysRevokeParams, opts ...RequestOption) (*OK, error)

Revoke: Revoke an API key

POST /api/org/{orgId}/api-keys/{id}/revoke

func (*APIKeysNamespace) Rotate

Rotate: Rotate an API key (revokes old, returns new)

POST /api/org/{orgId}/api-keys/{id}/rotate

Raises on 404: Not found

type APIKeysRevokeParams

type APIKeysRevokeParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

APIKeysRevokeParams holds the parameters for `client.apiKeys.revoke`.

type APIKeysRotateParams

type APIKeysRotateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

APIKeysRotateParams holds the parameters for `client.apiKeys.rotate`.

type APIV1Client

type APIV1Client struct {

	// Accounts: `client.accounts`.
	Accounts *AccountsNamespace
	// Agents: `client.agents`.
	Agents *AgentsNamespace
	// APIKeys: `client.apiKeys`.
	APIKeys *APIKeysNamespace
	// Artifacts: `client.artifacts`.
	Artifacts *ArtifactsNamespace
	// Associations: `client.associations`.
	Associations *AssociationsNamespace
	// AuditLogs: `client.auditLogs`.
	AuditLogs *AuditLogsNamespace
	// Auth: `client.auth`.
	Auth *AuthNamespace
	// Bastions: `client.bastions`.
	Bastions *BastionsNamespace
	// Billing: `client.billing`.
	Billing *BillingNamespace
	// Budgets: `client.budgets`.
	Budgets *BudgetsNamespace
	// Connect: `client.connect`.
	Connect *ConnectNamespace
	// Costs: `client.costs`.
	Costs *CostsNamespace
	// Dashboards: `client.dashboards`.
	Dashboards *DashboardsNamespace
	// Docker: `client.docker`.
	Docker *DockerNamespace
	// Invitations: `client.invitations`.
	Invitations *InvitationsNamespace
	// KV: `client.kv`.
	KV *KVNamespace
	// Orgs: `client.orgs`.
	Orgs *OrgsNamespace
	// Profile: `client.profile`.
	Profile *ProfileNamespace
	// Resources: `client.resources`.
	Resources *ResourcesNamespace
	// Search: `client.search`.
	Search *SearchNamespace
	// SFTP: `client.sftp`.
	SFTP *SFTPNamespace
	// SQL: `client.sql`.
	SQL *SQLNamespace
	// SSHKeys: `client.sshKeys`.
	SSHKeys *SSHKeysNamespace
	// SSHTunnels: `client.sshTunnels`.
	SSHTunnels *SSHTunnelsNamespace
	// Storage: `client.storage`.
	Storage *StorageNamespace
	// Team: `client.team`.
	Team *TeamNamespace
	// contains filtered or unexported fields
}

APIV1Client is a client for the Infrawrench API.

Calls hang off the namespace fields below, which mirror the URL structure — `client.Accounts.Credentials.Get(ctx, …)`. The zero value is not usable; build one with NewAPIV1Client.

func NewAPIV1Client

func NewAPIV1Client(opts ...ClientOption) *APIV1Client

NewAPIV1Client builds a client. With no options it talks to https://app.infrawrench.com anonymously, which is rarely what you want: pass WithAPIKey, and WithOrgID if you would rather not repeat the organization id on every call.

func (*APIV1Client) BaseURL

func (c *APIV1Client) BaseURL() string

BaseURL reports the normalized base URL every call is sent to.

type AcceptInvitationRequest

type AcceptInvitationRequest struct {
	Token string `json:"token"`
}

AcceptInvitationRequest is the `AcceptInvitationRequest` schema.

type AcceptInvitationResponse

type AcceptInvitationResponse struct {
	Organization AcceptInvitationResponseOrganization `json:"organization"`
}

AcceptInvitationResponse is the `AcceptInvitationResponse` schema.

type AcceptInvitationResponseOrganization

type AcceptInvitationResponseOrganization struct {
	ID          string `json:"id"`
	DisplayName string `json:"displayName"`
}

AcceptInvitationResponseOrganization is an object the spec declares inline.

type Account

type Account struct {
	ID          string `json:"id"`
	PluginID    string `json:"pluginId"`
	DisplayName string `json:"displayName"`
	// BastionID: Bastion this account's cloud-API egress is routed through.
	// `null` ⇒ direct egress.
	BastionID *string `json:"bastionId"`
	CreatedAt string  `json:"createdAt"`
}

Account is the `Account` schema.

type AccountDetail

type AccountDetail struct {
	Account           AccountDetailAccount  `json:"account"`
	ResourceTypes     []ResourceTypeSummary `json:"resourceTypes"`
	PluginDisplayName string                `json:"pluginDisplayName"`
	PluginLogoSvg     string                `json:"pluginLogoSvg"`
}

AccountDetail is the `AccountDetail` schema.

type AccountDetailAccount

type AccountDetailAccount struct {
	ID          string `json:"id"`
	PluginID    string `json:"pluginId"`
	DisplayName string `json:"displayName"`
}

AccountDetailAccount is an object the spec declares inline.

type AccountsCreateParams

type AccountsCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body AccountsCreateRequest
}

AccountsCreateParams holds the parameters for `client.accounts.create`.

type AccountsCreateRequest

type AccountsCreateRequest struct {
	PluginID    *PluginID         `json:"pluginId,omitempty"`
	DisplayName string            `json:"displayName"`
	Credentials map[string]string `json:"credentials"`
	// BastionID: Optional bastion id to route this account's cloud API traffic
	// through.
	BastionID *string `json:"bastionId,omitempty"`
}

AccountsCreateRequest is an object the spec declares inline.

type AccountsCredentialsGetParams

type AccountsCredentialsGetParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

AccountsCredentialsGetParams holds the parameters for `client.accounts.credentials.get`.

type AccountsCredentialsNamespace

type AccountsCredentialsNamespace struct {
	// contains filtered or unexported fields
}

AccountsCredentialsNamespace is `client.accounts.credentials`.

func (*AccountsCredentialsNamespace) Get

Get: Fetch the decrypted credentials for an account

Returns the credentials map as it was originally submitted. Sensitive — gate access carefully.

_Requires permission: `secrets:read`._

GET /api/org/{orgId}/accounts/{id}/credentials

Raises on 404: Not found

func (*AccountsCredentialsNamespace) Update

Update: Rotate the credentials an account uses to talk to the upstream provider

Replaces the encrypted credentials blob in place. Used to swap a stale or narrowly-scoped token for a freshly-minted one without recreating the account (preserves existing resources, pins, dashboards, sync history).

_Requires permission: `secrets:write`._

PUT /api/org/{orgId}/accounts/{id}/credentials

Raises on 400: Bad request

Raises on 404: Not found

type AccountsCredentialsUpdateParams

type AccountsCredentialsUpdateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
	// Body: the JSON request body.
	Body AccountsCredentialsUpdateRequest
}

AccountsCredentialsUpdateParams holds the parameters for `client.accounts.credentials.update`.

type AccountsCredentialsUpdateRequest

type AccountsCredentialsUpdateRequest struct {
	// Credentials: Complete credentials map. Sensitive fields the caller doesn't
	// want to change should be re-sent with their previous value (the server
	// doesn't merge with the existing blob).
	Credentials map[string]string `json:"credentials"`
}

AccountsCredentialsUpdateRequest is an object the spec declares inline.

type AccountsCredentialsUpdateResponse

type AccountsCredentialsUpdateResponse struct {
	OK bool `json:"ok"`
}

AccountsCredentialsUpdateResponse is an object the spec declares inline.

type AccountsDeleteParams

type AccountsDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

AccountsDeleteParams holds the parameters for `client.accounts.delete`.

type AccountsDetailParams

type AccountsDetailParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

AccountsDetailParams holds the parameters for `client.accounts.detail`.

type AccountsListParams

type AccountsListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

AccountsListParams holds the parameters for `client.accounts.list`.

Every field is optional; pass nil to take the defaults.

type AccountsNamespace

type AccountsNamespace struct {

	// Credentials: `client.accounts.credentials`.
	Credentials *AccountsCredentialsNamespace
	// SyncType: `client.accounts.syncType`.
	SyncType *AccountsSyncTypeNamespace
	// contains filtered or unexported fields
}

AccountsNamespace is `client.accounts`.

func (*AccountsNamespace) Create

Create: 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

func (*AccountsNamespace) Delete

func (n *AccountsNamespace) Delete(ctx context.Context, params AccountsDeleteParams, opts ...RequestOption) (*OK, error)

Delete: Delete an account

_Requires permission: `accounts:delete`._

DELETE /api/org/{orgId}/accounts/{id}

func (*AccountsNamespace) Detail

Detail: Account metadata + resource type list

_Requires permission: `accounts:read`._

GET /api/org/{orgId}/accounts/{id}/detail

Raises on 404: Not found

func (*AccountsNamespace) List

func (n *AccountsNamespace) List(ctx context.Context, params *AccountsListParams, opts ...RequestOption) ([]Account, error)

List: List accounts in this organization

_Requires permission: `accounts:read`._

GET /api/org/{orgId}/accounts

func (*AccountsNamespace) Plugins

Plugins: List installed plugins and their credential fields

_Requires permission: `accounts:read`._

GET /api/org/{orgId}/accounts/plugins

func (*AccountsNamespace) Resources

func (n *AccountsNamespace) Resources(ctx context.Context, params AccountsResourcesParams, opts ...RequestOption) ([]Resource, error)

Resources: List cached resources for an account

_Requires permission: `resources:read`._

GET /api/org/{orgId}/accounts/{id}/resources

func (*AccountsNamespace) Sync

Sync: Sync all resource types for an account

_Requires permission: `resources:read`._

POST /api/org/{orgId}/accounts/{id}/sync

func (*AccountsNamespace) Update

Update: 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

type AccountsPluginsParams

type AccountsPluginsParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

AccountsPluginsParams holds the parameters for `client.accounts.plugins`.

Every field is optional; pass nil to take the defaults.

type AccountsResourcesParams

type AccountsResourcesParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
	// TopLevelOnly: If `true`, only resources with no `parentResourceId` are
	// returned.
	//
	// One of "true", "false".
	TopLevelOnly *string
}

AccountsResourcesParams holds the parameters for `client.accounts.resources`.

type AccountsSyncParams

type AccountsSyncParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

AccountsSyncParams holds the parameters for `client.accounts.sync`.

type AccountsSyncTypeCreateParams

type AccountsSyncTypeCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID  *string
	ID     string
	TypeID ResourceTypeID
}

AccountsSyncTypeCreateParams holds the parameters for `client.accounts.syncType.create`.

type AccountsSyncTypeNamespace

type AccountsSyncTypeNamespace struct {
	// contains filtered or unexported fields
}

AccountsSyncTypeNamespace is `client.accounts.syncType`.

func (*AccountsSyncTypeNamespace) Create

Create: Sync a single resource type and return its resources

_Requires permission: `resources:read`._

POST /api/org/{orgId}/accounts/{id}/sync-type/{typeId}

Raises on 404: Not found

Raises on 500: Server error

type AccountsUpdateParams

type AccountsUpdateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
	// Body: the JSON request body.
	Body UpdateAccountRequest
}

AccountsUpdateParams holds the parameters for `client.accounts.update`.

type ActiveTunnel

type ActiveTunnel struct {
	LocalPort  int64  `json:"localPort"`
	SSHHost    string `json:"sshHost"`
	RemotePort int64  `json:"remotePort"`
}

ActiveTunnel is the `ActiveTunnel` schema.

type AgentSession

type AgentSession struct {
	ID             string `json:"id"`
	Repo           string `json:"repo"`
	ProjectName    string `json:"projectName"`
	WorkspaceName  string `json:"workspaceName"`
	AccountID      string `json:"accountId"`
	PluginID       string `json:"pluginId"`
	ResourceTypeID string `json:"resourceTypeId"`
	// Tool: One of "codex", "claude-code".
	Tool       string `json:"tool"`
	BranchName string `json:"branchName"`
	// Status: One of "pending", "provisioning", "setting-up", "up", "failed",
	// "stopped".
	Status       string   `json:"status"`
	VMResourceID *string  `json:"vmResourceId"`
	Logs         []string `json:"logs"`
	CreatedAt    string   `json:"createdAt"`
	UpdatedAt    string   `json:"updatedAt"`
}

AgentSession is the `AgentSession` schema.

type AgentSettings

type AgentSettings struct {
	AccountID      string `json:"accountId"`
	PluginID       string `json:"pluginId"`
	ResourceTypeID string `json:"resourceTypeId"`
	// Tool: One of "codex", "claude-code".
	Tool   string            `json:"tool"`
	Fields map[string]string `json:"fields"`
}

AgentSettings is the `AgentSettings` schema.

The API may send null in its place.

type AgentVMAccount

type AgentVMAccount struct {
	AccountID          string            `json:"accountId"`
	AccountName        string            `json:"accountName"`
	PluginID           string            `json:"pluginId"`
	PluginName         string            `json:"pluginName"`
	PluginLogoSvg      *string           `json:"pluginLogoSvg,omitempty"`
	ResourceTypeID     string            `json:"resourceTypeId"`
	ResourceTypeName   string            `json:"resourceTypeName"`
	DefaultUsername    string            `json:"defaultUsername"`
	DefaultFields      map[string]string `json:"defaultFields"`
	DefaultFieldLabels map[string]string `json:"defaultFieldLabels,omitempty"`
	CreateFields       []JSONObject      `json:"createFields,omitempty"`
	HiddenFieldKeys    []string          `json:"hiddenFieldKeys"`
}

AgentVMAccount is the `AgentVmAccount` schema.

Spec schema: `AgentVmAccount`.

type AgentsAccountsParams

type AgentsAccountsParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

AgentsAccountsParams holds the parameters for `client.agents.accounts`.

Every field is optional; pass nil to take the defaults.

type AgentsNamespace

type AgentsNamespace struct {

	// Sessions: `client.agents.sessions`.
	Sessions *AgentsSessionsNamespace
	// Settings: `client.agents.settings`.
	Settings *AgentsSettingsNamespace
	// contains filtered or unexported fields
}

AgentsNamespace is `client.agents`.

func (*AgentsNamespace) Accounts

func (n *AgentsNamespace) Accounts(ctx context.Context, params *AgentsAccountsParams, opts ...RequestOption) ([]AgentVMAccount, error)

Accounts: List accounts whose plugins can create agent VMs

_Requires permission: `accounts:read`._

GET /api/org/{orgId}/agents/accounts

type AgentsSessionsCreateParams

type AgentsSessionsCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body CreateAgentSession
}

AgentsSessionsCreateParams holds the parameters for `client.agents.sessions.create`.

type AgentsSessionsDeleteParams

type AgentsSessionsDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

AgentsSessionsDeleteParams holds the parameters for `client.agents.sessions.delete`.

type AgentsSessionsDeleteResponse

type AgentsSessionsDeleteResponse struct {
	OK bool `json:"ok"`
}

AgentsSessionsDeleteResponse is an object the spec declares inline.

type AgentsSessionsListParams

type AgentsSessionsListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

AgentsSessionsListParams holds the parameters for `client.agents.sessions.list`.

Every field is optional; pass nil to take the defaults.

type AgentsSessionsNamespace

type AgentsSessionsNamespace struct {
	// contains filtered or unexported fields
}

AgentsSessionsNamespace is `client.agents.sessions`.

func (*AgentsSessionsNamespace) Create

Create: Create an agent session

_Requires permission: `resources:write`._

POST /api/org/{orgId}/agents/sessions

Raises on 400: Bad request

func (*AgentsSessionsNamespace) Delete

Delete: Delete an agent session and destroy its VM

_Requires permission: `resources:delete`._

DELETE /api/org/{orgId}/agents/sessions/{id}

Raises on 404: Not found

Raises on 502: The provider refused to delete the VM

func (*AgentsSessionsNamespace) List

List: List agent sessions

_Requires permission: `resources:read`._

GET /api/org/{orgId}/agents/sessions

func (*AgentsSessionsNamespace) Open

Open: Return the command and working directory for an agent session

_Requires permission: `resources:execute`._

POST /api/org/{orgId}/agents/sessions/{id}/open

Raises on 404: Not found

func (*AgentsSessionsNamespace) Reconcile

Reconcile: Return reconciliation branch metadata

_Requires permission: `resources:execute`._

POST /api/org/{orgId}/agents/sessions/{id}/reconcile

Raises on 404: Not found

type AgentsSessionsOpenParams

type AgentsSessionsOpenParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

AgentsSessionsOpenParams holds the parameters for `client.agents.sessions.open`.

type AgentsSessionsOpenResponse

type AgentsSessionsOpenResponse struct {
	Command    string  `json:"command"`
	Cwd        string  `json:"cwd"`
	SSHKeyID   *string `json:"sshKeyId,omitempty"`
	SSHKeyName *string `json:"sshKeyName,omitempty"`
}

AgentsSessionsOpenResponse is an object the spec declares inline.

type AgentsSessionsReconcileParams

type AgentsSessionsReconcileParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

AgentsSessionsReconcileParams holds the parameters for `client.agents.sessions.reconcile`.

type AgentsSessionsReconcileResponse

type AgentsSessionsReconcileResponse struct {
	BranchName string `json:"branchName"`
	Message    string `json:"message"`
}

AgentsSessionsReconcileResponse is an object the spec declares inline.

type AgentsSettingsGetParams

type AgentsSettingsGetParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

AgentsSettingsGetParams holds the parameters for `client.agents.settings.get`.

Every field is optional; pass nil to take the defaults.

type AgentsSettingsNamespace

type AgentsSettingsNamespace struct {
	// contains filtered or unexported fields
}

AgentsSettingsNamespace is `client.agents.settings`.

func (*AgentsSettingsNamespace) Get

Get: Get saved Agents defaults

_Requires permission: `accounts:read`._

GET /api/org/{orgId}/agents/settings

func (*AgentsSettingsNamespace) Update

Update: Save Agents defaults

_Requires permission: `accounts:write`._

PUT /api/org/{orgId}/agents/settings

type AgentsSettingsUpdateParams

type AgentsSettingsUpdateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body *AgentSettings
}

AgentsSettingsUpdateParams holds the parameters for `client.agents.settings.update`.

type ApplyManifestRequest

type ApplyManifestRequest struct {
	AccountID        string      `json:"accountId"`
	ResourceID       ResourceID  `json:"resourceId"`
	Manifest         string      `json:"manifest"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

ApplyManifestRequest is the `ApplyManifestRequest` schema.

type ArtifactsListParams

type ArtifactsListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body ArtifactsListRequest
}

ArtifactsListParams holds the parameters for `client.artifacts.list`.

type ArtifactsListRequest

type ArtifactsListRequest struct {
	AccountID      string     `json:"accountId"`
	ResourceID     ResourceID `json:"resourceId"`
	ResourceTypeID string     `json:"resourceTypeId"`
	PageToken      *string    `json:"pageToken,omitempty"`
	Prefix         *string    `json:"prefix,omitempty"`
}

ArtifactsListRequest is the `ArtifactsListRequest` schema.

type ArtifactsNamespace

type ArtifactsNamespace struct {
	// contains filtered or unexported fields
}

ArtifactsNamespace is `client.artifacts`.

func (*ArtifactsNamespace) List

List: List artifact-registry items for a resource

_Requires permission: `storage:read`._

POST /api/org/{orgId}/artifacts/list

Raises on 400: Bad request

Raises on 404: Not found

Raises on 500: Server error

type AssociationRequest

type AssociationRequest struct {
	ConsumerResourceID     ResourceID `json:"consumerResourceId"`
	ConsumerFieldKey       string     `json:"consumerFieldKey"`
	ProviderResourceID     ResourceID `json:"providerResourceId"`
	ProviderOutputKey      string     `json:"providerOutputKey"`
	ProviderPluginID       string     `json:"providerPluginId"`
	ProviderResourceTypeID string     `json:"providerResourceTypeId"`
	ProviderAccountID      string     `json:"providerAccountId"`
}

AssociationRequest is the `AssociationRequest` schema.

type AssociationsCreateParams

type AssociationsCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body AssociationRequest
}

AssociationsCreateParams holds the parameters for `client.associations.create`.

type AssociationsLiteralParams

type AssociationsLiteralParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body LiteralAssociationRequest
}

AssociationsLiteralParams holds the parameters for `client.associations.literal`.

type AssociationsNamespace

type AssociationsNamespace struct {
	// contains filtered or unexported fields
}

AssociationsNamespace is `client.associations`.

func (*AssociationsNamespace) Create

Create: Wire one resource's output into another resource's secret field

_Requires permission: `secrets:write`._

POST /api/org/{orgId}/associations

Raises on 404: Not found

func (*AssociationsNamespace) Literal

Literal: Set a secret field to a literal plaintext value

_Requires permission: `secrets:write`._

POST /api/org/{orgId}/associations/literal

Raises on 404: Not found

type AttachRequest

type AttachRequest struct {
	PluginID         string     `json:"pluginId"`
	AccountID        string     `json:"accountId"`
	SourceTypeID     string     `json:"sourceTypeId"`
	SourceResourceID ResourceID `json:"sourceResourceId"`
	TargetTypeID     string     `json:"targetTypeId"`
	TargetResourceID ResourceID `json:"targetResourceId"`
}

AttachRequest is the `AttachRequest` schema.

type AuditEntry

type AuditEntry struct {
	ID         string     `json:"id"`
	UserID     *string    `json:"userId"`
	APIKeyID   *string    `json:"apiKeyId"`
	Action     string     `json:"action"`
	EntityType string     `json:"entityType"`
	EntityID   string     `json:"entityId"`
	Metadata   JSONObject `json:"metadata"`
	IPAddress  *string    `json:"ipAddress"`
	CreatedAt  string     `json:"createdAt"`
	UserName   *string    `json:"userName"`
	UserEmail  *string    `json:"userEmail"`
}

AuditEntry is the `AuditEntry` schema.

type AuditLogsGetParams

type AuditLogsGetParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID      *string
	Page       *int64
	PageSize   *int64
	Action     *string
	EntityType *string
	UserID     *string
	From       *string
	To         *string
}

AuditLogsGetParams holds the parameters for `client.auditLogs.get`.

Every field is optional; pass nil to take the defaults.

type AuditLogsNamespace

type AuditLogsNamespace struct {
	// contains filtered or unexported fields
}

AuditLogsNamespace is `client.auditLogs`.

func (*AuditLogsNamespace) Get

Get: List audit log entries (paginated, filterable)

_Requires permission: `audit:read`._

GET /api/org/{orgId}/audit-logs

type AuditResponse

type AuditResponse struct {
	Entries []AuditEntry `json:"entries"`
	Total   int64        `json:"total"`
}

AuditResponse is the `AuditResponse` schema.

type AuthFactor

type AuthFactor struct {
	ID string `json:"id"`
	// Type: One of "totp", "sms", "generic_otp".
	Type       string  `json:"type"`
	CreatedAt  string  `json:"createdAt"`
	UpdatedAt  string  `json:"updatedAt"`
	TOTPIssuer *string `json:"totpIssuer"`
	TOTPUser   *string `json:"totpUser"`
}

AuthFactor is the `AuthFactor` schema.

type AuthNamespace

type AuthNamespace struct {
	// contains filtered or unexported fields
}

AuthNamespace is `client.auth`.

func (*AuthNamespace) Me

func (n *AuthNamespace) Me(ctx context.Context, opts ...RequestOption) (*Session, error)

Me: Current session + onboarding status

GET /api/auth/me

Raises on 401: Unauthenticated

func (*AuthNamespace) Orgs

func (n *AuthNamespace) Orgs(ctx context.Context, opts ...RequestOption) ([]OrgMembership, error)

Orgs: Organizations the current user belongs to

GET /api/auth/orgs

Raises on 401: Unauthenticated

type Bastion

type Bastion struct {
	ID              string        `json:"id"`
	Name            string        `json:"name"`
	TokenPrefix     string        `json:"tokenPrefix"`
	AgentVersion    *string       `json:"agentVersion"`
	LastSeenAt      *string       `json:"lastSeenAt"`
	Status          BastionStatus `json:"status"`
	RevokedAt       *string       `json:"revokedAt"`
	CreatedAt       string        `json:"createdAt"`
	CreatedByUserID string        `json:"createdByUserId"`
	Connected       bool          `json:"connected"`
	AccountCount    int64         `json:"accountCount"`
}

Bastion is the `Bastion` schema.

type BastionStatus

type BastionStatus = string

BastionStatus is the `BastionStatus` schema.

const (
	BastionStatusPending BastionStatus = "pending"
	BastionStatusActive  BastionStatus = "active"
	BastionStatusRevoked BastionStatus = "revoked"
)

The values BastionStatus takes.

type BastionsCreateParams

type BastionsCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body CreateBastionRequest
}

BastionsCreateParams holds the parameters for `client.bastions.create`.

type BastionsDeleteParams

type BastionsDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

BastionsDeleteParams holds the parameters for `client.bastions.delete`.

type BastionsListParams

type BastionsListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

BastionsListParams holds the parameters for `client.bastions.list`.

Every field is optional; pass nil to take the defaults.

type BastionsNamespace

type BastionsNamespace struct {
	// contains filtered or unexported fields
}

BastionsNamespace is `client.bastions`.

func (*BastionsNamespace) Create

Create: Register a new bastion (returns the enrollment token once)

_Requires permission: `bastions:write`._

POST /api/org/{orgId}/bastions

Raises on 400: Bad request

func (*BastionsNamespace) Delete

func (n *BastionsNamespace) Delete(ctx context.Context, params BastionsDeleteParams, opts ...RequestOption) (*OK, error)

Delete: Revoke a bastion — accounts referencing it have their bastion binding cleared

_Requires permission: `bastions:write`._

DELETE /api/org/{orgId}/bastions/{id}

Raises on 404: Not found

func (*BastionsNamespace) List

func (n *BastionsNamespace) List(ctx context.Context, params *BastionsListParams, opts ...RequestOption) ([]Bastion, error)

List: List bastion agents registered to this org

_Requires permission: `bastions:read`._

GET /api/org/{orgId}/bastions

type BillingCheckoutParams

type BillingCheckoutParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

BillingCheckoutParams holds the parameters for `client.billing.checkout`.

Every field is optional; pass nil to take the defaults.

type BillingNamespace

type BillingNamespace struct {
	// contains filtered or unexported fields
}

BillingNamespace is `client.billing`.

func (*BillingNamespace) Checkout

Checkout: Start a Stripe Checkout session

Rejected with 400 for complimentary organizations — they are never billed.

_Requires permission: `billing:write`._

POST /api/org/{orgId}/billing/checkout

Raises on 400: Bad request

Raises on 500: Server error

func (*BillingNamespace) Portal

Portal: Get a Stripe customer portal URL

_Requires permission: `billing:write`._

POST /api/org/{orgId}/billing/portal

Raises on 404: Not found

func (*BillingNamespace) Status

Status: Get the org's billing status (complimentary flag + subscription or `null`)

_Requires permission: `billing:read`._

GET /api/org/{orgId}/billing/status

type BillingPortalParams

type BillingPortalParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

BillingPortalParams holds the parameters for `client.billing.portal`.

Every field is optional; pass nil to take the defaults.

type BillingStatus

type BillingStatus struct {
	// Complimentary: Platform-granted complimentary access: all paid perks,
	// uncapped AI chat, never billed.
	Complimentary bool          `json:"complimentary"`
	Subscription  *Subscription `json:"subscription"`
}

BillingStatus is the `BillingStatus` schema.

type BillingStatusParams

type BillingStatusParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

BillingStatusParams holds the parameters for `client.billing.status`.

Every field is optional; pass nil to take the defaults.

type BudgetAlertEvent

type BudgetAlertEvent struct {
	ID    string `json:"id"`
	Month string `json:"month"`
	// ThresholdType: One of "actual", "forecast".
	ThresholdType       string `json:"thresholdType"`
	ThresholdPercent    int64  `json:"thresholdPercent"`
	ActualAmountCents   int64  `json:"actualAmountCents"`
	ForecastAmountCents *int64 `json:"forecastAmountCents"`
	TriggeredAt         string `json:"triggeredAt"`
}

BudgetAlertEvent is the `BudgetAlertEvent` schema.

type BudgetCostFilter

type BudgetCostFilter struct {
	// Dimension: One of "provider", "account", "service", "region", "resource",
	// "tag".
	Dimension string `json:"dimension"`
	// Op: One of "in", "not_in".
	Op     string   `json:"op"`
	Values []string `json:"values"`
	TagKey *string  `json:"tagKey,omitempty"`
}

BudgetCostFilter is the `BudgetCostFilter` schema.

type BudgetFull

type BudgetFull struct {
	ID              string             `json:"id"`
	OrganizationID  string             `json:"organizationId"`
	Name            string             `json:"name"`
	AmountCents     int64              `json:"amountCents"`
	Currency        string             `json:"currency"`
	Filters         []BudgetCostFilter `json:"filters"`
	Thresholds      []BudgetThreshold  `json:"thresholds"`
	CreatedByUserID *string            `json:"createdByUserId"`
	DeletedAt       *string            `json:"deletedAt"`
	CreatedAt       string             `json:"createdAt"`
	UpdatedAt       string             `json:"updatedAt"`
}

BudgetFull is the `BudgetFull` schema.

type BudgetInput

type BudgetInput struct {
	Name        string             `json:"name"`
	AmountCents int64              `json:"amountCents"`
	Currency    *string            `json:"currency,omitempty"`
	Filters     []BudgetCostFilter `json:"filters,omitempty"`
	Thresholds  []BudgetThreshold  `json:"thresholds"`
}

BudgetInput is the `BudgetInput` schema.

type BudgetThreshold

type BudgetThreshold struct {
	// Type: One of "actual", "forecast".
	Type    string `json:"type"`
	Percent int64  `json:"percent"`
}

BudgetThreshold is the `BudgetThreshold` schema.

type BudgetWithStatus

type BudgetWithStatus struct {
	ID                 string                               `json:"id"`
	Name               string                               `json:"name"`
	AmountCents        int64                                `json:"amountCents"`
	Currency           string                               `json:"currency"`
	Filters            []BudgetCostFilter                   `json:"filters"`
	Thresholds         []BudgetThreshold                    `json:"thresholds"`
	Month              string                               `json:"month"`
	ActualCents        int64                                `json:"actualCents"`
	ForecastCents      *int64                               `json:"forecastCents"`
	CurrentMonthEvents []BudgetWithStatusCurrentMonthEvents `json:"currentMonthEvents"`
}

BudgetWithStatus is the `BudgetWithStatus` schema.

type BudgetWithStatusCurrentMonthEvents

type BudgetWithStatusCurrentMonthEvents struct {
	ID string `json:"id"`
	// ThresholdType: One of "actual", "forecast".
	ThresholdType    string `json:"thresholdType"`
	ThresholdPercent int64  `json:"thresholdPercent"`
	TriggeredAt      string `json:"triggeredAt"`
}

BudgetWithStatusCurrentMonthEvents is an object the spec declares inline.

type BudgetsCreateParams

type BudgetsCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body BudgetInput
}

BudgetsCreateParams holds the parameters for `client.budgets.create`.

type BudgetsDeleteParams

type BudgetsDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

BudgetsDeleteParams holds the parameters for `client.budgets.delete`.

type BudgetsEventsParams

type BudgetsEventsParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

BudgetsEventsParams holds the parameters for `client.budgets.events`.

type BudgetsGetParams

type BudgetsGetParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

BudgetsGetParams holds the parameters for `client.budgets.get`.

type BudgetsListParams

type BudgetsListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

BudgetsListParams holds the parameters for `client.budgets.list`.

Every field is optional; pass nil to take the defaults.

type BudgetsNamespace

type BudgetsNamespace struct {
	// contains filtered or unexported fields
}

BudgetsNamespace is `client.budgets`.

func (*BudgetsNamespace) Create

Create: Create a budget

POST /api/org/{orgId}/budgets

Raises on 400: Bad request

func (*BudgetsNamespace) Delete

func (n *BudgetsNamespace) Delete(ctx context.Context, params BudgetsDeleteParams, opts ...RequestOption) (*OK, error)

Delete: Delete a budget

DELETE /api/org/{orgId}/budgets/{id}

Raises on 404: Not found

func (*BudgetsNamespace) Events

Events: Alert event history for a budget

GET /api/org/{orgId}/budgets/{id}/events

Raises on 404: Not found

func (*BudgetsNamespace) Get

Get: Get a budget with current-month status

GET /api/org/{orgId}/budgets/{id}

Raises on 404: Not found

func (*BudgetsNamespace) List

List: List budgets with current-month actuals and forecasts

GET /api/org/{orgId}/budgets

func (*BudgetsNamespace) Update

Update: Update a budget

PUT /api/org/{orgId}/budgets/{id}

Raises on 400: Bad request

Raises on 404: Not found

type BudgetsUpdateParams

type BudgetsUpdateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
	// Body: the JSON request body.
	Body BudgetInput
}

BudgetsUpdateParams holds the parameters for `client.budgets.update`.

type ChildResourceRef

type ChildResourceRef struct {
	ID             ResourceID `json:"id"`
	DisplayName    string     `json:"displayName"`
	ResourceTypeID string     `json:"resourceTypeId"`
	PluginID       string     `json:"pluginId"`
	AccountID      string     `json:"accountId"`
	Status         *StatusDot `json:"status,omitempty"`
}

ChildResourceRef is the `ChildResourceRef` schema.

type ChildTypeRef

type ChildTypeRef struct {
	ID                string  `json:"id"`
	DisplayName       string  `json:"displayName"`
	PluralDisplayName *string `json:"pluralDisplayName,omitempty"`
	SupportsCreate    bool    `json:"supportsCreate"`
}

ChildTypeRef is the `ChildTypeRef` schema.

type ClientOption

type ClientOption func(*clientConfig)

ClientOption configures a client at construction time.

func WithAPIKey

func WithAPIKey(apiKey string) ClientOption

WithAPIKey sets the API key or access token sent as "Authorization: Bearer". Leave it unset only if you are supplying that header yourself with WithHeader.

func WithBaseURL

func WithBaseURL(baseURL string) ClientOption

WithBaseURL points the client at a different deployment. Trailing slashes are trimmed, so both "https://host" and "https://host/" behave the same.

func WithHTTPClient

func WithHTTPClient(httpClient *http.Client) ClientOption

WithHTTPClient swaps the *http.Client used for every request — for proxies, custom transports, or a client with a timeout. Defaults to http.DefaultClient.

func WithHeader

func WithHeader(name, value string) ClientOption

WithHeader sets a header on every request. Call it more than once for more than one header; a per-call WithRequestHeader wins over it.

func WithOrgID

func WithOrgID(orgID string) ClientOption

WithOrgID sets the orgId every scoped call falls back to, so it can be left out of the parameters. A call that passes its own wins; a call that has neither returns ErrMissingPathParam.

func WithUserAgent

func WithUserAgent(userAgent string) ClientOption

WithUserAgent overrides the default "infrawrench-go/<version>" User-Agent.

type ConnectEnvDeployParams

type ConnectEnvDeployParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body ConnectEnvDeployRequest
}

ConnectEnvDeployParams holds the parameters for `client.connect.envDeploy`.

type ConnectEnvDeployRequest

type ConnectEnvDeployRequest struct {
	SourceAccountID      string            `json:"sourceAccountId"`
	SourceResourceID     ResourceID        `json:"sourceResourceId"`
	SourcePluginID       string            `json:"sourcePluginId"`
	SourceResourceTypeID string            `json:"sourceResourceTypeId"`
	SourceExternalID     *string           `json:"sourceExternalId,omitempty"`
	TargetSSHHost        string            `json:"targetSshHost"`
	SSHKeyID             string            `json:"sshKeyId"`
	SSHUsername          string            `json:"sshUsername"`
	TemplateID           string            `json:"templateId"`
	KeyOverrides         map[string]string `json:"keyOverrides"`
	// Format: One of "dotenv", "profile".
	Format   string `json:"format"`
	FilePath string `json:"filePath"`
	Append   bool   `json:"append"`
}

ConnectEnvDeployRequest is the `ConnectEnvDeployRequest` schema.

type ConnectNamespace

type ConnectNamespace struct {
	// contains filtered or unexported fields
}

ConnectNamespace is `client.connect`.

func (*ConnectNamespace) EnvDeploy

func (n *ConnectNamespace) EnvDeploy(ctx context.Context, params ConnectEnvDeployParams, opts ...RequestOption) (*OK, error)

EnvDeploy: Deploy env vars from a source resource to an SSH target

_Requires permission: `resources:execute`._

POST /api/org/{orgId}/connect/env-deploy

Raises on 400: Bad request

Raises on 404: Not found

func (*ConnectNamespace) SecretExport

func (n *ConnectNamespace) SecretExport(ctx context.Context, params ConnectSecretExportParams, opts ...RequestOption) (*OK, error)

SecretExport: Materialize source outputs as a secret in the target (e.g. K8s)

_Requires permission: `resources:write`._

POST /api/org/{orgId}/connect/secret-export

Raises on 400: Bad request

Raises on 404: Not found

func (*ConnectNamespace) Templates

Templates: List secret-export templates and target capabilities

_Requires permission: `resources:read`._

POST /api/org/{orgId}/connect/templates

Raises on 404: Not found

type ConnectSecretExportParams

type ConnectSecretExportParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body ConnectSecretExportRequest
}

ConnectSecretExportParams holds the parameters for `client.connect.secretExport`.

type ConnectSecretExportRequest

type ConnectSecretExportRequest struct {
	SourceAccountID      string            `json:"sourceAccountId"`
	SourceResourceID     ResourceID        `json:"sourceResourceId"`
	SourcePluginID       string            `json:"sourcePluginId"`
	SourceResourceTypeID string            `json:"sourceResourceTypeId"`
	SourceExternalID     *string           `json:"sourceExternalId,omitempty"`
	TargetAccountID      string            `json:"targetAccountId"`
	TargetPluginID       string            `json:"targetPluginId"`
	TemplateID           string            `json:"templateId"`
	Namespace            string            `json:"namespace"`
	SecretName           string            `json:"secretName"`
	KeyOverrides         map[string]string `json:"keyOverrides"`
}

ConnectSecretExportRequest is the `ConnectSecretExportRequest` schema.

type ConnectTemplatesParams

type ConnectTemplatesParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body ConnectTemplatesRequest
}

ConnectTemplatesParams holds the parameters for `client.connect.templates`.

type ConnectTemplatesRequest

type ConnectTemplatesRequest struct {
	SourcePluginID       string `json:"sourcePluginId"`
	SourceResourceTypeID string `json:"sourceResourceTypeId"`
	TargetAccountID      string `json:"targetAccountId"`
	TargetPluginID       string `json:"targetPluginId"`
}

ConnectTemplatesRequest is the `ConnectTemplatesRequest` schema.

type ConnectTemplatesResponse

type ConnectTemplatesResponse struct {
	Templates               []SecretExportTemplate `json:"templates"`
	EffectiveResourceTypeID string                 `json:"effectiveResourceTypeId"`
	SupportsSecretImport    bool                   `json:"supportsSecretImport"`
	Namespaces              []string               `json:"namespaces"`
}

ConnectTemplatesResponse is the `ConnectTemplatesResponse` schema.

type CostAccountStatus

type CostAccountStatus struct {
	AccountID            string   `json:"accountId"`
	PluginID             string   `json:"pluginId"`
	DisplayName          string   `json:"displayName"`
	SupportsCosts        bool     `json:"supportsCosts"`
	PeriodNative         bool     `json:"periodNative"`
	Dimensions           []string `json:"dimensions"`
	CostLastPolledAt     *string  `json:"costLastPolledAt"`
	CostBackfilledAt     *string  `json:"costBackfilledAt"`
	CostPollFailureCount int64    `json:"costPollFailureCount"`
	// CostPollError: Last cost-collection failure for this account, cleared on
	// the next success. `helpLink` points at the provider page that fixes a
	// setup problem when the plugin can identify one (e.g. GCP's billing export
	// console).
	CostPollError *CostAccountStatusCostPollError `json:"costPollError"`
	Coverage      *CostAccountStatusCoverage      `json:"coverage"`
}

CostAccountStatus is the `CostAccountStatus` schema.

type CostAccountStatusCostPollError

type CostAccountStatusCostPollError struct {
	Message  string                                  `json:"message"`
	HelpLink *CostAccountStatusCostPollErrorHelpLink `json:"helpLink"`
}

CostAccountStatusCostPollError is an object the spec declares inline.

type CostAccountStatusCostPollErrorHelpLink struct {
	Label string `json:"label"`
	URL   string `json:"url"`
}

CostAccountStatusCostPollErrorHelpLink is an object the spec declares inline.

type CostAccountStatusCoverage

type CostAccountStatusCoverage struct {
	FirstDay string `json:"firstDay"`
	LastDay  string `json:"lastDay"`
}

CostAccountStatusCoverage is an object the spec declares inline.

type CostDimension

type CostDimension = string

CostDimension is the `CostDimension` schema.

const (
	CostDimensionProvider CostDimension = "provider"
	CostDimensionAccount  CostDimension = "account"
	CostDimensionService  CostDimension = "service"
	CostDimensionRegion   CostDimension = "region"
	CostDimensionResource CostDimension = "resource"
	CostDimensionTag      CostDimension = "tag"
)

The values CostDimension takes.

type CostDimensionValues

type CostDimensionValues struct {
	Values []any `json:"values"`
}

CostDimensionValues is the `CostDimensionValues` schema.

type CostFilter

type CostFilter struct {
	Dimension CostDimension `json:"dimension"`
	// Op: One of "in", "not_in".
	Op     string   `json:"op"`
	Values []string `json:"values"`
	TagKey *string  `json:"tagKey,omitempty"`
}

CostFilter is the `CostFilter` schema.

type CostQueryRequest

type CostQueryRequest struct {
	From string `json:"from"`
	To   string `json:"to"`
	// Binning: One of "daily", "weekly", "monthly", "cumulative".
	Binning string `json:"binning"`
	// GroupBy: One of "none", "provider", "account", "service", "region",
	// "resource", "tag".
	GroupBy               string       `json:"groupBy"`
	GroupByTagKey         *string      `json:"groupByTagKey,omitempty"`
	Filters               []CostFilter `json:"filters,omitempty"`
	TopN                  *int64       `json:"topN,omitempty"`
	ComparePreviousPeriod *bool        `json:"comparePreviousPeriod,omitempty"`
	Forecast              *bool        `json:"forecast,omitempty"`
}

CostQueryRequest is the `CostQueryRequest` schema.

type CostQueryResponse

type CostQueryResponse struct {
	Series         []CostQuerySeries  `json:"series"`
	Comparison     []CostQuerySeries  `json:"comparison,omitempty"`
	Forecast       []CostSeriesPoint  `json:"forecast,omitempty"`
	Currencies     []string           `json:"currencies"`
	Totals         map[string]float64 `json:"totals"`
	PreviousTotals map[string]float64 `json:"previousTotals,omitempty"`
}

CostQueryResponse is the `CostQueryResponse` schema.

type CostQuerySeries

type CostQuerySeries struct {
	Key      string            `json:"key"`
	Label    string            `json:"label"`
	Currency string            `json:"currency"`
	Points   []CostSeriesPoint `json:"points"`
}

CostQuerySeries is the `CostQuerySeries` schema.

type CostSeriesPoint

type CostSeriesPoint struct {
	Bucket string  `json:"bucket"`
	Amount float64 `json:"amount"`
}

CostSeriesPoint is the `CostSeriesPoint` schema.

type CostsDimensionsParams

type CostsDimensionsParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Dimension: One of "provider", "account", "service", "region", "resource",
	// "tag", "tag-keys".
	Dimension string
	TagKey    *string
}

CostsDimensionsParams holds the parameters for `client.costs.dimensions`.

type CostsNamespace

type CostsNamespace struct {
	// contains filtered or unexported fields
}

CostsNamespace is `client.costs`.

func (*CostsNamespace) Dimensions

Dimensions: List distinct values for a cost dimension

Feeds the filter and group-by pickers. Pass dimension=tag-keys for tag keys; dimension=tag requires tagKey.

GET /api/org/{orgId}/costs/dimensions

Raises on 400: Bad request

func (*CostsNamespace) Query

Query: Query aggregated cost series

Aggregates collected provider spend into per-bucket, per-group series for cost graphs. Currencies are never merged; mixed-currency orgs get one series per currency. Optionally returns a previous-period comparison and a trend forecast.

POST /api/org/{orgId}/costs/query

Raises on 400: Bad request

func (*CostsNamespace) Status

Status: Per-account cost collection status

Which accounts support cost collection, whether their history backfill has completed, and the ingested date coverage.

GET /api/org/{orgId}/costs/status

type CostsQueryParams

type CostsQueryParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body CostQueryRequest
}

CostsQueryParams holds the parameters for `client.costs.query`.

type CostsStatusParams

type CostsStatusParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

CostsStatusParams holds the parameters for `client.costs.status`.

Every field is optional; pass nil to take the defaults.

type CostsStatusResponse

type CostsStatusResponse struct {
	Accounts []CostAccountStatus `json:"accounts"`
}

CostsStatusResponse is an object the spec declares inline.

type CreateAPIKeyRequest

type CreateAPIKeyRequest struct {
	Name      string       `json:"name"`
	Scopes    []Permission `json:"scopes"`
	ExpiresAt *string      `json:"expiresAt,omitempty"`
}

CreateAPIKeyRequest is the `CreateApiKeyRequest` schema.

Spec schema: `CreateApiKeyRequest`.

type CreateAccountRequest

type CreateAccountRequest struct {
	PluginID    string            `json:"pluginId"`
	DisplayName string            `json:"displayName"`
	Credentials map[string]string `json:"credentials"`
	// BastionID: Optional bastion id to route this account's cloud API traffic
	// through.
	BastionID *string `json:"bastionId,omitempty"`
}

CreateAccountRequest is the `CreateAccountRequest` schema.

type CreateAccountResponse

type CreateAccountResponse struct {
	ID        string                          `json:"id"`
	SyncError *CreateAccountResponseSyncError `json:"syncError,omitempty"`
}

CreateAccountResponse is the `CreateAccountResponse` schema.

type CreateAccountResponseSyncError

type CreateAccountResponseSyncError struct {
	Message string `json:"message"`
}

CreateAccountResponseSyncError is an object the spec declares inline.

type CreateAgentSession

type CreateAgentSession struct {
	Repo          string         `json:"repo"`
	ProjectName   *string        `json:"projectName,omitempty"`
	WorkspaceName *string        `json:"workspaceName,omitempty"`
	Settings      *AgentSettings `json:"settings"`
}

CreateAgentSession is the `CreateAgentSession` schema.

type CreateBastionRequest

type CreateBastionRequest struct {
	Name string `json:"name"`
}

CreateBastionRequest is the `CreateBastionRequest` schema.

type CreateBastionResponse

type CreateBastionResponse struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	TokenPrefix string `json:"tokenPrefix"`
	// Token: Enrollment token in the form `iwb_<random>`. Pass to the agent
	// container as `BASTION_TOKEN`. Returned once — not recoverable later.
	Token string `json:"token"`
}

CreateBastionResponse is the `CreateBastionResponse` schema.

type CreateConfigRequest

type CreateConfigRequest struct {
	AccountID        string      `json:"accountId"`
	ResourceTypeID   string      `json:"resourceTypeId"`
	PluginID         *string     `json:"pluginId,omitempty"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

CreateConfigRequest is the `CreateConfigRequest` schema.

type CreateCostEstimateRequest

type CreateCostEstimateRequest struct {
	AccountID        string            `json:"accountId"`
	ResourceTypeID   string            `json:"resourceTypeId"`
	Fields           map[string]string `json:"fields"`
	PluginID         *string           `json:"pluginId,omitempty"`
	ParentResourceID *ResourceID       `json:"parentResourceId,omitempty"`
}

CreateCostEstimateRequest is the `CreateCostEstimateRequest` schema.

type CreateOrgRequest

type CreateOrgRequest struct {
	DisplayName string `json:"displayName"`
}

CreateOrgRequest is the `CreateOrgRequest` schema.

type CreatePricingRequest

type CreatePricingRequest struct {
	AccountID        string                      `json:"accountId"`
	ResourceTypeID   string                      `json:"resourceTypeId"`
	RegionID         *string                     `json:"regionId,omitempty"`
	Sizes            []CreatePricingRequestSizes `json:"sizes"`
	PluginID         *string                     `json:"pluginId,omitempty"`
	ParentResourceID *ResourceID                 `json:"parentResourceId,omitempty"`
}

CreatePricingRequest is the `CreatePricingRequest` schema.

type CreatePricingRequestSizes

type CreatePricingRequestSizes struct {
	ID       string  `json:"id"`
	Vcpus    float64 `json:"vcpus"`
	MemoryMb float64 `json:"memoryMb"`
}

CreatePricingRequestSizes is an object the spec declares inline.

type CreateResourceRequest

type CreateResourceRequest struct {
	AccountID        string            `json:"accountId"`
	PluginID         string            `json:"pluginId"`
	ResourceTypeID   string            `json:"resourceTypeId"`
	Fields           map[string]string `json:"fields"`
	ParentResourceID *ResourceID       `json:"parentResourceId,omitempty"`
}

CreateResourceRequest is the `CreateResourceRequest` schema.

type CreateResourceResponse

type CreateResourceResponse struct {
	ID          ResourceID `json:"id"`
	DisplayName string     `json:"displayName"`
	Warnings    []string   `json:"warnings,omitempty"`
}

CreateResourceResponse is the `CreateResourceResponse` schema.

type CreateWidgetRequest

type CreateWidgetRequest struct {
	DashboardID string              `json:"dashboardId"`
	Kind        DashboardWidgetKind `json:"kind"`
	Title       *string             `json:"title,omitempty"`
	Config      JSONObject          `json:"config"`
}

CreateWidgetRequest is the `CreateWidgetRequest` schema.

type CreatedAPIKey

type CreatedAPIKey struct {
	ID string `json:"id"`
	// Key: Plaintext key. Returned once. Format: `iwk_<base64url>`.
	Key string `json:"key"`
}

CreatedAPIKey is the `CreatedApiKey` schema.

Spec schema: `CreatedApiKey`.

type CredentialExport

type CredentialExport struct {
	Content  string            `json:"content"`
	Filename string            `json:"filename"`
	MimeType string            `json:"mimeType"`
	Fields   map[string]string `json:"fields,omitempty"`
	Warning  *string           `json:"warning,omitempty"`
}

CredentialExport is the `CredentialExport` schema.

type CredentialField

type CredentialField struct {
	Key          string                   `json:"key"`
	Label        string                   `json:"label"`
	Description  *string                  `json:"description,omitempty"`
	Placeholder  *string                  `json:"placeholder,omitempty"`
	Sensitive    *bool                    `json:"sensitive,omitempty"`
	Multiline    *bool                    `json:"multiline,omitempty"`
	DefaultValue *string                  `json:"defaultValue,omitempty"`
	Regions      []CredentialFieldRegion  `json:"regions,omitempty"`
	HelpLink     *CredentialFieldHelpLink `json:"helpLink,omitempty"`
}

CredentialField is the `CredentialField` schema.

type CredentialFieldHelpLink struct {
	Label string `json:"label"`
	URL   string `json:"url"`
}

CredentialFieldHelpLink is an object the spec declares inline.

type CredentialFieldRegion

type CredentialFieldRegion struct {
	ID       string  `json:"id"`
	Label    string  `json:"label"`
	Location *string `json:"location,omitempty"`
	Flag     *string `json:"flag,omitempty"`
}

CredentialFieldRegion is the `CredentialFieldRegion` schema.

type CredentialFormat

type CredentialFormat struct {
	ID            string  `json:"id"`
	Label         string  `json:"label"`
	Description   *string `json:"description,omitempty"`
	FileExtension *string `json:"fileExtension,omitempty"`
	MimeType      *string `json:"mimeType,omitempty"`
}

CredentialFormat is the `CredentialFormat` schema.

type Dashboard

type Dashboard struct {
	ID        string `json:"id"`
	Name      string `json:"name"`
	IsDefault bool   `json:"isDefault"`
}

Dashboard is the `Dashboard` schema.

type DashboardFull

type DashboardFull struct {
	ID             string  `json:"id"`
	OrganizationID string  `json:"organizationId"`
	Name           string  `json:"name"`
	IsDefault      bool    `json:"isDefault"`
	CreatedAt      string  `json:"createdAt"`
	UpdatedAt      string  `json:"updatedAt"`
	DeletedAt      *string `json:"deletedAt"`
	SyncVersion    int64   `json:"syncVersion"`
}

DashboardFull is the `DashboardFull` schema.

type DashboardPin

type DashboardPin struct {
	PinID      string     `json:"pinId"`
	ResourceID ResourceID `json:"resourceId"`
	GridX      int64      `json:"gridX"`
	GridY      int64      `json:"gridY"`
	GridW      int64      `json:"gridW"`
	GridH      int64      `json:"gridH"`
}

DashboardPin is the `DashboardPin` schema.

type DashboardWidget

type DashboardWidget struct {
	ID          string              `json:"id"`
	DashboardID string              `json:"dashboardId"`
	Kind        DashboardWidgetKind `json:"kind"`
	Title       string              `json:"title"`
	Config      JSONObject          `json:"config"`
	GridX       int64               `json:"gridX"`
	GridY       int64               `json:"gridY"`
	GridW       int64               `json:"gridW"`
	GridH       int64               `json:"gridH"`
}

DashboardWidget is the `DashboardWidget` schema.

type DashboardWidgetFull

type DashboardWidgetFull struct {
	ID             string              `json:"id"`
	OrganizationID string              `json:"organizationId"`
	DashboardID    string              `json:"dashboardId"`
	Kind           DashboardWidgetKind `json:"kind"`
	Title          string              `json:"title"`
	Config         JSONObject          `json:"config"`
	GridX          int64               `json:"gridX"`
	GridY          int64               `json:"gridY"`
	GridW          int64               `json:"gridW"`
	GridH          int64               `json:"gridH"`
	SyncVersion    int64               `json:"syncVersion"`
	DeletedAt      *string             `json:"deletedAt"`
	CreatedAt      string              `json:"createdAt"`
	UpdatedAt      string              `json:"updatedAt"`
}

DashboardWidgetFull is the `DashboardWidgetFull` schema.

type DashboardWidgetKind

type DashboardWidgetKind = string

DashboardWidgetKind is the `DashboardWidgetKind` schema.

const (
	DashboardWidgetKindCostGraph DashboardWidgetKind = "cost_graph"
	DashboardWidgetKindBudget    DashboardWidgetKind = "budget"
)

The values DashboardWidgetKind takes.

type DashboardWithPins

type DashboardWithPins struct {
	Dashboard    DashboardFull          `json:"dashboard"`
	Pins         []DashboardPin         `json:"pins"`
	WorkflowPins []DashboardWorkflowPin `json:"workflowPins"`
	Widgets      []DashboardWidget      `json:"widgets"`
}

DashboardWithPins is the `DashboardWithPins` schema.

type DashboardWorkflowPin

type DashboardWorkflowPin struct {
	PinID      string                        `json:"pinId"`
	WorkflowID string                        `json:"workflowId"`
	GridX      int64                         `json:"gridX"`
	Name       string                        `json:"name"`
	LastRunAt  *string                       `json:"lastRunAt"`
	LastStatus *string                       `json:"lastStatus"`
	Metrics    []DashboardWorkflowPinMetrics `json:"metrics"`
}

DashboardWorkflowPin is the `DashboardWorkflowPin` schema.

type DashboardWorkflowPinMetrics

type DashboardWorkflowPinMetrics struct {
	Key   string  `json:"key"`
	Label string  `json:"label"`
	Unit  *string `json:"unit"`
	Value any     `json:"value,omitempty"`
}

DashboardWorkflowPinMetrics is an object the spec declares inline.

type DashboardsCreateParams

type DashboardsCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body DashboardsCreateRequest
}

DashboardsCreateParams holds the parameters for `client.dashboards.create`.

type DashboardsCreateRequest

type DashboardsCreateRequest struct {
	Name string `json:"name"`
}

DashboardsCreateRequest is an object the spec declares inline.

type DashboardsDefaultFullParams

type DashboardsDefaultFullParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

DashboardsDefaultFullParams holds the parameters for `client.dashboards.default.full`.

Every field is optional; pass nil to take the defaults.

type DashboardsDefaultNamespace

type DashboardsDefaultNamespace struct {
	// contains filtered or unexported fields
}

DashboardsDefaultNamespace is `client.dashboards.default`.

func (*DashboardsDefaultNamespace) Full

Full: Get-or-create the default dashboard with its pins

_Requires permission: `dashboards:read`._

GET /api/org/{orgId}/dashboards/default/full

type DashboardsDeleteParams

type DashboardsDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

DashboardsDeleteParams holds the parameters for `client.dashboards.delete`.

type DashboardsGetParams

type DashboardsGetParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

DashboardsGetParams holds the parameters for `client.dashboards.get`.

type DashboardsListParams

type DashboardsListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

DashboardsListParams holds the parameters for `client.dashboards.list`.

Every field is optional; pass nil to take the defaults.

type DashboardsNamespace

type DashboardsNamespace struct {

	// Default: `client.dashboards.default`.
	Default *DashboardsDefaultNamespace
	// Pin: `client.dashboards.pin`.
	Pin *DashboardsPinNamespace
	// Widgets: `client.dashboards.widgets`.
	Widgets *DashboardsWidgetsNamespace
	// contains filtered or unexported fields
}

DashboardsNamespace is `client.dashboards`.

func (*DashboardsNamespace) Create

Create: Create a dashboard

_Requires permission: `dashboards:write`._

POST /api/org/{orgId}/dashboards

func (*DashboardsNamespace) Delete

func (n *DashboardsNamespace) Delete(ctx context.Context, params DashboardsDeleteParams, opts ...RequestOption) (*OK, error)

Delete: Delete a dashboard

Cannot delete the default dashboard.

_Requires permission: `dashboards:write`._

DELETE /api/org/{orgId}/dashboards/{id}

Raises on 400: Bad request

Raises on 404: Not found

func (*DashboardsNamespace) Get

Get: Get a dashboard with its pins

_Requires permission: `dashboards:read`._

GET /api/org/{orgId}/dashboards/{id}

Raises on 404: Not found

func (*DashboardsNamespace) List

List: List dashboards

_Requires permission: `dashboards:read`._

GET /api/org/{orgId}/dashboards

func (*DashboardsNamespace) Probe

Probe: Read cached stats/metrics for dashboard cards

_Requires permission: `dashboards:read`._

POST /api/org/{orgId}/dashboards/probe

func (*DashboardsNamespace) Rename

func (n *DashboardsNamespace) Rename(ctx context.Context, params DashboardsRenameParams, opts ...RequestOption) (*OK, error)

Rename: Rename a dashboard

_Requires permission: `dashboards:write`._

POST /api/org/{orgId}/dashboards/{id}/rename

func (*DashboardsNamespace) Reorder

func (n *DashboardsNamespace) Reorder(ctx context.Context, params DashboardsReorderParams, opts ...RequestOption) (*OK, error)

Reorder: Reorder dashboard cards

Persists the order of a dashboard's grid. Pass `cards` to order resource pins, workflow pins, and widgets as one sequence; `resourceIds` orders resource pins alone.

_Requires permission: `dashboards:write`._

POST /api/org/{orgId}/dashboards/{id}/reorder

Raises on 404: Not found

func (*DashboardsNamespace) Unpin

func (n *DashboardsNamespace) Unpin(ctx context.Context, params DashboardsUnpinParams, opts ...RequestOption) (*OK, error)

Unpin: Unpin a resource

_Requires permission: `dashboards:write`._

POST /api/org/{orgId}/dashboards/unpin

Raises on 404: Not found

func (*DashboardsNamespace) ValidateTabs

ValidateTabs: Validate workspace tab targets still exist

_Requires permission: `dashboards:read`._

POST /api/org/{orgId}/dashboards/validate-tabs

func (*DashboardsNamespace) WorkflowPin

func (n *DashboardsNamespace) WorkflowPin(ctx context.Context, params DashboardsWorkflowPinParams, opts ...RequestOption) (*OK, error)

WorkflowPin: Pin a workflow's metrics to a dashboard

POST /api/org/{orgId}/dashboards/workflow-pin

Raises on 404: Not found

func (*DashboardsNamespace) WorkflowUnpin

func (n *DashboardsNamespace) WorkflowUnpin(ctx context.Context, params DashboardsWorkflowUnpinParams, opts ...RequestOption) (*OK, error)

WorkflowUnpin: Unpin a workflow from a dashboard

POST /api/org/{orgId}/dashboards/workflow-unpin

Raises on 404: Not found

type DashboardsPinCreateParams

type DashboardsPinCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body PinRequest
}

DashboardsPinCreateParams holds the parameters for `client.dashboards.pin.create`.

type DashboardsPinGetParams

type DashboardsPinGetParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	PinID string
}

DashboardsPinGetParams holds the parameters for `client.dashboards.pin.get`.

type DashboardsPinNamespace

type DashboardsPinNamespace struct {
	// contains filtered or unexported fields
}

DashboardsPinNamespace is `client.dashboards.pin`.

func (*DashboardsPinNamespace) Create

Create: Pin a resource to a dashboard

_Requires permission: `dashboards:write`._

POST /api/org/{orgId}/dashboards/pin

Raises on 404: Not found

func (*DashboardsPinNamespace) Get

Get: Full enriched pin data + cached probe status

_Requires permission: `dashboards:read`._

GET /api/org/{orgId}/dashboards/pin/{pinId}

Raises on 404: Not found

func (*DashboardsPinNamespace) Range

Range: Historical metric series for a pinned resource

Returns per-series metric points between fromMs and toMs. The backend auto-routes between raw, 1-minute, and 1-hour rollups based on span: ≤2h raw, ≤7d 1m, >7d 1h.

GET /api/org/{orgId}/dashboards/pin/{pinId}/range

Raises on 400: Bad request

Raises on 404: Not found

type DashboardsPinRangeParams

type DashboardsPinRangeParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID  *string
	PinID  string
	FromMs *int64
	ToMs   *int64
}

DashboardsPinRangeParams holds the parameters for `client.dashboards.pin.range`.

type DashboardsProbeParams

type DashboardsProbeParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body ProbeRequest
}

DashboardsProbeParams holds the parameters for `client.dashboards.probe`.

type DashboardsRenameParams

type DashboardsRenameParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
	// Body: the JSON request body.
	Body DashboardsRenameRequest
}

DashboardsRenameParams holds the parameters for `client.dashboards.rename`.

type DashboardsRenameRequest

type DashboardsRenameRequest struct {
	Name string `json:"name"`
}

DashboardsRenameRequest is an object the spec declares inline.

type DashboardsReorderParams

type DashboardsReorderParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
	// Body: the JSON request body.
	Body ReorderRequest
}

DashboardsReorderParams holds the parameters for `client.dashboards.reorder`.

type DashboardsUnpinParams

type DashboardsUnpinParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body UnpinRequest
}

DashboardsUnpinParams holds the parameters for `client.dashboards.unpin`.

type DashboardsValidateTabsParams

type DashboardsValidateTabsParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body ValidateTabsRequest
}

DashboardsValidateTabsParams holds the parameters for `client.dashboards.validateTabs`.

type DashboardsWidgetsCreateParams

type DashboardsWidgetsCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body CreateWidgetRequest
}

DashboardsWidgetsCreateParams holds the parameters for `client.dashboards.widgets.create`.

type DashboardsWidgetsDeleteParams

type DashboardsWidgetsDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	WidgetID string
}

DashboardsWidgetsDeleteParams holds the parameters for `client.dashboards.widgets.delete`.

type DashboardsWidgetsNamespace

type DashboardsWidgetsNamespace struct {
	// contains filtered or unexported fields
}

DashboardsWidgetsNamespace is `client.dashboards.widgets`.

func (*DashboardsWidgetsNamespace) Create

Create: Add a cost-graph or budget widget to a dashboard

POST /api/org/{orgId}/dashboards/widgets

Raises on 400: Bad request

Raises on 404: Not found

func (*DashboardsWidgetsNamespace) Delete

Delete: Remove a widget from a dashboard

DELETE /api/org/{orgId}/dashboards/widgets/{widgetId}

Raises on 404: Not found

func (*DashboardsWidgetsNamespace) Update

Update: Update a widget's title, config, or layout

PATCH /api/org/{orgId}/dashboards/widgets/{widgetId}

Raises on 400: Bad request

Raises on 404: Not found

type DashboardsWidgetsUpdateParams

type DashboardsWidgetsUpdateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	WidgetID string
	// Body: the JSON request body.
	Body UpdateWidgetRequest
}

DashboardsWidgetsUpdateParams holds the parameters for `client.dashboards.widgets.update`.

type DashboardsWorkflowPinParams

type DashboardsWorkflowPinParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body WorkflowPinRequest
}

DashboardsWorkflowPinParams holds the parameters for `client.dashboards.workflowPin`.

type DashboardsWorkflowUnpinParams

type DashboardsWorkflowUnpinParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body WorkflowPinRequest
}

DashboardsWorkflowUnpinParams holds the parameters for `client.dashboards.workflowUnpin`.

type DescribeRequest

type DescribeRequest struct {
	AccountID        string      `json:"accountId"`
	ResourceID       ResourceID  `json:"resourceId"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

DescribeRequest is the `DescribeRequest` schema.

type DescribeResponse

type DescribeResponse struct {
	Text string `json:"text"`
}

DescribeResponse is the `DescribeResponse` schema.

type DockerCommandParams

type DockerCommandParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body DockerCommandRequest
}

DockerCommandParams holds the parameters for `client.docker.command`.

type DockerCommandRequest

type DockerCommandRequest struct {
	AccountID string     `json:"accountId"`
	Op        string     `json:"op"`
	Params    JSONObject `json:"params,omitempty"`
}

DockerCommandRequest is the `DockerCommandRequest` schema.

type DockerCommandResponse

type DockerCommandResponse struct {
	Result any `json:"result,omitempty"`
}

DockerCommandResponse is the `DockerCommandResponse` schema.

type DockerNamespace

type DockerNamespace struct {
	// contains filtered or unexported fields
}

DockerNamespace is `client.docker`.

func (*DockerNamespace) Command

Command: Run a Docker daemon operation

_Requires permission: `resources:execute`._

POST /api/org/{orgId}/docker/command

Raises on 400: Bad request

Raises on 404: Not found

type EditableField

type EditableField struct {
	Key   string `json:"key"`
	Label string `json:"label"`
	// Kind: One of "string", "number", "boolean", "enum", "secret",
	// "association", "password".
	Kind        string   `json:"kind"`
	Required    bool     `json:"required"`
	Description *string  `json:"description,omitempty"`
	EnumValues  []string `json:"enumValues,omitempty"`
}

EditableField is the `EditableField` schema.

type Error

type Error struct {
	// Error: Human-readable error message
	Error string `json:"error"`
}

Error is the `Error` schema.

type ExportCredentialRequest

type ExportCredentialRequest struct {
	ResourceID       ResourceID  `json:"resourceId"`
	AccountID        string      `json:"accountId"`
	FormatID         string      `json:"formatId"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

ExportCredentialRequest is the `ExportCredentialRequest` schema.

type FieldActionRequest

type FieldActionRequest struct {
	AccountID        string            `json:"accountId"`
	ResourceTypeID   string            `json:"resourceTypeId"`
	FieldKey         string            `json:"fieldKey"`
	ActionID         string            `json:"actionId"`
	Fields           map[string]string `json:"fields"`
	ActionFields     map[string]string `json:"actionFields,omitempty"`
	PluginID         *string           `json:"pluginId,omitempty"`
	ParentResourceID *ResourceID       `json:"parentResourceId,omitempty"`
}

FieldActionRequest is the `FieldActionRequest` schema.

type FieldActionResponse

type FieldActionResponse struct {
	Value  string                     `json:"value"`
	Option *FieldActionResponseOption `json:"option,omitempty"`
}

FieldActionResponse is the `FieldActionResponse` schema.

type FieldActionResponseOption

type FieldActionResponseOption struct {
	ID    string `json:"id"`
	Label string `json:"label"`
}

FieldActionResponseOption is an object the spec declares inline.

type GenerateSSHKeyRequest

type GenerateSSHKeyRequest struct {
	Name string `json:"name"`
}

GenerateSSHKeyRequest is the `GenerateSshKeyRequest` schema.

Spec schema: `GenerateSshKeyRequest`.

type GeneratedSSHKey

type GeneratedSSHKey struct {
	ID          string     `json:"id"`
	Name        string     `json:"name"`
	KeyType     SSHKeyType `json:"keyType"`
	Fingerprint string     `json:"fingerprint"`
	PublicKey   string     `json:"publicKey"`
	// PrivateKey: Returned once. Not persisted in plaintext.
	PrivateKey string `json:"privateKey"`
}

GeneratedSSHKey is the `GeneratedSshKey` schema.

Spec schema: `GeneratedSshKey`.

type ImportSSHKeyRequest

type ImportSSHKeyRequest struct {
	Name      string `json:"name"`
	PublicKey string `json:"publicKey"`
}

ImportSSHKeyRequest is the `ImportSshKeyRequest` schema.

Spec schema: `ImportSshKeyRequest`.

type ImportYAMLRequest

type ImportYAMLRequest struct {
	AccountID        string      `json:"accountId"`
	YAML             string      `json:"yaml"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

ImportYAMLRequest is the `ImportYamlRequest` schema.

Spec schema: `ImportYamlRequest`.

type ImportedSSHKey

type ImportedSSHKey struct {
	ID          string     `json:"id"`
	Name        string     `json:"name"`
	KeyType     SSHKeyType `json:"keyType"`
	Fingerprint string     `json:"fingerprint"`
	PublicKey   string     `json:"publicKey"`
	IsImported  bool       `json:"isImported"`
}

ImportedSSHKey is the `ImportedSshKey` schema.

Spec schema: `ImportedSshKey`.

type Invitation

type Invitation struct {
	ID         string           `json:"id"`
	Email      string           `json:"email"`
	Role       OrganizationRole `json:"role"`
	RoleID     *string          `json:"roleId"`
	RoleName   *string          `json:"roleName"`
	AcceptedAt *string          `json:"acceptedAt"`
	ExpiresAt  string           `json:"expiresAt"`
	CreatedAt  string           `json:"createdAt"`
}

Invitation is the `Invitation` schema.

type InvitationDetail

type InvitationDetail struct {
	ID               string           `json:"id"`
	Email            string           `json:"email"`
	Role             OrganizationRole `json:"role"`
	ExpiresAt        string           `json:"expiresAt"`
	AcceptedAt       *string          `json:"acceptedAt"`
	OrganizationID   string           `json:"organizationId"`
	OrganizationName string           `json:"organizationName"`
}

InvitationDetail is the `InvitationDetail` schema.

type InvitationsAcceptParams

type InvitationsAcceptParams struct {
	// Body: the JSON request body.
	Body AcceptInvitationRequest
}

InvitationsAcceptParams holds the parameters for `client.invitations.accept`.

type InvitationsByTokenGetParams

type InvitationsByTokenGetParams struct {
	Token string
}

InvitationsByTokenGetParams holds the parameters for `client.invitations.byToken.get`.

type InvitationsByTokenNamespace

type InvitationsByTokenNamespace struct {
	// contains filtered or unexported fields
}

InvitationsByTokenNamespace is `client.invitations.byToken`.

func (*InvitationsByTokenNamespace) Get

Get: Get invitation details by token

GET /api/invitations/by-token/{token}

Raises on 404: Not found

type InvitationsNamespace

type InvitationsNamespace struct {

	// ByToken: `client.invitations.byToken`.
	ByToken *InvitationsByTokenNamespace
	// contains filtered or unexported fields
}

InvitationsNamespace is `client.invitations`.

func (*InvitationsNamespace) Accept

Accept: Accept an invitation

POST /api/invitations/accept

Raises on 400: Bad request

Raises on 403: Forbidden

type InviteRequest

type InviteRequest struct {
	Email  string            `json:"email"`
	Role   *OrganizationRole `json:"role,omitempty"`
	RoleID *string           `json:"roleId,omitempty"`
}

InviteRequest is the `InviteRequest` schema.

type InviteResponse

type InviteResponse struct {
	ID    string `json:"id"`
	Token string `json:"token"`
}

InviteResponse is the `InviteResponse` schema.

type InvokeActionRequest

type InvokeActionRequest struct {
	PluginID         string      `json:"pluginId"`
	AccountID        string      `json:"accountId"`
	ResourceTypeID   string      `json:"resourceTypeId"`
	ResourceID       ResourceID  `json:"resourceId"`
	ActionID         string      `json:"actionId"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

InvokeActionRequest is the `InvokeActionRequest` schema.

type JSONObject

type JSONObject = map[string]any

JSONObject: Free-form JSON object whose shape depends on the plugin.

Spec schema: `JsonObject`.

type KVCommandParams

type KVCommandParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body KVCommandRequest
}

KVCommandParams holds the parameters for `client.kv.command`.

type KVCommandRequest

type KVCommandRequest struct {
	AccountID        string      `json:"accountId"`
	Command          string      `json:"command"`
	Args             []any       `json:"args"`
	PluginID         *string     `json:"pluginId,omitempty"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

KVCommandRequest is the `KvCommandRequest` schema.

Spec schema: `KvCommandRequest`.

type KVCommandResponse

type KVCommandResponse struct {
	Result any `json:"result,omitempty"`
}

KVCommandResponse is the `KvCommandResponse` schema.

Spec schema: `KvCommandResponse`.

type KVNamespace

type KVNamespace struct {
	// contains filtered or unexported fields
}

KVNamespace is `client.kv`.

func (*KVNamespace) Command

func (n *KVNamespace) Command(ctx context.Context, params KVCommandParams, opts ...RequestOption) (*KVCommandResponse, error)

Command: Run a Redis-style KV command

_Requires permission: `resources:execute`._

POST /api/org/{orgId}/kv/command

Raises on 400: Bad request

Raises on 404: Not found

type LiteralAssociationRequest

type LiteralAssociationRequest struct {
	ResourceID     ResourceID `json:"resourceId"`
	FieldKey       string     `json:"fieldKey"`
	PlaintextValue string     `json:"plaintextValue"`
}

LiteralAssociationRequest is the `LiteralAssociationRequest` schema.

type LogsRequest

type LogsRequest struct {
	AccountID        string      `json:"accountId"`
	ResourceID       ResourceID  `json:"resourceId"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
	TailLines        *int64      `json:"tailLines,omitempty"`
	Container        *string     `json:"container,omitempty"`
	Previous         *bool       `json:"previous,omitempty"`
}

LogsRequest is the `LogsRequest` schema.

type LogsResponse

type LogsResponse struct {
	Lines         []string `json:"lines"`
	NextPageToken *string  `json:"nextPageToken,omitempty"`
	Truncated     *bool    `json:"truncated,omitempty"`
}

LogsResponse is the `LogsResponse` schema.

type Manifest

type Manifest struct {
	Manifest string `json:"manifest"`
}

Manifest is the `Manifest` schema.

type MeResponse

type MeResponse struct {
	UserID      string       `json:"userId"`
	Email       string       `json:"email"`
	Role        *RoleSummary `json:"role"`
	Permissions []Permission `json:"permissions"`
}

MeResponse is the `MeResponse` schema.

type MetricSeries

type MetricSeries struct {
	Label  string               `json:"label"`
	Unit   *string              `json:"unit,omitempty"`
	Points []MetricSeriesPoints `json:"points"`
}

MetricSeries is the `MetricSeries` schema.

type MetricSeriesPoints

type MetricSeriesPoints struct {
	Ts    float64 `json:"ts"`
	Value float64 `json:"value"`
}

MetricSeriesPoints is an object the spec declares inline.

type MetricsRequest

type MetricsRequest struct {
	AccountID        string      `json:"accountId"`
	ResourceID       ResourceID  `json:"resourceId"`
	StartMs          *int64      `json:"startMs,omitempty"`
	EndMs            *int64      `json:"endMs,omitempty"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

MetricsRequest is the `MetricsRequest` schema.

type MetricsResponse

type MetricsResponse struct {
	Series []MetricSeries `json:"series"`
}

MetricsResponse is the `MetricsResponse` schema.

type NoSQLCommandRequest

type NoSQLCommandRequest struct {
	PluginID         string      `json:"pluginId"`
	AccountID        string      `json:"accountId"`
	ResourceTypeID   string      `json:"resourceTypeId"`
	ResourceID       ResourceID  `json:"resourceId"`
	Command          string      `json:"command"`
	Args             []any       `json:"args"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

NoSQLCommandRequest is the `NoSqlCommandRequest` schema.

Spec schema: `NoSqlCommandRequest`.

type OK

type OK struct {
	OK bool `json:"ok"`
}

OK is the `Ok` schema.

Spec schema: `Ok`.

type OrgMember

type OrgMember struct {
	ID            string           `json:"id"`
	Email         string           `json:"email"`
	DisplayName   *string          `json:"displayName"`
	Role          OrganizationRole `json:"role"`
	RoleID        *string          `json:"roleId"`
	RoleName      *string          `json:"roleName"`
	RoleSystemKey *string          `json:"roleSystemKey"`
	CreatedAt     string           `json:"createdAt"`
}

OrgMember is the `OrgMember` schema.

type OrgMembership

type OrgMembership struct {
	ID          string           `json:"id"`
	DisplayName string           `json:"displayName"`
	Role        OrganizationRole `json:"role"`
}

OrgMembership is the `OrgMembership` schema.

type Organization

type Organization struct {
	ID          string `json:"id"`
	DisplayName string `json:"displayName"`
}

Organization is the `Organization` schema.

type OrganizationRole

type OrganizationRole = string

OrganizationRole is the `OrganizationRole` schema.

const (
	OrganizationRoleOwner  OrganizationRole = "owner"
	OrganizationRoleAdmin  OrganizationRole = "admin"
	OrganizationRoleMember OrganizationRole = "member"
)

The values OrganizationRole takes.

type OrgsCreateParams

type OrgsCreateParams struct {
	// Body: the JSON request body.
	Body CreateOrgRequest
}

OrgsCreateParams holds the parameters for `client.orgs.create`.

type OrgsNamespace

type OrgsNamespace struct {
	// contains filtered or unexported fields
}

OrgsNamespace is `client.orgs`.

func (*OrgsNamespace) Create

func (n *OrgsNamespace) Create(ctx context.Context, params OrgsCreateParams, opts ...RequestOption) (*Organization, error)

Create: Create a new organization

The caller becomes the `owner` of the new organization.

POST /api/orgs

Raises on 400: Bad request

Raises on 401: Unauthenticated

type PeerPane

type PeerPane struct {
	TabLabel      string     `json:"tabLabel"`
	PluginLogoSvg string     `json:"pluginLogoSvg"`
	PeerPluginID  string     `json:"peerPluginId"`
	Schema        JSONObject `json:"schema"`
}

PeerPane is the `PeerPane` schema.

type PeerPaneStub

type PeerPaneStub struct {
	TabLabel      string `json:"tabLabel"`
	PluginLogoSvg string `json:"pluginLogoSvg"`
	PeerPluginID  string `json:"peerPluginId"`
}

PeerPaneStub is the `PeerPaneStub` schema.

type PeerPanesRequest

type PeerPanesRequest struct {
	AccountID        string      `json:"accountId"`
	ResourceID       ResourceID  `json:"resourceId"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

PeerPanesRequest is the `PeerPanesRequest` schema.

type Permission

type Permission = string

Permission: A permission string. Roles may grant exact permissions like the entries in this enum, or wildcards (e.g. `resources:*:read`, `*`).

const (
	PermissionAccountsRead     Permission = "accounts:read"
	PermissionAccountsWrite    Permission = "accounts:write"
	PermissionAccountsDelete   Permission = "accounts:delete"
	PermissionResourcesRead    Permission = "resources:read"
	PermissionResourcesWrite   Permission = "resources:write"
	PermissionResourcesDelete  Permission = "resources:delete"
	PermissionResourcesExecute Permission = "resources:execute"
	PermissionSecretsRead      Permission = "secrets:read"
	PermissionSecretsWrite     Permission = "secrets:write"
	PermissionStorageRead      Permission = "storage:read"
	PermissionStorageWrite     Permission = "storage:write"
	PermissionDashboardsRead   Permission = "dashboards:read"
	PermissionDashboardsWrite  Permission = "dashboards:write"
	PermissionCostsRead        Permission = "costs:read"
	PermissionBudgetsRead      Permission = "budgets:read"
	PermissionBudgetsWrite     Permission = "budgets:write"
	PermissionAuditRead        Permission = "audit:read"
	PermissionTeamRead         Permission = "team:read"
	PermissionTeamInvite       Permission = "team:invite"
	PermissionTeamRoleWrite    Permission = "team:role:write"
	PermissionTeamRemove       Permission = "team:remove"
	PermissionApikeysRead      Permission = "apikeys:read"
	PermissionApikeysWrite     Permission = "apikeys:write"
	PermissionBillingRead      Permission = "billing:read"
	PermissionBillingWrite     Permission = "billing:write"
	PermissionSSHKeysRead      Permission = "ssh-keys:read"
	PermissionSSHKeysWrite     Permission = "ssh-keys:write"
	PermissionBastionsRead     Permission = "bastions:read"
	PermissionBastionsWrite    Permission = "bastions:write"
	PermissionChatRead         Permission = "chat:read"
	PermissionChatWrite        Permission = "chat:write"
	PermissionOrgSettingsWrite Permission = "org:settings:write"
)

The values Permission takes.

type PermissionCatalog

type PermissionCatalog struct {
	Permissions []Permission `json:"permissions"`
}

PermissionCatalog is the `PermissionCatalog` schema.

type PickerResource

type PickerResource struct {
	ID             ResourceID `json:"id"`
	Label          string     `json:"label"`
	PluginID       string     `json:"pluginId"`
	ResourceTypeID string     `json:"resourceTypeId"`
	AccountID      string     `json:"accountId"`
	OutputKey      string     `json:"outputKey"`
	OutputValue    string     `json:"outputValue"`
}

PickerResource is the `PickerResource` schema.

type PickerResourcesRequest

type PickerResourcesRequest struct {
	Sources    []PickerResourcesRequestSources `json:"sources"`
	AccountID  string                          `json:"accountId"`
	RegionHint *string                         `json:"regionHint,omitempty"`
}

PickerResourcesRequest is the `PickerResourcesRequest` schema.

type PickerResourcesRequestSources

type PickerResourcesRequestSources struct {
	PluginID       string `json:"pluginId"`
	ResourceTypeID string `json:"resourceTypeId"`
	OutputKey      string `json:"outputKey"`
}

PickerResourcesRequestSources is an object the spec declares inline.

type PinFull

type PinFull struct {
	PinID             string      `json:"pinId"`
	ResourceID        ResourceID  `json:"resourceId"`
	GridX             int64       `json:"gridX"`
	GridY             int64       `json:"gridY"`
	GridW             int64       `json:"gridW"`
	GridH             int64       `json:"gridH"`
	DisplayName       string      `json:"displayName"`
	PluginID          string      `json:"pluginId"`
	ResourceTypeID    string      `json:"resourceTypeId"`
	AccountID         string      `json:"accountId"`
	FieldsJSON        JSONObject  `json:"fieldsJson"`
	OutputsJSON       JSONObject  `json:"outputsJson"`
	PluginLogoSvg     string      `json:"pluginLogoSvg"`
	PluginDisplayName string      `json:"pluginDisplayName"`
	Status            ProbeStatus `json:"status"`
}

PinFull is the `PinFull` schema.

type PinRangeMetricSeries

type PinRangeMetricSeries struct {
	Label  string                       `json:"label"`
	Unit   *string                      `json:"unit,omitempty"`
	Points []PinRangeMetricSeriesPoints `json:"points"`
}

PinRangeMetricSeries is the `PinRangeMetricSeries` schema.

type PinRangeMetricSeriesPoints

type PinRangeMetricSeriesPoints struct {
	Timestamp float64 `json:"timestamp"`
	Value     float64 `json:"value"`
}

PinRangeMetricSeriesPoints is an object the spec declares inline.

type PinRangeResponse

type PinRangeResponse struct {
	Series []PinRangeMetricSeries `json:"series"`
}

PinRangeResponse is the `PinRangeResponse` schema.

type PinRequest

type PinRequest struct {
	DashboardID string     `json:"dashboardId"`
	ResourceID  ResourceID `json:"resourceId"`
	GridX       *int64     `json:"gridX,omitempty"`
	GridY       *int64     `json:"gridY,omitempty"`
}

PinRequest is the `PinRequest` schema.

type PluginID

type PluginID = string

PluginID: Manifest id of an installed plugin.

Spec schema: `PluginId`.

const (
	PluginIDAWS          PluginID = "aws"
	PluginIDAzure        PluginID = "azure"
	PluginIDClickhouse   PluginID = "clickhouse"
	PluginIDCloudflare   PluginID = "cloudflare"
	PluginIDCloudinary   PluginID = "cloudinary"
	PluginIDDatabricks   PluginID = "databricks"
	PluginIDDigitalocean PluginID = "digitalocean"
	PluginIDDocker       PluginID = "docker"
	PluginIDFly          PluginID = "fly"
	PluginIDGCP          PluginID = "gcp"
	PluginIDHetzner      PluginID = "hetzner"
	PluginIDKafka        PluginID = "kafka"
	PluginIDKubernetes   PluginID = "kubernetes"
	PluginIDMemcached    PluginID = "memcached"
	PluginIDMongodb      PluginID = "mongodb"
	PluginIDMssql        PluginID = "mssql"
	PluginIDMysql        PluginID = "mysql"
	PluginIDNeon         PluginID = "neon"
	PluginIDNetlify      PluginID = "netlify"
	PluginIDOpensearch   PluginID = "opensearch"
	PluginIDOVH          PluginID = "ovh"
	PluginIDPlanetscale  PluginID = "planetscale"
	PluginIDPostgres     PluginID = "postgres"
	PluginIDRedis        PluginID = "redis"
	PluginIDScaleway     PluginID = "scaleway"
	PluginIDSSH          PluginID = "ssh"
	PluginIDTurso        PluginID = "turso"
	PluginIDVercel       PluginID = "vercel"
)

The values PluginID takes.

type PluginSummary

type PluginSummary struct {
	ID               string            `json:"id"`
	DisplayName      string            `json:"displayName"`
	LogoSvg          string            `json:"logoSvg"`
	CredentialFields []CredentialField `json:"credentialFields"`
}

PluginSummary is the `PluginSummary` schema.

type ProbeRequest

type ProbeRequest struct {
	Items []ProbeRequestItems `json:"items"`
}

ProbeRequest is the `ProbeRequest` schema.

type ProbeRequestItems

type ProbeRequestItems struct {
	ResourceID     ResourceID `json:"resourceId"`
	AccountID      string     `json:"accountId"`
	PluginID       string     `json:"pluginId"`
	ResourceTypeID string     `json:"resourceTypeId"`
}

ProbeRequestItems is an object the spec declares inline.

type ProbeStatus

type ProbeStatus struct {
	// Phase: One of "ok", "loading", "error".
	Phase          string                      `json:"phase"`
	Error          *string                     `json:"error,omitempty"`
	Stats          []JSONObject                `json:"stats,omitempty"`
	Sparkline      []ProbeStatusSparkline      `json:"sparkline,omitempty"`
	SparklineLabel *string                     `json:"sparklineLabel,omitempty"`
	ResourceCounts []ProbeStatusResourceCounts `json:"resourceCounts,omitempty"`
}

ProbeStatus is the `ProbeStatus` schema.

type ProbeStatusResourceCounts

type ProbeStatusResourceCounts struct {
	TypeID string `json:"typeId"`
	Count  int64  `json:"count"`
}

ProbeStatusResourceCounts is an object the spec declares inline.

type ProbeStatusSparkline

type ProbeStatusSparkline struct {
	Ts    float64 `json:"ts"`
	Value float64 `json:"value"`
}

ProbeStatusSparkline is an object the spec declares inline.

type Profile

type Profile struct {
	ID                string  `json:"id"`
	Email             string  `json:"email"`
	EmailVerified     bool    `json:"emailVerified"`
	FirstName         *string `json:"firstName"`
	LastName          *string `json:"lastName"`
	ProfilePictureURL *string `json:"profilePictureUrl"`
	LastSignInAt      *string `json:"lastSignInAt"`
	CreatedAt         string  `json:"createdAt"`
	// Identities: Connected OAuth accounts, if any
	Identities []ProfileIdentities `json:"identities"`
}

Profile is the `Profile` schema.

type ProfileEmailChangeConfirmParams

type ProfileEmailChangeConfirmParams struct {
	// Body: the JSON request body.
	Body *ProfileEmailChangeConfirmRequest
}

ProfileEmailChangeConfirmParams holds the parameters for `client.profile.emailChange.confirm`.

Every field is optional; pass nil to take the defaults.

type ProfileEmailChangeConfirmRequest

type ProfileEmailChangeConfirmRequest struct {
	Code string `json:"code"`
}

ProfileEmailChangeConfirmRequest is an object the spec declares inline.

type ProfileEmailChangeConfirmResponse

type ProfileEmailChangeConfirmResponse struct {
	Email string `json:"email"`
}

ProfileEmailChangeConfirmResponse is an object the spec declares inline.

type ProfileEmailChangeCreateParams

type ProfileEmailChangeCreateParams struct {
	// Body: the JSON request body.
	Body *ProfileEmailChangeCreateRequest
}

ProfileEmailChangeCreateParams holds the parameters for `client.profile.emailChange.create`.

Every field is optional; pass nil to take the defaults.

type ProfileEmailChangeCreateRequest

type ProfileEmailChangeCreateRequest struct {
	NewEmail string `json:"newEmail"`
}

ProfileEmailChangeCreateRequest is an object the spec declares inline.

type ProfileEmailChangeCreateResponse

type ProfileEmailChangeCreateResponse struct {
	NewEmail  string `json:"newEmail"`
	ExpiresAt string `json:"expiresAt"`
}

ProfileEmailChangeCreateResponse is an object the spec declares inline.

type ProfileEmailChangeNamespace

type ProfileEmailChangeNamespace struct {
	// contains filtered or unexported fields
}

ProfileEmailChangeNamespace is `client.profile.emailChange`.

func (*ProfileEmailChangeNamespace) Confirm

Confirm: Redeem an email change code

On success the account's email is the new address and it is marked verified.

POST /api/profile/email-change/confirm

Raises on 400: Bad request

Raises on 401: Unauthenticated

Raises on 403: Recent sign-in required. Send the user through sign-in again and retry; the request itself was well-formed.

func (*ProfileEmailChangeNamespace) Create

Create: Send a confirmation code to a new email address

Starts an email change. The code goes to the new address and the account keeps its current address until `/api/profile/email-change/confirm` redeems it, so an abandoned or mistyped change is harmless.

POST /api/profile/email-change

Raises on 400: Bad request

Raises on 401: Unauthenticated

Raises on 403: Recent sign-in required. Send the user through sign-in again and retry; the request itself was well-formed.

type ProfileIdentities

type ProfileIdentities struct {
	// Provider: WorkOS OAuth provider id
	Provider string `json:"provider"`
}

ProfileIdentities is an object the spec declares inline.

type ProfileMFAChallengeParams

type ProfileMFAChallengeParams struct {
	FactorID string
}

ProfileMFAChallengeParams holds the parameters for `client.profile.mfa.challenge`.

type ProfileMFADeleteParams

type ProfileMFADeleteParams struct {
	FactorID string
}

ProfileMFADeleteParams holds the parameters for `client.profile.mfa.delete`.

type ProfileMFANamespace

type ProfileMFANamespace struct {
	// contains filtered or unexported fields
}

ProfileMFANamespace is `client.profile.mfa`.

func (*ProfileMFANamespace) Challenge

Challenge: Issue a fresh challenge for a factor

POST /api/profile/mfa/{factorId}/challenge

Raises on 401: Unauthenticated

Raises on 404: Not found

func (*ProfileMFANamespace) Create

Create: Begin TOTP enrolment

Creates the factor and a first challenge. The factor only becomes usable once a code is verified; abandon the flow by DELETEing the returned `factorId`.

POST /api/profile/mfa

Raises on 401: Unauthenticated

Raises on 403: Recent sign-in required. Send the user through sign-in again and retry; the request itself was well-formed.

func (*ProfileMFANamespace) Delete

func (n *ProfileMFANamespace) Delete(ctx context.Context, params ProfileMFADeleteParams, opts ...RequestOption) (*OK, error)

Delete: Remove an authentication factor

DELETE /api/profile/mfa/{factorId}

Raises on 401: Unauthenticated

Raises on 403: Recent sign-in required. Send the user through sign-in again and retry; the request itself was well-formed.

Raises on 404: Not found

func (*ProfileMFANamespace) List

func (n *ProfileMFANamespace) List(ctx context.Context, opts ...RequestOption) ([]AuthFactor, error)

List: List enrolled authentication factors

Includes factors whose enrolment was never confirmed — WorkOS does not expose a verified flag.

GET /api/profile/mfa

Raises on 401: Unauthenticated

func (*ProfileMFANamespace) Verify

Verify: Verify a code against a challenge

POST /api/profile/mfa/{factorId}/verify

Raises on 400: Bad request

Raises on 401: Unauthenticated

Raises on 404: Not found

type ProfileMFAVerifyParams

type ProfileMFAVerifyParams struct {
	FactorID string
	// Body: the JSON request body.
	Body *ProfileMfaverifyRequest
}

ProfileMFAVerifyParams holds the parameters for `client.profile.mfa.verify`.

type ProfileMfachallengeResponse

type ProfileMfachallengeResponse struct {
	ChallengeID string `json:"challengeId"`
}

ProfileMfachallengeResponse is an object the spec declares inline.

type ProfileMfaverifyRequest

type ProfileMfaverifyRequest struct {
	ChallengeID string `json:"challengeId"`
	Code        string `json:"code"`
}

ProfileMfaverifyRequest is an object the spec declares inline.

type ProfileMfaverifyResponse

type ProfileMfaverifyResponse struct {
	Verified bool `json:"verified"`
}

ProfileMfaverifyResponse is an object the spec declares inline.

type ProfileNamespace

type ProfileNamespace struct {

	// EmailChange: `client.profile.emailChange`.
	EmailChange *ProfileEmailChangeNamespace
	// MFA: `client.profile.mfa`.
	MFA *ProfileMFANamespace
	// Sessions: `client.profile.sessions`.
	Sessions *ProfileSessionsNamespace
	// contains filtered or unexported fields
}

ProfileNamespace is `client.profile`.

func (*ProfileNamespace) Get

func (n *ProfileNamespace) Get(ctx context.Context, opts ...RequestOption) (*Profile, error)

Get: The signed-in user's account profile

User-scoped, not organization-scoped: one WorkOS identity is shared across every organization the user belongs to.

GET /api/profile

Raises on 401: Unauthenticated

func (*ProfileNamespace) PasswordReset

PasswordReset: Mint a password reset link for the signed-in user

Returns a one-time AuthKit-hosted reset URL rather than emailing it — the caller already holds a valid session for the account. Also the way to set a first password on an SSO or OAuth-only account.

POST /api/profile/password-reset

Raises on 401: Unauthenticated

Raises on 403: Recent sign-in required. Send the user through sign-in again and retry; the request itself was well-formed.

func (*ProfileNamespace) SendVerificationEmail

func (n *ProfileNamespace) SendVerificationEmail(ctx context.Context, opts ...RequestOption) (*OK, error)

SendVerificationEmail: Re-send the email verification message

POST /api/profile/send-verification-email

Raises on 400: Bad request

Raises on 401: Unauthenticated

func (*ProfileNamespace) Update

Update: Update the signed-in user's name

PATCH /api/profile

Raises on 400: Bad request

Raises on 401: Unauthenticated

type ProfilePasswordResetResponse

type ProfilePasswordResetResponse struct {
	PasswordResetURL string `json:"passwordResetUrl"`
	ExpiresAt        string `json:"expiresAt"`
}

ProfilePasswordResetResponse is an object the spec declares inline.

type ProfileSessionsDeleteParams

type ProfileSessionsDeleteParams struct {
	SessionID string
}

ProfileSessionsDeleteParams holds the parameters for `client.profile.sessions.delete`.

type ProfileSessionsNamespace

type ProfileSessionsNamespace struct {
	// contains filtered or unexported fields
}

ProfileSessionsNamespace is `client.profile.sessions`.

func (*ProfileSessionsNamespace) Delete

Delete: Revoke one session

Refuses the session making the request — use sign-out for that.

DELETE /api/profile/sessions/{sessionId}

Raises on 400: Bad request

Raises on 401: Unauthenticated

Raises on 404: Not found

func (*ProfileSessionsNamespace) List

List: List the signed-in user's active sessions

GET /api/profile/sessions

Raises on 401: Unauthenticated

func (*ProfileSessionsNamespace) RevokeOthers

RevokeOthers: Revoke every session except the current one

POST /api/profile/sessions/revoke-others

Raises on 401: Unauthenticated

Raises on 403: Recent sign-in required. Send the user through sign-in again and retry; the request itself was well-formed.

type ProfileSessionsRevokeOthersResponse

type ProfileSessionsRevokeOthersResponse struct {
	Revoked int64 `json:"revoked"`
}

ProfileSessionsRevokeOthersResponse is an object the spec declares inline.

type ProfileSummary

type ProfileSummary struct {
	ID                string  `json:"id"`
	Email             string  `json:"email"`
	EmailVerified     bool    `json:"emailVerified"`
	FirstName         *string `json:"firstName"`
	LastName          *string `json:"lastName"`
	ProfilePictureURL *string `json:"profilePictureUrl"`
	LastSignInAt      *string `json:"lastSignInAt"`
	CreatedAt         string  `json:"createdAt"`
}

ProfileSummary is the `ProfileSummary` schema.

type ProfileUpdateParams

type ProfileUpdateParams struct {
	// Body: the JSON request body.
	Body *ProfileUpdateRequest
}

ProfileUpdateParams holds the parameters for `client.profile.update`.

Every field is optional; pass nil to take the defaults.

type ProfileUpdateRequest

type ProfileUpdateRequest struct {
	FirstName *string `json:"firstName,omitempty"`
	LastName  *string `json:"lastName,omitempty"`
}

ProfileUpdateRequest is an object the spec declares inline.

type ReauthenticationRequired

type ReauthenticationRequired struct {
	// Error: Human-readable error message
	Error string `json:"error"`
	// Code: One of "reauthentication_required".
	Code string `json:"code"`
}

ReauthenticationRequired is the `ReauthenticationRequired` schema.

type ReorderRequest

type ReorderRequest struct {
	Cards       []ReorderRequestCards `json:"cards,omitempty"`
	ResourceIDs []ResourceID          `json:"resourceIds,omitempty"`
}

ReorderRequest is the `ReorderRequest` schema.

type ReorderRequestCards

type ReorderRequestCards struct {
	// Kind: One of "resource", "workflow", "widget".
	Kind string `json:"kind"`
	ID   string `json:"id"`
}

ReorderRequestCards is an object the spec declares inline.

type RequestOption

type RequestOption func(*requestConfig)

RequestOption overrides configuration for a single call. Cancellation and deadlines are not here on purpose: that is what the context.Context every method takes is for.

func WithQueryParam

func WithQueryParam(name, value string) RequestOption

WithQueryParam appends a query parameter this call's signature does not describe — an escape hatch for a server that has grown a parameter the generated code has not caught up with.

func WithRequestHeader

func WithRequestHeader(name, value string) RequestOption

WithRequestHeader sets a header on this call only, overriding any header of the same name set on the client.

type Resource

type Resource struct {
	ID               ResourceID  `json:"id"`
	PluginID         string      `json:"pluginId"`
	ResourceTypeID   string      `json:"resourceTypeId"`
	AccountID        string      `json:"accountId"`
	DisplayName      string      `json:"displayName"`
	ExternalID       *string     `json:"externalId"`
	FieldsJSON       JSONObject  `json:"fieldsJson"`
	OutputsJSON      JSONObject  `json:"outputsJson"`
	ParentResourceID *ResourceID `json:"parentResourceId"`
}

Resource is the `Resource` schema.

type ResourceDetail

type ResourceDetail struct {
	DetailSchema         JSONObject         `json:"detailSchema"`
	ChildResources       []ChildResourceRef `json:"childResources"`
	ChildTypes           []ChildTypeRef     `json:"childTypes"`
	PluginID             string             `json:"pluginId"`
	PluginLogoSvg        string             `json:"pluginLogoSvg"`
	ResourceID           ResourceID         `json:"resourceId"`
	AccountID            string             `json:"accountId"`
	ResourceTypeID       string             `json:"resourceTypeId"`
	PeerPanes            []PeerPane         `json:"peerPanes"`
	PeerIntegrationStubs []PeerPaneStub     `json:"peerIntegrationStubs"`
	CanDelete            bool               `json:"canDelete"`
	CanEdit              bool               `json:"canEdit"`
	EditableFields       []EditableField    `json:"editableFields"`
	CredentialFormats    []CredentialFormat `json:"credentialFormats"`
	HasManifestEditor    bool               `json:"hasManifestEditor"`
	HasSecretVersions    bool               `json:"hasSecretVersions"`
	ResourceDisplayName  string             `json:"resourceDisplayName"`
	ResourceTypeLabel    string             `json:"resourceTypeLabel"`
	ResourceFields       JSONObject         `json:"resourceFields"`
	HasSQLEditor         bool               `json:"hasSqlEditor"`
	HasStorageBrowser    bool               `json:"hasStorageBrowser"`
	HasArtifactRegistry  bool               `json:"hasArtifactRegistry"`
	HasKVBrowser         bool               `json:"hasKvBrowser"`
	HasKVConsole         bool               `json:"hasKvConsole"`
	KVDriverName         *string            `json:"kvDriverName,omitempty"`
	IsMongoDB            bool               `json:"isMongoDb"`
	HasDockerActions     bool               `json:"hasDockerActions"`
	HasSSHTerminal       bool               `json:"hasSshTerminal"`
	HasSFTPBrowser       bool               `json:"hasSftpBrowser"`
	SSHHost              *string            `json:"sshHost"`
	SSHPrivateHost       *string            `json:"sshPrivateHost,omitempty"`
	DefaultSSHUsername   *string            `json:"defaultSshUsername"`
	ContainerID          string             `json:"containerId"`
	DatabaseName         string             `json:"databaseName"`
	StorageBucketName    string             `json:"storageBucketName"`
	SupportsMetrics      bool               `json:"supportsMetrics"`
}

ResourceDetail is the `ResourceDetail` schema.

type ResourceID

type ResourceID = string

ResourceID: Composite id `pluginId:accountId:externalId`.

Spec schema: `ResourceId`.

type ResourceStatus

type ResourceStatus = string

ResourceStatus: Normalized status reported by a plugin's renderSidebarItem/renderDetail.

const (
	ResourceStatusHealthy ResourceStatus = "healthy"
	ResourceStatusWarning ResourceStatus = "warning"
	ResourceStatusError   ResourceStatus = "error"
	ResourceStatusUnknown ResourceStatus = "unknown"
	ResourceStatusPending ResourceStatus = "pending"
	ResourceStatusStopped ResourceStatus = "stopped"
)

The values ResourceStatus takes.

type ResourceTypeID

type ResourceTypeID = string

ResourceTypeID: Resource type id. Note: not every plugin exposes every type — see the plugin's `resourceTypes` for the valid (pluginId, typeId) pairs.

Spec schema: `ResourceTypeId`.

const (
	ResourceTypeIDAccessApplication              ResourceTypeID = "access-application"
	ResourceTypeIDAccessPolicy                   ResourceTypeID = "access-policy"
	ResourceTypeIDAcmCertificate                 ResourceTypeID = "acm-certificate"
	ResourceTypeIDAgentAPIKey                    ResourceTypeID = "agent-api-key"
	ResourceTypeIDAiGateway                      ResourceTypeID = "ai-gateway"
	ResourceTypeIDAiSearch                       ResourceTypeID = "ai-search"
	ResourceTypeIDAlb                            ResourceTypeID = "alb"
	ResourceTypeIDAlertPolicy                    ResourceTypeID = "alert-policy"
	ResourceTypeIDAlloydbCluster                 ResourceTypeID = "alloydb-cluster"
	ResourceTypeIDAlloydbInstance                ResourceTypeID = "alloydb-instance"
	ResourceTypeIDAPIGateway                     ResourceTypeID = "api-gateway"
	ResourceTypeIDApp                            ResourceTypeID = "app"
	ResourceTypeIDAppEngineService               ResourceTypeID = "app-engine-service"
	ResourceTypeIDApprunnerService               ResourceTypeID = "apprunner-service"
	ResourceTypeIDArtifactRegistryRepo           ResourceTypeID = "artifact-registry-repo"
	ResourceTypeIDAutoScalingGroup               ResourceTypeID = "auto-scaling-group"
	ResourceTypeIDAzureAksCluster                ResourceTypeID = "azure-aks-cluster"
	ResourceTypeIDAzureAppGateway                ResourceTypeID = "azure-app-gateway"
	ResourceTypeIDAzureAppRegistration           ResourceTypeID = "azure-app-registration"
	ResourceTypeIDAzureAppService                ResourceTypeID = "azure-app-service"
	ResourceTypeIDAzureContainerInstance         ResourceTypeID = "azure-container-instance"
	ResourceTypeIDAzureContainerRegistry         ResourceTypeID = "azure-container-registry"
	ResourceTypeIDAzureCosmosDB                  ResourceTypeID = "azure-cosmos-db"
	ResourceTypeIDAzureDisk                      ResourceTypeID = "azure-disk"
	ResourceTypeIDAzureDNSZone                   ResourceTypeID = "azure-dns-zone"
	ResourceTypeIDAzureEventHub                  ResourceTypeID = "azure-event-hub"
	ResourceTypeIDAzureFirewall                  ResourceTypeID = "azure-firewall"
	ResourceTypeIDAzureFunctionApp               ResourceTypeID = "azure-function-app"
	ResourceTypeIDAzureKeyVault                  ResourceTypeID = "azure-key-vault"
	ResourceTypeIDAzureLoadBalancer              ResourceTypeID = "azure-load-balancer"
	ResourceTypeIDAzureLogAnalytics              ResourceTypeID = "azure-log-analytics"
	ResourceTypeIDAzureManagedIdentity           ResourceTypeID = "azure-managed-identity"
	ResourceTypeIDAzureMysqlFlexible             ResourceTypeID = "azure-mysql-flexible"
	ResourceTypeIDAzureNatGateway                ResourceTypeID = "azure-nat-gateway"
	ResourceTypeIDAzureNsg                       ResourceTypeID = "azure-nsg"
	ResourceTypeIDAzurePostgresFlexible          ResourceTypeID = "azure-postgres-flexible"
	ResourceTypeIDAzurePrivateDNSZone            ResourceTypeID = "azure-private-dns-zone"
	ResourceTypeIDAzurePublicIP                  ResourceTypeID = "azure-public-ip"
	ResourceTypeIDAzureRedisCache                ResourceTypeID = "azure-redis-cache"
	ResourceTypeIDAzureResourceGroup             ResourceTypeID = "azure-resource-group"
	ResourceTypeIDAzureRouteTable                ResourceTypeID = "azure-route-table"
	ResourceTypeIDAzureServiceBus                ResourceTypeID = "azure-service-bus"
	ResourceTypeIDAzureSQLDatabase               ResourceTypeID = "azure-sql-database"
	ResourceTypeIDAzureStorageAccount            ResourceTypeID = "azure-storage-account"
	ResourceTypeIDAzureSubnet                    ResourceTypeID = "azure-subnet"
	ResourceTypeIDAzureVM                        ResourceTypeID = "azure-vm"
	ResourceTypeIDAzureVnet                      ResourceTypeID = "azure-vnet"
	ResourceTypeIDBackendService                 ResourceTypeID = "backend-service"
	ResourceTypeIDBackupVault                    ResourceTypeID = "backup-vault"
	ResourceTypeIDBatchJobQueue                  ResourceTypeID = "batch-job-queue"
	ResourceTypeIDBedrockModel                   ResourceTypeID = "bedrock-model"
	ResourceTypeIDBigqueryDataset                ResourceTypeID = "bigquery-dataset"
	ResourceTypeIDBigqueryTable                  ResourceTypeID = "bigquery-table"
	ResourceTypeIDBigtableInstance               ResourceTypeID = "bigtable-instance"
	ResourceTypeIDBlockVolume                    ResourceTypeID = "block-volume"
	ResourceTypeIDCacheRule                      ResourceTypeID = "cache-rule"
	ResourceTypeIDCertificate                    ResourceTypeID = "certificate"
	ResourceTypeIDChDatabase                     ResourceTypeID = "ch-database"
	ResourceTypeIDChService                      ResourceTypeID = "ch-service"
	ResourceTypeIDCloudArmorPolicy               ResourceTypeID = "cloud-armor-policy"
	ResourceTypeIDCloudBuildTrigger              ResourceTypeID = "cloud-build-trigger"
	ResourceTypeIDCloudDeployPipeline            ResourceTypeID = "cloud-deploy-pipeline"
	ResourceTypeIDCloudDNSRecordSet              ResourceTypeID = "cloud-dns-record-set"
	ResourceTypeIDCloudDNSZone                   ResourceTypeID = "cloud-dns-zone"
	ResourceTypeIDCloudFunction                  ResourceTypeID = "cloud-function"
	ResourceTypeIDCloudNat                       ResourceTypeID = "cloud-nat"
	ResourceTypeIDCloudRouter                    ResourceTypeID = "cloud-router"
	ResourceTypeIDCloudRunService                ResourceTypeID = "cloud-run-service"
	ResourceTypeIDCloudSchedulerJob              ResourceTypeID = "cloud-scheduler-job"
	ResourceTypeIDCloudTasksQueue                ResourceTypeID = "cloud-tasks-queue"
	ResourceTypeIDCloudformationStack            ResourceTypeID = "cloudformation-stack"
	ResourceTypeIDCloudfrontDistribution         ResourceTypeID = "cloudfront-distribution"
	ResourceTypeIDCloudsqlInstance               ResourceTypeID = "cloudsql-instance"
	ResourceTypeIDCloudtrailTrail                ResourceTypeID = "cloudtrail-trail"
	ResourceTypeIDCloudwatchAlarm                ResourceTypeID = "cloudwatch-alarm"
	ResourceTypeIDCloudwatchLogGroup             ResourceTypeID = "cloudwatch-log-group"
	ResourceTypeIDCodebuildProject               ResourceTypeID = "codebuild-project"
	ResourceTypeIDCodepipelinePipeline           ResourceTypeID = "codepipeline-pipeline"
	ResourceTypeIDCognitoUserPool                ResourceTypeID = "cognito-user-pool"
	ResourceTypeIDComposerEnvironment            ResourceTypeID = "composer-environment"
	ResourceTypeIDCustomHostname                 ResourceTypeID = "custom-hostname"
	ResourceTypeIDD1Database                     ResourceTypeID = "d1-database"
	ResourceTypeIDDatabricksApp                  ResourceTypeID = "databricks-app"
	ResourceTypeIDDatabricksCatalog              ResourceTypeID = "databricks-catalog"
	ResourceTypeIDDatabricksCluster              ResourceTypeID = "databricks-cluster"
	ResourceTypeIDDatabricksClusterPolicy        ResourceTypeID = "databricks-cluster-policy"
	ResourceTypeIDDatabricksDashboard            ResourceTypeID = "databricks-dashboard"
	ResourceTypeIDDatabricksFunction             ResourceTypeID = "databricks-function"
	ResourceTypeIDDatabricksJob                  ResourceTypeID = "databricks-job"
	ResourceTypeIDDatabricksModelVersion         ResourceTypeID = "databricks-model-version"
	ResourceTypeIDDatabricksNodeType             ResourceTypeID = "databricks-node-type"
	ResourceTypeIDDatabricksPipeline             ResourceTypeID = "databricks-pipeline"
	ResourceTypeIDDatabricksRegisteredModel      ResourceTypeID = "databricks-registered-model"
	ResourceTypeIDDatabricksRepo                 ResourceTypeID = "databricks-repo"
	ResourceTypeIDDatabricksSchema               ResourceTypeID = "databricks-schema"
	ResourceTypeIDDatabricksSecretScope          ResourceTypeID = "databricks-secret-scope"
	ResourceTypeIDDatabricksServingEndpoint      ResourceTypeID = "databricks-serving-endpoint"
	ResourceTypeIDDatabricksSQLQuery             ResourceTypeID = "databricks-sql-query"
	ResourceTypeIDDatabricksSQLWarehouse         ResourceTypeID = "databricks-sql-warehouse"
	ResourceTypeIDDatabricksTable                ResourceTypeID = "databricks-table"
	ResourceTypeIDDatabricksVectorSearchEndpoint ResourceTypeID = "databricks-vector-search-endpoint"
	ResourceTypeIDDatabricksVectorSearchIndex    ResourceTypeID = "databricks-vector-search-index"
	ResourceTypeIDDatabricksVolume               ResourceTypeID = "databricks-volume"
	ResourceTypeIDDatabricksWorkspaceObject      ResourceTypeID = "databricks-workspace-object"
	ResourceTypeIDDataflowJob                    ResourceTypeID = "dataflow-job"
	ResourceTypeIDDBUser                         ResourceTypeID = "db-user"
	ResourceTypeIDDedicatedInference             ResourceTypeID = "dedicated-inference"
	ResourceTypeIDDNSRecord                      ResourceTypeID = "dns-record"
	ResourceTypeIDDockerContainer                ResourceTypeID = "docker-container"
	ResourceTypeIDDockerImage                    ResourceTypeID = "docker-image"
	ResourceTypeIDDockerNetwork                  ResourceTypeID = "docker-network"
	ResourceTypeIDDockerVolume                   ResourceTypeID = "docker-volume"
	ResourceTypeIDDocumentdbCluster              ResourceTypeID = "documentdb-cluster"
	ResourceTypeIDDoksCluster                    ResourceTypeID = "doks-cluster"
	ResourceTypeIDDomain                         ResourceTypeID = "domain"
	ResourceTypeIDDroplet                        ResourceTypeID = "droplet"
	ResourceTypeIDDurableObjectNamespace         ResourceTypeID = "durable-object-namespace"
	ResourceTypeIDDynamodbTable                  ResourceTypeID = "dynamodb-table"
	ResourceTypeIDEbsVolume                      ResourceTypeID = "ebs-volume"
	ResourceTypeIDEc2Instance                    ResourceTypeID = "ec2-instance"
	ResourceTypeIDEcrRepository                  ResourceTypeID = "ecr-repository"
	ResourceTypeIDEcsService                     ResourceTypeID = "ecs-service"
	ResourceTypeIDEfsFileSystem                  ResourceTypeID = "efs-file-system"
	ResourceTypeIDEksCluster                     ResourceTypeID = "eks-cluster"
	ResourceTypeIDElasticIP                      ResourceTypeID = "elastic-ip"
	ResourceTypeIDElasticacheCluster             ResourceTypeID = "elasticache-cluster"
	ResourceTypeIDEmailRoutingRule               ResourceTypeID = "email-routing-rule"
	ResourceTypeIDEventbridgeRule                ResourceTypeID = "eventbridge-rule"
	ResourceTypeIDFirestoreDatabase              ResourceTypeID = "firestore-database"
	ResourceTypeIDFirewall                       ResourceTypeID = "firewall"
	ResourceTypeIDFirewallRule                   ResourceTypeID = "firewall-rule"
	ResourceTypeIDFloatingIP                     ResourceTypeID = "floating-ip"
	ResourceTypeIDFolder                         ResourceTypeID = "folder"
	ResourceTypeIDForwardingRule                 ResourceTypeID = "forwarding-rule"
	ResourceTypeIDGateway                        ResourceTypeID = "gateway"
	ResourceTypeIDGceDisk                        ResourceTypeID = "gce-disk"
	ResourceTypeIDGceInstance                    ResourceTypeID = "gce-instance"
	ResourceTypeIDGCPServiceAccount              ResourceTypeID = "gcp-service-account"
	ResourceTypeIDGcsBucket                      ResourceTypeID = "gcs-bucket"
	ResourceTypeIDGenAiAgent                     ResourceTypeID = "gen-ai-agent"
	ResourceTypeIDGenAiKnowledgeBase             ResourceTypeID = "gen-ai-knowledge-base"
	ResourceTypeIDGenAiModelRouter               ResourceTypeID = "gen-ai-model-router"
	ResourceTypeIDGkeCluster                     ResourceTypeID = "gke-cluster"
	ResourceTypeIDGlueDatabase                   ResourceTypeID = "glue-database"
	ResourceTypeIDHealthCheck                    ResourceTypeID = "health-check"
	ResourceTypeIDHealthcheck                    ResourceTypeID = "healthcheck"
	ResourceTypeIDHyperdrive                     ResourceTypeID = "hyperdrive"
	ResourceTypeIDIamRole                        ResourceTypeID = "iam-role"
	ResourceTypeIDIamUser                        ResourceTypeID = "iam-user"
	ResourceTypeIDImage                          ResourceTypeID = "image"
	ResourceTypeIDInferenceBatch                 ResourceTypeID = "inference-batch"
	ResourceTypeIDInstance                       ResourceTypeID = "instance"
	ResourceTypeIDInstanceGroup                  ResourceTypeID = "instance-group"
	ResourceTypeIDInstanceTemplate               ResourceTypeID = "instance-template"
	ResourceTypeIDInternetGateway                ResourceTypeID = "internet-gateway"
	ResourceTypeIDIPAccessRule                   ResourceTypeID = "ip-access-rule"
	ResourceTypeIDIPAllocation                   ResourceTypeID = "ip-allocation"
	ResourceTypeIDK8sCluster                     ResourceTypeID = "k8s-cluster"
	ResourceTypeIDK8sConfigmap                   ResourceTypeID = "k8s-configmap"
	ResourceTypeIDK8sCronjob                     ResourceTypeID = "k8s-cronjob"
	ResourceTypeIDK8sDaemonset                   ResourceTypeID = "k8s-daemonset"
	ResourceTypeIDK8sDeployment                  ResourceTypeID = "k8s-deployment"
	ResourceTypeIDK8sIngress                     ResourceTypeID = "k8s-ingress"
	ResourceTypeIDK8sJob                         ResourceTypeID = "k8s-job"
	ResourceTypeIDK8sNamespace                   ResourceTypeID = "k8s-namespace"
	ResourceTypeIDK8sPod                         ResourceTypeID = "k8s-pod"
	ResourceTypeIDK8sSecret                      ResourceTypeID = "k8s-secret"
	ResourceTypeIDK8sService                     ResourceTypeID = "k8s-service"
	ResourceTypeIDK8sStatefulset                 ResourceTypeID = "k8s-statefulset"
	ResourceTypeIDKafkaCluster                   ResourceTypeID = "kafka-cluster"
	ResourceTypeIDKafkaConsumerGroup             ResourceTypeID = "kafka-consumer-group"
	ResourceTypeIDKafkaTopic                     ResourceTypeID = "kafka-topic"
	ResourceTypeIDKapsuleCluster                 ResourceTypeID = "kapsule-cluster"
	ResourceTypeIDKinesisStream                  ResourceTypeID = "kinesis-stream"
	ResourceTypeIDKmsKey                         ResourceTypeID = "kms-key"
	ResourceTypeIDKmsKeyRing                     ResourceTypeID = "kms-key-ring"
	ResourceTypeIDKVNamespace                    ResourceTypeID = "kv-namespace"
	ResourceTypeIDLambdaFunction                 ResourceTypeID = "lambda-function"
	ResourceTypeIDLoadBalancer                   ResourceTypeID = "load-balancer"
	ResourceTypeIDLogSink                        ResourceTypeID = "log-sink"
	ResourceTypeIDLogpushJob                     ResourceTypeID = "logpush-job"
	ResourceTypeIDMachine                        ResourceTypeID = "machine"
	ResourceTypeIDManagedDatabase                ResourceTypeID = "managed-database"
	ResourceTypeIDManagedDB                      ResourceTypeID = "managed-db"
	ResourceTypeIDManagedKube                    ResourceTypeID = "managed-kube"
	ResourceTypeIDMediaAsset                     ResourceTypeID = "media-asset"
	ResourceTypeIDMemcachedInstance              ResourceTypeID = "memcached-instance"
	ResourceTypeIDMemorystoreMemcached           ResourceTypeID = "memorystore-memcached"
	ResourceTypeIDMemorystoreRedis               ResourceTypeID = "memorystore-redis"
	ResourceTypeIDModelAPIKey                    ResourceTypeID = "model-api-key"
	ResourceTypeIDMongodbDatabase                ResourceTypeID = "mongodb-database"
	ResourceTypeIDMqBroker                       ResourceTypeID = "mq-broker"
	ResourceTypeIDMskCluster                     ResourceTypeID = "msk-cluster"
	ResourceTypeIDMssqlDatabase                  ResourceTypeID = "mssql-database"
	ResourceTypeIDMysqlDatabase                  ResourceTypeID = "mysql-database"
	ResourceTypeIDNatGateway                     ResourceTypeID = "nat-gateway"
	ResourceTypeIDNeonAiGateway                  ResourceTypeID = "neon-ai-gateway"
	ResourceTypeIDNeonAuth                       ResourceTypeID = "neon-auth"
	ResourceTypeIDNeonAuthDomain                 ResourceTypeID = "neon-auth-domain"
	ResourceTypeIDNeonAuthOAuthProvider          ResourceTypeID = "neon-auth-oauth-provider"
	ResourceTypeIDNeonBranch                     ResourceTypeID = "neon-branch"
	ResourceTypeIDNeonBucket                     ResourceTypeID = "neon-bucket"
	ResourceTypeIDNeonCredential                 ResourceTypeID = "neon-credential"
	ResourceTypeIDNeonDataAPI                    ResourceTypeID = "neon-data-api"
	ResourceTypeIDNeonDatabase                   ResourceTypeID = "neon-database"
	ResourceTypeIDNeonEndpoint                   ResourceTypeID = "neon-endpoint"
	ResourceTypeIDNeonFunction                   ResourceTypeID = "neon-function"
	ResourceTypeIDNeonProject                    ResourceTypeID = "neon-project"
	ResourceTypeIDNeonRole                       ResourceTypeID = "neon-role"
	ResourceTypeIDNeonSnapshot                   ResourceTypeID = "neon-snapshot"
	ResourceTypeIDNeptuneCluster                 ResourceTypeID = "neptune-cluster"
	ResourceTypeIDNetlifyBuildHook               ResourceTypeID = "netlify-build-hook"
	ResourceTypeIDNetlifyDeploy                  ResourceTypeID = "netlify-deploy"
	ResourceTypeIDNetlifyDNSRecord               ResourceTypeID = "netlify-dns-record"
	ResourceTypeIDNetlifyDNSZone                 ResourceTypeID = "netlify-dns-zone"
	ResourceTypeIDNetlifyEnvVar                  ResourceTypeID = "netlify-env-var"
	ResourceTypeIDNetlifyForm                    ResourceTypeID = "netlify-form"
	ResourceTypeIDNetlifySite                    ResourceTypeID = "netlify-site"
	ResourceTypeIDNetwork                        ResourceTypeID = "network"
	ResourceTypeIDNfsShare                       ResourceTypeID = "nfs-share"
	ResourceTypeIDNotificationPolicy             ResourceTypeID = "notification-policy"
	ResourceTypeIDObjectStorageBucket            ResourceTypeID = "object-storage-bucket"
	ResourceTypeIDOpensearchCluster              ResourceTypeID = "opensearch-cluster"
	ResourceTypeIDOpensearchDomain               ResourceTypeID = "opensearch-domain"
	ResourceTypeIDPageRule                       ResourceTypeID = "page-rule"
	ResourceTypeIDPgDatabase                     ResourceTypeID = "pg-database"
	ResourceTypeIDPgSchema                       ResourceTypeID = "pg-schema"
	ResourceTypeIDPlacementGroup                 ResourceTypeID = "placement-group"
	ResourceTypeIDPrimaryIP                      ResourceTypeID = "primary-ip"
	ResourceTypeIDPrivateNetwork                 ResourceTypeID = "private-network"
	ResourceTypeIDProject                        ResourceTypeID = "project"
	ResourceTypeIDPsBackup                       ResourceTypeID = "ps-backup"
	ResourceTypeIDPsBranch                       ResourceTypeID = "ps-branch"
	ResourceTypeIDPsDatabase                     ResourceTypeID = "ps-database"
	ResourceTypeIDPsDeployRequest                ResourceTypeID = "ps-deploy-request"
	ResourceTypeIDPsPassword                     ResourceTypeID = "ps-password"
	ResourceTypeIDPubsubSubscription             ResourceTypeID = "pubsub-subscription"
	ResourceTypeIDPubsubTopic                    ResourceTypeID = "pubsub-topic"
	ResourceTypeIDQueue                          ResourceTypeID = "queue"
	ResourceTypeIDR2Bucket                       ResourceTypeID = "r2-bucket"
	ResourceTypeIDRateLimitRule                  ResourceTypeID = "rate-limit-rule"
	ResourceTypeIDRdbInstance                    ResourceTypeID = "rdb-instance"
	ResourceTypeIDRdsCluster                     ResourceTypeID = "rds-cluster"
	ResourceTypeIDRdsInstance                    ResourceTypeID = "rds-instance"
	ResourceTypeIDRedirectRule                   ResourceTypeID = "redirect-rule"
	ResourceTypeIDRedisInstance                  ResourceTypeID = "redis-instance"
	ResourceTypeIDRedshiftCluster                ResourceTypeID = "redshift-cluster"
	ResourceTypeIDRouteTable                     ResourceTypeID = "route-table"
	ResourceTypeIDRoute53HealthCheck             ResourceTypeID = "route53-health-check"
	ResourceTypeIDRoute53HostedZone              ResourceTypeID = "route53-hosted-zone"
	ResourceTypeIDRoute53RecordSet               ResourceTypeID = "route53-record-set"
	ResourceTypeIDS3Bucket                       ResourceTypeID = "s3-bucket"
	ResourceTypeIDSagemakerEndpoint              ResourceTypeID = "sagemaker-endpoint"
	ResourceTypeIDSecretManagerSecret            ResourceTypeID = "secret-manager-secret"
	ResourceTypeIDSecretsManagerSecret           ResourceTypeID = "secrets-manager-secret"
	ResourceTypeIDSecurityGroup                  ResourceTypeID = "security-group"
	ResourceTypeIDServer                         ResourceTypeID = "server"
	ResourceTypeIDSnapshot                       ResourceTypeID = "snapshot"
	ResourceTypeIDSnsTopic                       ResourceTypeID = "sns-topic"
	ResourceTypeIDSpacesBucket                   ResourceTypeID = "spaces-bucket"
	ResourceTypeIDSpannerBackup                  ResourceTypeID = "spanner-backup"
	ResourceTypeIDSpannerDatabase                ResourceTypeID = "spanner-database"
	ResourceTypeIDSpannerInstance                ResourceTypeID = "spanner-instance"
	ResourceTypeIDSpectrumApplication            ResourceTypeID = "spectrum-application"
	ResourceTypeIDSqsQueue                       ResourceTypeID = "sqs-queue"
	ResourceTypeIDSSHKey                         ResourceTypeID = "ssh-key"
	ResourceTypeIDSSHTarget                      ResourceTypeID = "ssh-target"
	ResourceTypeIDSSLCertificate                 ResourceTypeID = "ssl-certificate"
	ResourceTypeIDSsmParameter                   ResourceTypeID = "ssm-parameter"
	ResourceTypeIDStaticIP                       ResourceTypeID = "static-ip"
	ResourceTypeIDStepFunction                   ResourceTypeID = "step-function"
	ResourceTypeIDSubnet                         ResourceTypeID = "subnet"
	ResourceTypeIDTargetGroup                    ResourceTypeID = "target-group"
	ResourceTypeIDTransformation                 ResourceTypeID = "transformation"
	ResourceTypeIDTunnel                         ResourceTypeID = "tunnel"
	ResourceTypeIDTurnstileWidget                ResourceTypeID = "turnstile-widget"
	ResourceTypeIDTursoAPIToken                  ResourceTypeID = "turso-api-token"
	ResourceTypeIDTursoDatabase                  ResourceTypeID = "turso-database"
	ResourceTypeIDTursoDatabaseInstance          ResourceTypeID = "turso-database-instance"
	ResourceTypeIDTursoGroup                     ResourceTypeID = "turso-group"
	ResourceTypeIDTursoLocation                  ResourceTypeID = "turso-location"
	ResourceTypeIDTursoOrganizationInvite        ResourceTypeID = "turso-organization-invite"
	ResourceTypeIDTursoOrganizationMember        ResourceTypeID = "turso-organization-member"
	ResourceTypeIDUploadPreset                   ResourceTypeID = "upload-preset"
	ResourceTypeIDVectorizeIndex                 ResourceTypeID = "vectorize-index"
	ResourceTypeIDVercelDeployment               ResourceTypeID = "vercel-deployment"
	ResourceTypeIDVercelDomain                   ResourceTypeID = "vercel-domain"
	ResourceTypeIDVercelEnvVar                   ResourceTypeID = "vercel-env-var"
	ResourceTypeIDVercelProject                  ResourceTypeID = "vercel-project"
	ResourceTypeIDVercelTeam                     ResourceTypeID = "vercel-team"
	ResourceTypeIDVertexAiEndpoint               ResourceTypeID = "vertex-ai-endpoint"
	ResourceTypeIDVertexGeminiModel              ResourceTypeID = "vertex-gemini-model"
	ResourceTypeIDVolume                         ResourceTypeID = "volume"
	ResourceTypeIDVpc                            ResourceTypeID = "vpc"
	ResourceTypeIDVpcNetwork                     ResourceTypeID = "vpc-network"
	ResourceTypeIDWafWebACL                      ResourceTypeID = "waf-web-acl"
	ResourceTypeIDWaitingRoom                    ResourceTypeID = "waiting-room"
	ResourceTypeIDWorker                         ResourceTypeID = "worker"
	ResourceTypeIDWorkerRoute                    ResourceTypeID = "worker-route"
	ResourceTypeIDWorkersAiModel                 ResourceTypeID = "workers-ai-model"
	ResourceTypeIDWorkflow                       ResourceTypeID = "workflow"
	ResourceTypeIDZone                           ResourceTypeID = "zone"
)

The values ResourceTypeID takes.

type ResourceTypeSummary

type ResourceTypeSummary struct {
	ID                    string                             `json:"id"`
	DisplayName           string                             `json:"displayName"`
	PluralDisplayName     *string                            `json:"pluralDisplayName,omitempty"`
	ParentTypeID          *string                            `json:"parentTypeId,omitempty"`
	SupportsCreate        bool                               `json:"supportsCreate"`
	AttachTargets         []ResourceTypeSummaryAttachTargets `json:"attachTargets,omitempty"`
	IsSSHHost             *bool                              `json:"isSshHost,omitempty"`
	SSHTunnelAttachSource *bool                              `json:"sshTunnelAttachSource,omitempty"`
}

ResourceTypeSummary is the `ResourceTypeSummary` schema.

type ResourceTypeSummaryAttachTargets

type ResourceTypeSummaryAttachTargets struct {
	PluginID       string  `json:"pluginId"`
	ResourceTypeID string  `json:"resourceTypeId"`
	MatchField     *string `json:"matchField,omitempty"`
	Verb           *string `json:"verb,omitempty"`
}

ResourceTypeSummaryAttachTargets is an object the spec declares inline.

type ResourcesAttachParams

type ResourcesAttachParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body AttachRequest
}

ResourcesAttachParams holds the parameters for `client.resources.attach`.

type ResourcesCreateConfigParams

type ResourcesCreateConfigParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body CreateConfigRequest
}

ResourcesCreateConfigParams holds the parameters for `client.resources.createConfig`.

type ResourcesCreateCostEstimateParams

type ResourcesCreateCostEstimateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body CreateCostEstimateRequest
}

ResourcesCreateCostEstimateParams holds the parameters for `client.resources.createCostEstimate`.

type ResourcesCreateCostEstimateResponse

type ResourcesCreateCostEstimateResponse struct {
	Estimate JSONObject `json:"estimate"`
}

ResourcesCreateCostEstimateResponse is an object the spec declares inline.

type ResourcesCreateParams

type ResourcesCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body CreateResourceRequest
}

ResourcesCreateParams holds the parameters for `client.resources.create`.

type ResourcesCreatePricingParams

type ResourcesCreatePricingParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body CreatePricingRequest
}

ResourcesCreatePricingParams holds the parameters for `client.resources.createPricing`.

type ResourcesDeleteParams

type ResourcesDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID            *string
	PluginID         PluginID
	TypeID           ResourceTypeID
	ResourceID       ResourceID
	AccountID        string
	ParentResourceID *ResourceID
}

ResourcesDeleteParams holds the parameters for `client.resources.delete`.

type ResourcesDescribeParams

type ResourcesDescribeParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	PluginID PluginID
	TypeID   ResourceTypeID
	// Body: the JSON request body.
	Body DescribeRequest
}

ResourcesDescribeParams holds the parameters for `client.resources.describe`.

type ResourcesDetailParams

type ResourcesDetailParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID            *string
	PluginID         PluginID
	TypeID           ResourceTypeID
	ResourceID       ResourceID
	AccountID        *string
	ParentResourceID *ResourceID
	// IncludePeerPanes: Default true. If false, peer panes are returned as
	// stubs.
	//
	// One of "true", "false".
	IncludePeerPanes *string
}

ResourcesDetailParams holds the parameters for `client.resources.detail`.

type ResourcesExportCredentialParams

type ResourcesExportCredentialParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	PluginID PluginID
	TypeID   ResourceTypeID
	// Body: the JSON request body.
	Body ExportCredentialRequest
}

ResourcesExportCredentialParams holds the parameters for `client.resources.exportCredential`.

type ResourcesFieldActionParams

type ResourcesFieldActionParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body FieldActionRequest
}

ResourcesFieldActionParams holds the parameters for `client.resources.fieldAction`.

type ResourcesImportYAMLParams

type ResourcesImportYAMLParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	PluginID PluginID
	// Body: the JSON request body.
	Body ImportYAMLRequest
}

ResourcesImportYAMLParams holds the parameters for `client.resources.importYaml`.

type ResourcesInvokeActionParams

type ResourcesInvokeActionParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body InvokeActionRequest
}

ResourcesInvokeActionParams holds the parameters for `client.resources.invokeAction`.

type ResourcesLogsParams

type ResourcesLogsParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	PluginID PluginID
	TypeID   ResourceTypeID
	// Body: the JSON request body.
	Body LogsRequest
}

ResourcesLogsParams holds the parameters for `client.resources.logs`.

type ResourcesManifestCreateParams

type ResourcesManifestCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	PluginID PluginID
	TypeID   ResourceTypeID
	// Body: the JSON request body.
	Body ApplyManifestRequest
}

ResourcesManifestCreateParams holds the parameters for `client.resources.manifest.create`.

type ResourcesManifestGetParams

type ResourcesManifestGetParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID            *string
	PluginID         PluginID
	TypeID           ResourceTypeID
	ResourceID       ResourceID
	AccountID        string
	ParentResourceID *ResourceID
}

ResourcesManifestGetParams holds the parameters for `client.resources.manifest.get`.

type ResourcesManifestNamespace

type ResourcesManifestNamespace struct {
	// contains filtered or unexported fields
}

ResourcesManifestNamespace is `client.resources.manifest`.

func (*ResourcesManifestNamespace) Create

Create: Apply an edited manifest to a resource

_Requires permission: `resources:write`._

POST /api/org/{orgId}/resources/{pluginId}/{typeId}/manifest

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesManifestNamespace) Get

Get: Fetch the raw manifest (YAML/JSON) for a resource

_Requires permission: `resources:read`._

GET /api/org/{orgId}/resources/{pluginId}/{typeId}/manifest

Raises on 400: Bad request

Raises on 404: Not found

type ResourcesMetricsParams

type ResourcesMetricsParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	PluginID PluginID
	TypeID   ResourceTypeID
	// Body: the JSON request body.
	Body MetricsRequest
}

ResourcesMetricsParams holds the parameters for `client.resources.metrics`.

type ResourcesNamespace

type ResourcesNamespace struct {

	// Manifest: `client.resources.manifest`.
	Manifest *ResourcesManifestNamespace
	// SecretVersions: `client.resources.secretVersions`.
	SecretVersions *ResourcesSecretVersionsNamespace
	// contains filtered or unexported fields
}

ResourcesNamespace is `client.resources`.

func (*ResourcesNamespace) Attach

func (n *ResourcesNamespace) Attach(ctx context.Context, params ResourcesAttachParams, opts ...RequestOption) (*OK, error)

Attach: Attach a resource onto another (e.g. disk → VM)

_Requires permission: `resources:write`._

POST /api/org/{orgId}/resources/attach

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) Create

Create: Create a new resource via its plugin

_Requires permission: `resources:write`._

POST /api/org/{orgId}/resources/create

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) CreateConfig

CreateConfig: Get the dynamic create form for a resource type

Calls the plugin's `getCreateConfig`. The returned `CreateResourceConfig` is plugin-shaped — see `JsonObject`.

_Requires permission: `resources:write`._

POST /api/org/{orgId}/resources/create-config

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) CreateCostEstimate

CreateCostEstimate: Cost estimate for the current create form values

_Requires permission: `resources:read`._

POST /api/org/{orgId}/resources/create-cost-estimate

func (*ResourcesNamespace) CreatePricing

CreatePricing: Pricing per size for a create form

_Requires permission: `resources:read`._

POST /api/org/{orgId}/resources/create-pricing

func (*ResourcesNamespace) Delete

func (n *ResourcesNamespace) Delete(ctx context.Context, params ResourcesDeleteParams, opts ...RequestOption) (*OK, error)

Delete: Delete a resource via the plugin

_Requires permission: `resources:delete`._

DELETE /api/org/{orgId}/resources/{pluginId}/{typeId}

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) Describe

Describe: Get human-readable describe text for a resource

_Requires permission: `resources:read`._

POST /api/org/{orgId}/resources/{pluginId}/{typeId}/describe

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) Detail

Detail: Full resource detail page payload

Performs a live `listResources` against the provider, falls back to DB on failure, and returns the plugin's `renderDetail` schema plus host-derived flags (SQL/KV/SSH availability, child resources, peer panes, etc).

_Requires permission: `resources:read`._

GET /api/org/{orgId}/resources/{pluginId}/{typeId}/detail

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) ExportCredential

ExportCredential: Export a credential file for a resource (one-time reveal)

_Requires permission: `secrets:read`._

POST /api/org/{orgId}/resources/{pluginId}/{typeId}/export-credential

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) FieldAction

FieldAction: Execute an in-form field action (e.g. generate an IAM role)

Calls the plugin's `executeFieldAction`. Returns `{ value }` to assign to the field; for `select` fields the optional `option` should be spliced into the options list so the new value can be displayed.

POST /api/org/{orgId}/resources/field-action

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) ImportYAML

ImportYAML: Bulk-import resources from YAML (kubectl apply -f equivalent)

_Requires permission: `resources:write`._

POST /api/org/{orgId}/resources/{pluginId}/import-yaml

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) InvokeAction

func (n *ResourcesNamespace) InvokeAction(ctx context.Context, params ResourcesInvokeActionParams, opts ...RequestOption) (*OK, error)

InvokeAction: Invoke a plugin-defined action on a resource

_Requires permission: `resources:write`._

POST /api/org/{orgId}/resources/invoke-action

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) Logs

Logs: Fetch logs for a resource

_Requires permission: `resources:read`._

POST /api/org/{orgId}/resources/{pluginId}/{typeId}/logs

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) Metrics

Metrics: Fetch metric series for a resource

_Requires permission: `resources:read`._

POST /api/org/{orgId}/resources/{pluginId}/{typeId}/metrics

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) NoSQLCommand

NoSQLCommand: Run a NoSQL document-browser command (e.g. MongoDB shell)

_Requires permission: `resources:execute`._

POST /api/org/{orgId}/resources/nosql-command

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesNamespace) PeerPanes

func (n *ResourcesNamespace) PeerPanes(ctx context.Context, params ResourcesPeerPanesParams, opts ...RequestOption) ([]PeerPane, error)

PeerPanes: Lazy-fetch peer-integration panes for a resource

_Requires permission: `resources:read`._

POST /api/org/{orgId}/resources/{pluginId}/{typeId}/peer-panes

Raises on 404: Not found

func (*ResourcesNamespace) PickerResources

PickerResources: Fetch options for a `resource-picker` field

_Requires permission: `resources:read`._

POST /api/org/{orgId}/resources/picker-resources

func (*ResourcesNamespace) Update

Update: Update a resource via its plugin

Applies the supplied field changes upstream and persists the refreshed fields/display name to the DB. The body's `fields` map only carries the keys the caller actually changed.

POST /api/org/{orgId}/resources/update

Raises on 400: Bad request

Raises on 404: Not found

type ResourcesNoSQLCommandParams

type ResourcesNoSQLCommandParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body NoSQLCommandRequest
}

ResourcesNoSQLCommandParams holds the parameters for `client.resources.nosqlCommand`.

type ResourcesNoSqlcommandResponse

type ResourcesNoSqlcommandResponse struct {
	Result JSONObject `json:"result"`
}

ResourcesNoSqlcommandResponse is an object the spec declares inline.

type ResourcesPeerPanesParams

type ResourcesPeerPanesParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	PluginID PluginID
	TypeID   ResourceTypeID
	// Body: the JSON request body.
	Body PeerPanesRequest
}

ResourcesPeerPanesParams holds the parameters for `client.resources.peerPanes`.

type ResourcesPickerResourcesParams

type ResourcesPickerResourcesParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body PickerResourcesRequest
}

ResourcesPickerResourcesParams holds the parameters for `client.resources.pickerResources`.

type ResourcesSecretVersionsAccessParams

type ResourcesSecretVersionsAccessParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	PluginID PluginID
	TypeID   ResourceTypeID
	// Body: the JSON request body.
	Body SecretAccessRequest
}

ResourcesSecretVersionsAccessParams holds the parameters for `client.resources.secretVersions.access`.

type ResourcesSecretVersionsAddParams

type ResourcesSecretVersionsAddParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	PluginID PluginID
	TypeID   ResourceTypeID
	// Body: the JSON request body.
	Body SecretAddRequest
}

ResourcesSecretVersionsAddParams holds the parameters for `client.resources.secretVersions.add`.

type ResourcesSecretVersionsGetParams

type ResourcesSecretVersionsGetParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID            *string
	PluginID         PluginID
	TypeID           ResourceTypeID
	ResourceID       ResourceID
	AccountID        string
	ParentResourceID *ResourceID
}

ResourcesSecretVersionsGetParams holds the parameters for `client.resources.secretVersions.get`.

type ResourcesSecretVersionsModifyParams

type ResourcesSecretVersionsModifyParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID    *string
	PluginID PluginID
	TypeID   ResourceTypeID
	// Body: the JSON request body.
	Body SecretModifyRequest
}

ResourcesSecretVersionsModifyParams holds the parameters for `client.resources.secretVersions.modify`.

type ResourcesSecretVersionsNamespace

type ResourcesSecretVersionsNamespace struct {
	// contains filtered or unexported fields
}

ResourcesSecretVersionsNamespace is `client.resources.secretVersions`.

func (*ResourcesSecretVersionsNamespace) Access

Access: Reveal the plaintext value of a specific version (one-time)

_Requires permission: `secrets:read`._

POST /api/org/{orgId}/resources/{pluginId}/{typeId}/secret-versions/access

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesSecretVersionsNamespace) Add

Add: Add a new secret version

_Requires permission: `secrets:write`._

POST /api/org/{orgId}/resources/{pluginId}/{typeId}/secret-versions/add

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesSecretVersionsNamespace) Get

Get: List secret versions for a versioned-secret resource

_Requires permission: `secrets:read`._

GET /api/org/{orgId}/resources/{pluginId}/{typeId}/secret-versions

Raises on 400: Bad request

Raises on 404: Not found

func (*ResourcesSecretVersionsNamespace) Modify

Modify: Enable/disable/destroy a secret version

_Requires permission: `secrets:write`._

POST /api/org/{orgId}/resources/{pluginId}/{typeId}/secret-versions/modify

Raises on 400: Bad request

Raises on 404: Not found

type ResourcesUpdateParams

type ResourcesUpdateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body UpdateResourceRequest
}

ResourcesUpdateParams holds the parameters for `client.resources.update`.

type Role

type Role struct {
	ID          string       `json:"id"`
	Name        string       `json:"name"`
	Description *string      `json:"description"`
	IsSystem    bool         `json:"isSystem"`
	SystemKey   *string      `json:"systemKey"`
	Permissions []Permission `json:"permissions"`
}

Role is the `Role` schema.

type RoleChangeRequest

type RoleChangeRequest struct {
	Role   *OrganizationRole `json:"role,omitempty"`
	RoleID *string           `json:"roleId,omitempty"`
}

RoleChangeRequest is the `RoleChangeRequest` schema.

type RoleCreateRequest

type RoleCreateRequest struct {
	Name        string       `json:"name"`
	Description *string      `json:"description,omitempty"`
	Permissions []Permission `json:"permissions"`
}

RoleCreateRequest is the `RoleCreateRequest` schema.

type RoleSummary

type RoleSummary struct {
	ID          string  `json:"id"`
	Name        string  `json:"name"`
	Description *string `json:"description"`
	IsSystem    bool    `json:"isSystem"`
	SystemKey   *string `json:"systemKey"`
}

RoleSummary is the `RoleSummary` schema.

The API may send null in its place.

type RoleUpdateRequest

type RoleUpdateRequest struct {
	Name        *string      `json:"name,omitempty"`
	Description *string      `json:"description,omitempty"`
	Permissions []Permission `json:"permissions,omitempty"`
}

RoleUpdateRequest is the `RoleUpdateRequest` schema.

type SFTPDeleteParams

type SFTPDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body SFTPDeleteRequest
}

SFTPDeleteParams holds the parameters for `client.sftp.delete`.

type SFTPDeleteRequest

type SFTPDeleteRequest struct {
	AccountID   string  `json:"accountId"`
	Path        string  `json:"path"`
	SSHKeyID    *string `json:"sshKeyId,omitempty"`
	SSHHost     *string `json:"sshHost,omitempty"`
	SSHUsername *string `json:"sshUsername,omitempty"`
	IsDir       bool    `json:"isDir"`
}

SFTPDeleteRequest is the `SftpDeleteRequest` schema.

Spec schema: `SftpDeleteRequest`.

type SFTPDownloadParams

type SFTPDownloadParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID     *string
	AccountID string
	// Paths: JSON-encoded array of remote paths
	Paths       string
	BasePath    *string
	SSHKeyID    *string
	SSHHost     *string
	SSHUsername *string
}

SFTPDownloadParams holds the parameters for `client.sftp.download`.

type SFTPEntry

type SFTPEntry struct {
	Name       string  `json:"name"`
	IsDir      bool    `json:"isDir"`
	Size       *int64  `json:"size,omitempty"`
	ModifiedAt *string `json:"modifiedAt,omitempty"`
}

SFTPEntry is the `SftpEntry` schema.

Spec schema: `SftpEntry`.

type SFTPListParams

type SFTPListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body SFTPListRequest
}

SFTPListParams holds the parameters for `client.sftp.list`.

type SFTPListRequest

type SFTPListRequest struct {
	AccountID   string  `json:"accountId"`
	Path        string  `json:"path"`
	SSHKeyID    *string `json:"sshKeyId,omitempty"`
	SSHHost     *string `json:"sshHost,omitempty"`
	SSHUsername *string `json:"sshUsername,omitempty"`
}

SFTPListRequest is the `SftpListRequest` schema.

Spec schema: `SftpListRequest`.

type SFTPMkdirParams

type SFTPMkdirParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body SFTPPathRequest
}

SFTPMkdirParams holds the parameters for `client.sftp.mkdir`.

type SFTPNamespace

type SFTPNamespace struct {
	// contains filtered or unexported fields
}

SFTPNamespace is `client.sftp`.

func (*SFTPNamespace) Delete

func (n *SFTPNamespace) Delete(ctx context.Context, params SFTPDeleteParams, opts ...RequestOption) (*OK, error)

Delete: Delete a file or directory over SFTP

_Requires permission: `storage:write`._

POST /api/org/{orgId}/sftp/delete

Raises on 404: Not found

Raises on 500: Server error

func (*SFTPNamespace) Download

func (n *SFTPNamespace) Download(ctx context.Context, params SFTPDownloadParams, opts ...RequestOption) (io.ReadCloser, error)

Download: Download one or many files via SFTP (zipped if more than one)

_Requires permission: `storage:read`._

GET /api/org/{orgId}/v1/sftp/download

Raises on 400: Bad request

Raises on 404: Not found

Raises on 500: Server error

func (*SFTPNamespace) List

func (n *SFTPNamespace) List(ctx context.Context, params SFTPListParams, opts ...RequestOption) ([]SFTPEntry, error)

List: List a directory over SFTP

_Requires permission: `storage:read`._

POST /api/org/{orgId}/sftp/list

Raises on 404: Not found

Raises on 500: Server error

func (*SFTPNamespace) Mkdir

func (n *SFTPNamespace) Mkdir(ctx context.Context, params SFTPMkdirParams, opts ...RequestOption) (*OK, error)

Mkdir: Create a directory over SFTP

_Requires permission: `storage:write`._

POST /api/org/{orgId}/sftp/mkdir

Raises on 404: Not found

Raises on 500: Server error

func (*SFTPNamespace) Upload

func (n *SFTPNamespace) Upload(ctx context.Context, params SFTPUploadParams, opts ...RequestOption) (*OK, error)

Upload: Upload a file via SFTP

_Requires permission: `storage:write`._

POST /api/org/{orgId}/v1/sftp/upload

Raises on 400: Bad request

Raises on 404: Not found

type SFTPPathRequest

type SFTPPathRequest struct {
	AccountID   string  `json:"accountId"`
	Path        string  `json:"path"`
	SSHKeyID    *string `json:"sshKeyId,omitempty"`
	SSHHost     *string `json:"sshHost,omitempty"`
	SSHUsername *string `json:"sshUsername,omitempty"`
}

SFTPPathRequest is the `SftpPathRequest` schema.

Spec schema: `SftpPathRequest`.

type SFTPUploadForm

type SFTPUploadForm struct {
	AccountID   string    `json:"accountId"`
	RemotePath  string    `json:"remotePath"`
	File        io.Reader `json:"file"`
	SSHKeyID    *string   `json:"sshKeyId,omitempty"`
	SSHHost     *string   `json:"sshHost,omitempty"`
	SSHUsername *string   `json:"sshUsername,omitempty"`
}

SFTPUploadForm is the `SftpUploadForm` schema.

Spec schema: `SftpUploadForm`.

type SFTPUploadParams

type SFTPUploadParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: sent as `multipart/form-data`; the `io.Reader` field is the file.
	Body SFTPUploadForm
}

SFTPUploadParams holds the parameters for `client.sftp.upload`.

type SQLEstimateParams

type SQLEstimateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body SQLEstimateRequest
}

SQLEstimateParams holds the parameters for `client.sql.estimate`.

type SQLEstimateRequest

type SQLEstimateRequest struct {
	AccountID  string     `json:"accountId"`
	ResourceID ResourceID `json:"resourceId"`
	SQL        string     `json:"sql"`
}

SQLEstimateRequest is the `SqlEstimateRequest` schema.

Spec schema: `SqlEstimateRequest`.

type SQLExecuteParams

type SQLExecuteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body SQLExecuteRequest
}

SQLExecuteParams holds the parameters for `client.sql.execute`.

type SQLExecuteRequest

type SQLExecuteRequest struct {
	AccountID      string      `json:"accountId"`
	ResourceID     *ResourceID `json:"resourceId,omitempty"`
	ResourceTypeID *string     `json:"resourceTypeId,omitempty"`
	SQL            string      `json:"sql"`
	Params         []any       `json:"params,omitempty"`
}

SQLExecuteRequest is the `SqlExecuteRequest` schema.

Spec schema: `SqlExecuteRequest`.

type SQLExecuteResponse

type SQLExecuteResponse struct {
	AffectedRows int64 `json:"affectedRows"`
}

SQLExecuteResponse is the `SqlExecuteResponse` schema.

Spec schema: `SqlExecuteResponse`.

type SQLNamespace

type SQLNamespace struct {
	// contains filtered or unexported fields
}

SQLNamespace is `client.sql`.

func (*SQLNamespace) Estimate

func (n *SQLNamespace) Estimate(ctx context.Context, params SQLEstimateParams, opts ...RequestOption) (JSONObject, error)

Estimate: Dry-run cost estimate (e.g. BigQuery byte scan)

_Requires permission: `resources:read`._

POST /api/org/{orgId}/sql/estimate

Raises on 400: Bad request

Raises on 404: Not found

func (*SQLNamespace) Execute

func (n *SQLNamespace) Execute(ctx context.Context, params SQLExecuteParams, opts ...RequestOption) (*SQLExecuteResponse, error)

Execute: Run an INSERT/UPDATE/DELETE/DDL statement

_Requires permission: `resources:execute`._

POST /api/org/{orgId}/sql/execute

Raises on 400: Bad request

Raises on 404: Not found

func (*SQLNamespace) Query

func (n *SQLNamespace) Query(ctx context.Context, params SQLQueryParams, opts ...RequestOption) (any, error)

Query: Run a read-only SQL query

Routes to the right driver: REST `executeQuery` (BigQuery, Databricks), per-resource SQL driver (Neon, Turso) or account-level SQL driver (Postgres, MySQL).

_Requires permission: `resources:execute`._

POST /api/org/{orgId}/sql/query

Raises on 400: Bad request

Raises on 404: Not found

type SQLQueryParams

type SQLQueryParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body SQLQueryRequest
}

SQLQueryParams holds the parameters for `client.sql.query`.

type SQLQueryRequest

type SQLQueryRequest struct {
	AccountID      string      `json:"accountId"`
	ResourceID     *ResourceID `json:"resourceId,omitempty"`
	ResourceTypeID *string     `json:"resourceTypeId,omitempty"`
	SQL            string      `json:"sql"`
}

SQLQueryRequest is the `SqlQueryRequest` schema.

Spec schema: `SqlQueryRequest`.

type SQLQueryResponse

type SQLQueryResponse struct {
	Rows       []JSONObject `json:"rows"`
	DurationMs *int64       `json:"durationMs,omitempty"`
}

SQLQueryResponse is the `SqlQueryResponse` schema.

Spec schema: `SqlQueryResponse`.

type SSHExecRequest

type SSHExecRequest struct {
	SSHHost  string `json:"sshHost"`
	SSHPort  int64  `json:"sshPort"`
	SSHUser  string `json:"sshUser"`
	SSHKeyID string `json:"sshKeyId"`
	Command  string `json:"command"`
}

SSHExecRequest is the `SshExecRequest` schema.

Spec schema: `SshExecRequest`.

type SSHExecResponse

type SSHExecResponse struct {
	Stdout string  `json:"stdout"`
	Stderr *string `json:"stderr,omitempty"`
	Code   int64   `json:"code"`
}

SSHExecResponse is the `SshExecResponse` schema.

Spec schema: `SshExecResponse`.

type SSHKey

type SSHKey struct {
	ID          string     `json:"id"`
	Name        string     `json:"name"`
	KeyType     SSHKeyType `json:"keyType"`
	IsImported  bool       `json:"isImported"`
	Fingerprint *string    `json:"fingerprint"`
	PublicKey   string     `json:"publicKey"`
	UserID      string     `json:"userId"`
	OwnerEmail  string     `json:"ownerEmail"`
	OwnerName   string     `json:"ownerName"`
	CreatedAt   string     `json:"createdAt"`
}

SSHKey is the `SshKey` schema.

Spec schema: `SshKey`.

type SSHKeyType

type SSHKeyType = string

SSHKeyType is the `SshKeyType` schema.

Spec schema: `SshKeyType`.

const (
	SSHKeyTypeSSHRsa                        SSHKeyType = "ssh-rsa"
	SSHKeyTypeSSHEd25519                    SSHKeyType = "ssh-ed25519"
	SSHKeyTypeSSHDss                        SSHKeyType = "ssh-dss"
	SSHKeyTypeEcdsaSha2Nistp256             SSHKeyType = "ecdsa-sha2-nistp256"
	SSHKeyTypeEcdsaSha2Nistp384             SSHKeyType = "ecdsa-sha2-nistp384"
	SSHKeyTypeEcdsaSha2Nistp521             SSHKeyType = "ecdsa-sha2-nistp521"
	SSHKeyTypeSkSSHEd25519OpensshCom        SSHKeyType = "sk-ssh-ed25519@openssh.com"
	SSHKeyTypeSkEcdsaSha2Nistp256OpensshCom SSHKeyType = "sk-ecdsa-sha2-nistp256@openssh.com"
)

The values SSHKeyType takes.

type SSHKeysCreateParams

type SSHKeysCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body GenerateSSHKeyRequest
}

SSHKeysCreateParams holds the parameters for `client.sshKeys.create`.

type SSHKeysDeleteParams

type SSHKeysDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

SSHKeysDeleteParams holds the parameters for `client.sshKeys.delete`.

type SSHKeysImportParams

type SSHKeysImportParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body ImportSSHKeyRequest
}

SSHKeysImportParams holds the parameters for `client.sshKeys.import`.

type SSHKeysListParams

type SSHKeysListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

SSHKeysListParams holds the parameters for `client.sshKeys.list`.

Every field is optional; pass nil to take the defaults.

type SSHKeysNamespace

type SSHKeysNamespace struct {
	// contains filtered or unexported fields
}

SSHKeysNamespace is `client.sshKeys`.

func (*SSHKeysNamespace) Create

Create: Generate a new Ed25519 keypair (private key returned once)

_Requires permission: `ssh-keys:write`._

POST /api/org/{orgId}/ssh-keys

Raises on 400: Bad request

func (*SSHKeysNamespace) Delete

func (n *SSHKeysNamespace) Delete(ctx context.Context, params SSHKeysDeleteParams, opts ...RequestOption) (*OK, error)

Delete: Delete an SSH key (owner only)

_Requires permission: `ssh-keys:write`._

DELETE /api/org/{orgId}/ssh-keys/{id}

func (*SSHKeysNamespace) Import

Import: Import an existing public key

_Requires permission: `ssh-keys:write`._

POST /api/org/{orgId}/ssh-keys/import

Raises on 400: Bad request

func (*SSHKeysNamespace) List

func (n *SSHKeysNamespace) List(ctx context.Context, params *SSHKeysListParams, opts ...RequestOption) ([]SSHKey, error)

List: List org SSH keys

_Requires permission: `ssh-keys:read`._

GET /api/org/{orgId}/ssh-keys

type SSHTunnelCreateAccountRequest

type SSHTunnelCreateAccountRequest struct {
	SSHHost     string            `json:"sshHost"`
	SSHPort     int64             `json:"sshPort"`
	SSHUser     string            `json:"sshUser"`
	SSHKeyID    string            `json:"sshKeyId"`
	RemoteHost  string            `json:"remoteHost"`
	RemotePort  int64             `json:"remotePort"`
	PluginID    string            `json:"pluginId"`
	DisplayName string            `json:"displayName"`
	Credentials map[string]string `json:"credentials"`
}

SSHTunnelCreateAccountRequest is the `SshTunnelCreateAccountRequest` schema.

Spec schema: `SshTunnelCreateAccountRequest`.

type SSHTunnelCreateAccountResponse

type SSHTunnelCreateAccountResponse struct {
	AccountID string `json:"accountId"`
}

SSHTunnelCreateAccountResponse is the `SshTunnelCreateAccountResponse` schema.

Spec schema: `SshTunnelCreateAccountResponse`.

type SSHTunnelsActiveParams

type SSHTunnelsActiveParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

SSHTunnelsActiveParams holds the parameters for `client.sshTunnels.active`.

Every field is optional; pass nil to take the defaults.

type SSHTunnelsCloseParams

type SSHTunnelsCloseParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body SshtunnelsCloseRequest
}

SSHTunnelsCloseParams holds the parameters for `client.sshTunnels.close`.

type SSHTunnelsCreateAccountParams

type SSHTunnelsCreateAccountParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body SSHTunnelCreateAccountRequest
}

SSHTunnelsCreateAccountParams holds the parameters for `client.sshTunnels.createAccount`.

type SSHTunnelsExecParams

type SSHTunnelsExecParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body SSHExecRequest
}

SSHTunnelsExecParams holds the parameters for `client.sshTunnels.exec`.

type SSHTunnelsNamespace

type SSHTunnelsNamespace struct {
	// contains filtered or unexported fields
}

SSHTunnelsNamespace is `client.sshTunnels`.

func (*SSHTunnelsNamespace) Active

Active: List active tunnels for this org

_Requires permission: `resources:execute`._

GET /api/org/{orgId}/ssh-tunnels/active

func (*SSHTunnelsNamespace) Close

func (n *SSHTunnelsNamespace) Close(ctx context.Context, params SSHTunnelsCloseParams, opts ...RequestOption) (*OK, error)

Close: Close a tunnel by id

_Requires permission: `resources:execute`._

POST /api/org/{orgId}/ssh-tunnels/close

func (*SSHTunnelsNamespace) CreateAccount

CreateAccount: Create an account whose traffic is tunneled over SSH

Verifies the SSH connection works before persisting.

_Requires permission: `accounts:write`._

POST /api/org/{orgId}/ssh-tunnels/create-account

Raises on 400: Bad request

Raises on 404: Not found

func (*SSHTunnelsNamespace) Exec

Exec: Run a command over SSH using an org SSH key

_Requires permission: `resources:execute`._

POST /api/org/{orgId}/ssh-tunnels/exec

Raises on 400: Bad request

Raises on 404: Not found

func (*SSHTunnelsNamespace) Open

Open: Re-open the tunnel for an existing account

_Requires permission: `resources:execute`._

POST /api/org/{orgId}/ssh-tunnels/open

Raises on 404: Not found

type SSHTunnelsOpenParams

type SSHTunnelsOpenParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body SshtunnelsOpenRequest
}

SSHTunnelsOpenParams holds the parameters for `client.sshTunnels.open`.

type SearchHit

type SearchHit struct {
	ID                ResourceID `json:"id"`
	PluginID          string     `json:"pluginId"`
	PluginDisplayName string     `json:"pluginDisplayName"`
	PluginLogoSvg     string     `json:"pluginLogoSvg"`
	ResourceTypeID    string     `json:"resourceTypeId"`
	ResourceTypeLabel string     `json:"resourceTypeLabel"`
	AccountID         string     `json:"accountId"`
	AccountName       string     `json:"accountName"`
	DisplayName       string     `json:"displayName"`
	Subtitle          *string    `json:"subtitle,omitempty"`
}

SearchHit is the `SearchHit` schema.

type SearchListParams

type SearchListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	Q     *string
}

SearchListParams holds the parameters for `client.search.list`.

Every field is optional; pass nil to take the defaults.

type SearchNamespace

type SearchNamespace struct {
	// contains filtered or unexported fields
}

SearchNamespace is `client.search`.

func (*SearchNamespace) List

func (n *SearchNamespace) List(ctx context.Context, params *SearchListParams, opts ...RequestOption) ([]SearchHit, error)

List: Search resources (capped at 50 hits) and workflows across the org

_Requires permission: `resources:read`._

GET /api/org/{orgId}/search

type SecretAccessRequest

type SecretAccessRequest struct {
	AccountID        string      `json:"accountId"`
	ResourceID       ResourceID  `json:"resourceId"`
	VersionID        string      `json:"versionId"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

SecretAccessRequest is the `SecretAccessRequest` schema.

type SecretAccessResponse

type SecretAccessResponse struct {
	Value string `json:"value"`
}

SecretAccessResponse is the `SecretAccessResponse` schema.

type SecretAddRequest

type SecretAddRequest struct {
	AccountID        string      `json:"accountId"`
	ResourceID       ResourceID  `json:"resourceId"`
	Value            string      `json:"value"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

SecretAddRequest is the `SecretAddRequest` schema.

type SecretExportTemplate

type SecretExportTemplate struct {
	ID          string                        `json:"id"`
	Label       string                        `json:"label"`
	Description *string                       `json:"description,omitempty"`
	Entries     []SecretExportTemplateEntries `json:"entries"`
}

SecretExportTemplate is the `SecretExportTemplate` schema.

type SecretExportTemplateEntries

type SecretExportTemplateEntries struct {
	OutputKey string `json:"outputKey"`
	EnvKey    string `json:"envKey"`
}

SecretExportTemplateEntries is an object the spec declares inline.

type SecretModifyRequest

type SecretModifyRequest struct {
	AccountID  string     `json:"accountId"`
	ResourceID ResourceID `json:"resourceId"`
	VersionID  string     `json:"versionId"`
	// Action: One of "enable", "disable", "destroy".
	Action           string      `json:"action"`
	ParentResourceID *ResourceID `json:"parentResourceId,omitempty"`
}

SecretModifyRequest is the `SecretModifyRequest` schema.

type SecretVersion

type SecretVersion struct {
	ID string `json:"id"`
	// State: One of "ENABLED", "DISABLED", "DESTROYED".
	State     string `json:"state"`
	CreatedAt string `json:"createdAt"`
}

SecretVersion is the `SecretVersion` schema.

type SecretVersionResponse

type SecretVersionResponse struct {
	Version SecretVersion `json:"version"`
}

SecretVersionResponse is the `SecretVersionResponse` schema.

type SecretVersionsResponse

type SecretVersionsResponse struct {
	Versions []SecretVersion `json:"versions"`
}

SecretVersionsResponse is the `SecretVersionsResponse` schema.

type Session

type Session struct {
	UserID          string  `json:"userId"`
	Email           *string `json:"email"`
	NeedsOnboarding bool    `json:"needsOnboarding"`
}

Session is the `Session` schema.

type SshtunnelsCloseRequest

type SshtunnelsCloseRequest struct {
	TunnelID string `json:"tunnelId"`
}

SshtunnelsCloseRequest is an object the spec declares inline.

type SshtunnelsOpenRequest

type SshtunnelsOpenRequest struct {
	AccountID string `json:"accountId"`
}

SshtunnelsOpenRequest is an object the spec declares inline.

type SshtunnelsOpenResponse

type SshtunnelsOpenResponse struct {
	TunnelID  string `json:"tunnelId"`
	LocalPort int64  `json:"localPort"`
}

SshtunnelsOpenResponse is an object the spec declares inline.

type StatusDot

type StatusDot struct {
	// Kind: One of "status-dot".
	Kind   string         `json:"kind"`
	Status ResourceStatus `json:"status"`
	Label  *string        `json:"label,omitempty"`
}

StatusDot is the `StatusDot` schema.

type StorageDeleteParams

type StorageDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body StoragePathRequest
}

StorageDeleteParams holds the parameters for `client.storage.delete`.

type StorageDownloadParams

type StorageDownloadParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID     *string
	AccountID string
	Bucket    string
	// Keys: JSON-encoded array of object keys, e.g. `["a.txt","b.txt"]`
	Keys string
}

StorageDownloadParams holds the parameters for `client.storage.download`.

type StorageListParams

type StorageListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body StorageListRequest
}

StorageListParams holds the parameters for `client.storage.list`.

type StorageListRequest

type StorageListRequest struct {
	AccountID string `json:"accountId"`
	Bucket    string `json:"bucket"`
	Prefix    string `json:"prefix"`
}

StorageListRequest is the `StorageListRequest` schema.

type StorageMkdirParams

type StorageMkdirParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body StoragePathRequest
}

StorageMkdirParams holds the parameters for `client.storage.mkdir`.

type StorageNamespace

type StorageNamespace struct {
	// contains filtered or unexported fields
}

StorageNamespace is `client.storage`.

func (*StorageNamespace) Delete

func (n *StorageNamespace) Delete(ctx context.Context, params StorageDeleteParams, opts ...RequestOption) (*OK, error)

Delete: Delete a storage object

_Requires permission: `storage:write`._

POST /api/org/{orgId}/storage/delete

Raises on 400: Bad request

Raises on 404: Not found

func (*StorageNamespace) Download

Download: Download one or many objects (zipped if more than one)

_Requires permission: `storage:read`._

GET /api/org/{orgId}/v1/storage/download

Raises on 400: Bad request

Raises on 404: Not found

Raises on 500: Server error

func (*StorageNamespace) List

List: List objects in a bucket / prefix

_Requires permission: `storage:read`._

POST /api/org/{orgId}/storage/list

Raises on 400: Bad request

Raises on 404: Not found

func (*StorageNamespace) Mkdir

func (n *StorageNamespace) Mkdir(ctx context.Context, params StorageMkdirParams, opts ...RequestOption) (*OK, error)

Mkdir: Create a folder marker in a bucket

_Requires permission: `storage:write`._

POST /api/org/{orgId}/storage/mkdir

Raises on 400: Bad request

Raises on 404: Not found

func (*StorageNamespace) Upload

func (n *StorageNamespace) Upload(ctx context.Context, params StorageUploadParams, opts ...RequestOption) (*OK, error)

Upload: Upload a file to object storage

Multipart/form-data. Plugin must implement `uploadStorageObject`.

_Requires permission: `storage:write`._

POST /api/org/{orgId}/v1/storage/upload

Raises on 400: Bad request

Raises on 404: Not found

type StorageObject

type StorageObject struct {
	Key          string  `json:"key"`
	Size         *int64  `json:"size,omitempty"`
	IsFolder     *bool   `json:"isFolder,omitempty"`
	LastModified *string `json:"lastModified,omitempty"`
}

StorageObject is the `StorageObject` schema.

type StoragePathRequest

type StoragePathRequest struct {
	AccountID string `json:"accountId"`
	Bucket    string `json:"bucket"`
	Key       string `json:"key"`
}

StoragePathRequest is the `StoragePathRequest` schema.

type StorageUploadForm

type StorageUploadForm struct {
	AccountID string `json:"accountId"`
	Bucket    string `json:"bucket"`
	Key       string `json:"key"`
	// File: Raw file bytes
	File io.Reader `json:"file"`
}

StorageUploadForm is the `StorageUploadForm` schema.

type StorageUploadParams

type StorageUploadParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: sent as `multipart/form-data`; the `io.Reader` field is the file.
	Body StorageUploadForm
}

StorageUploadParams holds the parameters for `client.storage.upload`.

type StripeRedirectURL

type StripeRedirectURL struct {
	URL string `json:"url"`
}

StripeRedirectURL is the `StripeRedirectUrl` schema.

Spec schema: `StripeRedirectUrl`.

type Subscription

type Subscription struct {
	// Status: One of "trialing", "active", "past_due", "canceled", "unpaid".
	Status           string  `json:"status"`
	SeatCount        int64   `json:"seatCount"`
	CurrentPeriodEnd *string `json:"currentPeriodEnd"`
	StripeCustomerID string  `json:"stripeCustomerId"`
}

Subscription is the `Subscription` schema.

The API may send null in its place.

type SyncResponse

type SyncResponse struct {
	Synced int64 `json:"synced"`
}

SyncResponse is the `SyncResponse` schema.

type TOTPEnrollment

type TOTPEnrollment struct {
	FactorID    string `json:"factorId"`
	ChallengeID string `json:"challengeId"`
	// QrCode: Data-URI image of the enrolment QR code
	QrCode *string `json:"qrCode"`
	// Secret: Base32 secret, for manual entry
	Secret *string `json:"secret"`
	// URI: `otpauth://` URI
	URI *string `json:"uri"`
}

TOTPEnrollment is the `TotpEnrollment` schema.

Spec schema: `TotpEnrollment`.

type TabTarget

type TabTarget struct {
	// Kind: One of "dashboard", "account", "resource", "agents", "workflows",
	// "chat".
	Kind           string      `json:"kind"`
	DashboardID    *string     `json:"dashboardId,omitempty"`
	AccountID      *string     `json:"accountId,omitempty"`
	ResourceID     *ResourceID `json:"resourceId,omitempty"`
	ConversationID *string     `json:"conversationId,omitempty"`
}

TabTarget is the `TabTarget` schema.

type TeamInvitationsCreateParams

type TeamInvitationsCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body InviteRequest
}

TeamInvitationsCreateParams holds the parameters for `client.team.invitations.create`.

type TeamInvitationsDeleteParams

type TeamInvitationsDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

TeamInvitationsDeleteParams holds the parameters for `client.team.invitations.delete`.

type TeamInvitationsListParams

type TeamInvitationsListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

TeamInvitationsListParams holds the parameters for `client.team.invitations.list`.

Every field is optional; pass nil to take the defaults.

type TeamInvitationsNamespace

type TeamInvitationsNamespace struct {
	// contains filtered or unexported fields
}

TeamInvitationsNamespace is `client.team.invitations`.

func (*TeamInvitationsNamespace) Create

Create: Create an invitation (token valid for 7 days)

_Requires permission: `team:invite`._

POST /api/org/{orgId}/team/invitations

func (*TeamInvitationsNamespace) Delete

Delete: Revoke a pending invitation

_Requires permission: `team:invite`._

DELETE /api/org/{orgId}/team/invitations/{id}

Raises on 404: Not found

func (*TeamInvitationsNamespace) List

List: List pending and historical invitations

_Requires permission: `team:read`._

GET /api/org/{orgId}/team/invitations

type TeamMeParams

type TeamMeParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

TeamMeParams holds the parameters for `client.team.me`.

Every field is optional; pass nil to take the defaults.

type TeamMembersDeleteParams

type TeamMembersDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

TeamMembersDeleteParams holds the parameters for `client.team.members.delete`.

type TeamMembersListParams

type TeamMembersListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

TeamMembersListParams holds the parameters for `client.team.members.list`.

Every field is optional; pass nil to take the defaults.

type TeamMembersNamespace

type TeamMembersNamespace struct {
	// contains filtered or unexported fields
}

TeamMembersNamespace is `client.team.members`.

func (*TeamMembersNamespace) Delete

Delete: Remove a member from the org

_Requires permission: `team:remove`._

DELETE /api/org/{orgId}/team/members/{id}

func (*TeamMembersNamespace) List

List: List org members

_Requires permission: `team:read`._

GET /api/org/{orgId}/team/members

func (*TeamMembersNamespace) Role

Role: Change a member's role

_Requires permission: `team:role:write`._

PATCH /api/org/{orgId}/team/members/{id}/role

type TeamMembersRoleParams

type TeamMembersRoleParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
	// Body: the JSON request body.
	Body RoleChangeRequest
}

TeamMembersRoleParams holds the parameters for `client.team.members.role`.

type TeamNamespace

type TeamNamespace struct {

	// Invitations: `client.team.invitations`.
	Invitations *TeamInvitationsNamespace
	// Members: `client.team.members`.
	Members *TeamMembersNamespace
	// Roles: `client.team.roles`.
	Roles *TeamRolesNamespace
	// contains filtered or unexported fields
}

TeamNamespace is `client.team`.

func (*TeamNamespace) Me

func (n *TeamNamespace) Me(ctx context.Context, params *TeamMeParams, opts ...RequestOption) (*MeResponse, error)

Me: Current user's effective permissions and role

GET /api/org/{orgId}/team/me

func (*TeamNamespace) Permissions

func (n *TeamNamespace) Permissions(ctx context.Context, params *TeamPermissionsParams, opts ...RequestOption) (*PermissionCatalog, error)

Permissions: List all permission strings the server recognises

_Requires permission: `team:read`._

GET /api/org/{orgId}/team/permissions

type TeamPermissionsParams

type TeamPermissionsParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

TeamPermissionsParams holds the parameters for `client.team.permissions`.

Every field is optional; pass nil to take the defaults.

type TeamRolesCreateParams

type TeamRolesCreateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	// Body: the JSON request body.
	Body RoleCreateRequest
}

TeamRolesCreateParams holds the parameters for `client.team.roles.create`.

type TeamRolesDeleteParams

type TeamRolesDeleteParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
}

TeamRolesDeleteParams holds the parameters for `client.team.roles.delete`.

type TeamRolesListParams

type TeamRolesListParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
}

TeamRolesListParams holds the parameters for `client.team.roles.list`.

Every field is optional; pass nil to take the defaults.

type TeamRolesNamespace

type TeamRolesNamespace struct {
	// contains filtered or unexported fields
}

TeamRolesNamespace is `client.team.roles`.

func (*TeamRolesNamespace) Create

func (n *TeamRolesNamespace) Create(ctx context.Context, params TeamRolesCreateParams, opts ...RequestOption) (*Role, error)

Create: Create a custom role

_Requires permission: `team:role:write`._

POST /api/org/{orgId}/team/roles

func (*TeamRolesNamespace) Delete

func (n *TeamRolesNamespace) Delete(ctx context.Context, params TeamRolesDeleteParams, opts ...RequestOption) (*OK, error)

Delete: Delete a custom role (must have no members or pending invitations)

_Requires permission: `team:role:write`._

DELETE /api/org/{orgId}/team/roles/{id}

Raises on 404: Not found

Raises on 409: Conflict

Raises on 422: Bad request

func (*TeamRolesNamespace) List

func (n *TeamRolesNamespace) List(ctx context.Context, params *TeamRolesListParams, opts ...RequestOption) ([]Role, error)

List: List roles (system + custom)

_Requires permission: `team:read`._

GET /api/org/{orgId}/team/roles

func (*TeamRolesNamespace) Update

func (n *TeamRolesNamespace) Update(ctx context.Context, params TeamRolesUpdateParams, opts ...RequestOption) (*Role, error)

Update: Edit a custom role

_Requires permission: `team:role:write`._

PATCH /api/org/{orgId}/team/roles/{id}

Raises on 404: Not found

Raises on 422: Bad request

type TeamRolesUpdateParams

type TeamRolesUpdateParams struct {
	// OrgID: Organization id
	//
	// Falls back to the client's `orgId` when omitted.
	OrgID *string
	ID    string
	// Body: the JSON request body.
	Body RoleUpdateRequest
}

TeamRolesUpdateParams holds the parameters for `client.team.roles.update`.

type UnpinRequest

type UnpinRequest struct {
	DashboardID string     `json:"dashboardId"`
	ResourceID  ResourceID `json:"resourceId"`
}

UnpinRequest is the `UnpinRequest` schema.

type UpdateAccountRequest

type UpdateAccountRequest struct {
	DisplayName *string `json:"displayName,omitempty"`
	// BastionID: Pass `null` to unbind, a uuid to bind, or omit the field to
	// leave the binding unchanged.
	BastionID *string `json:"bastionId,omitempty"`
}

UpdateAccountRequest is the `UpdateAccountRequest` schema.

type UpdateResourceRequest

type UpdateResourceRequest struct {
	AccountID        string            `json:"accountId"`
	PluginID         string            `json:"pluginId"`
	ResourceTypeID   string            `json:"resourceTypeId"`
	ResourceID       ResourceID        `json:"resourceId"`
	Fields           map[string]string `json:"fields"`
	ParentResourceID *ResourceID       `json:"parentResourceId,omitempty"`
}

UpdateResourceRequest is the `UpdateResourceRequest` schema.

type UpdateResourceResponse

type UpdateResourceResponse struct {
	ID          ResourceID        `json:"id"`
	DisplayName string            `json:"displayName"`
	Fields      map[string]string `json:"fields"`
}

UpdateResourceResponse is the `UpdateResourceResponse` schema.

type UpdateWidgetRequest

type UpdateWidgetRequest struct {
	Title  *string    `json:"title,omitempty"`
	Config JSONObject `json:"config,omitempty"`
	GridX  *int64     `json:"gridX,omitempty"`
	GridY  *int64     `json:"gridY,omitempty"`
	GridW  *int64     `json:"gridW,omitempty"`
	GridH  *int64     `json:"gridH,omitempty"`
}

UpdateWidgetRequest is the `UpdateWidgetRequest` schema.

type UpdatedAccount

type UpdatedAccount struct {
	ID          string  `json:"id"`
	DisplayName string  `json:"displayName"`
	BastionID   *string `json:"bastionId"`
}

UpdatedAccount is the `UpdatedAccount` schema.

type UserSession

type UserSession struct {
	ID         string  `json:"id"`
	IPAddress  *string `json:"ipAddress"`
	UserAgent  *string `json:"userAgent"`
	AuthMethod string  `json:"authMethod"`
	Status     string  `json:"status"`
	ExpiresAt  string  `json:"expiresAt"`
	CreatedAt  string  `json:"createdAt"`
	UpdatedAt  string  `json:"updatedAt"`
	// Current: True for the session making this request
	Current bool `json:"current"`
}

UserSession is the `UserSession` schema.

type ValidateTabsRequest

type ValidateTabsRequest struct {
	Tabs []ValidateTabsRequestTabs `json:"tabs"`
}

ValidateTabsRequest is the `ValidateTabsRequest` schema.

type ValidateTabsRequestTabs

type ValidateTabsRequestTabs struct {
	ID     string    `json:"id"`
	Target TabTarget `json:"target"`
}

ValidateTabsRequestTabs is an object the spec declares inline.

type ValidateTabsResponse

type ValidateTabsResponse struct {
	ValidTabIDs []string `json:"validTabIds"`
}

ValidateTabsResponse is the `ValidateTabsResponse` schema.

type WorkflowPinRequest

type WorkflowPinRequest struct {
	DashboardID string `json:"dashboardId"`
	WorkflowID  string `json:"workflowId"`
}

WorkflowPinRequest is the `WorkflowPinRequest` schema.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL