Documentation
¶
Overview ¶
Package client implements a client for the Pulumi Service HTTP/REST API. Important note: This client is not versioned, and not intended for external use at this time.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CheckEnvironmentResponse ¶
type CheckEnvironmentResponse struct {
Diagnostics []EnvironmentDiagnostic `json:"diagnostics,omitempty"`
}
type Client ¶
type Client interface {
// Insecure returns true if this client is insecure (i.e. has TLS disabled).
Insecure() bool
// URL returns the URL of the API endpoint this client interacts with
URL() string
// GetPulumiAccountDetails returns the user implied by the API token associated with this client.
GetPulumiAccountDetails(ctx context.Context) (string, []string, *workspace.TokenInformation, error)
// ListEnvironments lists all environments in the given org that are accessible to the calling user.
//
// Each call to ListEnvironments returns a page of results and a continuation token. If there are no
// more results, the continuation token will be empty. Otherwise, the continuattion token should be
// passed to the next call to ListEnvironments to fetch the next page of results.
ListEnvironments(
ctx context.Context,
orgName string,
continuationToken string,
) (environments []OrgEnvironment, nextToken string, err error)
// CreateEnvironment creats an environment named envName in orgName.
CreateEnvironment(ctx context.Context, orgName, envName string) error
// GetEnvironment returns the YAML + ETag for the environment envName in org orgName. If decrypt is
// true, any { fn::secret: { ciphertext: "..." } } constructs in the definition will be decrypted and
// replaced with { fn::secret: "plaintext" }.
//
// The etag returned by GetEnvironment can be passed to UpdateEnvironment in order to avoid RMW issues
// when editing envirionments.
GetEnvironment(ctx context.Context, orgName, envName string, decrypt bool) (yaml []byte, etag string, err error)
// UpdateEnvironment updates the YAML for the environment envName in org orgName.
//
// If the new environment definition contains errors, the update will fail with diagnostics.
//
// If etag is not the empty string and the environment's current etag does not match the provided etag
// (i.e. because a different entity has called UpdateEnvironment), the update will fail with a 409
// error.
UpdateEnvironment(
ctx context.Context,
orgName string,
envName string,
yaml []byte,
etag string,
) ([]EnvironmentDiagnostic, error)
// DeleteEnvironment deletes the environment envName in org orgName.
DeleteEnvironment(ctx context.Context, orgName, envName string) error
// OpenEnvironment evaluates the environment envName in org orgName and returns the ID of the opened
// environment. The opened environment will be available for the indicated duration, after which it
// will expire.
//
// If the environment contains errors, the open will fail with diagnostics.
OpenEnvironment(
ctx context.Context,
orgName string,
envName string,
duration time.Duration,
) (string, []EnvironmentDiagnostic, error)
// CheckYAMLEnvironment checks the given environment YAML for errors within the context of org orgName.
//
// This call returns the checked environment's AST, values, schema, and any diagnostics issued by the
// evaluator.
CheckYAMLEnvironment(
ctx context.Context,
orgName string,
yaml []byte,
) (*esc.Environment, []EnvironmentDiagnostic, error)
// OpenYAMLEnvironment evaluates the given environment YAML within the context of org orgName and
// returns the ID of the opened environment. The opened environment will be available for the indicated
// duration, after which it will expire.
//
// If the environment contains errors, the open will fail with diagnostics.
OpenYAMLEnvironment(
ctx context.Context,
orgName string,
yaml []byte,
duration time.Duration,
) (string, []EnvironmentDiagnostic, error)
// GetOpenEnvironment returns the AST, values, and schema for the open environment with ID openEnvID in
// environment envName and org orgName.
GetOpenEnvironment(ctx context.Context, orgName, envName, openEnvID string) (*esc.Environment, error)
// GetOpenProperty returns the value of a single property in the open environment with ID openEnvID in
// environment envName and org orgName.
//
// The property parameter is a Pulumi property path. Property paths may contain dotted accessors and
// numeric or string subscripts. For example:
//
// foo.bar[0]["baz"]
// aws.login
// environmentVariables["AWS_ACCESS_KEY_ID"]
//
GetOpenProperty(ctx context.Context, orgName, envName, openEnvID, property string) (*esc.Value, error)
}
Client provides a slim wrapper around the Pulumi HTTP/REST API.
func NewDefaultClient ¶ added in v0.8.2
New creates a new Pulumi API client with the given URL and API token.
type EnvironmentDiagnostic ¶
type EnvironmentDiagnosticError ¶
type EnvironmentDiagnosticError struct {
Diagnostics []EnvironmentDiagnostic `json:"diagnostics,omitempty"`
}
func (EnvironmentDiagnosticError) Error ¶
func (err EnvironmentDiagnosticError) Error() string
Error implements the Error interface.
type EnvironmentErrorResponse ¶
type EnvironmentErrorResponse struct {
Code int `json:"code,omitempty"`
Message string `json:"message,omitempty"`
Diagnostics []EnvironmentDiagnostic `json:"diagnostics,omitempty"`
}
func (EnvironmentErrorResponse) Error ¶
func (err EnvironmentErrorResponse) Error() string
type ListEnvironmentsResponse ¶
type ListEnvironmentsResponse struct {
Environments []OrgEnvironment `json:"environments,omitempty"`
NextToken string `json:"nextToken,omitempty"`
}
type OpenEnvironmentResponse ¶
type OpenEnvironmentResponse struct {
ID string `json:"id"`
Diagnostics []EnvironmentDiagnostic `json:"diagnostics,omitempty"`
}
type OrgEnvironment ¶
type UpdateEnvironmentResponse ¶
type UpdateEnvironmentResponse struct {
EnvironmentDiagnosticError
}
Click to show internal directories.
Click to hide internal directories.