client

package
v3.113.3 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 License: Apache-2.0 Imports: 34 Imported by: 0

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

View Source
var ErrNoPreviousDeployment = errors.New("no previous deployment")

ErrNoPreviousDeployment is returned when there isn't a previous deployment.

Functions

func UserAgent added in v3.88.0

func UserAgent() string

Types

type Client

type Client struct {

	// If true, do not probe the backend with GET /api/capabilities and assume no capabilities.
	DisableCapabilityProbing bool
	// contains filtered or unexported fields
}

Client provides a slim wrapper around the Pulumi HTTP/REST API.

func NewClient

func NewClient(apiURL, apiToken string, insecure bool, d diag.Sink) *Client

NewClient creates a new Pulumi API client with the given URL and API token.

func (*Client) ApplyPolicyPack

func (pc *Client) ApplyPolicyPack(ctx context.Context, orgName, policyGroup,
	policyPackName, versionTag string, policyPackConfig map[string]*json.RawMessage,
) error

ApplyPolicyPack enables a `PolicyPack` to the Pulumi organization. If policyGroup is not empty, it will enable the PolicyPack on the default PolicyGroup.

func (*Client) BulkDecryptValue added in v3.23.0

func (pc *Client) BulkDecryptValue(ctx context.Context, stack StackIdentifier,
	ciphertexts [][]byte,
) (map[string][]byte, error)

BulkDecryptValue decrypts a ciphertext value in the context of the indicated stack.

func (*Client) CancelUpdate

func (pc *Client) CancelUpdate(ctx context.Context, update UpdateIdentifier) error

CancelUpdate cancels the indicated update.

func (*Client) CompleteUpdate

func (pc *Client) CompleteUpdate(ctx context.Context, update UpdateIdentifier, status apitype.UpdateStatus,
	token UpdateTokenSource,
) error

CompleteUpdate completes the indicated update with the given status.

func (*Client) CreateDeployment added in v3.44.3

func (pc *Client) CreateDeployment(ctx context.Context, stack StackIdentifier,
	req apitype.CreateDeploymentRequest, deploymentInitiator string,
) (*apitype.CreateDeploymentResponse, error)

func (*Client) CreateStack

func (pc *Client) CreateStack(
	ctx context.Context, stackID StackIdentifier, tags map[apitype.StackTagName]string, teams []string,
) (apitype.Stack, error)

CreateStack creates a stack with the given cloud and stack name in the scope of the indicated project.

func (*Client) CreateUpdate

CreateUpdate creates a new update for the indicated stack with the given kind and assorted options. If the update requires that the Pulumi program is uploaded, the provided getContents callback will be invoked to fetch the contents of the Pulumi program.

func (*Client) DecryptValue

func (pc *Client) DecryptValue(ctx context.Context, stack StackIdentifier, ciphertext []byte) ([]byte, error)

DecryptValue decrypts a ciphertext value in the context of the indicated stack.

func (*Client) DeleteStack

func (pc *Client) DeleteStack(ctx context.Context, stack StackIdentifier, force bool) (bool, error)

DeleteStack deletes the indicated stack. If force is true, the stack is deleted even if it contains resources.

func (*Client) DisablePolicyPack

func (pc *Client) DisablePolicyPack(ctx context.Context, orgName string, policyGroup string,
	policyPackName, versionTag string,
) error

DisablePolicyPack disables a `PolicyPack` to the Pulumi organization. If policyGroup is not empty, it will disable the PolicyPack on the default PolicyGroup.

func (*Client) DoesProjectExist

func (pc *Client) DoesProjectExist(ctx context.Context, owner string, projectName string) (bool, error)

DoesProjectExist returns true if a project with the given name exists, or false otherwise.

func (*Client) DownloadPolicyPack

func (pc *Client) DownloadPolicyPack(ctx context.Context, url string) (io.ReadCloser, error)

DownloadPolicyPack applies a `PolicyPack` to the Pulumi organization.

func (*Client) EncryptValue

func (pc *Client) EncryptValue(ctx context.Context, stack StackIdentifier, plaintext []byte) ([]byte, error)

EncryptValue encrypts a plaintext value in the context of the indicated stack.

func (*Client) ExportStackDeployment

func (pc *Client) ExportStackDeployment(
	ctx context.Context, stack StackIdentifier, version *int,
) (apitype.UntypedDeployment, error)

ExportStackDeployment exports the indicated stack's deployment as a raw JSON message. If version is nil, will export the latest version of the stack.

func (*Client) GetCLIVersionInfo

func (pc *Client) GetCLIVersionInfo(ctx context.Context) (semver.Version, semver.Version, semver.Version, error)

GetCLIVersionInfo asks the service for information about versions of the CLI (the newest version as well as the oldest version before the CLI should warn about an upgrade, and the current dev version).

func (*Client) GetCapabilities added in v3.49.0

func (pc *Client) GetCapabilities(ctx context.Context) (*apitype.CapabilitiesResponse, error)

func (*Client) GetDeploymentLogs added in v3.44.3

func (pc *Client) GetDeploymentLogs(ctx context.Context, stack StackIdentifier, id,
	token string,
) (*apitype.DeploymentLogs, error)

func (*Client) GetDeploymentUpdates added in v3.44.3

func (pc *Client) GetDeploymentUpdates(ctx context.Context, stack StackIdentifier,
	id string,
) ([]apitype.GetDeploymentUpdatesUpdateInfo, error)

func (*Client) GetLatestConfiguration

func (pc *Client) GetLatestConfiguration(ctx context.Context, stackID StackIdentifier) (config.Map, error)

GetLatestConfiguration returns the configuration for the latest deployment of a given stack.

func (*Client) GetNaturalLanguageQueryResults added in v3.79.0

func (pc *Client) GetNaturalLanguageQueryResults(
	ctx context.Context, orgName string, queryString string,
) (*apitype.PulumiQueryResponse, error)

func (*Client) GetPolicyPackSchema

func (pc *Client) GetPolicyPackSchema(ctx context.Context, orgName,
	policyPackName, versionTag string,
) (*apitype.GetPolicyPackConfigSchemaResponse, error)

GetPolicyPackSchema gets Policy Pack config schema.

func (*Client) GetPulumiAccountDetails added in v3.28.0

func (pc *Client) GetPulumiAccountDetails(ctx context.Context) (string, []string, *workspace.TokenInformation, error)

GetPulumiAccountDetails returns the user implied by the API token associated with this client.

func (*Client) GetSearchQueryResults added in v3.79.0

func (pc *Client) GetSearchQueryResults(
	ctx context.Context, orgName string, queryParams *apitype.PulumiQueryRequest, baseURL string,
) (*apitype.ResourceSearchResponse, error)

Pulumi Cloud Search Functions

func (*Client) GetStack

func (pc *Client) GetStack(ctx context.Context, stackID StackIdentifier) (apitype.Stack, error)

GetStack retrieves the stack with the given name.

func (*Client) GetStackUpdates

func (pc *Client) GetStackUpdates(
	ctx context.Context,
	stack StackIdentifier,
	pageSize int,
	page int,
) ([]apitype.UpdateInfo, error)

GetStackUpdates returns all updates to the indicated stack.

func (*Client) GetUpdateEngineEvents added in v3.44.3

func (pc *Client) GetUpdateEngineEvents(ctx context.Context, update UpdateIdentifier,
	continuationToken *string,
) (apitype.GetUpdateEventsResponse, error)

GetUpdateEngineEvents returns the engine events for an update.

func (*Client) GetUpdateEvents

func (pc *Client) GetUpdateEvents(ctx context.Context, update UpdateIdentifier,
	continuationToken *string,
) (apitype.UpdateResults, error)

GetUpdateEvents returns all events, taking an optional continuation token from a previous call.

func (*Client) ImportStackDeployment

func (pc *Client) ImportStackDeployment(ctx context.Context, stack StackIdentifier,
	deployment *apitype.UntypedDeployment,
) (UpdateIdentifier, error)

ImportStackDeployment imports a new deployment into the indicated stack.

func (*Client) Insecure added in v3.54.0

func (pc *Client) Insecure() bool

Returns true if this client is insecure (i.e. has TLS disabled).

func (*Client) InvalidateUpdateCheckpoint

func (pc *Client) InvalidateUpdateCheckpoint(ctx context.Context, update UpdateIdentifier,
	token UpdateTokenSource,
) error

InvalidateUpdateCheckpoint invalidates the checkpoint for the indicated update.

func (*Client) ListPolicyGroups

func (pc *Client) ListPolicyGroups(ctx context.Context, orgName string, inContToken *string) (
	apitype.ListPolicyGroupsResponse, *string, error,
)

ListPolicyGroups lists all `PolicyGroups` the organization has in the Pulumi service.

func (*Client) ListPolicyPacks

func (pc *Client) ListPolicyPacks(ctx context.Context, orgName string, inContToken *string) (
	apitype.ListPolicyPacksResponse, *string, error,
)

ListPolicyPacks lists all `PolicyPack` the organization has in the Pulumi service.

func (*Client) ListStacks

func (pc *Client) ListStacks(
	ctx context.Context, filter ListStacksFilter, inContToken *string,
) ([]apitype.StackSummary, *string, error)

ListStacks lists all stacks the current user has access to, optionally filtered by project.

func (*Client) Log3rdPartySecretsProviderDecryptionEvent added in v3.20.0

func (pc *Client) Log3rdPartySecretsProviderDecryptionEvent(ctx context.Context, stack StackIdentifier,
	secretName string,
) error

func (*Client) LogBulk3rdPartySecretsProviderDecryptionEvent added in v3.20.0

func (pc *Client) LogBulk3rdPartySecretsProviderDecryptionEvent(ctx context.Context, stack StackIdentifier,
	command string,
) error

func (*Client) PatchUpdateCheckpoint

func (pc *Client) PatchUpdateCheckpoint(ctx context.Context, update UpdateIdentifier, deployment *apitype.DeploymentV3,
	token UpdateTokenSource,
) error

PatchUpdateCheckpoint patches the checkpoint for the indicated update with the given contents.

func (*Client) PatchUpdateCheckpointDelta added in v3.43.0

func (pc *Client) PatchUpdateCheckpointDelta(ctx context.Context, update UpdateIdentifier,
	sequenceNumber int, checkpointHash string, deploymentDelta json.RawMessage, token UpdateTokenSource,
) error

PatchUpdateCheckpointDelta patches the checkpoint for the indicated update with the given contents, just like PatchUpdateCheckpoint. Unlike PatchUpdateCheckpoint, it uses a text diff-based protocol to conserve bandwidth on large stack states.

func (*Client) PatchUpdateCheckpointVerbatim added in v3.43.0

func (pc *Client) PatchUpdateCheckpointVerbatim(ctx context.Context, update UpdateIdentifier,
	sequenceNumber int, untypedDeploymentBytes json.RawMessage, token UpdateTokenSource,
) error

PatchUpdateCheckpointVerbatim is a variant of PatchUpdateCheckpoint that preserves JSON indentation of the UntypedDeployment transferred over the wire.

func (*Client) PublishPolicyPack

func (pc *Client) PublishPolicyPack(ctx context.Context, orgName string,
	analyzerInfo plugin.AnalyzerInfo, dirArchive io.Reader,
) (string, error)

PublishPolicyPack publishes a `PolicyPack` to the Pulumi service. If it successfully publishes the Policy Pack, it returns the version of the pack.

func (*Client) RecordEngineEvents

func (pc *Client) RecordEngineEvents(
	ctx context.Context, update UpdateIdentifier, batch apitype.EngineEventBatch, token UpdateTokenSource,
) error

RecordEngineEvents posts a batch of engine events to the Pulumi service.

func (*Client) RemovePolicyPack

func (pc *Client) RemovePolicyPack(ctx context.Context, orgName string, policyPackName string) error

RemovePolicyPack removes all versions of a `PolicyPack` from the Pulumi organization.

func (*Client) RemovePolicyPackByVersion

func (pc *Client) RemovePolicyPackByVersion(ctx context.Context, orgName string,
	policyPackName string, versionTag string,
) error

RemovePolicyPackByVersion removes a specific version of a `PolicyPack` from the Pulumi organization.

func (*Client) RenameStack

func (pc *Client) RenameStack(ctx context.Context, currentID, newID StackIdentifier) error

RenameStack renames the provided stack to have the new identifier.

func (*Client) RenewUpdateLease

func (pc *Client) RenewUpdateLease(ctx context.Context, update UpdateIdentifier, token string,
	duration time.Duration,
) (string, error)

RenewUpdateLease renews the indicated update lease for the given duration.

func (*Client) StartUpdate

func (pc *Client) StartUpdate(ctx context.Context, update UpdateIdentifier,
	tags map[apitype.StackTagName]string,
) (int, string, error)

StartUpdate starts the indicated update. It returns the new version of the update's target stack and the token used to authenticate operations on the update if any. Replaces the stack's tags with the updated set.

func (*Client) SubmitAIPrompt added in v3.99.0

func (pc *Client) SubmitAIPrompt(ctx context.Context, requestBody interface{}) (*http.Response, error)

SubmitAIPrompt sends the user's prompt to the Pulumi Service and streams back the response.

func (*Client) URL

func (pc *Client) URL() string

URL returns the URL of the API endpoint this client interacts with

func (*Client) UpdateStackTags

func (pc *Client) UpdateStackTags(
	ctx context.Context, stack StackIdentifier, tags map[apitype.StackTagName]string,
) error

UpdateStackTags updates the stacks's tags, replacing all existing tags.

type CreateUpdateDetails added in v3.65.0

type CreateUpdateDetails struct {
	Messages         []apitype.Message
	RequiredPolicies []apitype.RequiredPolicy
}

type ListStacksFilter

type ListStacksFilter struct {
	Project      *string
	Organization *string
	TagName      *string
	TagValue     *string
}

ListStacksFilter describes optional filters when listing stacks.

type StackIdentifier

type StackIdentifier struct {
	Owner   string
	Project string
	Stack   tokens.StackName
}

StackIdentifier is the set of data needed to identify a Pulumi Cloud stack.

func (StackIdentifier) String

func (s StackIdentifier) String() string

type UpdateIdentifier

type UpdateIdentifier struct {
	StackIdentifier

	UpdateKind apitype.UpdateKind
	UpdateID   string
}

UpdateIdentifier is the set of data needed to identify an update to a Pulumi Cloud stack.

type UpdateTokenSource added in v3.56.0

type UpdateTokenSource interface {
	GetToken(ctx context.Context) (string, error)
}

UpdateTokenSource allows the API client to request tokens for an in-progress update as near as possible to the actual API call (e.g. after marshaling, etc.).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL