Documentation
¶
Index ¶
- Constants
- Variables
- func Bool(v bool) *bool
- func ContextWithResponseHeaderHook(parentCtx context.Context, cb func(status int, header http.Header)) context.Context
- func Int(v int) *int
- func Int64(v int64) *int64
- func NullBool() jsonapi.NullableAttr[bool]
- func NullTime() jsonapi.NullableAttr[time.Time]
- func NullableBool(v bool) jsonapi.NullableAttr[bool]
- func NullableTime(v time.Time) jsonapi.NullableAttr[time.Time]
- func String(v string) *string
- type AccessType
- type Actions
- type AddWorkspacesToTagOptions
- type Admin
- type AdminCostEstimationSetting
- type AdminCostEstimationSettingOptions
- type AdminCustomizationSetting
- type AdminCustomizationSettingsUpdateOptions
- type AdminGeneralSetting
- type AdminGeneralSettingsUpdateOptions
- type AdminOPAVersion
- type AdminOPAVersionCreateOptions
- type AdminOPAVersionUpdateOptions
- type AdminOPAVersions
- type AdminOPAVersionsList
- type AdminOPAVersionsListOptions
- type AdminOrgIncludeOpt
- type AdminOrganization
- type AdminOrganizationID
- type AdminOrganizationList
- type AdminOrganizationListModuleConsumersOptions
- type AdminOrganizationListOptions
- type AdminOrganizationUpdateOptions
- type AdminOrganizations
- type AdminRun
- type AdminRunForceCancelOptions
- type AdminRunIncludeOpt
- type AdminRuns
- type AdminRunsList
- type AdminRunsListOptions
- type AdminSAMLSetting
- type AdminSAMLSettingsUpdateOptions
- type AdminSMTPSetting
- type AdminSMTPSettingsUpdateOptions
- type AdminSentinelVersion
- type AdminSentinelVersionCreateOptions
- type AdminSentinelVersionUpdateOptions
- type AdminSentinelVersions
- type AdminSentinelVersionsList
- type AdminSentinelVersionsListOptions
- type AdminSettings
- type AdminTerraformVersion
- type AdminTerraformVersionCreateOptions
- type AdminTerraformVersionUpdateOptions
- type AdminTerraformVersions
- type AdminTerraformVersionsList
- type AdminTerraformVersionsListOptions
- type AdminTwilioSetting
- type AdminTwilioSettingsUpdateOptions
- type AdminTwilioSettingsVerifyOptions
- type AdminUser
- type AdminUserIncludeOpt
- type AdminUserList
- type AdminUserListOptions
- type AdminUsers
- type AdminVCSRepo
- type AdminWorkspace
- type AdminWorkspaceIncludeOpt
- type AdminWorkspaceList
- type AdminWorkspaceListOptions
- type AdminWorkspaces
- type Agent
- type AgentList
- type AgentListOptions
- type AgentPool
- type AgentPoolAllowedWorkspacesUpdateOptions
- type AgentPoolCreateOptions
- type AgentPoolIncludeOpt
- type AgentPoolList
- type AgentPoolListOptions
- type AgentPoolReadOptions
- type AgentPoolUpdateOptions
- type AgentPools
- type AgentToken
- type AgentTokenCreateOptions
- type AgentTokenList
- type AgentTokens
- type Agents
- type Applies
- type Apply
- type ApplyStatus
- type ApplyStatusTimestamps
- type AuditTrail
- type AuditTrailAuth
- type AuditTrailList
- type AuditTrailListOptions
- type AuditTrailPagination
- type AuditTrailRequest
- type AuditTrailResource
- type AuditTrails
- type AuthPolicyType
- type CVStatusTimestamps
- type Capacity
- type CategoryType
- type Change
- type ChangeAction
- type Client
- func (c Client) AppName() string
- func (c Client) BaseRegistryURL() url.URL
- func (c Client) BaseURL() url.URL
- func (c Client) IsCloud() bool
- func (c Client) IsEnterprise() bool
- func (c *Client) NewRequest(method, path string, reqBody any) (*ClientRequest, error)
- func (c *Client) NewRequestWithAdditionalQueryParams(method, path string, reqBody any, additionalQueryParams map[string][]string) (*ClientRequest, error)
- func (c Client) RemoteAPIVersion() string
- func (c Client) RemoteTFEVersion() string
- func (c *Client) RetryServerErrors(retry bool)
- func (c *Client) SetFakeRemoteAPIVersion(fakeAPIVersion string)
- type ClientRequest
- type Comment
- type CommentCreateOptions
- type CommentList
- type Comments
- type Commit
- type CommitList
- type Config
- type ConfigVerIncludeOpt
- type ConfigurationSource
- type ConfigurationStatus
- type ConfigurationVersion
- type ConfigurationVersionCreateOptions
- type ConfigurationVersionList
- type ConfigurationVersionListOptions
- type ConfigurationVersionReadOptions
- type ConfigurationVersions
- type CostEstimate
- type CostEstimateStatus
- type CostEstimateStatusTimestamps
- type CostEstimates
- type CostEstimationSettings
- type CreateStackSourceOptions
- type CreatedByChoice
- type CustomizationSettings
- type DataRetentionPolicydeprecated
- type DataRetentionPolicyChoice
- type DataRetentionPolicyDeleteOlder
- type DataRetentionPolicyDeleteOlderSetOptions
- type DataRetentionPolicyDontDelete
- type DataRetentionPolicyDontDeleteSetOptions
- type DataRetentionPolicySetOptionsdeprecated
- type DeliveryResponse
- type DiagnosticPos
- type DiagnosticRange
- type EffectiveTagBinding
- type Enforcement
- type EnforcementLevel
- type EnforcementOptions
- type Entitlements
- type GHAInstallation
- type GHAInstallationList
- type GHAInstallationListOptions
- type GHAInstallations
- type GPGKey
- type GPGKeyCreateOptions
- type GPGKeyID
- type GPGKeyList
- type GPGKeyListOptions
- type GPGKeyUpdateOptions
- type GPGKeys
- type GeneralSettings
- type GlobalRunTask
- type GlobalRunTaskOptions
- type IPRange
- type IPRanges
- type IngressAttributes
- type Input
- type JSONChangeDesc
- type JSONComponent
- type JSONDeferred
- type JSONImporting
- type JSONOutput
- type JSONResourceInstance
- type JSONResourceInstanceDeferral
- type ListOptions
- type LockedByChoice
- type LogReader
- type Meta
- type NoCodeVariableOption
- type NotificationConfiguration
- type NotificationConfigurationCreateOptions
- type NotificationConfigurationList
- type NotificationConfigurationListOptions
- type NotificationConfigurationSubscribableChoice
- type NotificationConfigurationUpdateOptions
- type NotificationConfigurations
- type NotificationDestinationType
- type NotificationTriggerType
- type OAuthClient
- type OAuthClientAddProjectsOptions
- type OAuthClientCreateOptions
- type OAuthClientIncludeOpt
- type OAuthClientList
- type OAuthClientListOptions
- type OAuthClientReadOptions
- type OAuthClientRemoveProjectsOptions
- type OAuthClientUpdateOptions
- type OAuthClients
- type OAuthToken
- type OAuthTokenList
- type OAuthTokenListOptions
- type OAuthTokenUpdateOptions
- type OAuthTokens
- type OIDCSettings
- type OrgMembershipIncludeOpt
- type Organization
- type OrganizationAccess
- type OrganizationAccessOptions
- type OrganizationCreateOptions
- type OrganizationIncludeOpt
- type OrganizationList
- type OrganizationListOptions
- type OrganizationMembership
- type OrganizationMembershipCreateOptions
- type OrganizationMembershipList
- type OrganizationMembershipListOptions
- type OrganizationMembershipReadOptions
- type OrganizationMembershipStatus
- type OrganizationMemberships
- type OrganizationPermissions
- type OrganizationReadOptions
- type OrganizationRunList
- type OrganizationTag
- type OrganizationTags
- type OrganizationTagsDeleteOptions
- type OrganizationTagsList
- type OrganizationTagsListOptions
- type OrganizationToken
- type OrganizationTokenCreateOptions
- type OrganizationTokenDeleteOptions
- type OrganizationTokenReadOptions
- type OrganizationTokens
- type OrganizationUpdateOptions
- type Organizations
- type Outcome
- type Output
- type Pagination
- type PaginationNextPrev
- type Parent
- type Permissions
- type Plan
- type PlanChanges
- type PlanExport
- type PlanExportCreateOptions
- type PlanExportDataType
- type PlanExportStatus
- type PlanExportStatusTimestamps
- type PlanExports
- type PlanStatus
- type PlanStatusTimestamps
- type Plans
- type Policies
- type Policy
- type PolicyActions
- type PolicyAttachable
- type PolicyCheck
- type PolicyCheckIncludeOpt
- type PolicyCheckList
- type PolicyCheckListOptions
- type PolicyChecks
- type PolicyCreateOptions
- type PolicyEvaluation
- type PolicyEvaluationList
- type PolicyEvaluationListOptions
- type PolicyEvaluationStatus
- type PolicyEvaluationStatusTimestamps
- type PolicyEvaluations
- type PolicyKind
- type PolicyList
- type PolicyListOptions
- type PolicyPermissions
- type PolicyResult
- type PolicyResultCount
- type PolicyScope
- type PolicySet
- type PolicySetAddPoliciesOptions
- type PolicySetAddProjectsOptions
- type PolicySetAddWorkspaceExclusionsOptions
- type PolicySetAddWorkspacesOptions
- type PolicySetCreateOptions
- type PolicySetIncludeOpt
- type PolicySetList
- type PolicySetListOptions
- type PolicySetOutcome
- type PolicySetOutcomeList
- type PolicySetOutcomeListFilter
- type PolicySetOutcomeListOptions
- type PolicySetOutcomes
- type PolicySetParameter
- type PolicySetParameterCreateOptions
- type PolicySetParameterList
- type PolicySetParameterListOptions
- type PolicySetParameterUpdateOptions
- type PolicySetParameters
- type PolicySetReadOptions
- type PolicySetRemovePoliciesOptions
- type PolicySetRemoveProjectsOptions
- type PolicySetRemoveWorkspaceExclusionsOptions
- type PolicySetRemoveWorkspacesOptions
- type PolicySetUpdateOptions
- type PolicySetVersion
- type PolicySetVersionSource
- type PolicySetVersionStatus
- type PolicySetVersionStatusTimestamps
- type PolicySetVersions
- type PolicySets
- type PolicyStatus
- type PolicyStatusTimestamps
- type PolicyUpdateOptions
- type Project
- type ProjectAddTagBindingsOptions
- type ProjectCreateOptions
- type ProjectIncludeOpt
- type ProjectList
- type ProjectListOptions
- type ProjectReadOptions
- type ProjectSettingsPermissionType
- type ProjectTeamsPermissionType
- type ProjectUpdateOptions
- type ProjectVariableSetsPermissionType
- type Projects
- type ProviderData
- type ProviderDependency
- type PublishingMechanism
- type ReadRunQueueOptions
- type RegistryModule
- type RegistryModuleCreateOptions
- type RegistryModuleCreateVersionOptions
- type RegistryModuleCreateWithVCSConnectionOptions
- type RegistryModuleID
- type RegistryModuleList
- type RegistryModuleListIncludeOpt
- type RegistryModuleListOptions
- type RegistryModulePermissions
- type RegistryModuleStatus
- type RegistryModuleTestConfigOptions
- type RegistryModuleUpdateOptions
- type RegistryModuleVCSRepoOptions
- type RegistryModuleVCSRepoUpdateOptions
- type RegistryModuleVariable
- type RegistryModuleVariableList
- type RegistryModuleVersion
- type RegistryModuleVersionStatus
- type RegistryModuleVersionStatuses
- type RegistryModules
- type RegistryName
- type RegistryNoCodeModule
- type RegistryNoCodeModuleCreateOptions
- type RegistryNoCodeModuleCreateWorkspaceOptions
- type RegistryNoCodeModuleIncludeOpt
- type RegistryNoCodeModuleReadOptions
- type RegistryNoCodeModuleReadVariablesOptions
- type RegistryNoCodeModuleUpdateOptions
- type RegistryNoCodeModuleUpgradeWorkspaceOptions
- type RegistryNoCodeModules
- type RegistryProvider
- type RegistryProviderCreateOptions
- type RegistryProviderID
- type RegistryProviderIncludeOps
- type RegistryProviderList
- type RegistryProviderListOptions
- type RegistryProviderPermissions
- type RegistryProviderPlatform
- type RegistryProviderPlatformCreateOptions
- type RegistryProviderPlatformID
- type RegistryProviderPlatformList
- type RegistryProviderPlatformListOptions
- type RegistryProviderPlatforms
- type RegistryProviderReadOptions
- type RegistryProviderVersion
- type RegistryProviderVersionCreateOptions
- type RegistryProviderVersionID
- type RegistryProviderVersionList
- type RegistryProviderVersionListOptions
- type RegistryProviderVersionPermissions
- type RegistryProviderVersions
- type RegistryProviders
- type RemoteStateConsumersListOptions
- type Resource
- type RetryLogHook
- type Root
- type Run
- type RunActions
- type RunApplyOptions
- type RunCancelOptions
- type RunCreateOptions
- type RunDiscardOptions
- type RunEvent
- type RunEventIncludeOpt
- type RunEventList
- type RunEventListOptions
- type RunEventReadOptions
- type RunEvents
- type RunForceCancelOptions
- type RunIncludeOpt
- type RunList
- type RunListForOrganizationOptions
- type RunListOptions
- type RunOperation
- type RunPermissions
- type RunQueue
- type RunReadOptions
- type RunSource
- type RunStatus
- type RunStatusTimestamps
- type RunTask
- type RunTaskCreateOptions
- type RunTaskIncludeOpt
- type RunTaskList
- type RunTaskListOptions
- type RunTaskReadOptions
- type RunTaskRequest
- type RunTaskRequestCapabilitites
- type RunTaskUpdateOptions
- type RunTasks
- type RunTasksIntegration
- type RunTrigger
- type RunTriggerCreateOptions
- type RunTriggerFilterOp
- type RunTriggerIncludeOpt
- type RunTriggerList
- type RunTriggerListOptions
- type RunTriggers
- type RunVariable
- type RunVariableAttr
- type Runs
- type RunsPermissionType
- type SAMLSettings
- type SMTPAuthType
- type SMTPSettings
- type SSHKey
- type SSHKeyCreateOptions
- type SSHKeyList
- type SSHKeyListOptions
- type SSHKeyUpdateOptions
- type SSHKeys
- type SentinelMocksPermissionType
- type ServiceProviderType
- type SourceableChoice
- type Stack
- type StackComponent
- type StackConfiguration
- type StackConfigurationStatus
- type StackConfigurationStatusTimestamps
- type StackConfigurations
- type StackCreateOptions
- type StackDeployment
- type StackDeployments
- type StackDiagnostic
- type StackIncludeOpt
- type StackList
- type StackListOptions
- type StackPlan
- type StackPlanList
- type StackPlanOperation
- type StackPlanOperations
- type StackPlanStatus
- type StackPlanStatusTimestamps
- type StackPlans
- type StackPlansIncludeOpt
- type StackPlansListOptions
- type StackPlansStatusFilter
- type StackReadOptions
- type StackSortColumn
- type StackSource
- type StackSources
- type StackState
- type StackUpdateOptions
- type StackVCSRepo
- type StackVCSRepoOptions
- type Stacks
- type Stage
- type StateVersion
- type StateVersionCreateOptions
- type StateVersionCurrentOptions
- type StateVersionIncludeOpt
- type StateVersionList
- type StateVersionListOptions
- type StateVersionModuleRoot
- type StateVersionModules
- type StateVersionOutput
- type StateVersionOutputs
- type StateVersionOutputsList
- type StateVersionOutputsListOptions
- type StateVersionProviders
- type StateVersionReadOptions
- type StateVersionResources
- type StateVersionStatus
- type StateVersionUploadOptions
- type StateVersions
- type StateVersionsPermissionType
- type Tag
- type TagBinding
- type TagList
- type TaskEnforcementLevel
- type TaskResult
- type TaskResultCallbackRequestOptions
- type TaskResultOutcome
- type TaskResultStatus
- type TaskResultStatusTimestamps
- type TaskResultTag
- type TaskResults
- type TaskStage
- type TaskStageIncludeOpt
- type TaskStageList
- type TaskStageListOptions
- type TaskStageOverrideOptions
- type TaskStageReadOptions
- type TaskStageStatus
- type TaskStageStatusTimestamps
- type TaskStages
- type Team
- type TeamAccess
- type TeamAccessAddOptions
- type TeamAccessList
- type TeamAccessListOptions
- type TeamAccessUpdateOptions
- type TeamAccesses
- type TeamCreateOptions
- type TeamIncludeOpt
- type TeamList
- type TeamListOptions
- type TeamMemberAddOptions
- type TeamMemberRemoveOptions
- type TeamMembers
- type TeamPermissions
- type TeamProjectAccess
- type TeamProjectAccessAddOptions
- type TeamProjectAccessList
- type TeamProjectAccessListOptions
- type TeamProjectAccessProjectPermissions
- type TeamProjectAccessProjectPermissionsOptions
- type TeamProjectAccessType
- type TeamProjectAccessUpdateOptions
- type TeamProjectAccessWorkspacePermissions
- type TeamProjectAccessWorkspacePermissionsOptions
- type TeamProjectAccesses
- type TeamToken
- type TeamTokenCreateOptions
- type TeamTokens
- type TeamUpdateOptions
- type Teams
- type TerraformRegistryModule
- type TestConfig
- type TestRun
- type TestRunCreateOptions
- type TestRunList
- type TestRunListOptions
- type TestRunStatus
- type TestRunStatusTimestamps
- type TestRuns
- type TestStatus
- type TestVariables
- type TokenType
- type ToolVersionArchitecture
- type TwilioSettings
- type TwoFactor
- type User
- type UserPermissions
- type UserToken
- type UserTokenCreateOptions
- type UserTokenList
- type UserTokens
- type UserUpdateOptions
- type Users
- type VCSRepo
- type VCSRepoOptions
- type Variable
- type VariableCreateOptions
- type VariableList
- type VariableListOptions
- type VariableSet
- type VariableSetApplyToProjectsOptions
- type VariableSetApplyToWorkspacesOptions
- type VariableSetCreateOptions
- type VariableSetIncludeOpt
- type VariableSetList
- type VariableSetListOptions
- type VariableSetReadOptions
- type VariableSetRemoveFromProjectsOptions
- type VariableSetRemoveFromWorkspacesOptions
- type VariableSetUpdateOptions
- type VariableSetUpdateWorkspacesOptions
- type VariableSetVariable
- type VariableSetVariableCreateOptions
- type VariableSetVariableList
- type VariableSetVariableListOptions
- type VariableSetVariableUpdateOptions
- type VariableSetVariables
- type VariableSets
- type VariableUpdateOptions
- type Variables
- type VariablesPermissionType
- type WSIncludeOpt
- type WaitForStatusResult
- type Workspace
- type WorkspaceActions
- type WorkspaceAddRemoteStateConsumersOptions
- type WorkspaceAddTagBindingsOptions
- type WorkspaceAddTagsOptions
- type WorkspaceAssignSSHKeyOptions
- type WorkspaceCreateOptions
- type WorkspaceList
- type WorkspaceListOptions
- type WorkspaceLockOptions
- type WorkspaceOutputs
- type WorkspacePermissions
- type WorkspaceReadOptions
- type WorkspaceRemoveRemoteStateConsumersOptions
- type WorkspaceRemoveTagsOptions
- type WorkspaceResource
- type WorkspaceResourceListOptions
- type WorkspaceResources
- type WorkspaceResourcesList
- type WorkspaceRunTask
- type WorkspaceRunTaskCreateOptions
- type WorkspaceRunTaskList
- type WorkspaceRunTaskListOptions
- type WorkspaceRunTaskUpdateOptions
- type WorkspaceRunTasks
- type WorkspaceRunsPermissionType
- type WorkspaceSentinelMocksPermissionType
- type WorkspaceSettingOverwrites
- type WorkspaceSettingOverwritesOptions
- type WorkspaceStateVersionsPermissionType
- type WorkspaceTagListOptions
- type WorkspaceUpdateOptions
- type WorkspaceUpdateRemoteStateConsumersOptions
- type WorkspaceUpgrade
- type WorkspaceVariablesPermissionType
- type Workspaces
Examples ¶
Constants ¶
const ( DefaultAddress = "https://app.terraform.io" DefaultBasePath = "/api/v2/" DefaultRegistryPath = "/api/registry/" // PingEndpoint is a no-op API endpoint used to configure the rate limiter PingEndpoint = "ping" ContentTypeJSONAPI = "application/vnd.api+json" )
const (
AuthenticationTokensPath = "authentication-tokens/%s"
)
Variables ¶
var ( errors.New("unauthorized") // ErrResourceNotFound is returned when receiving a 404. ErrResourceNotFound = errors.New("resource not found") // ErrMissingDirectory is returned when the path does not have an existing directory. ErrMissingDirectory = errors.New("path needs to be an existing directory") // ErrNamespaceNotAuthorized is returned when a user attempts to perform an action // on a namespace (organization) they do not have access to. ErrNamespaceNotAuthorized = errors.New("namespace not authorized") )ErrUnauthorized =
Generic errors applicable to all resources.
var ( ErrUnsupportedOperations = errors.New("operations is deprecated and cannot be specified when execution mode is used") ErrUnsupportedPrivateKey = errors.New("private Key can only be present with Azure DevOps Server service provider") ErrUnsupportedBothTagsRegexAndFileTriggersEnabled = errors.New(`"TagsRegex" cannot be populated when "FileTriggersEnabled" is true`) ErrUnsupportedBothTagsRegexAndTriggerPatterns = errors.New(`"TagsRegex" and "TriggerPrefixes" cannot be populated at the same time`) ErrUnsupportedBothTagsRegexAndTriggerPrefixes = errors.New(`"TagsRegex" and "TriggerPatterns" cannot be populated at the same time`) ErrUnsupportedRunTriggerType = errors.New(`"RunTriggerType" must be "inbound" when requesting "include" query params`) ErrUnsupportedBothTriggerPatternsAndPrefixes = errors.New(`"TriggerPatterns" and "TriggerPrefixes" cannot be populated at the same time`) ErrUnsupportedBothNamespaceAndPrivateRegistryName = errors.New(`"Namespace" cannot be populated when "RegistryName" is "private"`) )
Options/fields that cannot be defined
var ( ErrItemsMustBeSlice = errors.New(`model field "Items" must be a slice`) // ErrItemsMustBeSlice is returned when an API response attribute called Items is not a slice ErrInvalidRequestBody = errors.New("go-tfe bug: DELETE/PATCH/POST body must be nil, ptr, or ptr slice") // ErrInvalidRequestBody is returned when a request body for DELETE/PATCH/POST is not a reference type ErrInvalidStructFormat = errors.New("go-tfe bug: struct can't use both json and jsonapi attributes") // ErrInvalidStructFormat is returned when a mix of json and jsonapi tagged fields are used in the same struct )
Library errors that usually indicate a bug in the implementation of go-tfe
var ( // ErrWorkspaceLocked is returned when trying to lock a locked workspace. ErrWorkspaceLocked = errors.New("workspace already locked") // ErrWorkspaceNotLocked is returned when trying to unlock a unlocked workspace. ErrWorkspaceNotLocked = errors.New("workspace already unlocked") // ErrWorkspaceLockedByRun is returned when trying to unlock a workspace locked by a run. ErrWorkspaceLockedByRun = errors.New("unable to unlock workspace locked by run") // ErrWorkspaceLockedByTeam is returned when trying to unlock a workspace locked by a team. ErrWorkspaceLockedByTeam = errors.New("unable to unlock workspace locked by team") // ErrWorkspaceLockedByUser is returned when trying to unlock a workspace locked by a user. ErrWorkspaceLockedByUser = errors.New("unable to unlock workspace locked by user") // ErrWorkspaceLockedStateVersionStillPending is returned when trying to unlock whose // latest state version is still pending. ErrWorkspaceLockedStateVersionStillPending = errors.New("unable to unlock workspace while state version upload is still pending") // ErrWorkspaceStillProcessing is returned when a workspace is still processing state // to determine if it is safe to delete. "conflict" followed by newline is used to // preserve go-tfe version compatibility with the error constructed at runtime before it was // defined here. ErrWorkspaceStillProcessing = errors.New("conflict\nLatest workspace state is being processed to discover resources, please try again later") // ErrWorkspaceNotSafeToDelete is returned when a workspace has processed state and // is determined to still have resources present. "conflict" followed by newline is used to // preserve go-tfe version compatibility with the error constructed at runtime before it was // defined here. ErrWorkspaceNotSafeToDelete = errors.New("conflict\nworkspace cannot be safely deleted because it is still managing resources") // ErrWorkspaceLockedCannotDelete is returned when a workspace cannot be safely deleted when // it is locked. "conflict" followed by newline is used to preserve go-tfe version // compatibility with the error constructed at runtime before it was defined here. ErrWorkspaceLockedCannotDelete = errors.New("conflict\nWorkspace is currently locked. Workspace must be unlocked before it can be safely deleted") )
Resource Errors
var ( ErrInvalidWorkspaceID = errors.New("invalid value for workspace ID") ErrInvalidWorkspaceValue = errors.New("invalid value for workspace") ErrInvalidTerraformVersionID = errors.New("invalid value for terraform version ID") ErrInvalidTerraformVersionType = errors.New("invalid type for terraform version. Please use 'terraform-version'") ErrInvalidOPAVersionID = errors.New("invalid value for OPA version ID") ErrInvalidSentinelVersionID = errors.New("invalid value for Sentinel version ID") ErrInvalidConfigVersionID = errors.New("invalid value for configuration version ID") ErrInvalidCostEstimateID = errors.New("invalid value for cost estimate ID") ErrInvalidSMTPAuth = errors.New("invalid smtp auth type") ErrInvalidAgentPoolID = errors.New("invalid value for agent pool ID") ErrInvalidAgentTokenID = errors.New("invalid value for agent token ID") ErrInvalidRunID = errors.New("invalid value for run ID") ErrInvalidRunEventID = errors.New("invalid value for run event ID") ErrInvalidProjectID = errors.New("invalid value for project ID") ErrInvalidPagination = errors.New("invalid value for page size or number") ErrInvalidRunTaskCategory = errors.New(`category must be "task"`) ErrInvalidRunTaskID = errors.New("invalid value for run task ID") ErrInvalidRunTaskURL = errors.New("invalid url for run task URL") ErrInvalidWorkspaceRunTaskID = errors.New("invalid value for workspace run task ID") ErrInvalidWorkspaceRunTaskType = errors.New(`invalid value for type, please use "workspace-tasks"`) ErrInvalidTaskResultID = errors.New("invalid value for task result ID") ErrInvalidTaskStageID = errors.New("invalid value for task stage ID") ErrInvalidApplyID = errors.New("invalid value for apply ID") ErrInvalidOrg = errors.New("invalid value for organization") ErrInvalidName = errors.New("invalid value for name") ErrInvalidNotificationConfigID = errors.New("invalid value for notification configuration ID") ErrInvalidMembership = errors.New("invalid value for membership") ErrInvalidMembershipIDs = errors.New("invalid value for organization membership ids") ErrInvalidOauthClientID = errors.New("invalid value for OAuth client ID") ErrInvalidOauthTokenID = errors.New("invalid value for OAuth token ID") ErrInvalidPolicySetID = errors.New("invalid value for policy set ID") ErrInvalidPolicyCheckID = errors.New("invalid value for policy check ID") ErrInvalidPolicyEvaluationID = errors.New("invalid value for policy evaluation ID") ErrInvalidPolicySetOutcomeID = errors.New("invalid value for policy set outcome ID") ErrInvalidTag = errors.New("invalid tag id") ErrInvalidPlanExportID = errors.New("invalid value for plan export ID") ErrInvalidPlanID = errors.New("invalid value for plan ID") ErrInvalidParamID = errors.New("invalid value for parameter ID") ErrInvalidPolicyID = errors.New("invalid value for policy ID") ErrInvalidProvider = errors.New("invalid value for provider") ErrInvalidVersion = errors.New("invalid value for version") ErrInvalidRunTriggerID = errors.New("invalid value for run trigger ID") ErrInvalidRunTriggerType = errors.New(`invalid value or no value for RunTriggerType. It must be either "inbound" or "outbound"`) ErrInvalidIncludeValue = errors.New(`invalid value for "include" field`) ErrInvalidSHHKeyID = errors.New("invalid value for SSH key ID") ErrInvalidStateVerID = errors.New("invalid value for state version ID") ErrInvalidOutputID = errors.New("invalid value for state version output ID") ErrInvalidAccessTeamID = errors.New("invalid value for team access ID") ErrInvalidTeamProjectAccessID = errors.New("invalid value for team project access ID") ErrInvalidTeamProjectAccessType = errors.New("invalid type for team project access") ErrInvalidTeamID = errors.New("invalid value for team ID") ErrInvalidUsernames = errors.New("invalid value for usernames") ErrInvalidUserID = errors.New("invalid value for user ID") ErrInvalidUserValue = errors.New("invalid value for user") ErrInvalidTokenID = errors.New("invalid value for token ID") ErrInvalidCategory = errors.New("category must be policy-set") ErrInvalidPolicies = errors.New("must provide at least one policy") ErrInvalidVariableID = errors.New("invalid value for variable ID") ErrInvalidNotificationTrigger = errors.New("invalid value for notification trigger") ErrInvalidVariableSetID = errors.New("invalid variable set ID") ErrInvalidCommentID = errors.New("invalid value for comment ID") ErrInvalidCommentBody = errors.New("invalid value for comment body") ErrInvalidNamespace = errors.New("invalid value for namespace") ErrInvalidKeyID = errors.New("invalid value for key-id") ErrInvalidOS = errors.New("invalid value for OS") ErrInvalidArch = errors.New("invalid value for arch") ErrInvalidAgentID = errors.New("invalid value for Agent ID") ErrInvalidModuleID = errors.New("invalid value for module ID") ErrInvalidRegistryName = errors.New(`invalid value for registry-name. It must be either "private" or "public"`) ErrInvalidCallbackURL = errors.New("invalid value for callback URL") ErrInvalidAccessToken = errors.New("invalid value for access token") ErrInvalidTaskResultsCallbackStatus = fmt.Errorf("invalid value for task result status. Must be either `%s`, `%s`, or `%s`", TaskFailed, TaskPassed, TaskRunning) ErrInvalidDescriptionConflict = errors.New("invalid attributes\n\nValidation failed: Description has already been taken") )
Invalid values for resources/struct fields
var ( ErrRequiredAccess = errors.New("access is required") ErrRequiredAgentPoolID = errors.New("'agent' execution mode requires an agent pool ID to be specified") ErrRequiredAgentMode = errors.New("specifying an agent pool ID requires 'agent' execution mode") ErrRequiredBranchWhenTestsEnabled = errors.New("VCS branch is required when enabling tests") ErrBranchMustBeEmptyWhenTagsEnabled = errors.New("VCS branch must be empty to enable tags") ErrRequiredCategory = errors.New("category is required") ErrRequiredDestinationType = errors.New("destination type is required") ErrRequiredDataType = errors.New("data type is required") ErrRequiredKey = errors.New("key is required") ErrRequiredName = errors.New("name is required") ErrRequiredQuery = errors.New("query cannot be empty") ErrRequiredEnabled = errors.New("enabled is required") ErrRequiredEnforce = errors.New("enforce or enforcement-level is required") ErrConflictingEnforceEnforcementLevel = errors.New("enforce and enforcement-level may not both be specified together") ErrRequiredEnforcementPath = errors.New("enforcement path is required") ErrRequiredEnforcementMode = errors.New("enforcement mode is required") ErrRequiredEmail = errors.New("email is required") ErrRequiredM5 = errors.New("MD5 is required") ErrRequiredURL = errors.New("url is required") ErrRequiredArchOrURLAndSha = errors.New("valid arch or url and sha is required") ErrRequiredAPIURL = errors.New("API URL is required") ErrRequiredHTTPURL = errors.New("HTTP URL is required") ErrRequiredServiceProvider = errors.New("service provider is required") ErrRequiredProvider = errors.New("provider is required") ErrRequiredOauthToken = errors.New("OAuth token is required") ErrRequiredOauthTokenOrGithubAppInstallationID = errors.New("either oauth token ID or github app installation ID is required") ErrRequiredTestNumber = errors.New("TestNumber is required") ErrMissingTagIdentifier = errors.New("must specify at least one tag by ID or name") ErrAgentTokenDescription = errors.New("agent token description can't be blank") ErrRequiredTagID = errors.New("you must specify at least one tag id to remove") ErrRequiredTagWorkspaceID = errors.New("you must specify at least one workspace to add tag to") ErrRequiredWorkspace = errors.New("workspace is required") ErrRequiredProject = errors.New("project is required") ErrRequiredWorkspaceID = errors.New("workspace ID is required") ErrRequiredProjectID = errors.New("project ID is required") ErrWorkspacesRequired = errors.New("workspaces is required") ErrWorkspaceMinLimit = errors.New("must provide at least one workspace") ErrProjectMinLimit = errors.New("must provide at least one project") ErrRequiredPlan = errors.New("plan is required") ErrRequiredPolicies = errors.New("policies is required") ErrRequiredVersion = errors.New("version is required") ErrRequiredVCSRepo = errors.New("vcs repo is required") ErrRequiredIdentifier = errors.New("identifier is required") ErrRequiredDisplayIdentifier = errors.New("display identifier is required") ErrRequiredSha = errors.New("sha is required") ErrRequiredSourceable = errors.New("sourceable is required") ErrRequiredValue = errors.New("value is required") ErrRequiredOrg = errors.New("organization is required") ErrRequiredTeam = errors.New("team is required") ErrRequiredStateVerListOps = errors.New("StateVersionListOptions is required") ErrRequiredTeamAccessListOps = errors.New("TeamAccessListOptions is required") ErrRequiredTeamProjectAccessListOps = errors.New("TeamProjectAccessListOptions is required") ErrRequiredRunTriggerListOps = errors.New("RunTriggerListOptions is required") ErrRequiredTFVerCreateOps = errors.New("version, URL and sha is required for AdminTerraformVersionCreateOptions") ErrRequiredOPAVerCreateOps = errors.New("version, URL and sha is required for AdminOPAVersionCreateOptions") ErrRequiredSentinelVerCreateOps = errors.New("version, URL and sha is required for AdminSentinelVersionCreateOptions") ErrRequiredSerial = errors.New("serial is required") ErrRequiredState = errors.New("state is required") ErrRequiredSHHKeyID = errors.New("SSH key ID is required") ErrRequiredOnlyOneField = errors.New("only one of usernames or organization membership ids can be provided") ErrRequiredUsernameOrMembershipIds = errors.New("usernames or organization membership ids are required") ErrRequiredGlobalFlag = errors.New("global flag is required") ErrRequiredWorkspacesList = errors.New("no workspaces list provided") ErrCommentBody = errors.New("comment body is required") ErrEmptyTeamName = errors.New("team name can not be empty") ErrInvalidEmail = errors.New("email is invalid") ErrRequiredPrivateRegistry = errors.New("only private registry is allowed") ErrRequiredOS = errors.New("OS is required") ErrRequiredArch = errors.New("arch is required") ErrRequiredShasum = errors.New("shasum is required") ErrRequiredFilename = errors.New("filename is required") ErrInvalidAsciiArmor = errors.New("ASCII Armor is invalid") ErrRequiredNamespace = errors.New("namespace is required for public registry") ErrRequiredRegistryModule = errors.New("registry module is required") ErrRequiredTagBindings = errors.New("TagBindings are required") ErrInvalidTestRunID = errors.New("invalid value for test run id") ErrTerraformVersionValidForPlanOnly = errors.New("setting terraform-version is only valid when plan-only is set to true") ErrStateMustBeOmitted = errors.New("when uploading state, the State and JSONState strings must be omitted from options") ErrRequiredRawState = errors.New("RawState is required") ErrStateVersionUploadNotSupported = errors.New("upload not supported by this version of Terraform Enterprise") )
Functions ¶
func ContextWithResponseHeaderHook ¶ added in v1.24.0
func ContextWithResponseHeaderHook(parentCtx context.Context, cb func(status int, header http.Header)) context.Context
ContextWithResponseHeaderHook returns a context that will, if passed to ClientRequest.Do or to any of the wrapper methods that call it, arrange for the given callback to be called with the headers from the raw HTTP response.
This is intended for allowing callers to respond to out-of-band metadata such as cache-control-related headers, rate limiting headers, etc. Hooks must not modify the given http.Header or otherwise attempt to change how the response is handled by ClientRequest.Do.
If the given context already has a response header hook then the returned context will call both the existing hook and the newly-provided one, with the newer being called first.
func NullBool ¶ added in v1.44.0
func NullBool() jsonapi.NullableAttr[bool]
func NullableBool ¶ added in v1.44.0
func NullableBool(v bool) jsonapi.NullableAttr[bool]
func NullableTime ¶ added in v1.44.0
Types ¶
type AccessType ¶ added in v0.1.2
type AccessType string
AccessType represents a team access type.
const ( AccessAdmin AccessType = "admin" AccessPlan AccessType = "plan" AccessRead AccessType = "read" AccessWrite AccessType = "write" AccessCustom AccessType = "custom" )
func Access ¶
func Access(v AccessType) *AccessType
Access returns a pointer to the given team access type.
type Actions ¶ added in v1.13.0
type Actions struct {
IsOverridable *bool `jsonapi:"attr,is-overridable"`
}
Actions represents a task stage actions
type AddWorkspacesToTagOptions ¶ added in v0.21.0
type AddWorkspacesToTagOptions struct {
WorkspaceIDs []string // Required
}
AddWorkspacesToTagOptions represents the request body to add a workspace to a tag
type Admin ¶ added in v0.13.0
type Admin struct { Organizations AdminOrganizations Workspaces AdminWorkspaces Runs AdminRuns TerraformVersions AdminTerraformVersions OPAVersions AdminOPAVersions SentinelVersions AdminSentinelVersions Users AdminUsers Settings *AdminSettings }
Admin is the the Terraform Enterprise Admin API. It provides access to site wide admin settings. These are only available for Terraform Enterprise and do not function against HCP Terraform
type AdminCostEstimationSetting ¶ added in v0.13.0
type AdminCostEstimationSetting struct { ID string `jsonapi:"primary,cost-estimation-settings"` Enabled bool `jsonapi:"attr,enabled"` AWSAccessKeyID string `jsonapi:"attr,aws-access-key-id"` AWSAccessKey string `jsonapi:"attr,aws-secret-key"` AWSEnabled bool `jsonapi:"attr,aws-enabled"` AWSInstanceProfileEnabled bool `jsonapi:"attr,aws-instance-profile-enabled"` GCPCredentials string `jsonapi:"attr,gcp-credentials"` GCPEnabled bool `jsonapi:"attr,gcp-enabled"` AzureEnabled bool `jsonapi:"attr,azure-enabled"` AzureClientID string `jsonapi:"attr,azure-client-id"` AzureClientSecret string `jsonapi:"attr,azure-client-secret"` AzureSubscriptionID string `jsonapi:"attr,azure-subscription-id"` AzureTenantID string `jsonapi:"attr,azure-tenant-id"` }
AdminCostEstimationSetting represents the admin cost estimation settings.
type AdminCostEstimationSettingOptions ¶ added in v0.13.0
type AdminCostEstimationSettingOptions struct { Enabled *bool `jsonapi:"attr,enabled,omitempty"` AWSAccessKeyID *string `jsonapi:"attr,aws-access-key-id,omitempty"` AWSAccessKey *string `jsonapi:"attr,aws-secret-key,omitempty"` GCPCredentials *string `jsonapi:"attr,gcp-credentials,omitempty"` AzureClientID *string `jsonapi:"attr,azure-client-id,omitempty"` AzureClientSecret *string `jsonapi:"attr,azure-client-secret,omitempty"` AzureSubscriptionID *string `jsonapi:"attr,azure-subscription-id,omitempty"` AzureTenantID *string `jsonapi:"attr,azure-tenant-id,omitempty"` }
AdminCostEstimationSettingOptions represents the admin options for updating the cost estimation settings. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings#request-body-1
type AdminCustomizationSetting ¶ added in v0.13.0
type AdminCustomizationSetting struct { ID string `jsonapi:"primary,customization-settings"` SupportEmail string `jsonapi:"attr,support-email-address"` LoginHelp string `jsonapi:"attr,login-help"` Error string `jsonapi:"attr,error"` NewUser string `jsonapi:"attr,new-user"` }
AdminCustomizationSetting represents the Customization settings in Terraform Enterprise for the Admin Settings API. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings
type AdminCustomizationSettingsUpdateOptions ¶ added in v0.13.0
type AdminCustomizationSettingsUpdateOptions struct { SupportEmail *string `jsonapi:"attr,support-email-address,omitempty"` LoginHelp *string `jsonapi:"attr,login-help,omitempty"` Error *string `jsonapi:"attr,error,omitempty"` NewUser *string `jsonapi:"attr,new-user,omitempty"` }
AdminCustomizationSettingsUpdateOptions represents the admin options for updating Customization settings. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings#request-body-6
type AdminGeneralSetting ¶ added in v0.13.0
type AdminGeneralSetting struct { ID string `jsonapi:"primary,general-settings"` LimitUserOrganizationCreation bool `jsonapi:"attr,limit-user-organization-creation"` APIRateLimitingEnabled bool `jsonapi:"attr,api-rate-limiting-enabled"` APIRateLimit int `jsonapi:"attr,api-rate-limit"` SendPassingStatusesEnabled bool `jsonapi:"attr,send-passing-statuses-for-untriggered-speculative-plans"` AllowSpeculativePlansOnPR bool `jsonapi:"attr,allow-speculative-plans-on-pull-requests-from-forks"` RequireTwoFactorForAdmin bool `jsonapi:"attr,require-two-factor-for-admins"` FairRunQueuingEnabled bool `jsonapi:"attr,fair-run-queuing-enabled"` LimitOrgsPerUser bool `jsonapi:"attr,limit-organizations-per-user"` DefaultOrgsPerUserCeiling int `jsonapi:"attr,default-organizations-per-user-ceiling"` LimitWorkspacesPerOrg bool `jsonapi:"attr,limit-workspaces-per-organization"` DefaultWorkspacesPerOrgCeiling int `jsonapi:"attr,default-workspaces-per-organization-ceiling"` TerraformBuildWorkerApplyTimeout string `jsonapi:"attr,terraform-build-worker-apply-timeout"` TerraformBuildWorkerPlanTimeout string `jsonapi:"attr,terraform-build-worker-plan-timeout"` ApplyTimeout string `jsonapi:"attr,apply-timeout"` PlanTimeout string `jsonapi:"attr,plan-timeout"` DefaultRemoteStateAccess bool `jsonapi:"attr,default-remote-state-access"` }
AdminGeneralSetting represents a the general settings in Terraform Enterprise.
type AdminGeneralSettingsUpdateOptions ¶ added in v0.13.0
type AdminGeneralSettingsUpdateOptions struct { LimitUserOrgCreation *bool `jsonapi:"attr,limit-user-organization-creation,omitempty"` APIRateLimitingEnabled *bool `jsonapi:"attr,api-rate-limiting-enabled,omitempty"` APIRateLimit *int `jsonapi:"attr,api-rate-limit,omitempty"` SendPassingStatusUntriggeredPlans *bool `jsonapi:"attr,send-passing-statuses-for-untriggered-speculative-plans,omitempty"` AllowSpeculativePlansOnPR *bool `jsonapi:"attr,allow-speculative-plans-on-pull-requests-from-forks,omitempty"` DefaultRemoteStateAccess *bool `jsonapi:"attr,default-remote-state-access,omitempty"` ApplyTimeout *string `jsonapi:"attr,apply-timeout"` PlanTimeout *string `jsonapi:"attr,plan-timeout"` }
AdminGeneralSettingsUpdateOptions represents the admin options for updating general settings. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings#request-body
type AdminOPAVersion ¶ added in v1.42.0
type AdminOPAVersion struct { ID string `jsonapi:"primary,opa-versions"` Version string `jsonapi:"attr,version"` URL string `jsonapi:"attr,url"` SHA string `jsonapi:"attr,sha"` Deprecated bool `jsonapi:"attr,deprecated"` DeprecatedReason *string `jsonapi:"attr,deprecated-reason,omitempty"` Official bool `jsonapi:"attr,official"` Enabled bool `jsonapi:"attr,enabled"` Beta bool `jsonapi:"attr,beta"` Usage int `jsonapi:"attr,usage"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` }
AdminOPAVersion represents a OPA Version
type AdminOPAVersionCreateOptions ¶ added in v1.42.0
type AdminOPAVersionCreateOptions struct { Type string `jsonapi:"primary,opa-versions"` Version string `jsonapi:"attr,version"` // Required URL string `jsonapi:"attr,url"` // Required SHA string `jsonapi:"attr,sha"` // Required Official *bool `jsonapi:"attr,official,omitempty"` Deprecated *bool `jsonapi:"attr,deprecated,omitempty"` DeprecatedReason *string `jsonapi:"attr,deprecated-reason,omitempty"` Enabled *bool `jsonapi:"attr,enabled,omitempty"` Beta *bool `jsonapi:"attr,beta,omitempty"` }
AdminOPAVersionCreateOptions for creating an OPA version.
type AdminOPAVersionUpdateOptions ¶ added in v1.42.0
type AdminOPAVersionUpdateOptions struct { Type string `jsonapi:"primary,opa-versions"` Version *string `jsonapi:"attr,version,omitempty"` URL *string `jsonapi:"attr,url,omitempty"` SHA *string `jsonapi:"attr,sha,omitempty"` Official *bool `jsonapi:"attr,official,omitempty"` Deprecated *bool `jsonapi:"attr,deprecated,omitempty"` DeprecatedReason *string `jsonapi:"attr,deprecated-reason,omitempty"` Enabled *bool `jsonapi:"attr,enabled,omitempty"` Beta *bool `jsonapi:"attr,beta,omitempty"` }
AdminOPAVersionUpdateOptions for updating OPA version.
type AdminOPAVersions ¶ added in v1.42.0
type AdminOPAVersions interface { // List all the OPA versions. List(ctx context.Context, options *AdminOPAVersionsListOptions) (*AdminOPAVersionsList, error) // Read a OPA version by its ID. Read(ctx context.Context, id string) (*AdminOPAVersion, error) // Create a OPA version. Create(ctx context.Context, options AdminOPAVersionCreateOptions) (*AdminOPAVersion, error) // Update a OPA version. Update(ctx context.Context, id string, options AdminOPAVersionUpdateOptions) (*AdminOPAVersion, error) // Delete a OPA version Delete(ctx context.Context, id string) error }
AdminOPAVersions describes all the admin OPA versions related methods that the Terraform Enterprise API supports. Note that admin OPA versions are only available in Terraform Enterprise.
TFE API docs: https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/opa-versions
type AdminOPAVersionsList ¶ added in v1.42.0
type AdminOPAVersionsList struct { *Pagination Items []*AdminOPAVersion }
AdminOPAVersionsList represents a list of OPA versions.
type AdminOPAVersionsListOptions ¶ added in v1.42.0
type AdminOPAVersionsListOptions struct { ListOptions // Optional: A query string to find an exact version Filter string `url:"filter[version],omitempty"` // Optional: A search query string to find all versions that match version substring Search string `url:"search[version],omitempty"` }
AdminOPAVersionsListOptions represents the options for listing OPA versions.
type AdminOrgIncludeOpt ¶ added in v1.0.0
type AdminOrgIncludeOpt string
AdminOrgIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/organizations#available-related-resources
const AdminOrgOwners AdminOrgIncludeOpt = "owners"
type AdminOrganization ¶ added in v0.13.0
type AdminOrganization struct { Name string `jsonapi:"primary,organizations"` AccessBetaTools bool `jsonapi:"attr,access-beta-tools"` ExternalID string `jsonapi:"attr,external-id"` GlobalModuleSharing *bool `jsonapi:"attr,global-module-sharing"` GlobalProviderSharing *bool `jsonapi:"attr,global-provider-sharing"` IsDisabled bool `jsonapi:"attr,is-disabled"` NotificationEmail string `jsonapi:"attr,notification-email"` SsoEnabled bool `jsonapi:"attr,sso-enabled"` TerraformBuildWorkerApplyTimeout string `jsonapi:"attr,terraform-build-worker-apply-timeout"` TerraformBuildWorkerPlanTimeout string `jsonapi:"attr,terraform-build-worker-plan-timeout"` ApplyTimeout string `jsonapi:"attr,apply-timeout"` PlanTimeout string `jsonapi:"attr,plan-timeout"` TerraformWorkerSudoEnabled bool `jsonapi:"attr,terraform-worker-sudo-enabled"` WorkspaceLimit *int `jsonapi:"attr,workspace-limit"` // Relations Owners []*User `jsonapi:"relation,owners"` }
AdminOrganization represents a Terraform Enterprise organization returned from the Admin API.
type AdminOrganizationID ¶ added in v0.22.0
type AdminOrganizationID struct {
ID string `jsonapi:"primary,organizations"`
}
type AdminOrganizationList ¶ added in v0.13.0
type AdminOrganizationList struct { *Pagination Items []*AdminOrganization }
AdminOrganizationList represents a list of organizations via Admin API.
type AdminOrganizationListModuleConsumersOptions ¶ added in v0.22.0
type AdminOrganizationListModuleConsumersOptions struct {
ListOptions
}
AdminOrganizationListModuleConsumersOptions represents the options for listing organization module consumers through the Admin API
type AdminOrganizationListOptions ¶ added in v0.13.0
type AdminOrganizationListOptions struct { ListOptions // Optional: A query string used to filter organizations. // Any organizations with a name or notification email partially matching this value will be returned. Query string `url:"q,omitempty"` // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/organizations#available-related-resources Include []AdminOrgIncludeOpt `url:"include,omitempty"` }
AdminOrganizationListOptions represents the options for listing organizations via Admin API.
type AdminOrganizationUpdateOptions ¶ added in v0.13.0
type AdminOrganizationUpdateOptions struct { AccessBetaTools *bool `jsonapi:"attr,access-beta-tools,omitempty"` GlobalModuleSharing *bool `jsonapi:"attr,global-module-sharing,omitempty"` GlobalProviderSharing *bool `jsonapi:"attr,global-provider-sharing,omitempty"` IsDisabled *bool `jsonapi:"attr,is-disabled,omitempty"` TerraformBuildWorkerApplyTimeout *string `jsonapi:"attr,terraform-build-worker-apply-timeout,omitempty"` TerraformBuildWorkerPlanTimeout *string `jsonapi:"attr,terraform-build-worker-plan-timeout,omitempty"` ApplyTimeout *string `jsonapi:"attr,apply-timeout,omitempty"` PlanTimeout *string `jsonapi:"attr,plan-timeout,omitempty"` TerraformWorkerSudoEnabled bool `jsonapi:"attr,terraform-worker-sudo-enabled,omitempty"` WorkspaceLimit *int `jsonapi:"attr,workspace-limit,omitempty"` }
AdminOrganizationUpdateOptions represents the admin options for updating an organization. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/organizations#request-body
type AdminOrganizations ¶ added in v0.13.0
type AdminOrganizations interface { // List all the organizations visible to the current user. List(ctx context.Context, options *AdminOrganizationListOptions) (*AdminOrganizationList, error) // Read attributes of an existing organization via admin API. Read(ctx context.Context, organization string) (*AdminOrganization, error) // Update attributes of an existing organization via admin API. Update(ctx context.Context, organization string, options AdminOrganizationUpdateOptions) (*AdminOrganization, error) // Delete an organization by its name via admin API Delete(ctx context.Context, organization string) error // ListModuleConsumers lists specific organizations in the Terraform Enterprise installation that have permission to use an organization's modules. ListModuleConsumers(ctx context.Context, organization string, options *AdminOrganizationListModuleConsumersOptions) (*AdminOrganizationList, error) // UpdateModuleConsumers specifies a list of organizations that can use modules from the sharing organization's private registry. Setting a list of module consumers will turn off global module sharing for an organization. UpdateModuleConsumers(ctx context.Context, organization string, consumerOrganizations []string) error }
AdminOrganizations describes all of the admin organization related methods that the Terraform Enterprise API supports. Note that admin settings are only available in Terraform Enterprise.
TFE API docs: https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/organizations
type AdminRun ¶ added in v0.13.0
type AdminRun struct { ID string `jsonapi:"primary,runs"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` HasChanges bool `jsonapi:"attr,has-changes"` Status RunStatus `jsonapi:"attr,status"` StatusTimestamps *RunStatusTimestamps `jsonapi:"attr,status-timestamps"` // Relations Workspace *AdminWorkspace `jsonapi:"relation,workspace"` Organization *AdminOrganization `jsonapi:"relation,workspace.organization"` }
AdminRun represents AdminRuns interface.
type AdminRunForceCancelOptions ¶ added in v0.13.0
type AdminRunForceCancelOptions struct { // An optional comment explaining the reason for the force-cancel. // https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/runs#request-body Comment *string `json:"comment,omitempty"` }
AdminRunForceCancelOptions represents the options for force-canceling a run.
type AdminRunIncludeOpt ¶ added in v1.0.0
type AdminRunIncludeOpt string
AdminRunIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/runs#available-related-resources
const ( AdminRunWorkspace AdminRunIncludeOpt = "workspace" AdminRunWorkspaceOrg AdminRunIncludeOpt = "workspace.organization" AdminRunWorkspaceOrgOwners AdminRunIncludeOpt = "workspace.organization.owners" )
type AdminRuns ¶ added in v0.13.0
type AdminRuns interface { // List all the runs of the given installation. List(ctx context.Context, options *AdminRunsListOptions) (*AdminRunsList, error) // Force-cancel a run by its ID. ForceCancel(ctx context.Context, runID string, options AdminRunForceCancelOptions) error }
AdminRuns describes all the admin run related methods that the Terraform Enterprise API supports. It contains endpoints to help site administrators manage their runs.
TFE API docs: https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/runs
type AdminRunsList ¶ added in v0.13.0
type AdminRunsList struct { *Pagination Items []*AdminRun }
AdminRunsList represents a list of runs.
type AdminRunsListOptions ¶ added in v0.13.0
type AdminRunsListOptions struct { ListOptions RunStatus string `url:"filter[status],omitempty"` CreatedBefore string `url:"filter[to],omitempty"` CreatedAfter string `url:"filter[from],omitempty"` Query string `url:"q,omitempty"` // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/runs#available-related-resources Include []AdminRunIncludeOpt `url:"include,omitempty"` }
AdminRunsListOptions represents the options for listing runs. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/runs#query-parameters
type AdminSAMLSetting ¶ added in v0.13.0
type AdminSAMLSetting struct { ID string `jsonapi:"primary,saml-settings"` Enabled bool `jsonapi:"attr,enabled"` Debug bool `jsonapi:"attr,debug"` AuthnRequestsSigned bool `jsonapi:"attr,authn-requests-signed"` WantAssertionsSigned bool `jsonapi:"attr,want-assertions-signed"` TeamManagementEnabled bool `jsonapi:"attr,team-management-enabled"` OldIDPCert string `jsonapi:"attr,old-idp-cert"` IDPCert string `jsonapi:"attr,idp-cert"` SLOEndpointURL string `jsonapi:"attr,slo-endpoint-url"` SSOEndpointURL string `jsonapi:"attr,sso-endpoint-url"` AttrUsername string `jsonapi:"attr,attr-username"` AttrGroups string `jsonapi:"attr,attr-groups"` AttrSiteAdmin string `jsonapi:"attr,attr-site-admin"` SiteAdminRole string `jsonapi:"attr,site-admin-role"` SSOAPITokenSessionTimeout int `jsonapi:"attr,sso-api-token-session-timeout"` ACSConsumerURL string `jsonapi:"attr,acs-consumer-url"` MetadataURL string `jsonapi:"attr,metadata-url"` Certificate string `jsonapi:"attr,certificate"` PrivateKey string `jsonapi:"attr,private-key"` SignatureSigningMethod string `jsonapi:"attr,signature-signing-method"` SignatureDigestMethod string `jsonapi:"attr,signature-digest-method"` }
AdminSAMLSetting represents the SAML settings in Terraform Enterprise.
type AdminSAMLSettingsUpdateOptions ¶ added in v0.13.0
type AdminSAMLSettingsUpdateOptions struct { Enabled *bool `jsonapi:"attr,enabled,omitempty"` Debug *bool `jsonapi:"attr,debug,omitempty"` IDPCert *string `jsonapi:"attr,idp-cert,omitempty"` Certificate *string `jsonapi:"attr,certificate,omitempty"` PrivateKey *string `jsonapi:"attr,private-key,omitempty"` SLOEndpointURL *string `jsonapi:"attr,slo-endpoint-url,omitempty"` SSOEndpointURL *string `jsonapi:"attr,sso-endpoint-url,omitempty"` AttrUsername *string `jsonapi:"attr,attr-username,omitempty"` AttrGroups *string `jsonapi:"attr,attr-groups,omitempty"` AttrSiteAdmin *string `jsonapi:"attr,attr-site-admin,omitempty"` SiteAdminRole *string `jsonapi:"attr,site-admin-role,omitempty"` SSOAPITokenSessionTimeout *int `jsonapi:"attr,sso-api-token-session-timeout,omitempty"` TeamManagementEnabled *bool `jsonapi:"attr,team-management-enabled,omitempty"` AuthnRequestsSigned *bool `jsonapi:"attr,authn-requests-signed,omitempty"` WantAssertionsSigned *bool `jsonapi:"attr,want-assertions-signed,omitempty"` SignatureSigningMethod *string `jsonapi:"attr,signature-signing-method,omitempty"` SignatureDigestMethod *string `jsonapi:"attr,signature-digest-method,omitempty"` }
AdminSAMLSettingsUpdateOptions represents the admin options for updating SAML settings. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings#request-body-2
type AdminSMTPSetting ¶ added in v0.13.0
type AdminSMTPSetting struct { ID string `jsonapi:"primary,smtp-settings"` Enabled bool `jsonapi:"attr,enabled"` Host string `jsonapi:"attr,host"` Port int `jsonapi:"attr,port"` Sender string `jsonapi:"attr,sender"` Auth SMTPAuthType `jsonapi:"attr,auth"` Username string `jsonapi:"attr,username"` }
AdminSMTPSetting represents a the SMTP settings in Terraform Enterprise.
type AdminSMTPSettingsUpdateOptions ¶ added in v0.13.0
type AdminSMTPSettingsUpdateOptions struct { Enabled *bool `jsonapi:"attr,enabled,omitempty"` Host *string `jsonapi:"attr,host,omitempty"` Port *int `jsonapi:"attr,port,omitempty"` Sender *string `jsonapi:"attr,sender,omitempty"` Auth *SMTPAuthType `jsonapi:"attr,auth,omitempty"` Username *string `jsonapi:"attr,username,omitempty"` Password *string `jsonapi:"attr,password,omitempty"` TestEmailAddress *string `jsonapi:"attr,test-email-address,omitempty"` }
AdminSMTPSettingsUpdateOptions represents the admin options for updating SMTP settings. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings#request-body-3
type AdminSentinelVersion ¶ added in v1.42.0
type AdminSentinelVersion struct { ID string `jsonapi:"primary,sentinel-versions"` Version string `jsonapi:"attr,version"` URL string `jsonapi:"attr,url"` SHA string `jsonapi:"attr,sha"` Deprecated bool `jsonapi:"attr,deprecated"` DeprecatedReason *string `jsonapi:"attr,deprecated-reason,omitempty"` Official bool `jsonapi:"attr,official"` Enabled bool `jsonapi:"attr,enabled"` Beta bool `jsonapi:"attr,beta"` Usage int `jsonapi:"attr,usage"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` }
AdminSentinelVersion represents a Sentinel Version
type AdminSentinelVersionCreateOptions ¶ added in v1.42.0
type AdminSentinelVersionCreateOptions struct { Type string `jsonapi:"primary,sentinel-versions"` Version string `jsonapi:"attr,version"` // Required URL string `jsonapi:"attr,url"` // Required SHA string `jsonapi:"attr,sha"` // Required Official *bool `jsonapi:"attr,official,omitempty"` Deprecated *bool `jsonapi:"attr,deprecated,omitempty"` DeprecatedReason *string `jsonapi:"attr,deprecated-reason,omitempty"` Enabled *bool `jsonapi:"attr,enabled,omitempty"` Beta *bool `jsonapi:"attr,beta,omitempty"` }
AdminSentinelVersionCreateOptions for creating an Sentinel version.
type AdminSentinelVersionUpdateOptions ¶ added in v1.42.0
type AdminSentinelVersionUpdateOptions struct { Type string `jsonapi:"primary,sentinel-versions"` Version *string `jsonapi:"attr,version,omitempty"` URL *string `jsonapi:"attr,url,omitempty"` SHA *string `jsonapi:"attr,sha,omitempty"` Official *bool `jsonapi:"attr,official,omitempty"` Deprecated *bool `jsonapi:"attr,deprecated,omitempty"` DeprecatedReason *string `jsonapi:"attr,deprecated-reason,omitempty"` Enabled *bool `jsonapi:"attr,enabled,omitempty"` Beta *bool `jsonapi:"attr,beta,omitempty"` }
AdminSentinelVersionUpdateOptions for updating Sentinel version.
type AdminSentinelVersions ¶ added in v1.42.0
type AdminSentinelVersions interface { // List all the Sentinel versions. List(ctx context.Context, options *AdminSentinelVersionsListOptions) (*AdminSentinelVersionsList, error) // Read a Sentinel version by its ID. Read(ctx context.Context, id string) (*AdminSentinelVersion, error) // Create a Sentinel version. Create(ctx context.Context, options AdminSentinelVersionCreateOptions) (*AdminSentinelVersion, error) // Update a Sentinel version. Update(ctx context.Context, id string, options AdminSentinelVersionUpdateOptions) (*AdminSentinelVersion, error) // Delete a Sentinel version Delete(ctx context.Context, id string) error }
AdminSentinelVersions describes all the admin Sentinel versions related methods that the Terraform Enterprise API supports. Note that admin Sentinel versions are only available in Terraform Enterprise.
TFE API docs: https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/sentinel-versions
type AdminSentinelVersionsList ¶ added in v1.42.0
type AdminSentinelVersionsList struct { *Pagination Items []*AdminSentinelVersion }
AdminSentinelVersionsList represents a list of Sentinel versions.
type AdminSentinelVersionsListOptions ¶ added in v1.42.0
type AdminSentinelVersionsListOptions struct { ListOptions // Optional: A query string to find an exact version Filter string `url:"filter[version],omitempty"` // Optional: A search query string to find all versions that match version substring Search string `url:"search[version],omitempty"` }
AdminSentinelVersionsListOptions represents the options for listing Sentinel versions.
type AdminSettings ¶ added in v0.13.0
type AdminSettings struct { General GeneralSettings SAML SAMLSettings CostEstimation CostEstimationSettings SMTP SMTPSettings Twilio TwilioSettings Customization CustomizationSettings OIDC OIDCSettings }
AdminSettings describes all the admin settings related methods that the Terraform Enterprise API supports. Note that admin settings are only available in Terraform Enterprise.
TFE API docs: https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings
type AdminTerraformVersion ¶ added in v0.13.0
type AdminTerraformVersion struct { ID string `jsonapi:"primary,terraform-versions"` Version string `jsonapi:"attr,version"` URL string `jsonapi:"attr,url,omitempty"` Sha string `jsonapi:"attr,sha,omitempty"` Deprecated bool `jsonapi:"attr,deprecated"` DeprecatedReason *string `jsonapi:"attr,deprecated-reason,omitempty"` Official bool `jsonapi:"attr,official"` Enabled bool `jsonapi:"attr,enabled"` Beta bool `jsonapi:"attr,beta"` Usage int `jsonapi:"attr,usage"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` Archs []*ToolVersionArchitecture `jsonapi:"attr,archs,omitempty"` }
AdminTerraformVersion represents a Terraform Version
type AdminTerraformVersionCreateOptions ¶ added in v0.13.0
type AdminTerraformVersionCreateOptions struct { Type string `jsonapi:"primary,terraform-versions"` Version *string `jsonapi:"attr,version"` // Required URL *string `jsonapi:"attr,url,omitempty"` Sha *string `jsonapi:"attr,sha,omitempty"` Official *bool `jsonapi:"attr,official,omitempty"` Deprecated *bool `jsonapi:"attr,deprecated,omitempty"` DeprecatedReason *string `jsonapi:"attr,deprecated-reason,omitempty"` Enabled *bool `jsonapi:"attr,enabled,omitempty"` Beta *bool `jsonapi:"attr,beta,omitempty"` Archs []*ToolVersionArchitecture `jsonapi:"attr,archs,omitempty"` }
AdminTerraformVersionCreateOptions for creating a terraform version. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/terraform-versions#request-body
type AdminTerraformVersionUpdateOptions ¶ added in v0.13.0
type AdminTerraformVersionUpdateOptions struct { Type string `jsonapi:"primary,terraform-versions"` Version *string `jsonapi:"attr,version,omitempty"` URL *string `jsonapi:"attr,url,omitempty"` Sha *string `jsonapi:"attr,sha,omitempty"` Official *bool `jsonapi:"attr,official,omitempty"` Deprecated *bool `jsonapi:"attr,deprecated,omitempty"` DeprecatedReason *string `jsonapi:"attr,deprecated-reason,omitempty"` Enabled *bool `jsonapi:"attr,enabled,omitempty"` Beta *bool `jsonapi:"attr,beta,omitempty"` Archs []*ToolVersionArchitecture `jsonapi:"attr,archs,omitempty"` }
AdminTerraformVersionUpdateOptions for updating terraform version. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/terraform-versions#request-body
type AdminTerraformVersions ¶ added in v0.13.0
type AdminTerraformVersions interface { // List all the terraform versions. List(ctx context.Context, options *AdminTerraformVersionsListOptions) (*AdminTerraformVersionsList, error) // Read a terraform version by its ID. Read(ctx context.Context, id string) (*AdminTerraformVersion, error) // Create a terraform version. Create(ctx context.Context, options AdminTerraformVersionCreateOptions) (*AdminTerraformVersion, error) // Update a terraform version. Update(ctx context.Context, id string, options AdminTerraformVersionUpdateOptions) (*AdminTerraformVersion, error) // Delete a terraform version Delete(ctx context.Context, id string) error }
AdminTerraformVersions describes all the admin terraform versions related methods that the Terraform Enterprise API supports. Note that admin terraform versions are only available in Terraform Enterprise.
TFE API docs: https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/terraform-versions
type AdminTerraformVersionsList ¶ added in v0.13.0
type AdminTerraformVersionsList struct { *Pagination Items []*AdminTerraformVersion }
AdminTerraformVersionsList represents a list of terraform versions.
type AdminTerraformVersionsListOptions ¶ added in v0.13.0
type AdminTerraformVersionsListOptions struct { ListOptions // Optional: A query string to find an exact version Filter string `url:"filter[version],omitempty"` // Optional: A search query string to find all versions that match version substring Search string `url:"search[version],omitempty"` }
AdminTerraformVersionsListOptions represents the options for listing terraform versions.
type AdminTwilioSetting ¶ added in v0.13.0
type AdminTwilioSetting struct { ID string `jsonapi:"primary,twilio-settings"` Enabled bool `jsonapi:"attr,enabled"` AccountSid string `jsonapi:"attr,account-sid"` FromNumber string `jsonapi:"attr,from-number"` }
AdminTwilioSetting represents the Twilio settings in Terraform Enterprise.
type AdminTwilioSettingsUpdateOptions ¶ added in v0.13.0
type AdminTwilioSettingsUpdateOptions struct { Enabled *bool `jsonapi:"attr,enabled,omitempty"` AccountSid *string `jsonapi:"attr,account-sid,omitempty"` AuthToken *string `jsonapi:"attr,auth-token,omitempty"` FromNumber *string `jsonapi:"attr,from-number,omitempty"` }
AdminTwilioSettingsUpdateOptions represents the admin options for updating Twilio settings. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings#request-body-4
type AdminTwilioSettingsVerifyOptions ¶ added in v0.13.0
type AdminTwilioSettingsVerifyOptions struct {
TestNumber *string `jsonapi:"attr,test-number"` // Required
}
AdminTwilioSettingsVerifyOptions represents the test number to verify Twilio. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings#verify-twilio-settings
type AdminUser ¶ added in v0.13.0
type AdminUser struct { ID string `jsonapi:"primary,users"` Email string `jsonapi:"attr,email"` Username string `jsonapi:"attr,username"` AvatarURL string `jsonapi:"attr,avatar-url"` TwoFactor *TwoFactor `jsonapi:"attr,two-factor"` IsAdmin bool `jsonapi:"attr,is-admin"` IsSuspended bool `jsonapi:"attr,is-suspended"` IsServiceAccount bool `jsonapi:"attr,is-service-account"` // Relations Organizations []*Organization `jsonapi:"relation,organizations"` }
AdminUser represents a user as seen by an Admin.
type AdminUserIncludeOpt ¶ added in v1.0.0
type AdminUserIncludeOpt string
AdminUserIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/users#available-related-resources
const AdminUserOrgs AdminUserIncludeOpt = "organizations"
type AdminUserList ¶ added in v0.13.0
type AdminUserList struct { *Pagination Items []*AdminUser }
AdminUserList represents a list of users.
type AdminUserListOptions ¶ added in v0.13.0
type AdminUserListOptions struct { ListOptions // Optional: A search query string. Users are searchable by username and email address. Query string `url:"q,omitempty"` // Optional: Can be "true" or "false" to show only administrators or non-administrators. Administrators string `url:"filter[admin],omitempty"` // Optional: Can be "true" or "false" to show only suspended users or users who are not suspended. SuspendedUsers string `url:"filter[suspended],omitempty"` // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/users#available-related-resources Include []AdminUserIncludeOpt `url:"include,omitempty"` }
AdminUserListOptions represents the options for listing users. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/users#query-parameters
type AdminUsers ¶ added in v0.13.0
type AdminUsers interface { // List all the users of the given installation. List(ctx context.Context, options *AdminUserListOptions) (*AdminUserList, error) // Delete a user by its ID. Delete(ctx context.Context, userID string) error // Suspend a user by its ID. Suspend(ctx context.Context, userID string) (*AdminUser, error) // Unsuspend a user by its ID. Unsuspend(ctx context.Context, userID string) (*AdminUser, error) // GrantAdmin grants admin privileges to a user by its ID. GrantAdmin(ctx context.Context, userID string) (*AdminUser, error) // RevokeAdmin revokees admin privileges to a user by its ID. RevokeAdmin(ctx context.Context, userID string) (*AdminUser, error) // Disable2FA disables a user's two-factor authentication in the situation // where they have lost access to their device and recovery codes. Disable2FA(ctx context.Context, userID string) (*AdminUser, error) }
AdminUsers describes all the admin user related methods that the Terraform Enterprise API supports. It contains endpoints to help site administrators manage their users.
TFE API docs: https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/users
type AdminVCSRepo ¶ added in v0.13.0
type AdminVCSRepo struct {
Identifier string `jsonapi:"attr,identifier"`
}
AdminVCSRepo represents a VCS repository
type AdminWorkspace ¶ added in v0.13.0
type AdminWorkspace struct { ID string `jsonapi:"primary,workspaces"` Name string `jsonapi:"attr,name"` Locked bool `jsonapi:"attr,locked"` VCSRepo *AdminVCSRepo `jsonapi:"attr,vcs-repo"` // Relations Organization *Organization `jsonapi:"relation,organization"` CurrentRun *Run `jsonapi:"relation,current-run"` }
AdminWorkspaces represents a Terraform Enterprise admin workspace.
type AdminWorkspaceIncludeOpt ¶ added in v1.0.0
type AdminWorkspaceIncludeOpt string
AdminWorkspaceIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/workspaces#available-related-resources
const ( AdminWorkspaceOrg AdminWorkspaceIncludeOpt = "organization" AdminWorkspaceCurrentRun AdminWorkspaceIncludeOpt = "current_run" AdminWorkspaceOrgOwners AdminWorkspaceIncludeOpt = "organization.owners" )
type AdminWorkspaceList ¶ added in v0.13.0
type AdminWorkspaceList struct { *Pagination Items []*AdminWorkspace }
AdminWorkspaceList represents a list of workspaces.
type AdminWorkspaceListOptions ¶ added in v0.13.0
type AdminWorkspaceListOptions struct { ListOptions // A query string (partial workspace name) used to filter the results. // https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/workspaces#query-parameters Query string `url:"q,omitempty"` // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/workspaces#available-related-resources Include []AdminWorkspaceIncludeOpt `url:"include,omitempty"` // Optional: A comma-separated list of Run statuses to restrict results. See available resources // https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/workspaces#query-parameters Filter string `url:"filter[current_run][status],omitempty"` // Optional: May sort on "name" (the default) and "current-run.created-at" (which sorts by the time of the current run) // Prepending a hyphen to the sort parameter will reverse the order (e.g. "-name" to reverse the default order) Sort string `url:"sort,omitempty"` }
AdminWorkspaceListOptions represents the options for listing workspaces.
type AdminWorkspaces ¶ added in v0.13.0
type AdminWorkspaces interface { // List all the workspaces within a workspace. List(ctx context.Context, options *AdminWorkspaceListOptions) (*AdminWorkspaceList, error) // Read a workspace by its ID. Read(ctx context.Context, workspaceID string) (*AdminWorkspace, error) // Delete a workspace by its ID. Delete(ctx context.Context, workspaceID string) error }
AdminWorkspaces describes all the admin workspace related methods that the Terraform Enterprise API supports. Note that admin settings are only available in Terraform Enterprise.
TFE API docs: https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/workspaces
type Agent ¶ added in v1.8.0
type Agent struct { ID string `jsonapi:"primary,agents"` Name string `jsonapi:"attr,name"` IP string `jsonapi:"attr,ip-address"` Status string `jsonapi:"attr,status"` LastPingAt string `jsonapi:"attr,last-ping-at"` }
Agent represents a HCP Terraform agent.
type AgentList ¶ added in v1.8.0
type AgentList struct { *Pagination Items []*Agent }
AgentList represents a list of agents.
type AgentListOptions ¶ added in v1.8.0
type AgentListOptions struct { ListOptions //Optional: LastPingSince time.Time `url:"filter[last-ping-since],omitempty,iso8601"` }
type AgentPool ¶ added in v0.11.0
type AgentPool struct { ID string `jsonapi:"primary,agent-pools"` Name string `jsonapi:"attr,name"` AgentCount int `jsonapi:"attr,agent-count"` OrganizationScoped bool `jsonapi:"attr,organization-scoped"` // Relations Organization *Organization `jsonapi:"relation,organization"` Workspaces []*Workspace `jsonapi:"relation,workspaces"` AllowedWorkspaces []*Workspace `jsonapi:"relation,allowed-workspaces"` }
AgentPool represents a HCP Terraform agent pool.
type AgentPoolAllowedWorkspacesUpdateOptions ¶ added in v1.27.0
type AgentPoolAllowedWorkspacesUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,agent-pools"` // A new list of workspaces that are associated with an agent pool. AllowedWorkspaces []*Workspace `jsonapi:"relation,allowed-workspaces"` }
AgentPoolUpdateAllowedWorkspacesOptions represents the options for updating the allowed workspace on an agent pool
type AgentPoolCreateOptions ¶ added in v0.11.0
type AgentPoolCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,agent-pools"` // Required: A name to identify the agent pool. Name *string `jsonapi:"attr,name"` // True if the agent pool is organization scoped, false otherwise. OrganizationScoped *bool `jsonapi:"attr,organization-scoped,omitempty"` // List of workspaces that are associated with an agent pool. AllowedWorkspaces []*Workspace `jsonapi:"relation,allowed-workspaces,omitempty"` }
AgentPoolCreateOptions represents the options for creating an agent pool.
type AgentPoolIncludeOpt ¶ added in v1.0.0
type AgentPoolIncludeOpt string
A list of relations to include https://developer.hashicorp.com/terraform/cloud-docs/api-docs/agents#available-related-resources
const AgentPoolWorkspaces AgentPoolIncludeOpt = "workspaces"
type AgentPoolList ¶ added in v0.11.0
type AgentPoolList struct { *Pagination Items []*AgentPool }
AgentPoolList represents a list of agent pools.
type AgentPoolListOptions ¶ added in v0.11.0
type AgentPoolListOptions struct { ListOptions // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/agents#available-related-resources Include []AgentPoolIncludeOpt `url:"include,omitempty"` // Optional: A search query string used to filter agent pool. Agent pools are searchable by name Query string `url:"q,omitempty"` // Optional: String (workspace name) used to filter the results. AllowedWorkspacesName string `url:"filter[allowed_workspaces][name],omitempty"` }
AgentPoolListOptions represents the options for listing agent pools.
type AgentPoolReadOptions ¶ added in v1.0.0
type AgentPoolReadOptions struct {
Include []AgentPoolIncludeOpt `url:"include,omitempty"`
}
type AgentPoolUpdateOptions ¶ added in v0.11.0
type AgentPoolUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,agent-pools"` // A new name to identify the agent pool. Name *string `jsonapi:"attr,name,omitempty"` // True if the agent pool is organization scoped, false otherwise. OrganizationScoped *bool `jsonapi:"attr,organization-scoped,omitempty"` // A new list of workspaces that are associated with an agent pool. AllowedWorkspaces []*Workspace `jsonapi:"relation,allowed-workspaces,omitempty"` }
AgentPoolUpdateOptions represents the options for updating an agent pool.
type AgentPools ¶ added in v0.11.0
type AgentPools interface { // List all the agent pools of the given organization. List(ctx context.Context, organization string, options *AgentPoolListOptions) (*AgentPoolList, error) // Create a new agent pool with the given options. Create(ctx context.Context, organization string, options AgentPoolCreateOptions) (*AgentPool, error) // Read an agent pool by its ID. Read(ctx context.Context, agentPoolID string) (*AgentPool, error) // Read an agent pool by its ID with the given options. ReadWithOptions(ctx context.Context, agentPoolID string, options *AgentPoolReadOptions) (*AgentPool, error) // Update an agent pool by its ID. Update(ctx context.Context, agentPool string, options AgentPoolUpdateOptions) (*AgentPool, error) // UpdateAllowedWorkspaces updates the list of allowed workspaces associated with an agent pool. UpdateAllowedWorkspaces(ctx context.Context, agentPool string, options AgentPoolAllowedWorkspacesUpdateOptions) (*AgentPool, error) // Delete an agent pool by its ID. Delete(ctx context.Context, agentPoolID string) error }
AgentPools describes all the agent pool related methods that the HCP Terraform API supports. Note that agents are not available in Terraform Enterprise.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/agents
type AgentToken ¶ added in v0.12.0
type AgentToken struct { ID string `jsonapi:"primary,authentication-tokens"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` Description string `jsonapi:"attr,description"` LastUsedAt time.Time `jsonapi:"attr,last-used-at,iso8601"` Token string `jsonapi:"attr,token"` }
AgentToken represents a HCP Terraform agent token.
type AgentTokenCreateOptions ¶ added in v1.0.0
type AgentTokenCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,agent-tokens"` // Description of the token Description *string `jsonapi:"attr,description"` }
AgentTokenCreateOptions represents the options for creating an agent token.
type AgentTokenList ¶ added in v0.12.0
type AgentTokenList struct { *Pagination Items []*AgentToken }
AgentTokenList represents a list of agent tokens.
type AgentTokens ¶ added in v0.12.0
type AgentTokens interface { // List all the agent tokens of the given agent pool. List(ctx context.Context, agentPoolID string) (*AgentTokenList, error) // Create a new agent token with the given options. Create(ctx context.Context, agentPoolID string, options AgentTokenCreateOptions) (*AgentToken, error) // Read an agent token by its ID. Read(ctx context.Context, agentTokenID string) (*AgentToken, error) // Delete an agent token by its ID. Delete(ctx context.Context, agentTokenID string) error }
AgentTokens describes all the agent token related methods that the HCP Terraform API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/agent-tokens
type Agents ¶ added in v1.8.0
type Agents interface { // Read an agent by its ID. Read(ctx context.Context, agentID string) (*Agent, error) // List all the agents of the given pool. List(ctx context.Context, agentPoolID string, options *AgentListOptions) (*AgentList, error) }
Agents describes all the agent-related methods that the HCP Terraform API supports. TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/agents
type Applies ¶ added in v0.2.3
type Applies interface { // Read an apply by its ID. Read(ctx context.Context, applyID string) (*Apply, error) // Logs retrieves the logs of an apply. Logs(ctx context.Context, applyID string) (io.Reader, error) }
Applies describes all the apply related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/applies
type Apply ¶ added in v0.2.3
type Apply struct { ID string `jsonapi:"primary,applies"` LogReadURL string `jsonapi:"attr,log-read-url"` ResourceAdditions int `jsonapi:"attr,resource-additions"` ResourceChanges int `jsonapi:"attr,resource-changes"` ResourceDestructions int `jsonapi:"attr,resource-destructions"` ResourceImports int `jsonapi:"attr,resource-imports"` Status ApplyStatus `jsonapi:"attr,status"` StatusTimestamps *ApplyStatusTimestamps `jsonapi:"attr,status-timestamps"` }
Apply represents a Terraform Enterprise apply.
type ApplyStatus ¶ added in v0.2.3
type ApplyStatus string
ApplyStatus represents an apply state.
const ( ApplyCanceled ApplyStatus = "canceled" ApplyCreated ApplyStatus = "created" ApplyErrored ApplyStatus = "errored" ApplyFinished ApplyStatus = "finished" ApplyMFAWaiting ApplyStatus = "mfa_waiting" ApplyPending ApplyStatus = "pending" ApplyQueued ApplyStatus = "queued" ApplyRunning ApplyStatus = "running" ApplyUnreachable ApplyStatus = "unreachable" )
List all available apply statuses.
type ApplyStatusTimestamps ¶ added in v0.2.3
type ApplyStatusTimestamps struct { CanceledAt time.Time `jsonapi:"attr,canceled-at,rfc3339"` ErroredAt time.Time `jsonapi:"attr,errored-at,rfc3339"` FinishedAt time.Time `jsonapi:"attr,finished-at,rfc3339"` ForceCanceledAt time.Time `jsonapi:"attr,force-canceled-at,rfc3339"` QueuedAt time.Time `jsonapi:"attr,queued-at,rfc3339"` StartedAt time.Time `jsonapi:"attr,started-at,rfc3339"` }
ApplyStatusTimestamps holds the timestamps for individual apply statuses.
type AuditTrail ¶ added in v1.3.0
type AuditTrail struct { ID string `json:"id"` Version string `json:"version"` Type string `json:"type"` Timestamp time.Time `json:"timestamp"` Auth AuditTrailAuth `json:"auth"` Request AuditTrailRequest `json:"request"` Resource AuditTrailResource `json:"resource"` }
AuditTrail represents an event in the HCP Terraform audit log.
type AuditTrailAuth ¶ added in v1.3.0
type AuditTrailAuth struct { AccessorID string `json:"accessor_id"` Description string `json:"description"` Type string `json:"type"` ImpersonatorID *string `json:"impersonator_id"` OrganizationID string `json:"organization_id"` }
AuditTrailAuth represents the details of the actor that invoked the audit event.
type AuditTrailList ¶ added in v1.3.0
type AuditTrailList struct { *AuditTrailPagination `json:"pagination"` Items []*AuditTrail `json:"data"` }
AuditTrailList represents a list of audit trails.
type AuditTrailListOptions ¶ added in v1.3.0
type AuditTrailListOptions struct { // Optional: Returns only audit trails created after this date Since time.Time `url:"since,omitempty"` *ListOptions }
AuditTrailListOptions represents the options for listing audit trails.
type AuditTrailPagination ¶ added in v1.13.0
type AuditTrailRequest ¶ added in v1.3.0
type AuditTrailRequest struct {
ID string `json:"id"`
}
AuditTrailRequest represents the request details of the audit event.
type AuditTrailResource ¶ added in v1.3.0
type AuditTrailResource struct { ID string `json:"id"` Type string `json:"type"` Action string `json:"action"` Meta map[string]interface{} `json:"meta"` }
AuditTrailResource represents the details of the API resource in the audit event.
type AuditTrails ¶ added in v1.3.0
type AuditTrails interface { // Read all the audit events in an organization. List(ctx context.Context, options *AuditTrailListOptions) (*AuditTrailList, error) }
AuditTrails describes all the audit event related methods that the HCP Terraform API supports. **Note:** These methods require the client to be configured with an organization token for an organization in the Business tier. Furthermore, these methods are only available in HCP Terraform.
HCP Terraform API Docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/audit-trails
type AuthPolicyType ¶
type AuthPolicyType string
AuthPolicyType represents an authentication policy type.
const ( AuthPolicyPassword AuthPolicyType = "password" AuthPolicyTwoFactor AuthPolicyType = "two_factor_mandatory" )
List of available authentication policies.
func AuthPolicy ¶
func AuthPolicy(v AuthPolicyType) *AuthPolicyType
AuthPolicy returns a pointer to the given authentication poliy.
type CVStatusTimestamps ¶
type CVStatusTimestamps struct { ArchivedAt time.Time `jsonapi:"attr,archived-at,rfc3339"` FetchingAt time.Time `jsonapi:"attr,fetching-at,rfc3339"` FinishedAt time.Time `jsonapi:"attr,finished-at,rfc3339"` QueuedAt time.Time `jsonapi:"attr,queued-at,rfc3339"` StartedAt time.Time `jsonapi:"attr,started-at,rfc3339"` }
CVStatusTimestamps holds the timestamps for individual configuration version statuses.
type Capacity ¶ added in v0.2.4
type Capacity struct { Organization string `jsonapi:"primary,organization-capacity"` Pending int `jsonapi:"attr,pending"` Running int `jsonapi:"attr,running"` }
Capacity represents the current run capacity of an organization.
type CategoryType ¶
type CategoryType string
CategoryType represents a category type.
const ( CategoryEnv CategoryType = "env" CategoryPolicySet CategoryType = "policy-set" CategoryTerraform CategoryType = "terraform" )
List all available categories.
func Category ¶
func Category(v CategoryType) *CategoryType
Category returns a pointer to the given category type.
type Change ¶ added in v1.62.0
type Change struct { Actions []ChangeAction `json:"actions"` After json.RawMessage `json:"after"` Before json.RawMessage `json:"before"` AfterUnknown json.RawMessage `json:"after_unknown"` BeforeSensitive json.RawMessage `json:"before_sensitive"` AfterSensitive json.RawMessage `json:"after_sensitive"` Importing *JSONImporting `json:"importing,omitempty"` ReplacePaths json.RawMessage `json:"replace_paths,omitempty"` }
Change represents the change of a resource instance in a plan.
type ChangeAction ¶ added in v1.62.0
type ChangeAction string
ChangeAction are the actions a change can have: no-op, create, read, update, delte, forget.
type Client ¶
type Client struct { Admin Admin Agents Agents AgentPools AgentPools AgentTokens AgentTokens Applies Applies AuditTrails AuditTrails Comments Comments ConfigurationVersions ConfigurationVersions CostEstimates CostEstimates GHAInstallations GHAInstallations GPGKeys GPGKeys NotificationConfigurations NotificationConfigurations OAuthClients OAuthClients OAuthTokens OAuthTokens Organizations Organizations OrganizationMemberships OrganizationMemberships OrganizationTags OrganizationTags OrganizationTokens OrganizationTokens Plans Plans PlanExports PlanExports Policies Policies PolicyChecks PolicyChecks PolicyEvaluations PolicyEvaluations PolicySetOutcomes PolicySetOutcomes PolicySetParameters PolicySetParameters PolicySetVersions PolicySetVersions PolicySets PolicySets RegistryModules RegistryModules RegistryNoCodeModules RegistryNoCodeModules RegistryProviders RegistryProviders RegistryProviderPlatforms RegistryProviderPlatforms RegistryProviderVersions RegistryProviderVersions Runs Runs RunEvents RunEvents RunTasks RunTasks RunTasksIntegration RunTasksIntegration RunTriggers RunTriggers SSHKeys SSHKeys Stacks Stacks StackConfigurations StackConfigurations StackDeployments StackDeployments StackPlans StackPlans StackPlanOperations StackPlanOperations StackSources StackSources StateVersionOutputs StateVersionOutputs StateVersions StateVersions TaskResults TaskResults TaskStages TaskStages Teams Teams TeamAccess TeamAccesses TeamMembers TeamMembers TeamProjectAccess TeamProjectAccesses TeamTokens TeamTokens TestRuns TestRuns TestVariables TestVariables Users Users UserTokens UserTokens Variables Variables VariableSets VariableSets VariableSetVariables VariableSetVariables Workspaces Workspaces WorkspaceResources WorkspaceResources WorkspaceRunTasks WorkspaceRunTasks Projects Projects Meta Meta // contains filtered or unexported fields }
Client is the Terraform Enterprise API client. It provides the basic connectivity and configuration for accessing the TFE API
func (Client) BaseRegistryURL ¶ added in v1.18.0
BaseRegistryURL returns the registry base URL as configured in the client
func (Client) IsCloud ¶ added in v1.21.0
IsCloud returns true if the client is configured against a HCP Terraform instance.
Whether an instance is HCP Terraform or Terraform Enterprise is derived from the TFP-AppName header.
func (Client) IsEnterprise ¶ added in v1.21.0
IsEnterprise returns true if the client is configured against a Terraform Enterprise instance.
Whether an instance is HCP Terraform or TFE is derived from the TFP-AppName header. Note: not all TFE releases include this header in API responses.
func (*Client) NewRequest ¶ added in v1.4.0
func (c *Client) NewRequest(method, path string, reqBody any) (*ClientRequest, error)
NewRequest performs some basic API request preparation based on the method specified. For GET requests, the reqBody is encoded as query parameters. For DELETE, PATCH, and POST requests, the request body is serialized as JSONAPI. For PUT requests, the request body is sent as a stream of bytes.
func (*Client) NewRequestWithAdditionalQueryParams ¶ added in v1.13.0
func (c *Client) NewRequestWithAdditionalQueryParams(method, path string, reqBody any, additionalQueryParams map[string][]string) (*ClientRequest, error)
NewRequestWithAdditionalQueryParams performs some basic API request preparation based on the method specified. For GET requests, the reqBody is encoded as query parameters. For DELETE, PATCH, and POST requests, the request body is serialized as JSONAPI. For PUT requests, the request body is sent as a stream of bytes. Additional query parameters can be added to the request as a string map. Note that if a key exists in both the reqBody and additionalQueryParams, the value in additionalQueryParams will be used.
func (Client) RemoteAPIVersion ¶ added in v0.8.0
RemoteAPIVersion returns the server's declared API version string.
A HCP Terraform or Enterprise API server returns its API version in an HTTP header field in all responses. The NewClient function saves the version number returned in its initial setup request and RemoteAPIVersion returns that cached value.
The API protocol calls for this string to be a dotted-decimal version number like 2.3.0, where the first number indicates the API major version while the second indicates a minor version which may have introduced some backward-compatible additional features compared to its predecessor.
Explicit API versioning was added to the HCP Terraform and Enterprise APIs as a later addition, so older servers will not return version information. In that case, this function returns an empty string as the version.
func (Client) RemoteTFEVersion ¶ added in v1.12.0
RemoteTFEVersion returns the server's declared TFE version string.
A Terraform Enterprise API server includes its current version in an HTTP header field in all responses. This value is saved by the client during the initial setup request and RemoteTFEVersion returns that cached value. This function returns an empty string for any Terraform Enterprise version earlier than v202208-3 and for HCP Terraform.
func (*Client) RetryServerErrors ¶ added in v0.3.11
RetryServerErrors configures the retry HTTP check to also retry unexpected errors or requests that failed with a server error.
func (*Client) SetFakeRemoteAPIVersion ¶ added in v0.8.1
SetFakeRemoteAPIVersion allows setting a given string as the client's remoteAPIVersion, overriding the value pulled from the API header during client initialization.
This is intended for use in tests, when you may want to configure your TFE client to return something different than the actual API version in order to test error handling.
type ClientRequest ¶ added in v1.4.0
type ClientRequest struct { // Header are the headers that will be sent in this request Header http.Header // contains filtered or unexported fields }
ClientRequest encapsulates a request sent by the Client
type CommentCreateOptions ¶ added in v1.1.0
type CommentCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,comments"` // Required: Body of the comment. Body string `jsonapi:"attr,body"` }
type CommentList ¶ added in v1.1.0
type CommentList struct { *Pagination Items []*Comment }
CommentList represents a list of comments.
type Comments ¶ added in v1.1.0
type Comments interface { // List all comments of the given run. List(ctx context.Context, runID string) (*CommentList, error) // Read a comment by its ID. Read(ctx context.Context, commentID string) (*Comment, error) // Create a new comment with the given options. Create(ctx context.Context, runID string, options CommentCreateOptions) (*Comment, error) }
Comments describes all the comment related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/comments
type Commit ¶ added in v1.32.1
type Commit struct { ID string `jsonapi:"primary,commit"` Sha string `jsonapi:"attr,sha"` Date string `jsonapi:"attr,date"` URL string `jsonapi:"attr,url"` Author string `jsonapi:"attr,author"` AuthorAvatarURL string `jsonapi:"attr,author-avatar-url"` AuthorHTMLURL string `jsonapi:"attr,author-html-url"` Message string `jsonapi:"attr,message"` }
Commit represents a commit
type CommitList ¶ added in v1.32.1
type CommitList struct { *Pagination Items []*Commit }
CommitList represents a list of the latest commits from the registry module
type Config ¶
type Config struct { // The address of the Terraform Enterprise API. Address string // The base path on which the API is served. BasePath string // The base path for the Registry API RegistryBasePath string // API token used to access the Terraform Enterprise API. Token string // Headers that will be added to every request. Headers http.Header // A custom HTTP client to use. HTTPClient *http.Client // RetryLogHook is invoked each time a request is retried. RetryLogHook RetryLogHook // RetryServerErrors enables the retry logic in the client. RetryServerErrors bool }
func DefaultConfig ¶
func DefaultConfig() *Config
type ConfigVerIncludeOpt ¶ added in v1.0.0
type ConfigVerIncludeOpt string
ConfigVerIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/cloud-docs/api-docs/configuration-versions#available-related-resources
const ( ConfigVerIngressAttributes ConfigVerIncludeOpt = "ingress_attributes" ConfigVerRun ConfigVerIncludeOpt = "run" )
type ConfigurationSource ¶
type ConfigurationSource string
ConfigurationSource represents a source of a configuration version.
const ( ConfigurationSourceAPI ConfigurationSource = "tfe-api" ConfigurationSourceBitbucket ConfigurationSource = "bitbucket" ConfigurationSourceGithub ConfigurationSource = "github" ConfigurationSourceGitlab ConfigurationSource = "gitlab" ConfigurationSourceAdo ConfigurationSource = "ado" ConfigurationSourceTerraform ConfigurationSource = "terraform" )
List all available configuration version sources.
type ConfigurationStatus ¶
type ConfigurationStatus string
ConfigurationStatus represents a configuration version status.
const ( ConfigurationArchived ConfigurationStatus = "archived" ConfigurationErrored ConfigurationStatus = "errored" ConfigurationFetching ConfigurationStatus = "fetching" ConfigurationPending ConfigurationStatus = "pending" ConfigurationUploaded ConfigurationStatus = "uploaded" )
List all available configuration version statuses.
type ConfigurationVersion ¶
type ConfigurationVersion struct { ID string `jsonapi:"primary,configuration-versions"` AutoQueueRuns bool `jsonapi:"attr,auto-queue-runs"` Error string `jsonapi:"attr,error"` ErrorMessage string `jsonapi:"attr,error-message"` Source ConfigurationSource `jsonapi:"attr,source"` Speculative bool `jsonapi:"attr,speculative"` Provisional bool `jsonapi:"attr,provisional"` Status ConfigurationStatus `jsonapi:"attr,status"` StatusTimestamps *CVStatusTimestamps `jsonapi:"attr,status-timestamps"` UploadURL string `jsonapi:"attr,upload-url"` // Relations IngressAttributes *IngressAttributes `jsonapi:"relation,ingress-attributes"` }
ConfigurationVersion is a representation of an uploaded or ingressed Terraform configuration in TFE. A workspace must have at least one configuration version before any runs may be queued on it.
type ConfigurationVersionCreateOptions ¶
type ConfigurationVersionCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,configuration-versions"` // Optional: When true, runs are queued automatically when the configuration version // is uploaded. AutoQueueRuns *bool `jsonapi:"attr,auto-queue-runs,omitempty"` // Optional: When true, this configuration version can only be used for planning. Speculative *bool `jsonapi:"attr,speculative,omitempty"` // Optional: When true, does not become the workspace's current configuration until // a run referencing it is ultimately applied. Provisional *bool `jsonapi:"attr,provisional,omitempty"` }
ConfigurationVersionCreateOptions represents the options for creating a configuration version.
type ConfigurationVersionList ¶ added in v0.2.0
type ConfigurationVersionList struct { *Pagination Items []*ConfigurationVersion }
ConfigurationVersionList represents a list of configuration versions.
type ConfigurationVersionListOptions ¶
type ConfigurationVersionListOptions struct { ListOptions // Optional: A list of relations to include. See available resources: // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/configuration-versions#available-related-resources Include []ConfigVerIncludeOpt `url:"include,omitempty"` }
ConfigurationVersionListOptions represents the options for listing configuration versions.
type ConfigurationVersionReadOptions ¶ added in v0.16.0
type ConfigurationVersionReadOptions struct { // Optional: A list of relations to include. See available resources: // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/configuration-versions#available-related-resources Include []ConfigVerIncludeOpt `url:"include,omitempty"` }
ConfigurationVersionReadOptions represents the options for reading a configuration version.
type ConfigurationVersions ¶
type ConfigurationVersions interface { // List returns all configuration versions of a workspace. List(ctx context.Context, workspaceID string, options *ConfigurationVersionListOptions) (*ConfigurationVersionList, error) // Create is used to create a new configuration version. The created // configuration version will be usable once data is uploaded to it. Create(ctx context.Context, workspaceID string, options ConfigurationVersionCreateOptions) (*ConfigurationVersion, error) // CreateForRegistryModule is used to create a new configuration version // keyed to a registry module instead of a workspace. The created // configuration version will be usable once data is uploaded to it. // // **Note: This function is still in BETA and subject to change.** CreateForRegistryModule(ctx context.Context, moduleID RegistryModuleID) (*ConfigurationVersion, error) // Read a configuration version by its ID. Read(ctx context.Context, cvID string) (*ConfigurationVersion, error) // ReadWithOptions reads a configuration version by its ID using the options supplied ReadWithOptions(ctx context.Context, cvID string, options *ConfigurationVersionReadOptions) (*ConfigurationVersion, error) // Upload packages and uploads Terraform configuration files. It requires // the upload URL from a configuration version and the full path to the // configuration files on disk. Upload(ctx context.Context, url string, path string) error // Upload a tar gzip archive to the specified configuration version upload URL. UploadTarGzip(ctx context.Context, url string, archive io.Reader) error // Archive a configuration version. This can only be done on configuration versions that // were created with the API or CLI, are in an uploaded state, and have no runs in progress. Archive(ctx context.Context, cvID string) error // Download a configuration version. Only configuration versions in the uploaded state may be downloaded. Download(ctx context.Context, cvID string) ([]byte, error) // SoftDeleteBackingData soft deletes the configuration version's backing data // **Note: This functionality is only available in Terraform Enterprise.** SoftDeleteBackingData(ctx context.Context, svID string) error // RestoreBackingData restores a soft deleted configuration version's backing data // **Note: This functionality is only available in Terraform Enterprise.** RestoreBackingData(ctx context.Context, svID string) error // PermanentlyDeleteBackingData permanently deletes a soft deleted configuration version's backing data // **Note: This functionality is only available in Terraform Enterprise.** PermanentlyDeleteBackingData(ctx context.Context, svID string) error }
ConfigurationVersions describes all the configuration version related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/configuration-versions
type CostEstimate ¶ added in v0.3.20
type CostEstimate struct { ID string `jsonapi:"primary,cost-estimates"` DeltaMonthlyCost string `jsonapi:"attr,delta-monthly-cost"` ErrorMessage string `jsonapi:"attr,error-message"` MatchedResourcesCount int `jsonapi:"attr,matched-resources-count"` PriorMonthlyCost string `jsonapi:"attr,prior-monthly-cost"` ProposedMonthlyCost string `jsonapi:"attr,proposed-monthly-cost"` ResourcesCount int `jsonapi:"attr,resources-count"` Status CostEstimateStatus `jsonapi:"attr,status"` StatusTimestamps *CostEstimateStatusTimestamps `jsonapi:"attr,status-timestamps"` UnmatchedResourcesCount int `jsonapi:"attr,unmatched-resources-count"` }
CostEstimate represents a Terraform Enterprise costEstimate.
type CostEstimateStatus ¶ added in v0.3.20
type CostEstimateStatus string
CostEstimateStatus represents a costEstimate state.
const ( CostEstimateCanceled CostEstimateStatus = "canceled" CostEstimateErrored CostEstimateStatus = "errored" CostEstimateFinished CostEstimateStatus = "finished" CostEstimatePending CostEstimateStatus = "pending" CostEstimateQueued CostEstimateStatus = "queued" CostEstimateSkippedDueToTargeting CostEstimateStatus = "skipped_due_to_targeting" )
List all available costEstimate statuses.
type CostEstimateStatusTimestamps ¶ added in v0.3.20
type CostEstimateStatusTimestamps struct { CanceledAt time.Time `jsonapi:"attr,canceled-at,rfc3339"` ErroredAt time.Time `jsonapi:"attr,errored-at,rfc3339"` FinishedAt time.Time `jsonapi:"attr,finished-at,rfc3339"` PendingAt time.Time `jsonapi:"attr,pending-at,rfc3339"` QueuedAt time.Time `jsonapi:"attr,queued-at,rfc3339"` SkippedDueToTargetingAt time.Time `jsonapi:"attr,skipped-due-to-targeting-at,rfc3339"` }
CostEstimateStatusTimestamps holds the timestamps for individual costEstimate statuses.
type CostEstimates ¶ added in v0.3.20
type CostEstimates interface { // Read a costEstimate by its ID. Read(ctx context.Context, costEstimateID string) (*CostEstimate, error) // Logs retrieves the logs of a costEstimate. Logs(ctx context.Context, costEstimateID string) (io.Reader, error) }
CostEstimates describes all the costEstimate related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/cost-estimates
type CostEstimationSettings ¶ added in v0.13.0
type CostEstimationSettings interface { // Read returns the cost estimation settings. Read(ctx context.Context) (*AdminCostEstimationSetting, error) // Update updates the cost estimation settings. Update(ctx context.Context, options AdminCostEstimationSettingOptions) (*AdminCostEstimationSetting, error) }
CostEstimationSettings describes all the cost estimation admin settings for the Admin Setting API. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings
type CreateStackSourceOptions ¶ added in v1.69.0
type CreateStackSourceOptions struct {
SelectedDeployments []string `jsonapi:"attr,selected-deployments,omitempty"`
}
type CreatedByChoice ¶ added in v1.42.0
type CreatedByChoice struct { Organization *Organization Team *Team User *User }
CreatedByChoice is a choice type struct that represents the possible values within a polymorphic relation. If a value is available, exactly one field will be non-nil.
type CustomizationSettings ¶ added in v0.13.0
type CustomizationSettings interface { // Read returns the customization settings. Read(ctx context.Context) (*AdminCustomizationSetting, error) // Update updates the customization settings. Update(ctx context.Context, options AdminCustomizationSettingsUpdateOptions) (*AdminCustomizationSetting, error) }
CustomizationSettings describes all the Customization admin settings.
type DataRetentionPolicy
deprecated
added in
v1.41.0
type DataRetentionPolicy struct { ID string `jsonapi:"primary,data-retention-policies"` DeleteOlderThanNDays int `jsonapi:"attr,delete-older-than-n-days"` }
DataRetentionPolicy describes the retention policy of deleting records older than the specified number of days.
Deprecated: Use DataRetentionPolicyDeleteOlder instead. This is the original representation of a data retention policy, only present in TFE v202311-1 and v202312-1
type DataRetentionPolicyChoice ¶ added in v1.48.0
type DataRetentionPolicyChoice struct { DataRetentionPolicy *DataRetentionPolicy DataRetentionPolicyDeleteOlder *DataRetentionPolicyDeleteOlder DataRetentionPolicyDontDelete *DataRetentionPolicyDontDelete }
DataRetentionPolicyChoice is a choice type struct that represents the possible types of a drp returned by a polymorphic relationship. If a value is available, exactly one field will be non-nil.
func (*DataRetentionPolicyChoice) ConvertToLegacyStruct ¶ added in v1.48.0
func (d *DataRetentionPolicyChoice) ConvertToLegacyStruct() *DataRetentionPolicy
Convert the DataRetentionPolicyChoice to the legacy DataRetentionPolicy struct Returns nil if the policy cannot be represented by a legacy DataRetentionPolicy
func (DataRetentionPolicyChoice) IsPopulated ¶ added in v1.48.0
func (d DataRetentionPolicyChoice) IsPopulated() bool
Returns whether one of the choices is populated
type DataRetentionPolicyDeleteOlder ¶ added in v1.48.0
type DataRetentionPolicyDeleteOlder struct { ID string `jsonapi:"primary,data-retention-policy-delete-olders"` // DeleteOlderThanNDays is the number of days to retain records for. DeleteOlderThanNDays int `jsonapi:"attr,delete-older-than-n-days"` }
DataRetentionPolicyDeleteOlder describes the retention policy of deleting records older than the specified number of days.
type DataRetentionPolicyDeleteOlderSetOptions ¶ added in v1.48.0
type DataRetentionPolicyDeleteOlderSetOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,data-retention-policy-delete-olders"` // DeleteOlderThanNDays is the number of days records will be retained for after their creation. DeleteOlderThanNDays int `jsonapi:"attr,delete-older-than-n-days"` }
DataRetentionPolicyDeleteOlderSetOptions describes the options for a creating a DataRetentionPolicyDeleteOlder.
type DataRetentionPolicyDontDelete ¶ added in v1.48.0
type DataRetentionPolicyDontDelete struct {
ID string `jsonapi:"primary,data-retention-policy-dont-deletes"`
}
DataRetentionPolicyDontDelete describes the retention policy of never deleting records.
type DataRetentionPolicyDontDeleteSetOptions ¶ added in v1.48.0
type DataRetentionPolicyDontDeleteSetOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,data-retention-policy-dont-deletes"` }
DataRetentionPolicyDontDeleteSetOptions describes the options for a creating a DataRetentionPolicyDontDelete.
type DataRetentionPolicySetOptions
deprecated
added in
v1.41.0
type DataRetentionPolicySetOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,data-retention-policies"` // DeleteOlderThanNDays is the number of days to retain records for. DeleteOlderThanNDays int `jsonapi:"attr,delete-older-than-n-days"` }
DataRetentionPolicySetOptions is the options for a creating a DataRetentionPolicy.
Deprecated: Use DataRetentionPolicyDeleteOlder variations instead
type DeliveryResponse ¶ added in v0.3.12
type DeliveryResponse struct { Body string `jsonapi:"attr,body"` Code string `jsonapi:"attr,code"` Headers map[string][]string `jsonapi:"attr,headers"` SentAt time.Time `jsonapi:"attr,sent-at,rfc3339"` Successful string `jsonapi:"attr,successful"` URL string `jsonapi:"attr,url"` }
DeliveryResponse represents a notification configuration delivery response.
type DiagnosticPos ¶ added in v1.63.0
type DiagnosticPos struct { // Line is a one-based count for the line in the indicated file. Line int `jsonapi:"attr,line"` // Column is a one-based count of Unicode characters from the start of the line. Column int `jsonapi:"attr,column"` // Byte is a zero-based offset into the indicated file. Byte int `jsonapi:"attr,byte"` }
DiagnosticPos represents a position in the source code.
type DiagnosticRange ¶ added in v1.63.0
type DiagnosticRange struct { Filename string `jsonapi:"attr,filename"` Source string `jsonapi:"attr,source"` Start DiagnosticPos `jsonapi:"attr,start"` End DiagnosticPos `jsonapi:"attr,end"` }
DiagnosticRange represents the filename and position of the diagnostic subject. This defines the range of the source to be highlighted in the output. Note that the snippet may include additional surrounding source code if the diagnostic has a context range.
The stacks-specific source field represents the full source bundle address of the file, while the filename field is the sub path relative to its enclosing package. This represents an attempt to be somewhat backwards compatible with the existing Terraform JSON diagnostic format, where filename is root module relative.
The Start position is inclusive, and the End position is exclusive. Exact positions are intended for highlighting for human interpretation only and are subject to change.
type EffectiveTagBinding ¶ added in v1.71.0
type Enforcement ¶
type Enforcement struct { Path string `jsonapi:"attr,path"` Mode EnforcementLevel `jsonapi:"attr,mode"` }
Enforcement describes a enforcement.
type EnforcementLevel ¶
type EnforcementLevel string
EnforcementLevel represents an enforcement level.
const ( EnforcementAdvisory EnforcementLevel = "advisory" EnforcementHard EnforcementLevel = "hard-mandatory" EnforcementSoft EnforcementLevel = "soft-mandatory" EnforcementMandatory EnforcementLevel = "mandatory" )
List the available enforcement types.
func EnforcementMode ¶
func EnforcementMode(v EnforcementLevel) *EnforcementLevel
EnforcementMode returns a pointer to the given enforcement level.
type EnforcementOptions ¶
type EnforcementOptions struct { Path *string `json:"path"` Mode *EnforcementLevel `json:"mode"` }
EnforcementOptions represents the enforcement options of a policy.
type Entitlements ¶ added in v0.3.4
type Entitlements struct { ID string `jsonapi:"primary,entitlement-sets"` Agents bool `jsonapi:"attr,agents"` AuditLogging bool `jsonapi:"attr,audit-logging"` CostEstimation bool `jsonapi:"attr,cost-estimation"` GlobalRunTasks bool `jsonapi:"attr,global-run-tasks"` Operations bool `jsonapi:"attr,operations"` PrivateModuleRegistry bool `jsonapi:"attr,private-module-registry"` RunTasks bool `jsonapi:"attr,run-tasks"` SSO bool `jsonapi:"attr,sso"` Sentinel bool `jsonapi:"attr,sentinel"` StateStorage bool `jsonapi:"attr,state-storage"` Teams bool `jsonapi:"attr,teams"` VCSIntegrations bool `jsonapi:"attr,vcs-integrations"` WaypointActions bool `jsonapi:"attr,waypoint-actions"` WaypointTemplatesAndAddons bool `jsonapi:"attr,waypoint-templates-and-addons"` }
Entitlements represents the entitlements of an organization.
type GHAInstallation ¶ added in v1.19.0
type GHAInstallation struct { ID *string `jsonapi:"primary,github-app-installations"` InstallationID *int `jsonapi:"attr,installation-id"` Name *string `jsonapi:"attr,name"` }
GHAInstallation represents a github app installation
type GHAInstallationList ¶ added in v1.19.0
type GHAInstallationList struct { *Pagination Items []*GHAInstallation }
GHAInstallationList represents a list of github installations.
type GHAInstallationListOptions ¶ added in v1.19.0
type GHAInstallationListOptions struct {
ListOptions
}
GHAInstallationListOptions represents the options for listing.
type GHAInstallations ¶ added in v1.19.0
type GHAInstallations interface { // List all the GitHub App Installations for the user. List(ctx context.Context, options *GHAInstallationListOptions) (*GHAInstallationList, error) // Read a GitHub App Installations by its external id. Read(ctx context.Context, GHAInstallationID string) (*GHAInstallation, error) }
GHAInstallations describes all the GitHub App Installation related methods that the Terraform Enterprise API supports. The APIs require the user token for the user who already has the GitHub App Installation set up via the UI. (https://developer.hashicorp.com/terraform/enterprise/admin/application/github-app-integration)
type GPGKey ¶ added in v1.4.0
type GPGKey struct { ID string `jsonapi:"primary,gpg-keys"` AsciiArmor string `jsonapi:"attr,ascii-armor"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` KeyID string `jsonapi:"attr,key-id"` Namespace string `jsonapi:"attr,namespace"` Source string `jsonapi:"attr,source"` SourceURL *string `jsonapi:"attr,source-url"` TrustSignature string `jsonapi:"attr,trust-signature"` UpdatedAt time.Time `jsonapi:"attr,updated-at,iso8601"` }
GPGKey represents a signed GPG key for a HCP Terraform or Terraform Enterprise private provider.
type GPGKeyCreateOptions ¶ added in v1.4.0
type GPGKeyCreateOptions struct { Type string `jsonapi:"primary,gpg-keys"` Namespace string `jsonapi:"attr,namespace"` AsciiArmor string `jsonapi:"attr,ascii-armor"` }
GPGKeyCreateOptions represents all the available options used to create a GPG key.
type GPGKeyID ¶ added in v1.4.0
type GPGKeyID struct { RegistryName RegistryName Namespace string KeyID string }
GPGKeyID represents the set of identifiers used to fetch a GPG key.
type GPGKeyList ¶ added in v1.16.0
type GPGKeyList struct { *Pagination Items []*GPGKey }
GPGKeyList represents a list of GPG keys.
type GPGKeyListOptions ¶ added in v1.16.0
type GPGKeyListOptions struct { ListOptions // Required: A list of one or more namespaces. Must be authorized HCP Terraform or Terraform Enterprise organization names. Namespaces []string `url:"filter[namespace]"` }
GPGKeyListOptions represents all the available options to list keys in a registry.
type GPGKeyUpdateOptions ¶ added in v1.4.0
type GPGKeyUpdateOptions struct { Type string `jsonapi:"primary,gpg-keys"` Namespace string `jsonapi:"attr,namespace"` }
GPGKeyCreateOptions represents all the available options used to update a GPG key.
type GPGKeys ¶ added in v1.4.0
type GPGKeys interface { // Lists GPG keys in a private registry. ListPrivate(ctx context.Context, options GPGKeyListOptions) (*GPGKeyList, error) // Uploads a GPG Key to a private registry scoped with a namespace. Create(ctx context.Context, registryName RegistryName, options GPGKeyCreateOptions) (*GPGKey, error) // Read a GPG key. Read(ctx context.Context, keyID GPGKeyID) (*GPGKey, error) // Update a GPG key. Update(ctx context.Context, keyID GPGKeyID, options GPGKeyUpdateOptions) (*GPGKey, error) // Delete a GPG key. Delete(ctx context.Context, keyID GPGKeyID) error }
GPGKeys describes all the GPG key related methods that the Terraform Private Registry API supports.
TFE API Docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/private-registry/gpg-keys
type GeneralSettings ¶ added in v0.13.0
type GeneralSettings interface { // Read returns the general settings Read(ctx context.Context) (*AdminGeneralSetting, error) // Update updates general settings. Update(ctx context.Context, options AdminGeneralSettingsUpdateOptions) (*AdminGeneralSetting, error) }
GeneralSettings describes the general admin settings for the Admin Setting API. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings
type GlobalRunTask ¶ added in v1.50.0
type GlobalRunTask struct { Enabled bool `jsonapi:"attr,enabled"` Stages []Stage `jsonapi:"attr,stages"` EnforcementLevel TaskEnforcementLevel `jsonapi:"attr,enforcement-level"` }
GlobalRunTask represents the global configuration of a HCP Terraform or Terraform Enterprise run task
type GlobalRunTaskOptions ¶ added in v1.50.0
type GlobalRunTaskOptions struct { Enabled *bool `jsonapi:"attr,enabled,omitempty"` Stages *[]Stage `jsonapi:"attr,stages,omitempty"` EnforcementLevel *TaskEnforcementLevel `jsonapi:"attr,enforcement-level,omitempty"` }
GlobalRunTask represents the optional global configuration of a HCP Terraform or Terraform Enterprise run task
type IPRange ¶ added in v0.12.0
type IPRange struct { // List of IP ranges in CIDR notation used for connections from user site to HCP Terraform APIs API []string `json:"api"` // List of IP ranges in CIDR notation used for notifications Notifications []string `json:"notifications"` // List of IP ranges in CIDR notation used for outbound requests from Sentinel policies Sentinel []string `json:"sentinel"` // List of IP ranges in CIDR notation used for connecting to VCS providers VCS []string `json:"vcs"` }
IPRange represents a list of HCP Terraform's IP ranges
type IPRanges ¶ added in v0.12.0
type IPRanges interface { // Retrieve HCP Terraform IP ranges. If `modifiedSince` is not an empty string // then it will only return the IP ranges changes since that date. // The format for `modifiedSince` can be found here: // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since Read(ctx context.Context, modifiedSince string) (*IPRange, error) }
IP Ranges provides a list of HCP Terraform or Terraform Enterprise's IP ranges.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/ip-ranges
type IngressAttributes ¶ added in v0.16.0
type IngressAttributes struct { ID string `jsonapi:"primary,ingress-attributes"` Branch string `jsonapi:"attr,branch"` CloneURL string `jsonapi:"attr,clone-url"` CommitMessage string `jsonapi:"attr,commit-message"` CommitSHA string `jsonapi:"attr,commit-sha"` CommitURL string `jsonapi:"attr,commit-url"` CompareURL string `jsonapi:"attr,compare-url"` Identifier string `jsonapi:"attr,identifier"` IsPullRequest bool `jsonapi:"attr,is-pull-request"` OnDefaultBranch bool `jsonapi:"attr,on-default-branch"` PullRequestNumber int `jsonapi:"attr,pull-request-number"` PullRequestURL string `jsonapi:"attr,pull-request-url"` PullRequestTitle string `jsonapi:"attr,pull-request-title"` PullRequestBody string `jsonapi:"attr,pull-request-body"` Tag string `jsonapi:"attr,tag"` SenderUsername string `jsonapi:"attr,sender-username"` SenderAvatarURL string `jsonapi:"attr,sender-avatar-url"` SenderHTMLURL string `jsonapi:"attr,sender-html-url"` // Links Links map[string]interface{} `jsonapi:"links,omitempty"` }
IngressAttributes include commit information associated with configuration versions sourced from VCS.
type JSONChangeDesc ¶ added in v1.62.0
type JSONChangeDesc struct { FormatVersion uint64 `json:"terraform_stack_change_description"` Interim bool `json:"interim,omitempty"` Applyable bool `json:"applyable"` PlanMode string `json:"plan_mode"` Components []JSONComponent `json:"components"` ResourceInstances []JSONResourceInstance `json:"resource_instances"` DeferredResourceInstances []JSONResourceInstanceDeferral `json:"deferred_resource_instances"` Outputs map[string]JSONOutput `json:"outputs"` }
JSONChangeDesc represents a change description of a stack plan / apply operation.
type JSONComponent ¶ added in v1.62.0
type JSONComponent struct { Address string `json:"address"` ComponentAddress string `json:"component_address"` InstanceCorrelator string `json:"instance_correlator"` ComponentCorrelator string `json:"component_correlator"` Actions []ChangeAction `json:"actions"` Complete bool `json:"complete"` }
JSONComponent represents a change description of a single component in a plan.
type JSONDeferred ¶ added in v1.62.0
type JSONDeferred struct {
Reason string `json:"reason"`
}
JSONDeferred contains the reason why a resource instance is deferred: instance_count_unknown, resource_config_unknown, provider_config_unknown, provider_config_unknown, or deferred_prereq.
type JSONImporting ¶ added in v1.62.0
type JSONImporting struct { // True within a deferred instance Unknown bool `json:"unknown"` ID string `json:"id"` GeneratedConfig string `json:"generated_config"` }
JSONImporting represents the import status of a resource instance in a plan.
type JSONOutput ¶ added in v1.62.0
type JSONOutput struct {
Change json.RawMessage `json:"change"`
}
JSONOutput is the value of a single output in a plan.
type JSONResourceInstance ¶ added in v1.62.0
type JSONResourceInstance struct { ComponentInstanceCorrelator string `json:"component_instance_correlator"` ComponentInstanceAddress string `json:"component_instance_address"` Address string `json:"address"` PreviousComponentInstanceAddress string `json:"previous_component_instance_address,omitempty"` PreviousAddress string `json:"previous_address,omitempty"` DeposedKey string `json:"deposed,omitempty"` ResourceMode string `json:"mode,omitempty"` ResourceType string `json:"type"` ProviderAddr string `json:"provider_name"` Change Change `json:"change"` ResourceName string `json:"resource_name"` Index json.RawMessage `json:"index"` IndexUnknown bool `json:"index_unknown"` ModuleAddr string `json:"module_address"` ActionReason string `json:"action_reason,omitempty"` }
JSONResourceInstance is the change description of a single resource instance in a plan.
type JSONResourceInstanceDeferral ¶ added in v1.62.0
type JSONResourceInstanceDeferral struct { ResourceInstance JSONResourceInstance `json:"resource_instance"` Deferred JSONDeferred `json:"deferred"` }
JSONResourceInstanceDeferral is the change description of a single resource instance that is deferred.
type ListOptions ¶
type ListOptions struct { // The page number to request. The results vary based on the PageSize. PageNumber int `url:"page[number],omitempty"` // The number of elements returned in a single page. PageSize int `url:"page[size],omitempty"` }
ListOptions is used to specify pagination options when making API requests. Pagination allows breaking up large result sets into chunks, or "pages".
type LockedByChoice ¶ added in v1.42.0
LockedByChoice is a choice type struct that represents the possible values within a polymorphic relation. If a value is available, exactly one field will be non-nil.
type LogReader ¶ added in v0.1.1
type LogReader struct {
// contains filtered or unexported fields
}
LogReader implements io.Reader for streaming logs.
type Meta ¶ added in v0.12.0
type Meta struct {
IPRanges IPRanges
}
Meta contains any HCP Terraform APIs which provide data about the API itself.
type NoCodeVariableOption ¶ added in v1.22.0
type NoCodeVariableOption struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. Type string `jsonapi:"primary,variable-options"` // Required: The variable name VariableName string `jsonapi:"attr,variable-name"` // Required: The variable type VariableType string `jsonapi:"attr,variable-type"` // Optional: The options for the variable Options []string `jsonapi:"attr,options"` }
NoCodeVariableOption represents a registry no-code module variable and its options.
type NotificationConfiguration ¶ added in v0.3.12
type NotificationConfiguration struct { ID string `jsonapi:"primary,notification-configurations"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` DeliveryResponses []*DeliveryResponse `jsonapi:"attr,delivery-responses"` DestinationType NotificationDestinationType `jsonapi:"attr,destination-type"` Enabled bool `jsonapi:"attr,enabled"` Name string `jsonapi:"attr,name"` Token string `jsonapi:"attr,token"` Triggers []string `jsonapi:"attr,triggers"` UpdatedAt time.Time `jsonapi:"attr,updated-at,iso8601"` URL string `jsonapi:"attr,url"` // EmailAddresses is only available for TFE users. It is not available in HCP Terraform. EmailAddresses []string `jsonapi:"attr,email-addresses"` // Relations // DEPRECATED. The subscribable field is polymorphic. Use NotificationConfigurationSubscribableChoice instead. Subscribable *Workspace `jsonapi:"relation,subscribable,omitempty"` SubscribableChoice *NotificationConfigurationSubscribableChoice `jsonapi:"polyrelation,subscribable"` EmailUsers []*User `jsonapi:"relation,users"` }
NotificationConfiguration represents a Notification Configuration.
type NotificationConfigurationCreateOptions ¶ added in v0.3.12
type NotificationConfigurationCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,notification-configurations"` // Required: The destination type of the notification configuration DestinationType *NotificationDestinationType `jsonapi:"attr,destination-type"` // Required: Whether the notification configuration should be enabled or not Enabled *bool `jsonapi:"attr,enabled"` // Required: The name of the notification configuration Name *string `jsonapi:"attr,name"` // Optional: The token of the notification configuration Token *string `jsonapi:"attr,token,omitempty"` // Optional: The list of run events that will trigger notifications. Triggers []NotificationTriggerType `jsonapi:"attr,triggers,omitempty"` // Optional: The url of the notification configuration URL *string `jsonapi:"attr,url,omitempty"` // Optional: The list of email addresses that will receive notification emails. // EmailAddresses is only available for TFE users. It is not available in HCP Terraform. EmailAddresses []string `jsonapi:"attr,email-addresses,omitempty"` // Optional: The list of users belonging to the organization that will receive notification emails. EmailUsers []*User `jsonapi:"relation,users,omitempty"` // Required: The workspace or team that the notification configuration is associated with. SubscribableChoice *NotificationConfigurationSubscribableChoice `jsonapi:"polyrelation,subscribable,omitempty"` }
NotificationConfigurationCreateOptions represents the options for creating a new notification configuration.
type NotificationConfigurationList ¶ added in v0.3.12
type NotificationConfigurationList struct { *Pagination Items []*NotificationConfiguration }
NotificationConfigurationList represents a list of Notification Configurations.
type NotificationConfigurationListOptions ¶ added in v0.3.13
type NotificationConfigurationListOptions struct { ListOptions SubscribableChoice *NotificationConfigurationSubscribableChoice }
NotificationConfigurationListOptions represents the options for listing notification configurations.
type NotificationConfigurationSubscribableChoice ¶ added in v1.73.0
NotificationConfigurationSubscribableChoice is a choice type struct that represents the possible values within a polymorphic relation. If a value is available, exactly one field will be non-nil.
type NotificationConfigurationUpdateOptions ¶ added in v0.3.12
type NotificationConfigurationUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,notification-configurations"` // Optional: Whether the notification configuration should be enabled or not Enabled *bool `jsonapi:"attr,enabled,omitempty"` // Optional: The name of the notification configuration Name *string `jsonapi:"attr,name,omitempty"` // Optional: The token of the notification configuration Token *string `jsonapi:"attr,token,omitempty"` // Optional: The list of run events that will trigger notifications. Triggers []NotificationTriggerType `jsonapi:"attr,triggers,omitempty"` // Optional: The url of the notification configuration URL *string `jsonapi:"attr,url,omitempty"` // Optional: The list of email addresses that will receive notification emails. // EmailAddresses is only available for TFE users. It is not available in HCP Terraform. EmailAddresses []string `jsonapi:"attr,email-addresses,omitempty"` // Optional: The list of users belonging to the organization that will receive notification emails. EmailUsers []*User `jsonapi:"relation,users,omitempty"` }
NotificationConfigurationUpdateOptions represents the options for updating a existing notification configuration.
type NotificationConfigurations ¶ added in v0.3.12
type NotificationConfigurations interface { // List all the notification configurations within a workspace. List(ctx context.Context, subscribableID string, options *NotificationConfigurationListOptions) (*NotificationConfigurationList, error) // Create a new notification configuration with the given options. Create(ctx context.Context, subscribableID string, options NotificationConfigurationCreateOptions) (*NotificationConfiguration, error) // Read a notification configuration by its ID. Read(ctx context.Context, notificationConfigurationID string) (*NotificationConfiguration, error) // Update an existing notification configuration. Update(ctx context.Context, notificationConfigurationID string, options NotificationConfigurationUpdateOptions) (*NotificationConfiguration, error) // Delete a notification configuration by its ID. Delete(ctx context.Context, notificationConfigurationID string) error // Verify a notification configuration by its ID. Verify(ctx context.Context, notificationConfigurationID string) (*NotificationConfiguration, error) }
NotificationConfigurations describes all the Notification Configuration related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/notification-configurations
type NotificationDestinationType ¶ added in v0.3.12
type NotificationDestinationType string
NotificationDestinationType represents the destination type of the notification configuration.
const ( NotificationDestinationTypeEmail NotificationDestinationType = "email" NotificationDestinationTypeGeneric NotificationDestinationType = "generic" NotificationDestinationTypeSlack NotificationDestinationType = "slack" NotificationDestinationTypeMicrosoftTeams NotificationDestinationType = "microsoft-teams" )
List of available notification destination types.
func NotificationDestination ¶ added in v0.3.12
func NotificationDestination(v NotificationDestinationType) *NotificationDestinationType
NotificationDestination returns a pointer to the given notification configuration destination type
type NotificationTriggerType ¶ added in v1.0.0
type NotificationTriggerType string
NotificationTriggerType represents the different TFE notifications that can be sent as a run's progress transitions between different states
const ( NotificationTriggerCreated NotificationTriggerType = "run:created" NotificationTriggerPlanning NotificationTriggerType = "run:planning" NotificationTriggerNeedsAttention NotificationTriggerType = "run:needs_attention" NotificationTriggerApplying NotificationTriggerType = "run:applying" NotificationTriggerCompleted NotificationTriggerType = "run:completed" NotificationTriggerErrored NotificationTriggerType = "run:errored" NotificationTriggerAssessmentDrifted NotificationTriggerType = "assessment:drifted" NotificationTriggerAssessmentFailed NotificationTriggerType = "assessment:failed" NotificationTriggerAssessmentCheckFailed NotificationTriggerType = "assessment:check_failure" NotificationTriggerWorkspaceAutoDestroyReminder NotificationTriggerType = "workspace:auto_destroy_reminder" NotificationTriggerWorkspaceAutoDestroyRunResults NotificationTriggerType = "workspace:auto_destroy_run_results" NotificationTriggerChangeRequestCreated NotificationTriggerType = "change_request:created" )
type OAuthClient ¶
type OAuthClient struct { ID string `jsonapi:"primary,oauth-clients"` APIURL string `jsonapi:"attr,api-url"` CallbackURL string `jsonapi:"attr,callback-url"` ConnectPath string `jsonapi:"attr,connect-path"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` HTTPURL string `jsonapi:"attr,http-url"` Key string `jsonapi:"attr,key"` RSAPublicKey string `jsonapi:"attr,rsa-public-key"` Name *string `jsonapi:"attr,name"` Secret string `jsonapi:"attr,secret"` ServiceProvider ServiceProviderType `jsonapi:"attr,service-provider"` ServiceProviderName string `jsonapi:"attr,service-provider-display-name"` OrganizationScoped *bool `jsonapi:"attr,organization-scoped"` // Relations Organization *Organization `jsonapi:"relation,organization"` OAuthTokens []*OAuthToken `jsonapi:"relation,oauth-tokens"` AgentPool *AgentPool `jsonapi:"relation,agent-pool"` // The projects to which the oauth client applies. Projects []*Project `jsonapi:"relation,projects"` }
OAuthClient represents a connection between an organization and a VCS provider.
type OAuthClientAddProjectsOptions ¶ added in v1.40.0
type OAuthClientAddProjectsOptions struct { // The projects to add to an oauth client. Projects []*Project }
OAuthClientAddProjectsOptions represents the options for adding projects to an oauth client.
type OAuthClientCreateOptions ¶
type OAuthClientCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,oauth-clients"` // A display name for the OAuth Client. Name *string `jsonapi:"attr,name"` // Required: The base URL of your VCS provider's API. APIURL *string `jsonapi:"attr,api-url"` // Required: The homepage of your VCS provider. HTTPURL *string `jsonapi:"attr,http-url"` // Optional: The OAuth Client key. Key *string `jsonapi:"attr,key,omitempty"` // Optional: The token string you were given by your VCS provider. OAuthToken *string `jsonapi:"attr,oauth-token-string,omitempty"` // Optional: The initial list of projects for which the oauth client should be associated with. Projects []*Project `jsonapi:"relation,projects,omitempty"` // Optional: Private key associated with this vcs provider - only available for ado_server PrivateKey *string `jsonapi:"attr,private-key,omitempty"` // Optional: Secret key associated with this vcs provider - only available for ado_server Secret *string `jsonapi:"attr,secret,omitempty"` // Optional: RSAPublicKey the text of the SSH public key associated with your // BitBucket Data Center Application Link. RSAPublicKey *string `jsonapi:"attr,rsa-public-key,omitempty"` // Required: The VCS provider being connected with. ServiceProvider *ServiceProviderType `jsonapi:"attr,service-provider"` // Optional: AgentPool to associate the VCS Provider with, for PrivateVCS support AgentPool *AgentPool `jsonapi:"relation,agent-pool,omitempty"` // Optional: Whether the OAuthClient is available to all workspaces in the organization. // True if the oauth client is organization scoped, false otherwise. OrganizationScoped *bool `jsonapi:"attr,organization-scoped,omitempty"` }
OAuthClientCreateOptions represents the options for creating an OAuth client.
type OAuthClientIncludeOpt ¶ added in v1.0.0
type OAuthClientIncludeOpt string
A list of relations to include
const ( OauthClientOauthTokens OAuthClientIncludeOpt = "oauth_tokens" OauthClientProjects OAuthClientIncludeOpt = "projects" )
type OAuthClientList ¶ added in v0.2.2
type OAuthClientList struct { *Pagination Items []*OAuthClient }
OAuthClientList represents a list of OAuth clients.
type OAuthClientListOptions ¶ added in v0.2.2
type OAuthClientListOptions struct { ListOptions Include []OAuthClientIncludeOpt `url:"include,omitempty"` }
OAuthClientListOptions represents the options for listing OAuth clients.
type OAuthClientReadOptions ¶ added in v1.40.0
type OAuthClientReadOptions struct { // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/oauth-clients#available-related-resources Include []OAuthClientIncludeOpt `url:"include,omitempty"` }
OAuthClientReadOptions are read options. For a full list of relations, please see: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/oauth-clients#relationships
type OAuthClientRemoveProjectsOptions ¶ added in v1.40.0
type OAuthClientRemoveProjectsOptions struct { // The projects to remove from an oauth client. Projects []*Project }
OAuthClientRemoveProjectsOptions represents the options for removing projects from an oauth client.
type OAuthClientUpdateOptions ¶ added in v0.21.0
type OAuthClientUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,oauth-clients"` // Optional: A display name for the OAuth Client. Name *string `jsonapi:"attr,name,omitempty"` // Optional: The OAuth Client key. Key *string `jsonapi:"attr,key,omitempty"` // Optional: Secret key associated with this vcs provider - only available for ado_server Secret *string `jsonapi:"attr,secret,omitempty"` // Optional: RSAPublicKey the text of the SSH public key associated with your BitBucket // Server Application Link. RSAPublicKey *string `jsonapi:"attr,rsa-public-key,omitempty"` // Optional: The token string you were given by your VCS provider. OAuthToken *string `jsonapi:"attr,oauth-token-string,omitempty"` // Optional: Whether the OAuthClient is available to all workspaces in the organization. // True if the oauth client is organization scoped, false otherwise. OrganizationScoped *bool `jsonapi:"attr,organization-scoped,omitempty"` }
OAuthClientUpdateOptions represents the options for updating an OAuth client.
type OAuthClients ¶
type OAuthClients interface { // List all the OAuth clients for a given organization. List(ctx context.Context, organization string, options *OAuthClientListOptions) (*OAuthClientList, error) // Create an OAuth client to connect an organization and a VCS provider. Create(ctx context.Context, organization string, options OAuthClientCreateOptions) (*OAuthClient, error) // Read an OAuth client by its ID. Read(ctx context.Context, oAuthClientID string) (*OAuthClient, error) // ReadWithOptions reads an oauth client by its ID using the options supplied. ReadWithOptions(ctx context.Context, oAuthClientID string, options *OAuthClientReadOptions) (*OAuthClient, error) // Update an existing OAuth client by its ID. Update(ctx context.Context, oAuthClientID string, options OAuthClientUpdateOptions) (*OAuthClient, error) // Delete an OAuth client by its ID. Delete(ctx context.Context, oAuthClientID string) error // AddProjects add projects to an oauth client. AddProjects(ctx context.Context, oAuthClientID string, options OAuthClientAddProjectsOptions) error // RemoveProjects remove projects from an oauth client. RemoveProjects(ctx context.Context, oAuthClientID string, options OAuthClientRemoveProjectsOptions) error }
OAuthClients describes all the OAuth client related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/oauth-clients
type OAuthToken ¶
type OAuthToken struct { ID string `jsonapi:"primary,oauth-tokens"` UID string `jsonapi:"attr,uid"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` HasSSHKey bool `jsonapi:"attr,has-ssh-key"` ServiceProviderUser string `jsonapi:"attr,service-provider-user"` // Relations OAuthClient *OAuthClient `jsonapi:"relation,oauth-client"` }
OAuthToken represents a VCS configuration including the associated OAuth token
type OAuthTokenList ¶ added in v0.2.0
type OAuthTokenList struct { *Pagination Items []*OAuthToken }
OAuthTokenList represents a list of OAuth tokens.
type OAuthTokenListOptions ¶ added in v0.2.0
type OAuthTokenListOptions struct {
ListOptions
}
OAuthTokenListOptions represents the options for listing OAuth tokens.
type OAuthTokenUpdateOptions ¶ added in v0.2.2
type OAuthTokenUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,oauth-tokens"` // Optional: A private SSH key to be used for git clone operations. PrivateSSHKey *string `jsonapi:"attr,ssh-key,omitempty"` }
OAuthTokenUpdateOptions represents the options for updating an OAuth token.
type OAuthTokens ¶
type OAuthTokens interface { // List all the OAuth tokens for a given organization. List(ctx context.Context, organization string, options *OAuthTokenListOptions) (*OAuthTokenList, error) // Read a OAuth token by its ID. Read(ctx context.Context, oAuthTokenID string) (*OAuthToken, error) // Update an existing OAuth token. Update(ctx context.Context, oAuthTokenID string, options OAuthTokenUpdateOptions) (*OAuthToken, error) // Delete a OAuth token by its ID. Delete(ctx context.Context, oAuthTokenID string) error }
OAuthTokens describes all the OAuth token related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/oauth-tokens
type OIDCSettings ¶ added in v1.21.0
type OIDCSettings interface { // Rotate the key used for signing OIDC tokens for workload identity RotateKey(ctx context.Context) error // Trim old version of the key used for signing OIDC tokens for workload identity TrimKey(ctx context.Context) error }
OidcSettings describes all the OIDC admin settings for the Admin Setting API. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings
type OrgMembershipIncludeOpt ¶ added in v1.0.0
type OrgMembershipIncludeOpt string
OrgMembershipIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/cloud-docs/api-docs/organization-memberships#available-related-resources
const ( OrgMembershipUser OrgMembershipIncludeOpt = "user" OrgMembershipTeam OrgMembershipIncludeOpt = "teams" )
type Organization ¶
type Organization struct { Name string `jsonapi:"primary,organizations"` AssessmentsEnforced bool `jsonapi:"attr,assessments-enforced"` CollaboratorAuthPolicy AuthPolicyType `jsonapi:"attr,collaborator-auth-policy"` CostEstimationEnabled bool `jsonapi:"attr,cost-estimation-enabled"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` DefaultExecutionMode string `jsonapi:"attr,default-execution-mode"` Email string `jsonapi:"attr,email"` ExternalID string `jsonapi:"attr,external-id"` IsUnified bool `jsonapi:"attr,is-unified"` OwnersTeamSAMLRoleID string `jsonapi:"attr,owners-team-saml-role-id"` Permissions *OrganizationPermissions `jsonapi:"attr,permissions"` SAMLEnabled bool `jsonapi:"attr,saml-enabled"` SessionRemember int `jsonapi:"attr,session-remember"` SessionTimeout int `jsonapi:"attr,session-timeout"` TrialExpiresAt time.Time `jsonapi:"attr,trial-expires-at,iso8601"` TwoFactorConformant bool `jsonapi:"attr,two-factor-conformant"` SendPassingStatusesForUntriggeredSpeculativePlans bool `jsonapi:"attr,send-passing-statuses-for-untriggered-speculative-plans"` RemainingTestableCount int `jsonapi:"attr,remaining-testable-count"` SpeculativePlanManagementEnabled bool `jsonapi:"attr,speculative-plan-management-enabled"` // Optional: If enabled, SendPassingStatusesForUntriggeredSpeculativePlans needs to be false. AggregatedCommitStatusEnabled bool `jsonapi:"attr,aggregated-commit-status-enabled,omitempty"` // Note: This will be false for TFE versions older than v202211, where the setting was introduced. // On those TFE versions, safe delete does not exist, so ALL deletes will be force deletes. AllowForceDeleteWorkspaces bool `jsonapi:"attr,allow-force-delete-workspaces"` // Relations DefaultProject *Project `jsonapi:"relation,default-project"` DefaultAgentPool *AgentPool `jsonapi:"relation,default-agent-pool"` // Deprecated: Use DataRetentionPolicyChoice instead. DataRetentionPolicy *DataRetentionPolicy // **Note: This functionality is only available in Terraform Enterprise.** DataRetentionPolicyChoice *DataRetentionPolicyChoice `jsonapi:"polyrelation,data-retention-policy"` }
Organization represents a Terraform Enterprise organization.
type OrganizationAccess ¶ added in v0.3.8
type OrganizationAccess struct { ManagePolicies bool `jsonapi:"attr,manage-policies"` ManagePolicyOverrides bool `jsonapi:"attr,manage-policy-overrides"` ManageWorkspaces bool `jsonapi:"attr,manage-workspaces"` ManageVCSSettings bool `jsonapi:"attr,manage-vcs-settings"` ManageProviders bool `jsonapi:"attr,manage-providers"` ManageModules bool `jsonapi:"attr,manage-modules"` ManageRunTasks bool `jsonapi:"attr,manage-run-tasks"` ManageProjects bool `jsonapi:"attr,manage-projects"` ReadWorkspaces bool `jsonapi:"attr,read-workspaces"` ReadProjects bool `jsonapi:"attr,read-projects"` ManageMembership bool `jsonapi:"attr,manage-membership"` ManageTeams bool `jsonapi:"attr,manage-teams"` ManageOrganizationAccess bool `jsonapi:"attr,manage-organization-access"` AccessSecretTeams bool `jsonapi:"attr,access-secret-teams"` ManageAgentPools bool `jsonapi:"attr,manage-agent-pools"` }
OrganizationAccess represents the team's permissions on its organization
type OrganizationAccessOptions ¶ added in v0.3.8
type OrganizationAccessOptions struct { ManagePolicies *bool `json:"manage-policies,omitempty"` ManagePolicyOverrides *bool `json:"manage-policy-overrides,omitempty"` ManageWorkspaces *bool `json:"manage-workspaces,omitempty"` ManageVCSSettings *bool `json:"manage-vcs-settings,omitempty"` ManageProviders *bool `json:"manage-providers,omitempty"` ManageModules *bool `json:"manage-modules,omitempty"` ManageRunTasks *bool `json:"manage-run-tasks,omitempty"` ManageProjects *bool `json:"manage-projects,omitempty"` ReadWorkspaces *bool `json:"read-workspaces,omitempty"` ReadProjects *bool `json:"read-projects,omitempty"` ManageMembership *bool `json:"manage-membership,omitempty"` ManageTeams *bool `json:"manage-teams,omitempty"` ManageOrganizationAccess *bool `json:"manage-organization-access,omitempty"` AccessSecretTeams *bool `json:"access-secret-teams,omitempty"` ManageAgentPools *bool `json:"manage-agent-pools,omitempty"` }
OrganizationAccessOptions represents the organization access options of a team.
type OrganizationCreateOptions ¶
type OrganizationCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,organizations"` // Required: Name of the organization. Name *string `jsonapi:"attr,name"` // Optional: AssessmentsEnforced toggles whether health assessment enablement is enforced across all assessable workspaces (those with a minimum terraform version of 0.15.4 and not running in local execution mode) or if the decision to enabled health assessments is delegated to the workspace setting AssessmentsEnabled. AssessmentsEnforced *bool `jsonapi:"attr,assessments-enforced,omitempty"` // Required: Admin email address. Email *string `jsonapi:"attr,email"` // Optional: Session expiration (minutes). SessionRemember *int `jsonapi:"attr,session-remember,omitempty"` // Optional: Session timeout after inactivity (minutes). SessionTimeout *int `jsonapi:"attr,session-timeout,omitempty"` // Optional: Authentication policy. CollaboratorAuthPolicy *AuthPolicyType `jsonapi:"attr,collaborator-auth-policy,omitempty"` // Optional: Enable Cost Estimation CostEstimationEnabled *bool `jsonapi:"attr,cost-estimation-enabled,omitempty"` // Optional: The name of the "owners" team OwnersTeamSAMLRoleID *string `jsonapi:"attr,owners-team-saml-role-id,omitempty"` // Optional: SendPassingStatusesForUntriggeredSpeculativePlans toggles behavior of untriggered speculative plans to send status updates to version control systems like GitHub. SendPassingStatusesForUntriggeredSpeculativePlans *bool `jsonapi:"attr,send-passing-statuses-for-untriggered-speculative-plans,omitempty"` // Optional: If enabled, SendPassingStatusesForUntriggeredSpeculativePlans needs to be false. AggregatedCommitStatusEnabled *bool `jsonapi:"attr,aggregated-commit-status-enabled,omitempty"` // Optional: SpeculativePlanManagementEnabled toggles whether pending speculative plans from outdated commits will be cancelled if a newer commit is pushed to the same branch. SpeculativePlanManagementEnabled *bool `jsonapi:"attr,speculative-plan-management-enabled,omitempty"` // Optional: AllowForceDeleteWorkspaces toggles behavior of allowing workspace admins to delete workspaces with resources under management. AllowForceDeleteWorkspaces *bool `jsonapi:"attr,allow-force-delete-workspaces,omitempty"` // Optional: DefaultExecutionMode the default execution mode for workspaces DefaultExecutionMode *string `jsonapi:"attr,default-execution-mode,omitempty"` // Optional: StacksEnabled toggles whether stacks are enabled for the organization. This setting // is considered BETA, SUBJECT TO CHANGE, and likely unavailable to most users. StacksEnabled *bool `jsonapi:"attr,stacks-enabled,omitempty"` }
OrganizationCreateOptions represents the options for creating an organization.
type OrganizationIncludeOpt ¶ added in v1.15.0
type OrganizationIncludeOpt string
OrganizationIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/cloud-docs/api-docs/organizations#available-related-resources
const ( // **Note: This include option is still in BETA and subject to change.** OrganizationDefaultProject OrganizationIncludeOpt = "default-project" )
type OrganizationList ¶ added in v0.2.0
type OrganizationList struct { *Pagination Items []*Organization }
OrganizationList represents a list of organizations.
type OrganizationListOptions ¶
type OrganizationListOptions struct { ListOptions // Optional: A query string used to filter organizations. // Organizations with a name or email partially matching this value will be returned. Query string `url:"q,omitempty"` }
OrganizationListOptions represents the options for listing organizations.
type OrganizationMembership ¶ added in v0.3.31
type OrganizationMembership struct { ID string `jsonapi:"primary,organization-memberships"` Status OrganizationMembershipStatus `jsonapi:"attr,status"` Email string `jsonapi:"attr,email"` // Relations Organization *Organization `jsonapi:"relation,organization"` User *User `jsonapi:"relation,user"` Teams []*Team `jsonapi:"relation,teams"` }
OrganizationMembership represents a Terraform Enterprise organization membership.
type OrganizationMembershipCreateOptions ¶ added in v0.3.31
type OrganizationMembershipCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,organization-memberships"` // Required: User's email address. Email *string `jsonapi:"attr,email"` // Optional: A list of teams in the organization to add the user to Teams []*Team `jsonapi:"relation,teams,omitempty"` }
OrganizationMembershipCreateOptions represents the options for creating an organization membership.
type OrganizationMembershipList ¶ added in v0.3.31
type OrganizationMembershipList struct { *Pagination Items []*OrganizationMembership }
OrganizationMembershipList represents a list of organization memberships.
type OrganizationMembershipListOptions ¶ added in v0.3.31
type OrganizationMembershipListOptions struct { ListOptions // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/organization-memberships#available-related-resources Include []OrgMembershipIncludeOpt `url:"include,omitempty"` // Optional: A list of organization member emails to filter by. Emails []string `url:"filter[email],omitempty"` // Optional: If specified, restricts results to those matching status value. Status OrganizationMembershipStatus `url:"filter[status],omitempty"` // Optional: A query string to search organization memberships by user name // and email. Query string `url:"q,omitempty"` }
OrganizationMembershipListOptions represents the options for listing organization memberships.
type OrganizationMembershipReadOptions ¶ added in v0.3.31
type OrganizationMembershipReadOptions struct { // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/organization-memberships#available-related-resources Include []OrgMembershipIncludeOpt `url:"include,omitempty"` }
OrganizationMembershipReadOptions represents the options for reading organization memberships.
type OrganizationMembershipStatus ¶ added in v0.3.31
type OrganizationMembershipStatus string
OrganizationMembershipStatus represents an organization membership status.
const ( OrganizationMembershipActive OrganizationMembershipStatus = "active" OrganizationMembershipInvited OrganizationMembershipStatus = "invited" )
type OrganizationMemberships ¶ added in v0.3.31
type OrganizationMemberships interface { // List all the organization memberships of the given organization. List(ctx context.Context, organization string, options *OrganizationMembershipListOptions) (*OrganizationMembershipList, error) // Create a new organization membership with the given options. Create(ctx context.Context, organization string, options OrganizationMembershipCreateOptions) (*OrganizationMembership, error) // Read an organization membership by ID Read(ctx context.Context, organizationMembershipID string) (*OrganizationMembership, error) // Read an organization membership by ID with options ReadWithOptions(ctx context.Context, organizationMembershipID string, options OrganizationMembershipReadOptions) (*OrganizationMembership, error) // Delete an organization membership by its ID. Delete(ctx context.Context, organizationMembershipID string) error }
OrganizationMemberships describes all the organization membership related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/organization-memberships
type OrganizationPermissions ¶
type OrganizationPermissions struct { CanCreateTeam bool `jsonapi:"attr,can-create-team"` CanCreateWorkspace bool `jsonapi:"attr,can-create-workspace"` CanCreateWorkspaceMigration bool `jsonapi:"attr,can-create-workspace-migration"` CanDeployNoCodeModules bool `jsonapi:"attr,can-deploy-no-code-modules"` CanDestroy bool `jsonapi:"attr,can-destroy"` CanManageNoCodeModules bool `jsonapi:"attr,can-manage-no-code-modules"` CanManageRunTasks bool `jsonapi:"attr,can-manage-run-tasks"` CanTraverse bool `jsonapi:"attr,can-traverse"` CanUpdate bool `jsonapi:"attr,can-update"` CanUpdateAPIToken bool `jsonapi:"attr,can-update-api-token"` CanUpdateOAuth bool `jsonapi:"attr,can-update-oauth"` CanUpdateSentinel bool `jsonapi:"attr,can-update-sentinel"` }
OrganizationPermissions represents the organization permissions.
type OrganizationReadOptions ¶ added in v1.15.0
type OrganizationReadOptions struct { // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/organizations#available-related-resources Include []OrganizationIncludeOpt `url:"include,omitempty"` }
OrganizationReadOptions represents the options for reading organizations.
type OrganizationRunList ¶ added in v1.77.0
type OrganizationRunList struct { *PaginationNextPrev Items []*Run }
OrganizationRunList represents a list of runs across an organization. It differs from the RunList in that it does not include a TotalCount of records in the pagination details
type OrganizationTag ¶ added in v0.21.0
type OrganizationTag struct { ID string `jsonapi:"primary,tags"` // Optional: Name string `jsonapi:"attr,name,omitempty"` // Optional: Number of workspaces that have this tag InstanceCount int `jsonapi:"attr,instance-count,omitempty"` // The org this tag belongs to Organization *Organization `jsonapi:"relation,organization"` }
OrganizationTag represents a Terraform Enterprise Organization tag
type OrganizationTags ¶ added in v0.21.0
type OrganizationTags interface { // List all tags within an organization List(ctx context.Context, organization string, options *OrganizationTagsListOptions) (*OrganizationTagsList, error) // Delete tags from an organization Delete(ctx context.Context, organization string, options OrganizationTagsDeleteOptions) error // Associate an organization's workspace with a tag AddWorkspaces(ctx context.Context, tag string, options AddWorkspacesToTagOptions) error }
OrganizationMemberships describes all the list of tags used with all resources across the organization.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/organization-tags
type OrganizationTagsDeleteOptions ¶ added in v0.21.0
type OrganizationTagsDeleteOptions struct {
IDs []string // Required
}
OrganizationTagsDeleteOptions represents the request body for deleting a tag in an organization
type OrganizationTagsList ¶ added in v0.21.0
type OrganizationTagsList struct { *Pagination Items []*OrganizationTag }
OrganizationTagsList represents a list of organization tags
type OrganizationTagsListOptions ¶ added in v0.21.0
type OrganizationTagsListOptions struct { ListOptions // Optional: Filter string `url:"filter[exclude][taggable][id],omitempty"` // Optional: A search query string. Organization tags are searchable by name likeness. Query string `url:"q,omitempty"` }
OrganizationTagsListOptions represents the options for listing organization tags
type OrganizationToken ¶
type OrganizationToken struct { ID string `jsonapi:"primary,authentication-tokens"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` Description string `jsonapi:"attr,description"` LastUsedAt time.Time `jsonapi:"attr,last-used-at,iso8601"` Token string `jsonapi:"attr,token"` ExpiredAt time.Time `jsonapi:"attr,expired-at,iso8601"` CreatedBy *CreatedByChoice `jsonapi:"polyrelation,created-by"` }
OrganizationToken represents a Terraform Enterprise organization token.
type OrganizationTokenCreateOptions ¶ added in v1.24.0
type OrganizationTokenCreateOptions struct { // Optional: The token's expiration date. // This feature is available in TFE release v202305-1 and later ExpiredAt *time.Time `jsonapi:"attr,expired-at,iso8601,omitempty" url:"-"` // Optional: What type of token to create // This option is only applicable to HCP Terraform and is ignored by TFE. TokenType *TokenType `url:"token,omitempty"` }
OrganizationTokenCreateOptions contains the options for creating an organization token.
type OrganizationTokenDeleteOptions ¶ added in v1.64.0
type OrganizationTokenDeleteOptions struct { // Optional: What type of token to delete // This option is only applicable to HCP Terraform and is ignored by TFE. TokenType *TokenType `url:"token,omitempty"` }
OrganizationTokenDeleteOptions contains the options for deleting an organization token.
type OrganizationTokenReadOptions ¶ added in v1.64.0
type OrganizationTokenReadOptions struct { // Optional: What type of token to read // This option is only applicable to HCP Terraform and is ignored by TFE. TokenType *TokenType `url:"token,omitempty"` }
OrganizationTokenReadOptions contains the options for reading an organization token.
type OrganizationTokens ¶
type OrganizationTokens interface { // Create a new organization token, replacing any existing token. Create(ctx context.Context, organization string) (*OrganizationToken, error) // CreateWithOptions a new organization token with options, replacing any existing token. CreateWithOptions(ctx context.Context, organization string, options OrganizationTokenCreateOptions) (*OrganizationToken, error) // Read an organization token. Read(ctx context.Context, organization string) (*OrganizationToken, error) // Read an organization token with options. ReadWithOptions(ctx context.Context, organization string, options OrganizationTokenReadOptions) (*OrganizationToken, error) // Delete an organization token. Delete(ctx context.Context, organization string) error // Delete an organization token with options. DeleteWithOptions(ctx context.Context, organization string, options OrganizationTokenDeleteOptions) error }
OrganizationTokens describes all the organization token related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/organization-tokens
type OrganizationUpdateOptions ¶
type OrganizationUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,organizations"` // New name for the organization. Name *string `jsonapi:"attr,name,omitempty"` // Optional: AssessmentsEnforced toggles whether health assessment enablement is enforced across all assessable workspaces (those with a minimum terraform version of 0.15.4 and not running in local execution mode) or if the decision to enabled health assessments is delegated to the workspace setting AssessmentsEnabled. AssessmentsEnforced *bool `jsonapi:"attr,assessments-enforced,omitempty"` // New admin email address. Email *string `jsonapi:"attr,email,omitempty"` // Session expiration (minutes). SessionRemember *int `jsonapi:"attr,session-remember,omitempty"` // Session timeout after inactivity (minutes). SessionTimeout *int `jsonapi:"attr,session-timeout,omitempty"` // Authentication policy. CollaboratorAuthPolicy *AuthPolicyType `jsonapi:"attr,collaborator-auth-policy,omitempty"` // Enable Cost Estimation CostEstimationEnabled *bool `jsonapi:"attr,cost-estimation-enabled,omitempty"` // The name of the "owners" team OwnersTeamSAMLRoleID *string `jsonapi:"attr,owners-team-saml-role-id,omitempty"` // SendPassingStatusesForUntriggeredSpeculativePlans toggles behavior of untriggered speculative plans to send status updates to version control systems like GitHub. SendPassingStatusesForUntriggeredSpeculativePlans *bool `jsonapi:"attr,send-passing-statuses-for-untriggered-speculative-plans,omitempty"` // Optional: If enabled, SendPassingStatusesForUntriggeredSpeculativePlans needs to be false. AggregatedCommitStatusEnabled *bool `jsonapi:"attr,aggregated-commit-status-enabled,omitempty"` // Optional: SpeculativePlanManagementEnabled toggles whether pending speculative plans from outdated commits will be cancelled if a newer commit is pushed to the same branch. SpeculativePlanManagementEnabled *bool `jsonapi:"attr,speculative-plan-management-enabled,omitempty"` // Optional: AllowForceDeleteWorkspaces toggles behavior of allowing workspace admins to delete workspaces with resources under management. AllowForceDeleteWorkspaces *bool `jsonapi:"attr,allow-force-delete-workspaces,omitempty"` // Optional: DefaultExecutionMode the default execution mode for workspaces DefaultExecutionMode *string `jsonapi:"attr,default-execution-mode,omitempty"` // Optional: DefaultAgentPoolId default agent pool for workspaces, requires DefaultExecutionMode to be set to `agent` DefaultAgentPool *AgentPool `jsonapi:"relation,default-agent-pool,omitempty"` // Optional: StacksEnabled toggles whether stacks are enabled for the organization. This setting // is considered BETA, SUBJECT TO CHANGE, and likely unavailable to most users. StacksEnabled *bool `jsonapi:"attr,stacks-enabled,omitempty"` }
OrganizationUpdateOptions represents the options for updating an organization.
type Organizations ¶
type Organizations interface { // List all the organizations visible to the current user. List(ctx context.Context, options *OrganizationListOptions) (*OrganizationList, error) // Create a new organization with the given options. Create(ctx context.Context, options OrganizationCreateOptions) (*Organization, error) // Read an organization by its name. Read(ctx context.Context, organization string) (*Organization, error) // Read an organization by its name with options ReadWithOptions(ctx context.Context, organization string, options OrganizationReadOptions) (*Organization, error) // Update attributes of an existing organization. Update(ctx context.Context, organization string, options OrganizationUpdateOptions) (*Organization, error) // Delete an organization by its name. Delete(ctx context.Context, organization string) error // ReadCapacity shows the current run capacity of an organization. ReadCapacity(ctx context.Context, organization string) (*Capacity, error) // ReadEntitlements shows the entitlements of an organization. ReadEntitlements(ctx context.Context, organization string) (*Entitlements, error) // ReadRunQueue shows the current run queue of an organization. ReadRunQueue(ctx context.Context, organization string, options ReadRunQueueOptions) (*RunQueue, error) // ReadDataRetentionPolicy reads an organization's data retention policy // **Note: This functionality is only available in Terraform Enterprise versions v202311-1 and v202312-1.** // // Deprecated: Use ReadDataRetentionPolicyChoice instead. ReadDataRetentionPolicy(ctx context.Context, organization string) (*DataRetentionPolicy, error) // ReadDataRetentionPolicyChoice reads an organization's data retention policy // **Note: This functionality is only available in Terraform Enterprise.** ReadDataRetentionPolicyChoice(ctx context.Context, organization string) (*DataRetentionPolicyChoice, error) // SetDataRetentionPolicy sets an organization's data retention policy // **Note: This functionality is only available in Terraform Enterprise versions v202311-1 and v202312-1.** // // Deprecated: Use SetDataRetentionPolicyDeleteOlder instead SetDataRetentionPolicy(ctx context.Context, organization string, options DataRetentionPolicySetOptions) (*DataRetentionPolicy, error) // SetDataRetentionPolicyDeleteOlder sets an organization's data retention policy to delete data older than a certain number of days // **Note: This functionality is only available in Terraform Enterprise.** SetDataRetentionPolicyDeleteOlder(ctx context.Context, organization string, options DataRetentionPolicyDeleteOlderSetOptions) (*DataRetentionPolicyDeleteOlder, error) // SetDataRetentionPolicyDontDelete sets an organization's data retention policy to explicitly not delete data // **Note: This functionality is only available in Terraform Enterprise.** SetDataRetentionPolicyDontDelete(ctx context.Context, organization string, options DataRetentionPolicyDontDeleteSetOptions) (*DataRetentionPolicyDontDelete, error) // DeleteDataRetentionPolicy deletes an organization's data retention policy // **Note: This functionality is only available in Terraform Enterprise.** DeleteDataRetentionPolicy(ctx context.Context, organization string) error }
Organizations describes all the organization related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/organizations
Example ¶
config := &Config{ Token: "insert-your-token-here", RetryServerErrors: true, } client, err := NewClient(config) if err != nil { log.Fatal(err) } // Create a context ctx := context.Background() // Create a new organization options := OrganizationCreateOptions{ Name: String("example"), Email: String("info@example.com"), } org, err := client.Organizations.Create(ctx, options) if err != nil { log.Fatal(err) } // Delete an organization err = client.Organizations.Delete(ctx, org.Name) if err != nil { log.Fatal(err) }
Output:
type Outcome ¶ added in v1.13.0
type Outcome struct { EnforcementLevel EnforcementLevel `jsonapi:"attr,enforcement_level"` Query string `jsonapi:"attr,query"` Status string `jsonapi:"attr,status"` PolicyName string `jsonapi:"attr,policy_name"` Description string `jsonapi:"attr,description"` }
Outcome represents the outcome of the individual policy
type Pagination ¶ added in v0.2.0
type Pagination struct { CurrentPage int `json:"current-page"` PreviousPage int `json:"prev-page"` NextPage int `json:"next-page"` TotalCount int `json:"total-count"` TotalPages int `json:"total-pages"` }
Pagination is used to return the pagination details of an API request including TotalCount.
type PaginationNextPrev ¶ added in v1.77.0
type PaginationNextPrev struct { CurrentPage int `json:"current-page"` PreviousPage int `json:"prev-page"` NextPage int `json:"next-page"` }
PaginationNextPrev is used to return the pagination details of an API request.
type Parent ¶ added in v1.69.0
type Parent struct { Organization *Organization Project *Project }
Parent represents the variable set's parent (currently only organizations and projects are supported). This relation is considered BETA, SUBJECT TO CHANGE, and likely unavailable to most users.
type Permissions ¶ added in v1.13.0
type Permissions struct { CanOverridePolicy *bool `jsonapi:"attr,can-override-policy"` CanOverrideTasks *bool `jsonapi:"attr,can-override-tasks"` CanOverride *bool `jsonapi:"attr,can-override"` }
Permissions represents the permission types for overridding a task stage
type Plan ¶ added in v0.1.1
type Plan struct { ID string `jsonapi:"primary,plans"` HasChanges bool `jsonapi:"attr,has-changes"` GeneratedConfiguration bool `jsonapi:"attr,generated-configuration"` LogReadURL string `jsonapi:"attr,log-read-url"` ResourceAdditions int `jsonapi:"attr,resource-additions"` ResourceChanges int `jsonapi:"attr,resource-changes"` ResourceDestructions int `jsonapi:"attr,resource-destructions"` ResourceImports int `jsonapi:"attr,resource-imports"` Status PlanStatus `jsonapi:"attr,status"` StatusTimestamps *PlanStatusTimestamps `jsonapi:"attr,status-timestamps"` // Relations Exports []*PlanExport `jsonapi:"relation,exports"` }
Plan represents a Terraform Enterprise plan.
type PlanChanges ¶ added in v1.60.0
type PlanChanges struct { Add int `jsonapi:"attr,add"` Total int `jsonapi:"attr,total"` Change int `jsonapi:"attr,change"` Import int `jsonapi:"attr,import"` Remove int `jsonapi:"attr,remove"` }
PlanChanges is the summary of the planned changes
type PlanExport ¶ added in v0.3.17
type PlanExport struct { ID string `jsonapi:"primary,plan-exports"` DataType PlanExportDataType `jsonapi:"attr,data-type"` Status PlanExportStatus `jsonapi:"attr,status"` StatusTimestamps *PlanExportStatusTimestamps `jsonapi:"attr,status-timestamps"` }
PlanExport represents an export of Terraform Enterprise plan data.
type PlanExportCreateOptions ¶ added in v0.3.17
type PlanExportCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,plan-exports"` // Required: The plan to export. Plan *Plan `jsonapi:"relation,plan"` // Required: The name of the policy set. DataType *PlanExportDataType `jsonapi:"attr,data-type"` }
PlanExportCreateOptions represents the options for exporting data from a plan.
type PlanExportDataType ¶ added in v0.3.17
type PlanExportDataType string
PlanExportDataType represents the type of data exported from a plan.
const (
PlanExportSentinelMockBundleV0 PlanExportDataType = "sentinel-mock-bundle-v0"
)
List all available plan export data types.
func PlanExportType ¶ added in v0.3.17
func PlanExportType(v PlanExportDataType) *PlanExportDataType
PlanExportType returns a pointer to the given plan export data type.
type PlanExportStatus ¶ added in v0.3.17
type PlanExportStatus string
PlanExportStatus represents a plan export state.
const ( PlanExportCanceled PlanExportStatus = "canceled" PlanExportErrored PlanExportStatus = "errored" PlanExportExpired PlanExportStatus = "expired" PlanExportFinished PlanExportStatus = "finished" PlanExportPending PlanExportStatus = "pending" PlanExportQueued PlanExportStatus = "queued" )
List all available plan export statuses.
type PlanExportStatusTimestamps ¶ added in v0.3.17
type PlanExportStatusTimestamps struct { CanceledAt time.Time `jsonapi:"attr,canceled-at,rfc3339"` ErroredAt time.Time `jsonapi:"attr,errored-at,rfc3339"` ExpiredAt time.Time `jsonapi:"attr,expired-at,rfc3339"` FinishedAt time.Time `jsonapi:"attr,finished-at,rfc3339"` QueuedAt time.Time `jsonapi:"attr,queued-at,rfc3339"` }
PlanExportStatusTimestamps holds the timestamps for plan export statuses.
type PlanExports ¶ added in v0.3.17
type PlanExports interface { // Export a plan by its ID with the given options. Create(ctx context.Context, options PlanExportCreateOptions) (*PlanExport, error) // Read a plan export by its ID. Read(ctx context.Context, planExportID string) (*PlanExport, error) // Delete a plan export by its ID. Delete(ctx context.Context, planExportID string) error // Download the data of an plan export. Download(ctx context.Context, planExportID string) ([]byte, error) }
PlanExports describes all the plan export related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/plan-exports
type PlanStatus ¶ added in v0.1.1
type PlanStatus string
PlanStatus represents a plan state.
const ( PlanCanceled PlanStatus = "canceled" PlanCreated PlanStatus = "created" PlanErrored PlanStatus = "errored" PlanFinished PlanStatus = "finished" PlanMFAWaiting PlanStatus = "mfa_waiting" PlanPending PlanStatus = "pending" PlanQueued PlanStatus = "queued" PlanRunning PlanStatus = "running" PlanUnreachable PlanStatus = "unreachable" )
List all available plan statuses.
type PlanStatusTimestamps ¶ added in v0.1.1
type PlanStatusTimestamps struct { CanceledAt time.Time `jsonapi:"attr,canceled-at,rfc3339"` ErroredAt time.Time `jsonapi:"attr,errored-at,rfc3339"` FinishedAt time.Time `jsonapi:"attr,finished-at,rfc3339"` ForceCanceledAt time.Time `jsonapi:"attr,force-canceled-at,rfc3339"` QueuedAt time.Time `jsonapi:"attr,queued-at,rfc3339"` StartedAt time.Time `jsonapi:"attr,started-at,rfc3339"` }
PlanStatusTimestamps holds the timestamps for individual plan statuses.
type Plans ¶ added in v0.1.1
type Plans interface { // Read a plan by its ID. Read(ctx context.Context, planID string) (*Plan, error) // Logs retrieves the logs of a plan. Logs(ctx context.Context, planID string) (io.Reader, error) // Retrieve the JSON execution plan ReadJSONOutput(ctx context.Context, planID string) ([]byte, error) }
Plans describes all the plan related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/plans
type Policies ¶
type Policies interface { // List all the policies for a given organization List(ctx context.Context, organization string, options *PolicyListOptions) (*PolicyList, error) // Create a policy and associate it with an organization. Create(ctx context.Context, organization string, options PolicyCreateOptions) (*Policy, error) // Read a policy by its ID. Read(ctx context.Context, policyID string) (*Policy, error) // Update an existing policy. Update(ctx context.Context, policyID string, options PolicyUpdateOptions) (*Policy, error) // Delete a policy by its ID. Delete(ctx context.Context, policyID string) error // Upload the policy content of the policy. Upload(ctx context.Context, policyID string, content []byte) error // Download the policy content of the policy. Download(ctx context.Context, policyID string) ([]byte, error) }
Policies describes all the policy related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policies
type Policy ¶
type Policy struct { ID string `jsonapi:"primary,policies"` Name string `jsonapi:"attr,name"` Kind PolicyKind `jsonapi:"attr,kind"` Query *string `jsonapi:"attr,query"` Description string `jsonapi:"attr,description"` // Deprecated: Use EnforcementLevel instead. Enforce []*Enforcement `jsonapi:"attr,enforce"` EnforcementLevel EnforcementLevel `jsonapi:"attr,enforcement-level"` PolicySetCount int `jsonapi:"attr,policy-set-count"` UpdatedAt time.Time `jsonapi:"attr,updated-at,iso8601"` // Relations Organization *Organization `jsonapi:"relation,organization"` }
Policy represents a Terraform Enterprise policy.
type PolicyActions ¶
type PolicyActions struct {
IsOverridable bool `jsonapi:"attr,is-overridable"`
}
PolicyActions represents the policy check actions.
type PolicyAttachable ¶ added in v1.13.0
The task stage the policy evaluation belongs to
type PolicyCheck ¶
type PolicyCheck struct { ID string `jsonapi:"primary,policy-checks"` Actions *PolicyActions `jsonapi:"attr,actions"` Permissions *PolicyPermissions `jsonapi:"attr,permissions"` Result *PolicyResult `jsonapi:"attr,result"` Scope PolicyScope `jsonapi:"attr,scope"` Status PolicyStatus `jsonapi:"attr,status"` StatusTimestamps *PolicyStatusTimestamps `jsonapi:"attr,status-timestamps"` Run *Run `jsonapi:"relation,run"` }
PolicyCheck represents a Terraform Enterprise policy check..
type PolicyCheckIncludeOpt ¶ added in v1.0.0
type PolicyCheckIncludeOpt string
A list of relations to include https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-checks#available-related-resources
const ( PolicyCheckRunWorkspace PolicyCheckIncludeOpt = "run.workspace" PolicyCheckRun PolicyCheckIncludeOpt = "run" )
type PolicyCheckList ¶ added in v0.2.0
type PolicyCheckList struct { *Pagination Items []*PolicyCheck }
PolicyCheckList represents a list of policy checks.
type PolicyCheckListOptions ¶
type PolicyCheckListOptions struct { ListOptions // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-checks#available-related-resources Include []PolicyCheckIncludeOpt `url:"include,omitempty"` }
PolicyCheckListOptions represents the options for listing policy checks.
type PolicyChecks ¶
type PolicyChecks interface { // List all policy checks of the given run. List(ctx context.Context, runID string, options *PolicyCheckListOptions) (*PolicyCheckList, error) // Read a policy check by its ID. Read(ctx context.Context, policyCheckID string) (*PolicyCheck, error) // Override a soft-mandatory or warning policy. Override(ctx context.Context, policyCheckID string) (*PolicyCheck, error) // Logs retrieves the logs of a policy check. Logs(ctx context.Context, policyCheckID string) (io.Reader, error) }
PolicyChecks describes all the policy check related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-checks
type PolicyCreateOptions ¶
type PolicyCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,policies"` // Required: The name of the policy. Name *string `jsonapi:"attr,name"` // Optional: The underlying technology that the policy supports. Defaults to Sentinel if not specified for PolicyCreate. Kind PolicyKind `jsonapi:"attr,kind,omitempty"` // Optional: The query passed to policy evaluation to determine the result of the policy. Only valid for OPA. Query *string `jsonapi:"attr,query,omitempty"` // Optional: A description of the policy's purpose. Description *string `jsonapi:"attr,description,omitempty"` // The enforcements of the policy. // // Deprecated: Use EnforcementLevel instead. Enforce []*EnforcementOptions `jsonapi:"attr,enforce,omitempty"` // Required: The enforcement level of the policy. // Either EnforcementLevel or Enforce must be set. EnforcementLevel *EnforcementLevel `jsonapi:"attr,enforcement-level,omitempty"` }
PolicyCreateOptions represents the options for creating a new policy.
type PolicyEvaluation ¶ added in v1.13.0
type PolicyEvaluation struct { ID string `jsonapi:"primary,policy-evaluations"` Status PolicyEvaluationStatus `jsonapi:"attr,status"` PolicyKind PolicyKind `jsonapi:"attr,policy-kind"` StatusTimestamps PolicyEvaluationStatusTimestamps `jsonapi:"attr,status-timestamps"` ResultCount *PolicyResultCount `jsonapi:"attr,result-count"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` UpdatedAt time.Time `jsonapi:"attr,updated-at,iso8601"` // The task stage this evaluation belongs to TaskStage *PolicyAttachable `jsonapi:"relation,policy-attachable"` }
PolicyEvaluation represents the policy evaluations that are part of the task stage.
type PolicyEvaluationList ¶ added in v1.13.0
type PolicyEvaluationList struct { *Pagination Items []*PolicyEvaluation }
PolicyEvaluationList represents a list of policy evaluation.
type PolicyEvaluationListOptions ¶ added in v1.13.0
type PolicyEvaluationListOptions struct {
ListOptions
}
PolicyEvaluationListOptions represents the options for listing policy evaluations.
type PolicyEvaluationStatus ¶ added in v1.13.0
type PolicyEvaluationStatus string
PolicyEvaluationStatus is an enum that represents all possible statuses for a policy evaluation
const ( PolicyEvaluationPassed PolicyEvaluationStatus = "passed" PolicyEvaluationFailed PolicyEvaluationStatus = "failed" PolicyEvaluationPending PolicyEvaluationStatus = "pending" PolicyEvaluationRunning PolicyEvaluationStatus = "running" PolicyEvaluationUnreachable PolicyEvaluationStatus = "unreachable" PolicyEvaluationOverridden PolicyEvaluationStatus = "overridden" PolicyEvaluationCanceled PolicyEvaluationStatus = "canceled" PolicyEvaluationErrored PolicyEvaluationStatus = "errored" )
type PolicyEvaluationStatusTimestamps ¶ added in v1.13.0
type PolicyEvaluationStatusTimestamps struct { ErroredAt time.Time `jsonapi:"attr,errored-at,rfc3339"` RunningAt time.Time `jsonapi:"attr,running-at,rfc3339"` CanceledAt time.Time `jsonapi:"attr,canceled-at,rfc3339"` FailedAt time.Time `jsonapi:"attr,failed-at,rfc3339"` PassedAt time.Time `jsonapi:"attr,passed-at,rfc3339"` }
PolicyEvaluationStatusTimestamps represents the set of timestamps recorded for a policy evaluation
type PolicyEvaluations ¶ added in v1.13.0
type PolicyEvaluations interface { // **Note: This method is still in BETA and subject to change.** // List all policy evaluations in the task stage. Only available for OPA policies. List(ctx context.Context, taskStageID string, options *PolicyEvaluationListOptions) (*PolicyEvaluationList, error) }
PolicyEvalutations describes all the policy evaluation related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-checks
type PolicyKind ¶ added in v1.12.0
type PolicyKind string
PolicyKind is an indicator of the underlying technology that the policy or policy set supports. There are two kinds documented in the enum.
const ( OPA PolicyKind = "opa" Sentinel PolicyKind = "sentinel" )
type PolicyList ¶ added in v0.2.0
type PolicyList struct { *Pagination Items []*Policy }
PolicyList represents a list of policies..
type PolicyListOptions ¶
type PolicyListOptions struct { ListOptions // Optional: A search string (partial policy name) used to filter the results. Search string `url:"search[name],omitempty"` // Optional: A kind string used to filter the results by the policy kind. Kind PolicyKind `url:"filter[kind],omitempty"` }
PolicyListOptions represents the options for listing policies.
type PolicyPermissions ¶
type PolicyPermissions struct {
CanOverride bool `jsonapi:"attr,can-override"`
}
PolicyPermissions represents the policy check permissions.
type PolicyResult ¶
type PolicyResult struct { AdvisoryFailed int `jsonapi:"attr,advisory-failed"` Duration int `jsonapi:"attr,duration"` HardFailed int `jsonapi:"attr,hard-failed"` Passed int `jsonapi:"attr,passed"` Result bool `jsonapi:"attr,result"` SoftFailed int `jsonapi:"attr,soft-failed"` TotalFailed int `jsonapi:"attr,total-failed"` Sentinel any `jsonapi:"attr,sentinel"` }
PolicyResult represents the complete policy check result,
type PolicyResultCount ¶ added in v1.13.0
type PolicyResultCount struct { AdvisoryFailed int `jsonapi:"attr,advisory-failed"` MandatoryFailed int `jsonapi:"attr,mandatory-failed"` Passed int `jsonapi:"attr,passed"` Errored int `jsonapi:"attr,errored"` }
PolicyResultCount represents the count of the policy results
type PolicyScope ¶
type PolicyScope string
PolicyScope represents a policy scope.
const ( PolicyScopeOrganization PolicyScope = "organization" PolicyScopeWorkspace PolicyScope = "workspace" )
List all available policy scopes.
type PolicySet ¶ added in v0.2.7
type PolicySet struct { ID string `jsonapi:"primary,policy-sets"` Name string `jsonapi:"attr,name"` Description string `jsonapi:"attr,description"` Kind PolicyKind `jsonapi:"attr,kind"` Overridable *bool `jsonapi:"attr,overridable"` Global bool `jsonapi:"attr,global"` PoliciesPath string `jsonapi:"attr,policies-path"` // **Note: This field is still in BETA and subject to change.** PolicyCount int `jsonapi:"attr,policy-count"` VCSRepo *VCSRepo `jsonapi:"attr,vcs-repo"` WorkspaceCount int `jsonapi:"attr,workspace-count"` ProjectCount int `jsonapi:"attr,project-count"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` UpdatedAt time.Time `jsonapi:"attr,updated-at,iso8601"` AgentEnabled bool `jsonapi:"attr,agent-enabled"` PolicyToolVersion string `jsonapi:"attr,policy-tool-version"` // Relations // The organization to which the policy set belongs to. Organization *Organization `jsonapi:"relation,organization"` // The workspaces to which the policy set applies. Workspaces []*Workspace `jsonapi:"relation,workspaces"` // Individually managed policies which are associated with the policy set. Policies []*Policy `jsonapi:"relation,policies"` // The most recently created policy set version, regardless of status. // Note that this relationship may include an errored and unusable version, // and is intended to allow checking for errors. NewestVersion *PolicySetVersion `jsonapi:"relation,newest-version"` // The most recent successful policy set version. CurrentVersion *PolicySetVersion `jsonapi:"relation,current-version"` // The workspace exclusions to which the policy set applies. WorkspaceExclusions []*Workspace `jsonapi:"relation,workspace-exclusions"` // The projects to which the policy set applies. Projects []*Project `jsonapi:"relation,projects"` }
PolicySet represents a Terraform Enterprise policy set.
type PolicySetAddPoliciesOptions ¶ added in v0.2.7
type PolicySetAddPoliciesOptions struct { // The policies to add to the policy set. Policies []*Policy }
PolicySetAddPoliciesOptions represents the options for adding policies to a policy set.
type PolicySetAddProjectsOptions ¶ added in v1.31.0
type PolicySetAddProjectsOptions struct { // The projects to add to the policy set. Projects []*Project }
PolicySetAddProjectsOptions represents the options for adding projects to a policy set.
type PolicySetAddWorkspaceExclusionsOptions ¶ added in v1.33.0
type PolicySetAddWorkspaceExclusionsOptions struct { // The workspaces to add to the policy set exclusion list. WorkspaceExclusions []*Workspace }
PolicySetAddWorkspaceExclusionsOptions represents the options for adding workspace exclusions to a policy set.
type PolicySetAddWorkspacesOptions ¶ added in v0.3.0
type PolicySetAddWorkspacesOptions struct { // The workspaces to add to the policy set. Workspaces []*Workspace }
PolicySetAddWorkspacesOptions represents the options for adding workspaces to a policy set.
type PolicySetCreateOptions ¶ added in v0.2.7
type PolicySetCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,policy-sets"` // Required: The name of the policy set. Name *string `jsonapi:"attr,name"` // Optional: The description of the policy set. Description *string `jsonapi:"attr,description,omitempty"` // Optional: Whether or not the policy set is global. Global *bool `jsonapi:"attr,global,omitempty"` // Optional: The underlying technology that the policy set supports Kind PolicyKind `jsonapi:"attr,kind,omitempty"` // Optional: Whether or not users can override this policy when it fails during a run. Only valid for policy evaluations. // https://developer.hashicorp.com/terraform/cloud-docs/policy-enforcement/manage-policy-sets#policy-checks-versus-policy-evaluations Overridable *bool `jsonapi:"attr,overridable,omitempty"` // Optional: Whether or not the policy is run as an evaluation inside the agent. AgentEnabled *bool `jsonapi:"attr,agent-enabled,omitempty"` // Optional: The policy tool version to run the evaluation against. PolicyToolVersion *string `jsonapi:"attr,policy-tool-version,omitempty"` // Optional: The sub-path within the attached VCS repository to ingress. All // files and directories outside of this sub-path will be ignored. // This option may only be specified when a VCS repo is present. PoliciesPath *string `jsonapi:"attr,policies-path,omitempty"` // Optional: The initial members of the policy set. Policies []*Policy `jsonapi:"relation,policies,omitempty"` // Optional: VCS repository information. When present, the policies and // configuration will be sourced from the specified VCS repository // instead of being defined within the policy set itself. Note that // this option is mutually exclusive with the Policies option and // both cannot be used at the same time. VCSRepo *VCSRepoOptions `jsonapi:"attr,vcs-repo,omitempty"` // Optional: The initial list of workspaces for which the policy set should be enforced. Workspaces []*Workspace `jsonapi:"relation,workspaces,omitempty"` // Optional: The initial list of workspace exclusions for which the policy set should be enforced. WorkspaceExclusions []*Workspace `jsonapi:"relation,workspace-exclusions,omitempty"` // Optional: The initial list of projects for which the policy set should be enforced. Projects []*Project `jsonapi:"relation,projects,omitempty"` }
PolicySetCreateOptions represents the options for creating a new policy set.
type PolicySetIncludeOpt ¶ added in v1.0.0
type PolicySetIncludeOpt string
PolicySetIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-sets#available-related-resources
const ( PolicySetPolicies PolicySetIncludeOpt = "policies" PolicySetWorkspaces PolicySetIncludeOpt = "workspaces" PolicySetCurrentVersion PolicySetIncludeOpt = "current_version" PolicySetNewestVersion PolicySetIncludeOpt = "newest_version" PolicySetProjects PolicySetIncludeOpt = "projects" PolicySetWorkspaceExclusions PolicySetIncludeOpt = "workspace_exclusions" )
type PolicySetList ¶ added in v0.2.7
type PolicySetList struct { *Pagination Items []*PolicySet }
PolicySetList represents a list of policy sets.
type PolicySetListOptions ¶ added in v0.2.7
type PolicySetListOptions struct { ListOptions // Optional: A search string (partial policy set name) used to filter the results. Search string `url:"search[name],omitempty"` // Optional: A kind string used to filter the results by the policy set kind. Kind PolicyKind `url:"filter[kind],omitempty"` // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-sets#available-related-resources Include []PolicySetIncludeOpt `url:"include,omitempty"` }
PolicySetListOptions represents the options for listing policy sets.
type PolicySetOutcome ¶ added in v1.13.0
type PolicySetOutcome struct { ID string `jsonapi:"primary,policy-set-outcomes"` Outcomes []Outcome `jsonapi:"attr,outcomes"` Error string `jsonapi:"attr,error"` Overridable *bool `jsonapi:"attr,overridable"` PolicySetName string `jsonapi:"attr,policy-set-name"` PolicySetDescription string `jsonapi:"attr,policy-set-description"` ResultCount PolicyResultCount `jsonapi:"attr,result_count"` // The policy evaluation that this outcome belongs to PolicyEvaluation *PolicyEvaluation `jsonapi:"relation,policy-evaluation"` }
PolicySetOutcome represents outcome of the policy set that are part of the policy evaluation
type PolicySetOutcomeList ¶ added in v1.13.0
type PolicySetOutcomeList struct { *Pagination Items []*PolicySetOutcome }
PolicySetOutcomeList represents a list of policy set outcomes.
type PolicySetOutcomeListFilter ¶ added in v1.13.0
type PolicySetOutcomeListFilter struct { // Optional: A status string used to filter the results. // Must be either "passed", "failed", or "errored". Status string // Optional: The enforcement level used to filter the results. // Must be either "advisory" or "mandatory". EnforcementLevel string }
PolicySetOutcomeListFilter represents the filters that are supported while listing a policy set outcome
type PolicySetOutcomeListOptions ¶ added in v1.13.0
type PolicySetOutcomeListOptions struct { *ListOptions // Optional: A filter map used to filter the results of the policy outcome. // You can use filter[n] to combine combinations of statuses and enforcement levels filters Filter map[string]PolicySetOutcomeListFilter }
PolicySetOutcomeListOptions represents the options for listing policy set outcomes.
type PolicySetOutcomes ¶ added in v1.13.0
type PolicySetOutcomes interface { // **Note: This method is still in BETA and subject to change.** // List all policy set outcomes in the policy evaluation. Only available for OPA policies. List(ctx context.Context, policyEvaluationID string, options *PolicySetOutcomeListOptions) (*PolicySetOutcomeList, error) // **Note: This method is still in BETA and subject to change.** // Read a policy set outcome by its ID. Only available for OPA policies. Read(ctx context.Context, policySetOutcomeID string) (*PolicySetOutcome, error) }
PolicySetOutcomes describes all the policy set outcome related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-checks
type PolicySetParameter ¶ added in v0.4.0
type PolicySetParameter struct { ID string `jsonapi:"primary,vars"` Key string `jsonapi:"attr,key"` Value string `jsonapi:"attr,value"` Category CategoryType `jsonapi:"attr,category"` Sensitive bool `jsonapi:"attr,sensitive"` // Relations PolicySet *PolicySet `jsonapi:"relation,configurable"` }
PolicySetParameter represents a Policy Set parameter
type PolicySetParameterCreateOptions ¶ added in v0.4.0
type PolicySetParameterCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,vars"` // Required: The name of the parameter. Key *string `jsonapi:"attr,key"` // Optional: The value of the parameter. Value *string `jsonapi:"attr,value,omitempty"` // Required: The Category of the parameter, should always be "policy-set" Category *CategoryType `jsonapi:"attr,category"` // Optional: Whether the value is sensitive. Sensitive *bool `jsonapi:"attr,sensitive,omitempty"` }
PolicySetParameterCreateOptions represents the options for creating a new parameter.
type PolicySetParameterList ¶ added in v0.4.0
type PolicySetParameterList struct { *Pagination Items []*PolicySetParameter }
PolicySetParameterList represents a list of parameters.
type PolicySetParameterListOptions ¶ added in v0.4.0
type PolicySetParameterListOptions struct {
ListOptions
}
PolicySetParameterListOptions represents the options for listing parameters.
type PolicySetParameterUpdateOptions ¶ added in v0.4.0
type PolicySetParameterUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,vars"` // Optional: The name of the parameter. Key *string `jsonapi:"attr,key,omitempty"` // Optional: The value of the parameter. Value *string `jsonapi:"attr,value,omitempty"` // Optional: Whether the value is sensitive. Sensitive *bool `jsonapi:"attr,sensitive,omitempty"` }
PolicySetParameterUpdateOptions represents the options for updating a parameter.
type PolicySetParameters ¶ added in v0.4.0
type PolicySetParameters interface { // List all the parameters associated with the given policy-set. List(ctx context.Context, policySetID string, options *PolicySetParameterListOptions) (*PolicySetParameterList, error) // Create is used to create a new parameter. Create(ctx context.Context, policySetID string, options PolicySetParameterCreateOptions) (*PolicySetParameter, error) // Read a parameter by its ID. Read(ctx context.Context, policySetID string, parameterID string) (*PolicySetParameter, error) // Update values of an existing parameter. Update(ctx context.Context, policySetID string, parameterID string, options PolicySetParameterUpdateOptions) (*PolicySetParameter, error) // Delete a parameter by its ID. Delete(ctx context.Context, policySetID string, parameterID string) error }
PolicySetParameters describes all the parameter related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-set-params
type PolicySetReadOptions ¶ added in v0.17.0
type PolicySetReadOptions struct { // Optional: A list of relations to include. See available resources // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-sets#available-related-resources Include []PolicySetIncludeOpt `url:"include,omitempty"` }
PolicySetReadOptions are read options. For a full list of relations, please see: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-sets#relationships
type PolicySetRemovePoliciesOptions ¶ added in v0.2.7
type PolicySetRemovePoliciesOptions struct { // The policies to remove from the policy set. Policies []*Policy }
PolicySetRemovePoliciesOptions represents the options for removing policies from a policy set.
type PolicySetRemoveProjectsOptions ¶ added in v1.31.0
type PolicySetRemoveProjectsOptions struct { // The projects to remove from the policy set. Projects []*Project }
PolicySetRemoveProjectsOptions represents the options for removing projects from a policy set.
type PolicySetRemoveWorkspaceExclusionsOptions ¶ added in v1.33.0
type PolicySetRemoveWorkspaceExclusionsOptions struct { // The workspaces to remove from the policy set exclusion list. WorkspaceExclusions []*Workspace }
PolicySetRemoveWorkspaceExclusionsOptions represents the options for removing workspace exclusions from a policy set.
type PolicySetRemoveWorkspacesOptions ¶ added in v0.3.0
type PolicySetRemoveWorkspacesOptions struct { // The workspaces to remove from the policy set. Workspaces []*Workspace }
PolicySetRemoveWorkspacesOptions represents the options for removing workspaces from a policy set.
type PolicySetUpdateOptions ¶ added in v0.2.7
type PolicySetUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,policy-sets"` // Optional: The name of the policy set. Name *string `jsonapi:"attr,name,omitempty"` // Optional: The description of the policy set. Description *string `jsonapi:"attr,description,omitempty"` // Optional: Whether or not the policy set is global. Global *bool `jsonapi:"attr,global,omitempty"` // Optional: Whether or not users can override this policy when it fails during a run. Only valid for policy evaluations. // https://developer.hashicorp.com/terraform/cloud-docs/policy-enforcement/manage-policy-sets#policy-checks-versus-policy-evaluations Overridable *bool `jsonapi:"attr,overridable,omitempty"` // Optional: Whether or not the policy is run as an evaluation inside the agent. AgentEnabled *bool `jsonapi:"attr,agent-enabled,omitempty"` // Optional: The policy tool version to run the evaluation against. PolicyToolVersion *string `jsonapi:"attr,policy-tool-version,omitempty"` // Optional: The sub-path within the attached VCS repository to ingress. All // files and directories outside of this sub-path will be ignored. // This option may only be specified when a VCS repo is present. PoliciesPath *string `jsonapi:"attr,policies-path,omitempty"` // Optional: VCS repository information. When present, the policies and // configuration will be sourced from the specified VCS repository // instead of being defined within the policy set itself. Note that // specifying this option may only be used on policy sets with no // directly-attached policies (*PolicySet.Policies). Specifying this // option when policies are already present will result in an error. VCSRepo *VCSRepoOptions `jsonapi:"attr,vcs-repo,omitempty"` }
PolicySetUpdateOptions represents the options for updating a policy set.
type PolicySetVersion ¶ added in v0.16.0
type PolicySetVersion struct { ID string `jsonapi:"primary,policy-set-versions"` Source PolicySetVersionSource `jsonapi:"attr,source"` Status PolicySetVersionStatus `jsonapi:"attr,status"` StatusTimestamps PolicySetVersionStatusTimestamps `jsonapi:"attr,status-timestamps"` Error string `jsonapi:"attr,error"` ErrorMessage string `jsonapi:"attr,error-message"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` UpdatedAt time.Time `jsonapi:"attr,updated-at,iso8601"` // Relations PolicySet *PolicySet `jsonapi:"relation,policy-set"` // Links Links map[string]interface{} `jsonapi:"links,omitempty"` }
PolicySetVersion represents a Terraform Enterprise Policy Set Version
type PolicySetVersionSource ¶ added in v0.16.0
type PolicySetVersionSource string
PolicySetVersionSource represents a source type of a policy set version.
const ( PolicySetVersionSourceAPI PolicySetVersionSource = "tfe-api" PolicySetVersionSourceADO PolicySetVersionSource = "ado" PolicySetVersionSourceBitBucket PolicySetVersionSource = "bitbucket" PolicySetVersionSourceGitHub PolicySetVersionSource = "github" PolicySetVersionSourceGitLab PolicySetVersionSource = "gitlab" )
List all available sources for a Policy Set Version.
type PolicySetVersionStatus ¶ added in v0.16.0
type PolicySetVersionStatus string
PolicySetVersionStatus represents a policy set version status.
const ( PolicySetVersionErrored PolicySetVersionStatus = "errored" PolicySetVersionIngressing PolicySetVersionStatus = "ingressing" PolicySetVersionPending PolicySetVersionStatus = "pending" PolicySetVersionReady PolicySetVersionStatus = "ready" )
List all available policy set version statuses.
type PolicySetVersionStatusTimestamps ¶ added in v0.16.0
type PolicySetVersionStatusTimestamps struct { PendingAt time.Time `jsonapi:"attr,pending-at,rfc3339"` IngressingAt time.Time `jsonapi:"attr,ingressing-at,rfc3339"` ReadyAt time.Time `jsonapi:"attr,ready-at,rfc3339"` ErroredAt time.Time `jsonapi:"attr,errored-at,rfc3339"` }
PolicySetVersionStatusTimestamps holds the timestamps for individual policy set version statuses.
type PolicySetVersions ¶ added in v0.16.0
type PolicySetVersions interface { // Create is used to create a new Policy Set Version. Create(ctx context.Context, policySetID string) (*PolicySetVersion, error) // Read is used to read a Policy Set Version by its ID. Read(ctx context.Context, policySetVersionID string) (*PolicySetVersion, error) // Upload uploads policy files. It takes a Policy Set Version and a path // to the set of sentinel files, which will be packaged by hashicorp/go-slug // before being uploaded. Upload(ctx context.Context, psv PolicySetVersion, path string) error }
PolicySetVersions describes all the Policy Set Version related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-sets#create-a-policy-set-version
type PolicySets ¶ added in v0.2.7
type PolicySets interface { // List all the policy sets for a given organization. List(ctx context.Context, organization string, options *PolicySetListOptions) (*PolicySetList, error) // Create a policy set and associate it with an organization. Create(ctx context.Context, organization string, options PolicySetCreateOptions) (*PolicySet, error) // Read a policy set by its ID. Read(ctx context.Context, policySetID string) (*PolicySet, error) // ReadWithOptions reads a policy set by its ID using the options supplied. ReadWithOptions(ctx context.Context, policySetID string, options *PolicySetReadOptions) (*PolicySet, error) // Update an existing policy set. Update(ctx context.Context, policySetID string, options PolicySetUpdateOptions) (*PolicySet, error) // Add policies to a policy set. This function can only be used when // there is no VCS repository associated with the policy set. AddPolicies(ctx context.Context, policySetID string, options PolicySetAddPoliciesOptions) error // Remove policies from a policy set. This function can only be used // when there is no VCS repository associated with the policy set. RemovePolicies(ctx context.Context, policySetID string, options PolicySetRemovePoliciesOptions) error // Add workspaces to a policy set. AddWorkspaces(ctx context.Context, policySetID string, options PolicySetAddWorkspacesOptions) error // Remove workspaces from a policy set. RemoveWorkspaces(ctx context.Context, policySetID string, options PolicySetRemoveWorkspacesOptions) error // Add workspace exclusions to a policy set. AddWorkspaceExclusions(ctx context.Context, policySetID string, options PolicySetAddWorkspaceExclusionsOptions) error // Remove workspace exclusions from a policy set. RemoveWorkspaceExclusions(ctx context.Context, policySetID string, options PolicySetRemoveWorkspaceExclusionsOptions) error // Add projects to a policy set. AddProjects(ctx context.Context, policySetID string, options PolicySetAddProjectsOptions) error // Remove projects from a policy set. RemoveProjects(ctx context.Context, policySetID string, options PolicySetRemoveProjectsOptions) error // Delete a policy set by its ID. Delete(ctx context.Context, policyID string) error }
PolicySets describes all the policy set related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/policy-sets
type PolicyStatus ¶
type PolicyStatus string
PolicyStatus represents a policy check state.
const ( PolicyCanceled PolicyStatus = "canceled" PolicyErrored PolicyStatus = "errored" PolicyHardFailed PolicyStatus = "hard_failed" PolicyOverridden PolicyStatus = "overridden" PolicyPasses PolicyStatus = "passed" PolicyPending PolicyStatus = "pending" PolicyQueued PolicyStatus = "queued" PolicySoftFailed PolicyStatus = "soft_failed" PolicyUnreachable PolicyStatus = "unreachable" )
List all available policy check statuses.
type PolicyStatusTimestamps ¶
type PolicyStatusTimestamps struct { ErroredAt time.Time `jsonapi:"attr,errored-at,rfc3339"` HardFailedAt time.Time `jsonapi:"attr,hard-failed-at,rfc3339"` PassedAt time.Time `jsonapi:"attr,passed-at,rfc3339"` QueuedAt time.Time `jsonapi:"attr,queued-at,rfc3339"` SoftFailedAt time.Time `jsonapi:"attr,soft-failed-at,rfc3339"` }
PolicyStatusTimestamps holds the timestamps for individual policy check statuses.
type PolicyUpdateOptions ¶
type PolicyUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,policies"` // Optional: A description of the policy's purpose. Description *string `jsonapi:"attr,description,omitempty"` // Optional: The query passed to policy evaluation to determine the result of the policy. Only valid for OPA. Query *string `jsonapi:"attr,query,omitempty"` // Optional: The enforcements of the policy. // // Deprecated: Use EnforcementLevel instead. Enforce []*EnforcementOptions `jsonapi:"attr,enforce,omitempty"` // Optional: The enforcement level of the policy. EnforcementLevel *EnforcementLevel `jsonapi:"attr,enforcement-level,omitempty"` }
PolicyUpdateOptions represents the options for updating a policy.
type Project ¶ added in v1.15.0
type Project struct { ID string `jsonapi:"primary,projects"` IsUnified bool `jsonapi:"attr,is-unified"` Name string `jsonapi:"attr,name"` Description string `jsonapi:"attr,description"` AutoDestroyActivityDuration jsonapi.NullableAttr[string] `jsonapi:"attr,auto-destroy-activity-duration,omitempty"` // Relations Organization *Organization `jsonapi:"relation,organization"` EffectiveTagBindings []*EffectiveTagBinding `jsonapi:"relation,effective-tag-bindings"` }
Project represents a Terraform Enterprise project
type ProjectAddTagBindingsOptions ¶ added in v1.70.0
type ProjectAddTagBindingsOptions struct {
TagBindings []*TagBinding
}
ProjectAddTagBindingsOptions represents the options for adding tag bindings to a project.
type ProjectCreateOptions ¶ added in v1.15.0
type ProjectCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,projects"` // Required: A name to identify the project. Name string `jsonapi:"attr,name"` // Optional: A description for the project. Description *string `jsonapi:"attr,description,omitempty"` // Associated TagBindings of the project. TagBindings []*TagBinding `jsonapi:"relation,tag-bindings,omitempty"` // Optional: For all workspaces in the project, the period of time to wait // after workspace activity to trigger a destroy run. The format should roughly // match a Go duration string limited to days and hours, e.g. "24h" or "1d". AutoDestroyActivityDuration jsonapi.NullableAttr[string] `jsonapi:"attr,auto-destroy-activity-duration,omitempty"` }
ProjectCreateOptions represents the options for creating a project
type ProjectIncludeOpt ¶ added in v1.75.0
type ProjectIncludeOpt string
const (
ProjectEffectiveTagBindings ProjectIncludeOpt = "effective_tag_bindings"
)
type ProjectList ¶ added in v1.15.0
type ProjectList struct { *Pagination Items []*Project }
ProjectList represents a list of projects
type ProjectListOptions ¶ added in v1.15.0
type ProjectListOptions struct { ListOptions // Optional: String (complete project name) used to filter the results. // If multiple, comma separated values are specified, projects matching // any of the names are returned. Name string `url:"filter[names],omitempty"` // Optional: A query string to search projects by names. Query string `url:"q,omitempty"` // Optional: A filter string to list projects filtered by key/value tags. // These are not annotated and therefore not encoded by go-querystring TagBindings []*TagBinding // Optional: A list of relations to include Include []ProjectIncludeOpt `url:"include,omitempty"` }
ProjectListOptions represents the options for listing projects
type ProjectReadOptions ¶ added in v1.78.0
type ProjectReadOptions struct { // Optional: A list of relations to include Include []ProjectIncludeOpt `url:"include,omitempty"` }
type ProjectSettingsPermissionType ¶ added in v1.32.0
type ProjectSettingsPermissionType string
ProjectSettingsPermissionType represents the permissiontype to a project's settings
const ( ProjectSettingsPermissionRead ProjectSettingsPermissionType = "read" ProjectSettingsPermissionUpdate ProjectSettingsPermissionType = "update" ProjectSettingsPermissionDelete ProjectSettingsPermissionType = "delete" )
func ProjectSettingsPermission ¶ added in v1.32.0
func ProjectSettingsPermission(v ProjectSettingsPermissionType) *ProjectSettingsPermissionType
ProjectSettingsPermission returns a pointer to the given team access project type.
type ProjectTeamsPermissionType ¶ added in v1.32.0
type ProjectTeamsPermissionType string
ProjectTeamsPermissionType represents the permissiontype to a project's teams
const ( ProjectTeamsPermissionNone ProjectTeamsPermissionType = "none" ProjectTeamsPermissionRead ProjectTeamsPermissionType = "read" ProjectTeamsPermissionManage ProjectTeamsPermissionType = "manage" )
func ProjectTeamsPermission ¶ added in v1.32.0
func ProjectTeamsPermission(v ProjectTeamsPermissionType) *ProjectTeamsPermissionType
ProjectTeamsPermission returns a pointer to the given team access project type.
type ProjectUpdateOptions ¶ added in v1.15.0
type ProjectUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,projects"` // Optional: A name to identify the project Name *string `jsonapi:"attr,name,omitempty"` // Optional: A description for the project. Description *string `jsonapi:"attr,description,omitempty"` // Associated TagBindings of the project. Note that this will replace // all existing tag bindings. TagBindings []*TagBinding `jsonapi:"relation,tag-bindings,omitempty"` // Optional: For all workspaces in the project, the period of time to wait // after workspace activity to trigger a destroy run. The format should roughly // match a Go duration string limited to days and hours, e.g. "24h" or "1d". AutoDestroyActivityDuration jsonapi.NullableAttr[string] `jsonapi:"attr,auto-destroy-activity-duration,omitempty"` }
ProjectUpdateOptions represents the options for updating a project
type ProjectVariableSetsPermissionType ¶ added in v1.74.0
type ProjectVariableSetsPermissionType string
ProjectVariableSetsPermissionType represents the permission type to a project's variable sets
const ( ProjectVariableSetsPermissionNone ProjectVariableSetsPermissionType = "none" ProjectVariableSetsPermissionRead ProjectVariableSetsPermissionType = "read" ProjectVariableSetsPermissionWrite ProjectVariableSetsPermissionType = "write" )
func ProjectVariableSetsPermission ¶ added in v1.74.0
func ProjectVariableSetsPermission(v ProjectVariableSetsPermissionType) *ProjectVariableSetsPermissionType
ProjectVariableSetsPermission returns a pointer to the given team access project type.
type Projects ¶ added in v1.15.0
type Projects interface { // List all projects in the given organization List(ctx context.Context, organization string, options *ProjectListOptions) (*ProjectList, error) // Create a new project. Create(ctx context.Context, organization string, options ProjectCreateOptions) (*Project, error) // Read a project by its ID. Read(ctx context.Context, projectID string) (*Project, error) // ReadWithOptions a project by its ID. ReadWithOptions(ctx context.Context, projectID string, options ProjectReadOptions) (*Project, error) // Update a project. Update(ctx context.Context, projectID string, options ProjectUpdateOptions) (*Project, error) // Delete a project. Delete(ctx context.Context, projectID string) error // ListTagBindings lists all tag bindings associated with the project. ListTagBindings(ctx context.Context, projectID string) ([]*TagBinding, error) // ListEffectiveTagBindings lists all tag bindings associated with the project. In practice, // this should be the same as ListTagBindings since projects do not currently inherit // tag bindings. ListEffectiveTagBindings(ctx context.Context, workspaceID string) ([]*EffectiveTagBinding, error) // AddTagBindings adds or modifies the value of existing tag binding keys for a project. AddTagBindings(ctx context.Context, projectID string, options ProjectAddTagBindingsOptions) ([]*TagBinding, error) // DeleteAllTagBindings removes all existing tag bindings for a project. DeleteAllTagBindings(ctx context.Context, projectID string) error }
Projects describes all the project related methods that the Terraform Enterprise API supports
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/projects
type ProviderData ¶ added in v1.7.0
type ProviderDependency ¶ added in v1.76.0
type PublishingMechanism ¶ added in v1.35.0
type PublishingMechanism string
const ( PublishingMechanismBranch PublishingMechanism = "branch" PublishingMechanismTag PublishingMechanism = "git_tag" )
type ReadRunQueueOptions ¶ added in v1.0.0
type ReadRunQueueOptions struct {
ListOptions
}
ReadRunQueueOptions represents the options for showing the queue.
type RegistryModule ¶ added in v0.10.0
type RegistryModule struct { ID string `jsonapi:"primary,registry-modules"` Name string `jsonapi:"attr,name"` Provider string `jsonapi:"attr,provider"` RegistryName RegistryName `jsonapi:"attr,registry-name"` Namespace string `jsonapi:"attr,namespace"` NoCode bool `jsonapi:"attr,no-code"` Permissions *RegistryModulePermissions `jsonapi:"attr,permissions"` PublishingMechanism PublishingMechanism `jsonapi:"attr,publishing-mechanism"` Status RegistryModuleStatus `jsonapi:"attr,status"` TestConfig *TestConfig `jsonapi:"attr,test-config"` VCSRepo *VCSRepo `jsonapi:"attr,vcs-repo"` VersionStatuses []RegistryModuleVersionStatuses `jsonapi:"attr,version-statuses"` CreatedAt string `jsonapi:"attr,created-at"` UpdatedAt string `jsonapi:"attr,updated-at"` // Relations Organization *Organization `jsonapi:"relation,organization"` RegistryNoCodeModule []*RegistryNoCodeModule `jsonapi:"relation,no-code-modules"` }
RegistryModule represents a registry module
type RegistryModuleCreateOptions ¶ added in v0.10.0
type RegistryModuleCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,registry-modules"` // Required: Name *string `jsonapi:"attr,name"` // Required: Provider *string `jsonapi:"attr,provider"` // Optional: Whether this is a publicly maintained module or private. Must be either public or private. // Defaults to private if not specified RegistryName RegistryName `jsonapi:"attr,registry-name,omitempty"` // Optional: The namespace of this module. Required for public modules only. Namespace string `jsonapi:"attr,namespace,omitempty"` // Optional: If set to true the module is enabled for no-code provisioning. // **Note: This field is still in BETA and subject to change.** NoCode *bool `jsonapi:"attr,no-code,omitempty"` }
RegistryModuleCreateOptions is used when creating a registry module without a VCS repo
type RegistryModuleCreateVersionOptions ¶ added in v0.10.0
type RegistryModuleCreateVersionOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,registry-module-versions"` Version *string `jsonapi:"attr,version"` CommitSHA *string `jsonapi:"attr,commit-sha"` }
RegistryModuleCreateVersionOptions is used when creating a registry module version
type RegistryModuleCreateWithVCSConnectionOptions ¶ added in v0.10.0
type RegistryModuleCreateWithVCSConnectionOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,registry-modules"` // Required: VCS repository information VCSRepo *RegistryModuleVCSRepoOptions `jsonapi:"attr,vcs-repo"` // Optional: If Branch is set within VCSRepo then InitialVersion sets the // initial version of the newly created branch-based registry module. If // Branch is not set within VCSRepo then InitialVersion is ignored. // // Defaults to "0.0.0". // // **Note: This field is still in BETA and subject to change.** InitialVersion *string `jsonapi:"attr,initial-version,omitempty"` // Optional: Flag to enable tests for the module // **Note: This field is still in BETA and subject to change.** TestConfig *RegistryModuleTestConfigOptions `jsonapi:"attr,test-config,omitempty"` }
RegistryModuleCreateWithVCSConnectionOptions is used when creating a registry module with a VCS repo
type RegistryModuleID ¶ added in v1.0.0
type RegistryModuleID struct { // The unique ID of the module. If given, the other fields are ignored. ID string // The organization the module belongs to, see RegistryModule.Organization.Name Organization string // The name of the module, see RegistryModule.Name Name string // The module's provider, see RegistryModule.Provider Provider string // The namespace of the module. For private modules this is the name of the organization that owns the module // Required for public modules Namespace string // Either public or private. If not provided, defaults to private RegistryName RegistryName }
func NewPrivateRegistryModuleID ¶ added in v1.45.0
func NewPrivateRegistryModuleID(organization, name, provider string) RegistryModuleID
func NewPublicRegistryModuleID ¶ added in v1.45.0
func NewPublicRegistryModuleID(organization, namespace, name, provider string) RegistryModuleID
type RegistryModuleList ¶ added in v1.3.0
type RegistryModuleList struct { *Pagination Items []*RegistryModule }
RegistryModuleList represents a list of registry modules.
type RegistryModuleListIncludeOpt ¶ added in v1.71.0
type RegistryModuleListIncludeOpt string
const IncludeNoCodeModules RegistryModuleListIncludeOpt = "no-code-modules"
type RegistryModuleListOptions ¶ added in v1.3.0
type RegistryModuleListOptions struct { ListOptions // Include is a list of relations to include. Include []RegistryModuleListIncludeOpt `url:"include,omitempty"` }
RegistryModuleListOptions represents the options for listing registry modules.
type RegistryModulePermissions ¶ added in v0.10.0
type RegistryModuleStatus ¶ added in v0.10.0
type RegistryModuleStatus string
RegistryModuleStatus represents the status of the registry module
const ( RegistryModuleStatusPending RegistryModuleStatus = "pending" RegistryModuleStatusNoVersionTags RegistryModuleStatus = "no_version_tags" RegistryModuleStatusSetupFailed RegistryModuleStatus = "setup_failed" RegistryModuleStatusSetupComplete RegistryModuleStatus = "setup_complete" )
List of available registry module statuses
type RegistryModuleTestConfigOptions ¶ added in v1.35.0
type RegistryModuleTestConfigOptions struct {
TestsEnabled *bool `jsonapi:"attr,tests-enabled,omitempty"`
}
type RegistryModuleUpdateOptions ¶ added in v1.13.0
type RegistryModuleUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-updating Type string `jsonapi:"primary,registry-modules"` // Optional: Flag to enable no-code provisioning for the whole module. // **Note: This field is still in BETA and subject to change.** NoCode *bool `jsonapi:"attr,no-code,omitempty"` // Optional: Flag to enable tests for the module // **Note: This field is still in BETA and subject to change.** TestConfig *RegistryModuleTestConfigOptions `jsonapi:"attr,test-config,omitempty"` VCSRepo *RegistryModuleVCSRepoUpdateOptions `jsonapi:"attr,vcs-repo,omitempty"` }
RegistryModuleCreateVersionOptions is used when updating a registry module
type RegistryModuleVCSRepoOptions ¶ added in v0.10.0
type RegistryModuleVCSRepoOptions struct { Identifier *string `json:"identifier"` // Required OAuthTokenID *string `json:"oauth-token-id,omitempty"` DisplayIdentifier *string `json:"display-identifier,omitempty"` // Required GHAInstallationID *string `json:"github-app-installation-id,omitempty"` OrganizationName *string `json:"organization-name,omitempty"` // Optional: If set, the newly created registry module will be branch-based // with the starting branch set to Branch. // // **Note: This field is still in BETA and subject to change.** Branch *string `json:"branch,omitempty"` Tags *bool `json:"tags,omitempty"` }
type RegistryModuleVCSRepoUpdateOptions ¶ added in v1.35.0
type RegistryModuleVCSRepoUpdateOptions struct { // The Branch and Tag fields are used to determine // the PublishingMechanism for a RegistryModule that has a VCS a connection. // When a value for Branch is provided, the Tags field is removed on the server // When a value for Tags is provided, the Branch field is removed on the server // **Note: This field is still in BETA and subject to change.** Branch *string `json:"branch,omitempty"` Tags *bool `json:"tags,omitempty"` }
type RegistryModuleVariable ¶ added in v1.68.0
type RegistryModuleVariable struct { // ID is the ID of the variable. ID string `jsonapi:"primary,registry-module-variables"` // Name is the name of the variable. Name string `jsonapi:"attr,name"` // VariableType is the type of the variable. VariableType string `jsonapi:"attr,type"` // Description is the description of the variable. Description string `jsonapi:"attr,description"` // Required is a boolean indicating if the variable is required. Required bool `jsonapi:"attr,required"` // Sensitive is a boolean indicating if the variable is sensitive. Sensitive bool `jsonapi:"attr,sensitive"` // Options is a slice of strings representing the options for the variable. Options []string `jsonapi:"attr,options"` // HasGlobal is a boolean indicating if the variable is global. HasGlobal bool `jsonapi:"attr,has-global"` }
RegistryModuleVariable represents a registry module variable.
type RegistryModuleVariableList ¶ added in v1.68.0
type RegistryModuleVariableList struct { Items []*RegistryModuleVariable // NOTE: At the time of authoring this comment, the API endpoint to fetch // registry module variables does not support pagination. This field is // included to satisfy jsonapi unmarshaler implementation here: // https://github.com/hashicorp/go-tfe/blob/3d29602707fa4b10469d1a02685644bd159d3ccc/tfe.go#L859 *Pagination }
RegistryModuleVariableList is a list of registry module variables. **Note: This API is still in BETA and subject to change.**
type RegistryModuleVersion ¶ added in v0.10.0
type RegistryModuleVersion struct { ID string `jsonapi:"primary,registry-module-versions"` Source string `jsonapi:"attr,source"` Status RegistryModuleVersionStatus `jsonapi:"attr,status"` Version string `jsonapi:"attr,version"` CreatedAt string `jsonapi:"attr,created-at"` UpdatedAt string `jsonapi:"attr,updated-at"` // Relations RegistryModule *RegistryModule `jsonapi:"relation,registry-module"` // Links Links map[string]interface{} `jsonapi:"links,omitempty"` }
RegistryModuleVersion represents a registry module version
type RegistryModuleVersionStatus ¶ added in v0.10.0
type RegistryModuleVersionStatus string
RegistryModuleVersionStatus represents the status of a specific version of a registry module
const ( RegistryModuleVersionStatusPending RegistryModuleVersionStatus = "pending" RegistryModuleVersionStatusCloning RegistryModuleVersionStatus = "cloning" RegistryModuleVersionStatusCloneFailed RegistryModuleVersionStatus = "clone_failed" RegistryModuleVersionStatusRegIngressReqFailed RegistryModuleVersionStatus = "reg_ingress_req_failed" RegistryModuleVersionStatusRegIngressing RegistryModuleVersionStatus = "reg_ingressing" RegistryModuleVersionStatusRegIngressFailed RegistryModuleVersionStatus = "reg_ingress_failed" RegistryModuleVersionStatusOk RegistryModuleVersionStatus = "ok" )
List of available registry module version statuses
type RegistryModuleVersionStatuses ¶ added in v0.10.0
type RegistryModuleVersionStatuses struct { Version string `jsonapi:"attr,version"` Status RegistryModuleVersionStatus `jsonapi:"attr,status"` Error string `jsonapi:"attr,error"` }
type RegistryModules ¶ added in v0.10.0
type RegistryModules interface { // List all the registry modules within an organization List(ctx context.Context, organization string, options *RegistryModuleListOptions) (*RegistryModuleList, error) // ListCommits List the commits for the registry module // This returns the latest 20 commits for the connected VCS repo. // Pagination is not applicable due to inconsistent support from the VCS providers. ListCommits(ctx context.Context, moduleID RegistryModuleID) (*CommitList, error) // Create a registry module without a VCS repo Create(ctx context.Context, organization string, options RegistryModuleCreateOptions) (*RegistryModule, error) // Create a registry module version CreateVersion(ctx context.Context, moduleID RegistryModuleID, options RegistryModuleCreateVersionOptions) (*RegistryModuleVersion, error) // Create and publish a registry module with a VCS repo CreateWithVCSConnection(ctx context.Context, options RegistryModuleCreateWithVCSConnectionOptions) (*RegistryModule, error) // Read a registry module Read(ctx context.Context, moduleID RegistryModuleID) (*RegistryModule, error) // ReadVersion Read a registry module version ReadVersion(ctx context.Context, moduleID RegistryModuleID, version string) (*RegistryModuleVersion, error) // ReadTerraformRegistryModule Reads a registry module from the Terraform // Registry, as opposed to Read or ReadVersion which read from the private // registry of a Terraform organization. // https://developer.hashicorp.com/terraform/enterprise/api-docs/private-registry/modules#hcp-terraform-registry-implementation ReadTerraformRegistryModule(ctx context.Context, moduleID RegistryModuleID, version string) (*TerraformRegistryModule, error) // Delete a registry module // Warning: This method is deprecated and will be removed from a future version of go-tfe. Use DeleteByName instead. Delete(ctx context.Context, organization string, name string) error // Delete a registry module by name DeleteByName(ctx context.Context, module RegistryModuleID) error // Delete a specified provider for the given module along with all its versions DeleteProvider(ctx context.Context, moduleID RegistryModuleID) error // Delete a specified version for the given provider of the module DeleteVersion(ctx context.Context, moduleID RegistryModuleID, version string) error // Update properties of a registry module Update(ctx context.Context, moduleID RegistryModuleID, options RegistryModuleUpdateOptions) (*RegistryModule, error) // Upload Terraform configuration files for the provided registry module version. It // requires a path to the configuration files on disk, which will be packaged by // hashicorp/go-slug before being uploaded. Upload(ctx context.Context, rmv RegistryModuleVersion, path string) error // Upload a tar gzip archive to the specified configuration version upload URL. UploadTarGzip(ctx context.Context, url string, r io.Reader) error }
RegistryModules describes all the registry module related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/private-registry/modules
type RegistryName ¶ added in v1.3.0
type RegistryName string
RegistryName represents which registry is being targeted
const ( PrivateRegistry RegistryName = "private" PublicRegistry RegistryName = "public" )
List of available registry names
type RegistryNoCodeModule ¶ added in v1.22.0
type RegistryNoCodeModule struct { ID string `jsonapi:"primary,no-code-modules"` VersionPin string `jsonapi:"attr,version-pin"` Enabled bool `jsonapi:"attr,enabled"` // Relations Organization *Organization `jsonapi:"relation,organization"` RegistryModule *RegistryModule `jsonapi:"relation,registry-module"` VariableOptions []*NoCodeVariableOption `jsonapi:"relation,variable-options"` }
RegistryNoCodeModule represents a registry no-code module
type RegistryNoCodeModuleCreateOptions ¶ added in v1.22.0
type RegistryNoCodeModuleCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,no-code-modules"` // Required: the registry module to use for the no-code module (only the ID is used) RegistryModule *RegistryModule `jsonapi:"relation,registry-module"` // Optional: whether no-code is enabled for the module Enabled *bool `jsonapi:"attr,enabled,omitempty"` // Optional: the version pin for the module. valid values are "latest" or a semver string VersionPin string `jsonapi:"attr,version-pin,omitempty"` // Optional: the variable options for the registry module VariableOptions []*NoCodeVariableOption `jsonapi:"relation,variable-options,omitempty"` }
RegistryNoCodeModuleCreateOptions is used when creating a registry no-code module
type RegistryNoCodeModuleCreateWorkspaceOptions ¶ added in v1.61.0
type RegistryNoCodeModuleCreateWorkspaceOptions struct { Type string `jsonapi:"primary,no-code-module-workspace"` // Name is the name of the workspace, which can only include letters, // numbers, and _. This will be used as an identifier and must be unique in // the organization. Name string `jsonapi:"attr,name"` // Description is a description for the workspace. Description *string `jsonapi:"attr,description,omitempty"` AutoApply *bool `jsonapi:"attr,auto-apply,omitempty"` // Project is the associated project with the workspace. If not provided, // default project of the organization will be assigned to the workspace. Project *Project `jsonapi:"relation,project,omitempty"` // Variables is the slice of variables to be configured for the no-code // workspace. Variables []*Variable `jsonapi:"relation,vars,omitempty"` // SourceName is the name of the source of the workspace. SourceName *string `jsonapi:"attr,source-name,omitempty"` // SourceUrl is the URL of the source of the workspace. SourceURL *string `jsonapi:"attr,source-url,omitempty"` // ExecutionMode is the execution mode of the workspace. ExecutionMode *string `jsonapi:"attr,execution-mode,omitempty"` // AgentPoolId is the ID of the agent pool to use for the workspace. // This is required when execution mode is set to "agent". // This must not be specified when execution mode is set to "remote". AgentPoolID *string `jsonapi:"attr,agent-pool-id,omitempty"` }
type RegistryNoCodeModuleIncludeOpt ¶ added in v1.22.0
type RegistryNoCodeModuleIncludeOpt string
RegistryNoCodeModuleIncludeOpt represents the available options for include query params.
var ( // RegistryNoCodeIncludeVariableOptions is used to include variable options in the response RegistryNoCodeIncludeVariableOptions RegistryNoCodeModuleIncludeOpt = "variable-options" )
type RegistryNoCodeModuleReadOptions ¶ added in v1.22.0
type RegistryNoCodeModuleReadOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-updating Type string `jsonapi:"primary,no-code-modules"` // Optional: Include is used to specify the related resources to include in the response. Include []RegistryNoCodeModuleIncludeOpt `url:"include,omitempty"` }
RegistryNoCodeModuleReadOptions is used when reading a registry no-code module
type RegistryNoCodeModuleReadVariablesOptions ¶ added in v1.68.0
type RegistryNoCodeModuleReadVariablesOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-updating Type string `jsonapi:"primary,no-code-modules"` }
RegistryNoCodeModuleReadVariablesOptions is used when reading the variables for a no-code module.
type RegistryNoCodeModuleUpdateOptions ¶ added in v1.22.0
type RegistryNoCodeModuleUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-updating Type string `jsonapi:"primary,no-code-modules"` // Required: the registry module to use for the no-code module (only the ID is used) RegistryModule *RegistryModule `jsonapi:"relation,registry-module"` // Optional: the version pin for the module. valid values are "latest" or a semver string VersionPin string `jsonapi:"attr,version-pin,omitempty"` // Optional: whether no-code is enabled for the module Enabled *bool `jsonapi:"attr,enabled,omitempty"` // Optional: are the variable options for the module VariableOptions []*NoCodeVariableOption `jsonapi:"relation,variable-options,omitempty"` }
RegistryNoCodeModuleUpdateOptions is used when updating a registry no-code module
type RegistryNoCodeModuleUpgradeWorkspaceOptions ¶ added in v1.61.0
type RegistryNoCodeModules ¶ added in v1.22.0
type RegistryNoCodeModules interface { // Create a registry no-code module // **Note: This API is still in BETA and subject to change.** Create(ctx context.Context, organization string, options RegistryNoCodeModuleCreateOptions) (*RegistryNoCodeModule, error) // Read a registry no-code module // **Note: This API is still in BETA and subject to change.** Read(ctx context.Context, noCodeModuleID string, options *RegistryNoCodeModuleReadOptions) (*RegistryNoCodeModule, error) // ReadVariables returns the variables for a version of a no-code module // **Note: This API is still in BETA and subject to change.** ReadVariables(ctx context.Context, noCodeModuleID, noCodeModuleVersion string, options *RegistryNoCodeModuleReadVariablesOptions) (*RegistryModuleVariableList, error) // Update a registry no-code module // **Note: This API is still in BETA and subject to change.** Update(ctx context.Context, noCodeModuleID string, options RegistryNoCodeModuleUpdateOptions) (*RegistryNoCodeModule, error) // Delete a registry no-code module // **Note: This API is still in BETA and subject to change.** Delete(ctx context.Context, ID string) error // CreateWorkspace creates a workspace using a no-code module. CreateWorkspace(ctx context.Context, noCodeModuleID string, options *RegistryNoCodeModuleCreateWorkspaceOptions) (*Workspace, error) // UpgradeWorkspace initiates an upgrade of an existing no-code module workspace. UpgradeWorkspace(ctx context.Context, noCodeModuleID string, workspaceID string, options *RegistryNoCodeModuleUpgradeWorkspaceOptions) (*WorkspaceUpgrade, error) }
RegistryNoCodeModules describes all the registry no-code module related methods that the Terraform Enterprise API supports.
TFE API docs: (TODO: Add link to API docs)
type RegistryProvider ¶ added in v1.3.0
type RegistryProvider struct { ID string `jsonapi:"primary,registry-providers"` Name string `jsonapi:"attr,name"` Namespace string `jsonapi:"attr,namespace"` CreatedAt string `jsonapi:"attr,created-at,iso8601"` UpdatedAt string `jsonapi:"attr,updated-at,iso8601"` RegistryName RegistryName `jsonapi:"attr,registry-name"` Permissions RegistryProviderPermissions `jsonapi:"attr,permissions"` // Relations Organization *Organization `jsonapi:"relation,organization"` RegistryProviderVersions []*RegistryProviderVersion `jsonapi:"relation,registry-provider-versions"` // Links Links map[string]interface{} `jsonapi:"links,omitempty"` }
RegistryProvider represents a registry provider
type RegistryProviderCreateOptions ¶ added in v1.3.0
type RegistryProviderCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,registry-providers"` // Required: The name of the registry provider Name string `jsonapi:"attr,name"` // Required: The namespace of the provider. For private providers, this is the same as the organization name Namespace string `jsonapi:"attr,namespace"` // Required: Whether this is a publicly maintained provider or private. Must be either public or private. RegistryName RegistryName `jsonapi:"attr,registry-name"` }
RegistryProviderCreateOptions is used when creating a registry provider
type RegistryProviderID ¶ added in v1.3.0
type RegistryProviderID struct { OrganizationName string RegistryName RegistryName Namespace string Name string }
RegistryProviderID is the multi key ID for addressing a provider
type RegistryProviderIncludeOps ¶ added in v1.3.0
type RegistryProviderIncludeOps string
RegistryProviderIncludeOps represents which jsonapi include can be used with registry providers
const (
RegistryProviderVersionsInclude RegistryProviderIncludeOps = "registry-provider-versions"
)
List of available includes
type RegistryProviderList ¶ added in v1.3.0
type RegistryProviderList struct { *Pagination Items []*RegistryProvider }
type RegistryProviderListOptions ¶ added in v1.3.0
type RegistryProviderListOptions struct { ListOptions // Optional: A query string to filter by registry_name RegistryName RegistryName `url:"filter[registry_name],omitempty"` // Optional: A query string to filter by organization OrganizationName string `url:"filter[organization_name],omitempty"` // Optional: A query string to do a fuzzy search Search string `url:"q,omitempty"` // Optional: Include related jsonapi relationships Include *[]RegistryProviderIncludeOps `url:"include,omitempty"` }
type RegistryProviderPermissions ¶ added in v1.3.0
type RegistryProviderPermissions struct {
CanDelete bool `jsonapi:"attr,can-delete"`
}
type RegistryProviderPlatform ¶ added in v1.3.0
type RegistryProviderPlatform struct { ID string `jsonapi:"primary,registry-provider-platforms"` OS string `jsonapi:"attr,os"` Arch string `jsonapi:"attr,arch"` Filename string `jsonapi:"attr,filename"` Shasum string `jsonapi:"attr,shasum"` ProviderBinaryUploaded bool `jsonapi:"attr,provider-binary-uploaded"` // Relations RegistryProviderVersion *RegistryProviderVersion `jsonapi:"relation,registry-provider-version"` // Links Links map[string]interface{} `jsonapi:"links,omitempty"` }
RegistryProviderPlatform represents a registry provider platform
type RegistryProviderPlatformCreateOptions ¶ added in v1.3.0
type RegistryProviderPlatformCreateOptions struct { // Required: A valid operating system string OS string `jsonapi:"attr,os"` // Required: A valid architecture string Arch string `jsonapi:"attr,arch"` // Required: A valid shasum string Shasum string `jsonapi:"attr,shasum"` // Required: A valid filename string Filename string `jsonapi:"attr,filename"` }
RegistryProviderPlatformCreateOptions represents the set of options for creating a registry provider platform
type RegistryProviderPlatformID ¶ added in v1.3.0
type RegistryProviderPlatformID struct { RegistryProviderVersionID OS string Arch string }
RegistryProviderPlatformID is the multi key ID for identifying a provider platform
type RegistryProviderPlatformList ¶ added in v1.3.0
type RegistryProviderPlatformList struct { *Pagination Items []*RegistryProviderPlatform }
type RegistryProviderPlatformListOptions ¶ added in v1.3.0
type RegistryProviderPlatformListOptions struct {
ListOptions
}
type RegistryProviderPlatforms ¶ added in v1.3.0
type RegistryProviderPlatforms interface { // Create a provider platform for an organization Create(ctx context.Context, versionID RegistryProviderVersionID, options RegistryProviderPlatformCreateOptions) (*RegistryProviderPlatform, error) // List all provider platforms for a single version List(ctx context.Context, versionID RegistryProviderVersionID, options *RegistryProviderPlatformListOptions) (*RegistryProviderPlatformList, error) // Read a provider platform by ID Read(ctx context.Context, platformID RegistryProviderPlatformID) (*RegistryProviderPlatform, error) // Delete a provider platform Delete(ctx context.Context, platformID RegistryProviderPlatformID) error }
RegistryProviderPlatforms describes the registry provider platform methods supported by the Terraform Enterprise API.
type RegistryProviderReadOptions ¶ added in v1.3.0
type RegistryProviderReadOptions struct { // Optional: Include related jsonapi relationships Include []RegistryProviderIncludeOps `url:"include,omitempty"` }
type RegistryProviderVersion ¶ added in v1.3.0
type RegistryProviderVersion struct { ID string `jsonapi:"primary,registry-provider-versions"` Version string `jsonapi:"attr,version"` CreatedAt string `jsonapi:"attr,created-at,iso8601"` UpdatedAt string `jsonapi:"attr,updated-at,iso8601"` KeyID string `jsonapi:"attr,key-id"` Protocols []string `jsonapi:"attr,protocols"` Permissions RegistryProviderVersionPermissions `jsonapi:"attr,permissions"` ShasumsUploaded bool `jsonapi:"attr,shasums-uploaded"` ShasumsSigUploaded bool `jsonapi:"attr,shasums-sig-uploaded"` // Relations RegistryProvider *RegistryProvider `jsonapi:"relation,registry-provider"` RegistryProviderPlatforms []*RegistryProviderPlatform `jsonapi:"relation,platforms"` // Links Links map[string]interface{} `jsonapi:"links,omitempty"` }
RegistryProviderVersion represents a registry provider version
func (*RegistryProviderVersion) ShasumsDownloadURL ¶ added in v1.3.0
func (v *RegistryProviderVersion) ShasumsDownloadURL() (string, error)
ShasumsDownloadURL returns the URL to download the shasums for the registry version
func (*RegistryProviderVersion) ShasumsSigDownloadURL ¶ added in v1.3.0
func (v *RegistryProviderVersion) ShasumsSigDownloadURL() (string, error)
ShasumsSigDownloadURL returns the URL to download the shasums sig for the registry version
func (*RegistryProviderVersion) ShasumsSigUploadURL ¶ added in v1.3.0
func (v *RegistryProviderVersion) ShasumsSigUploadURL() (string, error)
ShasumsSigUploadURL returns the URL to upload a shasums sig
func (*RegistryProviderVersion) ShasumsUploadURL ¶ added in v1.3.0
func (v *RegistryProviderVersion) ShasumsUploadURL() (string, error)
ShasumsUploadURL returns the upload URL to upload shasums if one is available
type RegistryProviderVersionCreateOptions ¶ added in v1.3.0
type RegistryProviderVersionCreateOptions struct { // Required: A valid semver version string. Version string `jsonapi:"attr,version"` // Required: A valid gpg-key string. KeyID string `jsonapi:"attr,key-id"` // Required: An array of Terraform provider API versions that this version supports. Protocols []string `jsonapi:"attr,protocols"` }
type RegistryProviderVersionID ¶ added in v1.3.0
type RegistryProviderVersionID struct { RegistryProviderID Version string }
RegistryProviderVersionID is the multi key ID for addressing a version provider
type RegistryProviderVersionList ¶ added in v1.3.0
type RegistryProviderVersionList struct { *Pagination Items []*RegistryProviderVersion }
type RegistryProviderVersionListOptions ¶ added in v1.3.0
type RegistryProviderVersionListOptions struct {
ListOptions
}
type RegistryProviderVersionPermissions ¶ added in v1.3.0
type RegistryProviderVersions ¶ added in v1.3.0
type RegistryProviderVersions interface { // List all versions for a single provider. List(ctx context.Context, providerID RegistryProviderID, options *RegistryProviderVersionListOptions) (*RegistryProviderVersionList, error) // Create a registry provider version. Create(ctx context.Context, providerID RegistryProviderID, options RegistryProviderVersionCreateOptions) (*RegistryProviderVersion, error) // Read a registry provider version. Read(ctx context.Context, versionID RegistryProviderVersionID) (*RegistryProviderVersion, error) // Delete a registry provider version. Delete(ctx context.Context, versionID RegistryProviderVersionID) error }
RegistryProviderVersions describes the registry provider version methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/private-registry/provider-versions-platforms
type RegistryProviders ¶ added in v1.3.0
type RegistryProviders interface { // List all the providers within an organization. List(ctx context.Context, organization string, options *RegistryProviderListOptions) (*RegistryProviderList, error) // Create a registry provider. Create(ctx context.Context, organization string, options RegistryProviderCreateOptions) (*RegistryProvider, error) // Read a registry provider. Read(ctx context.Context, providerID RegistryProviderID, options *RegistryProviderReadOptions) (*RegistryProvider, error) // Delete a registry provider. Delete(ctx context.Context, providerID RegistryProviderID) error }
RegistryProviders describes all the registry provider-related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/private-registry/providers
type RemoteStateConsumersListOptions ¶ added in v0.19.0
type RemoteStateConsumersListOptions struct {
ListOptions
}
type RetryLogHook ¶ added in v0.3.11
type Root ¶ added in v1.76.0
type Root struct { Path string `json:"path"` Name string `json:"name"` Readme string `json:"readme"` Empty bool `json:"empty"` Inputs []Input `json:"inputs"` Outputs []Output `json:"outputs"` ProviderDependencies []ProviderDependency `json:"provider_dependencies"` Resources []Resource `json:"resources"` }
type Run ¶
type Run struct { ID string `jsonapi:"primary,runs"` Actions *RunActions `jsonapi:"attr,actions"` AutoApply bool `jsonapi:"attr,auto-apply,omitempty"` AllowConfigGeneration *bool `jsonapi:"attr,allow-config-generation,omitempty"` AllowEmptyApply bool `jsonapi:"attr,allow-empty-apply"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` ForceCancelAvailableAt time.Time `jsonapi:"attr,force-cancel-available-at,iso8601"` HasChanges bool `jsonapi:"attr,has-changes"` IsDestroy bool `jsonapi:"attr,is-destroy"` Message string `jsonapi:"attr,message"` Permissions *RunPermissions `jsonapi:"attr,permissions"` PositionInQueue int `jsonapi:"attr,position-in-queue"` PlanOnly bool `jsonapi:"attr,plan-only"` Refresh bool `jsonapi:"attr,refresh"` RefreshOnly bool `jsonapi:"attr,refresh-only"` ReplaceAddrs []string `jsonapi:"attr,replace-addrs,omitempty"` SavePlan bool `jsonapi:"attr,save-plan,omitempty"` Source RunSource `jsonapi:"attr,source"` Status RunStatus `jsonapi:"attr,status"` StatusTimestamps *RunStatusTimestamps `jsonapi:"attr,status-timestamps"` TargetAddrs []string `jsonapi:"attr,target-addrs,omitempty"` TerraformVersion string `jsonapi:"attr,terraform-version"` Variables []*RunVariableAttr `jsonapi:"attr,variables"` // Relations Apply *Apply `jsonapi:"relation,apply"` ConfigurationVersion *ConfigurationVersion `jsonapi:"relation,configuration-version"` CostEstimate *CostEstimate `jsonapi:"relation,cost-estimate"` CreatedBy *User `jsonapi:"relation,created-by"` Plan *Plan `jsonapi:"relation,plan"` PolicyChecks []*PolicyCheck `jsonapi:"relation,policy-checks"` TaskStages []*TaskStage `jsonapi:"relation,task-stages,omitempty"` Workspace *Workspace `jsonapi:"relation,workspace"` Comments []*Comment `jsonapi:"relation,comments"` }
Run represents a Terraform Enterprise run.
type RunActions ¶
type RunActions struct { IsCancelable bool `jsonapi:"attr,is-cancelable"` IsConfirmable bool `jsonapi:"attr,is-confirmable"` IsDiscardable bool `jsonapi:"attr,is-discardable"` IsForceCancelable bool `jsonapi:"attr,is-force-cancelable"` }
RunActions represents the run actions.
type RunApplyOptions ¶
type RunApplyOptions struct { // An optional comment about the run. Comment *string `json:"comment,omitempty"` }
RunApplyOptions represents the options for applying a run.
type RunCancelOptions ¶
type RunCancelOptions struct { // An optional explanation for why the run was canceled. Comment *string `json:"comment,omitempty"` }
RunCancelOptions represents the options for canceling a run.
type RunCreateOptions ¶
type RunCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,runs"` // AllowConfigGeneration specifies whether generated resource configuration may be created as a side // effect of an import block in this run. Setting this does not mean that configuration _will_ be generated, // only that it can be. AllowConfigGeneration *bool `jsonapi:"attr,allow-config-generation,omitempty"` // AllowEmptyApply specifies whether Terraform can apply the run even when the plan contains no changes. // Often used to upgrade state after upgrading a workspace to a new terraform version. AllowEmptyApply *bool `jsonapi:"attr,allow-empty-apply,omitempty"` // TerraformVersion specifies the Terraform version to use in this run. // Only valid for plan-only runs; must be a valid Terraform version available to the organization. TerraformVersion *string `jsonapi:"attr,terraform-version,omitempty"` // PlanOnly specifies if this is a speculative, plan-only run that Terraform cannot apply. // Often used in conjunction with terraform-version in order to test whether an upgrade would succeed. PlanOnly *bool `jsonapi:"attr,plan-only,omitempty"` // Specifies if this plan is a destroy plan, which will destroy all // provisioned resources. IsDestroy *bool `jsonapi:"attr,is-destroy,omitempty"` // Refresh determines if the run should // update the state prior to checking for differences Refresh *bool `jsonapi:"attr,refresh,omitempty"` // RefreshOnly determines whether the run should ignore config changes // and refresh the state only RefreshOnly *bool `jsonapi:"attr,refresh-only,omitempty"` // SavePlan determines whether this should be a saved-plan run. Saved-plan // runs perform their plan and checks immediately, but won't lock the // workspace and become its current run until they are confirmed for apply. SavePlan *bool `jsonapi:"attr,save-plan,omitempty"` // Specifies the message to be associated with this run. Message *string `jsonapi:"attr,message,omitempty"` // Specifies the configuration version to use for this run. If the // configuration version object is omitted, the run will be created using the // workspace's latest configuration version. ConfigurationVersion *ConfigurationVersion `jsonapi:"relation,configuration-version"` // Specifies the workspace where the run will be executed. Workspace *Workspace `jsonapi:"relation,workspace"` // If non-empty, requests that Terraform should create a plan including // actions only for the given objects (specified using resource address // syntax) and the objects they depend on. // // This capability is provided for exceptional circumstances only, such as // recovering from mistakes or working around existing Terraform // limitations. Terraform will generally mention the -target command line // option in its error messages describing situations where setting this // argument may be appropriate. This argument should not be used as part // of routine workflow and Terraform will emit warnings reminding about // this whenever this property is set. TargetAddrs []string `jsonapi:"attr,target-addrs,omitempty"` // If non-empty, requests that Terraform create a plan that replaces // (destroys and then re-creates) the objects specified by the given // resource addresses. ReplaceAddrs []string `jsonapi:"attr,replace-addrs,omitempty"` // AutoApply determines if the run should be applied automatically without // user confirmation. It defaults to the Workspace.AutoApply setting. AutoApply *bool `jsonapi:"attr,auto-apply,omitempty"` // Variables allows you to specify terraform input variables for // a particular run, prioritized over variables defined on the workspace. Variables []*RunVariable `jsonapi:"attr,variables,omitempty"` }
RunCreateOptions represents the options for creating a new run.
type RunDiscardOptions ¶
type RunDiscardOptions struct { // An optional explanation for why the run was discarded. Comment *string `json:"comment,omitempty"` }
RunDiscardOptions represents the options for discarding a run.
type RunEvent ¶ added in v1.21.0
type RunEvent struct { ID string `jsonapi:"primary,run-events"` Action string `jsonapi:"attr,action"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` Description string `jsonapi:"attr,description"` // Relations - Note that `target` is not supported yet Actor *User `jsonapi:"relation,actor"` Comment *Comment `jsonapi:"relation,comment"` }
RunEvent represents a Terraform Enterprise run event.
type RunEventIncludeOpt ¶ added in v1.21.0
type RunEventIncludeOpt string
RunEventIncludeOpt represents the available options for include query params.
const ( RunEventComment RunEventIncludeOpt = "comment" RunEventActor RunEventIncludeOpt = "actor" )
type RunEventList ¶ added in v1.21.0
type RunEventList struct { // Pagination is not supported by the API *Pagination Items []*RunEvent }
RunEventList represents a list of run events.
type RunEventListOptions ¶ added in v1.21.0
type RunEventListOptions struct { // Optional: A list of relations to include. See available resources: Include []RunEventIncludeOpt `url:"include,omitempty"` }
RunEventListOptions represents the options for listing run events.
type RunEventReadOptions ¶ added in v1.21.0
type RunEventReadOptions struct { // Optional: A list of relations to include. See available resources: Include []RunEventIncludeOpt `url:"include,omitempty"` }
RunEventReadOptions represents the options for reading a run event.
type RunEvents ¶ added in v1.21.0
type RunEvents interface { // List all the runs events of the given run. List(ctx context.Context, runID string, options *RunEventListOptions) (*RunEventList, error) // Read a run event by its ID. Read(ctx context.Context, runEventID string) (*RunEvent, error) // ReadWithOptions reads a run event by its ID using the options supplied ReadWithOptions(ctx context.Context, runEventID string, options *RunEventReadOptions) (*RunEvent, error) }
RunEvents describes all the run events that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run
type RunForceCancelOptions ¶ added in v0.2.4
type RunForceCancelOptions struct { // An optional comment explaining the reason for the force-cancel. Comment *string `json:"comment,omitempty"` }
RunForceCancelOptions represents the options for force-canceling a run.
type RunIncludeOpt ¶ added in v1.0.0
type RunIncludeOpt string
RunIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run#available-related-resources
const ( RunPlan RunIncludeOpt = "plan" RunApply RunIncludeOpt = "apply" RunCreatedBy RunIncludeOpt = "created_by" RunCostEstimate RunIncludeOpt = "cost_estimate" RunConfigVer RunIncludeOpt = "configuration_version" RunConfigVerIngress RunIncludeOpt = "configuration_version.ingress_attributes" RunWorkspace RunIncludeOpt = "workspace" RunTaskStages RunIncludeOpt = "task_stages" )
type RunList ¶ added in v0.2.0
type RunList struct { *Pagination Items []*Run }
RunList represents a list of runs.
type RunListForOrganizationOptions ¶ added in v1.76.0
type RunListForOrganizationOptions struct { ListOptions // Optional: Searches runs that matches the supplied VCS username. User string `url:"search[user],omitempty"` // Optional: Searches runs that matches the supplied commit sha. Commit string `url:"search[commit],omitempty"` // Optional: Searches for runs that match the VCS username, commit sha, run_id, or run message your specify. // The presence of search[commit] or search[user] takes priority over this parameter and will be omitted. Basic string `url:"search[basic],omitempty"` // Optional: Comma-separated list of acceptable run statuses. // Options are listed at https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run#run-states, // or as constants with the RunStatus string type. Status string `url:"filter[status],omitempty"` // Optional: Comma-separated list of acceptable run sources. // Options are listed at https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run#run-sources, // or as constants with the RunSource string type. Source string `url:"filter[source],omitempty"` // Optional: Comma-separated list of acceptable run operation types. // Options are listed at https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run#run-operations, // or as constants with the RunOperation string type. Operation string `url:"filter[operation],omitempty"` // Optional: Comma-separated list of agent pool names. AgentPoolNames string `url:"filter[agent_pool_names],omitempty"` // Optional: Comma-separated list of run status groups. StatusGroup string `url:"filter[status_group],omitempty"` // Optional: Comma-separated list of run timeframe. Timeframe string `url:"filter[timeframe],omitempty"` // Optional: Comma-separated list of workspace names. The result lists runs that belong to one of the workspaces your specify. WorkspaceNames string `url:"filter[workspace_names],omitempty"` // Optional: A list of relations to include. See available resources: // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run#available-related-resources Include []RunIncludeOpt `url:"include,omitempty"` }
RunListForOrganizationOptions represents the options for listing runs for an organization.
type RunListOptions ¶
type RunListOptions struct { ListOptions // Optional: Searches runs that matches the supplied VCS username. User string `url:"search[user],omitempty"` // Optional: Searches runs that matches the supplied commit sha. Commit string `url:"search[commit],omitempty"` // Optional: Searches runs that matches the supplied VCS username, commit sha, run_id, and run message. // The presence of search[commit] or search[user] takes priority over this parameter and will be omitted. Search string `url:"search[basic],omitempty"` // Optional: Comma-separated list of acceptable run statuses. // Options are listed at https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run#run-states, // or as constants with the RunStatus string type. Status string `url:"filter[status],omitempty"` // Optional: Comma-separated list of acceptable run sources. // Options are listed at https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run#run-sources, // or as constants with the RunSource string type. Source string `url:"filter[source],omitempty"` // Optional: Comma-separated list of acceptable run operation types. // Options are listed at https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run#run-operations, // or as constants with the RunOperation string type. Operation string `url:"filter[operation],omitempty"` // Optional: A list of relations to include. See available resources: // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run#available-related-resources Include []RunIncludeOpt `url:"include,omitempty"` }
RunListOptions represents the options for listing runs.
type RunOperation ¶ added in v1.4.0
type RunOperation string
RunOperation represents an operation type of run.
const ( RunOperationPlanApply RunOperation = "plan_and_apply" RunOperationPlanOnly RunOperation = "plan_only" RunOperationRefreshOnly RunOperation = "refresh_only" RunOperationDestroy RunOperation = "destroy" RunOperationEmptyApply RunOperation = "empty_apply" RunOperationSavePlan RunOperation = "save_plan" )
List all available run operations.
type RunPermissions ¶
type RunPermissions struct { CanApply bool `jsonapi:"attr,can-apply"` CanCancel bool `jsonapi:"attr,can-cancel"` CanDiscard bool `jsonapi:"attr,can-discard"` CanForceCancel bool `jsonapi:"attr,can-force-cancel"` CanForceExecute bool `jsonapi:"attr,can-force-execute"` }
RunPermissions represents the run permissions.
type RunQueue ¶ added in v0.2.4
type RunQueue struct { *Pagination Items []*Run }
RunQueue represents the current run queue of an organization.
type RunReadOptions ¶ added in v0.12.0
type RunReadOptions struct { // Optional: A list of relations to include. See available resources: // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run#available-related-resources Include []RunIncludeOpt `url:"include,omitempty"` }
RunReadOptions represents the options for reading a run.
type RunStatus ¶
type RunStatus string
RunStatus represents a run state.
const ( RunApplied RunStatus = "applied" RunApplying RunStatus = "applying" RunApplyQueued RunStatus = "apply_queued" RunCanceled RunStatus = "canceled" RunConfirmed RunStatus = "confirmed" RunCostEstimated RunStatus = "cost_estimated" RunCostEstimating RunStatus = "cost_estimating" RunDiscarded RunStatus = "discarded" RunErrored RunStatus = "errored" RunFetching RunStatus = "fetching" RunFetchingCompleted RunStatus = "fetching_completed" RunPending RunStatus = "pending" RunPlanned RunStatus = "planned" RunPlannedAndFinished RunStatus = "planned_and_finished" RunPlannedAndSaved RunStatus = "planned_and_saved" RunPlanning RunStatus = "planning" RunPlanQueued RunStatus = "plan_queued" RunPolicyChecked RunStatus = "policy_checked" RunPolicyChecking RunStatus = "policy_checking" RunPolicyOverride RunStatus = "policy_override" RunPolicySoftFailed RunStatus = "policy_soft_failed" RunPostPlanAwaitingDecision RunStatus = "post_plan_awaiting_decision" RunPostPlanCompleted RunStatus = "post_plan_completed" RunPostPlanRunning RunStatus = "post_plan_running" RunPreApplyRunning RunStatus = "pre_apply_running" RunPreApplyCompleted RunStatus = "pre_apply_completed" RunPrePlanCompleted RunStatus = "pre_plan_completed" RunPrePlanRunning RunStatus = "pre_plan_running" RunQueuing RunStatus = "queuing" RunQueuingApply RunStatus = "queuing_apply" )
List all available run statuses.
type RunStatusTimestamps ¶
type RunStatusTimestamps struct { AppliedAt time.Time `jsonapi:"attr,applied-at,rfc3339"` ApplyingAt time.Time `jsonapi:"attr,applying-at,rfc3339"` ApplyQueuedAt time.Time `jsonapi:"attr,apply-queued-at,rfc3339"` CanceledAt time.Time `jsonapi:"attr,canceled-at,rfc3339"` ConfirmedAt time.Time `jsonapi:"attr,confirmed-at,rfc3339"` CostEstimatedAt time.Time `jsonapi:"attr,cost-estimated-at,rfc3339"` CostEstimatingAt time.Time `jsonapi:"attr,cost-estimating-at,rfc3339"` DiscardedAt time.Time `jsonapi:"attr,discarded-at,rfc3339"` ErroredAt time.Time `jsonapi:"attr,errored-at,rfc3339"` FetchedAt time.Time `jsonapi:"attr,fetched-at,rfc3339"` FetchingAt time.Time `jsonapi:"attr,fetching-at,rfc3339"` ForceCanceledAt time.Time `jsonapi:"attr,force-canceled-at,rfc3339"` PlannedAndFinishedAt time.Time `jsonapi:"attr,planned-and-finished-at,rfc3339"` PlannedAndSavedAt time.Time `jsonapi:"attr,planned-and-saved-at,rfc3339"` PlannedAt time.Time `jsonapi:"attr,planned-at,rfc3339"` PlanningAt time.Time `jsonapi:"attr,planning-at,rfc3339"` PlanQueueableAt time.Time `jsonapi:"attr,plan-queueable-at,rfc3339"` PlanQueuedAt time.Time `jsonapi:"attr,plan-queued-at,rfc3339"` PolicyCheckedAt time.Time `jsonapi:"attr,policy-checked-at,rfc3339"` PolicySoftFailedAt time.Time `jsonapi:"attr,policy-soft-failed-at,rfc3339"` PostPlanCompletedAt time.Time `jsonapi:"attr,post-plan-completed-at,rfc3339"` PostPlanRunningAt time.Time `jsonapi:"attr,post-plan-running-at,rfc3339"` PrePlanCompletedAt time.Time `jsonapi:"attr,pre-plan-completed-at,rfc3339"` PrePlanRunningAt time.Time `jsonapi:"attr,pre-plan-running-at,rfc3339"` QueuingAt time.Time `jsonapi:"attr,queuing-at,rfc3339"` }
RunStatusTimestamps holds the timestamps for individual run statuses.
type RunTask ¶ added in v0.26.0
type RunTask struct { ID string `jsonapi:"primary,tasks"` Name string `jsonapi:"attr,name"` URL string `jsonapi:"attr,url"` Description string `jsonapi:"attr,description"` Category string `jsonapi:"attr,category"` HMACKey *string `jsonapi:"attr,hmac-key,omitempty"` Enabled bool `jsonapi:"attr,enabled"` Global *GlobalRunTask `jsonapi:"attr,global-configuration,omitempty"` Organization *Organization `jsonapi:"relation,organization"` WorkspaceRunTasks []*WorkspaceRunTask `jsonapi:"relation,workspace-tasks"` }
RunTask represents a HCP Terraform or Terraform Enterprise run task
type RunTaskCreateOptions ¶ added in v0.26.0
type RunTaskCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,tasks"` // Required: The name of the run task Name string `jsonapi:"attr,name"` // Required: The URL to send a run task payload URL string `jsonapi:"attr,url"` // Optional: Description of the task Description *string `jsonapi:"attr,description"` // Required: Must be "task" Category string `jsonapi:"attr,category"` // Optional: An HMAC key to verify the run task HMACKey *string `jsonapi:"attr,hmac-key,omitempty"` // Optional: Whether the task should be enabled Enabled *bool `jsonapi:"attr,enabled,omitempty"` // Optional: Whether the task contains global configuration Global *GlobalRunTaskOptions `jsonapi:"attr,global-configuration,omitempty"` }
RunTaskCreateOptions represents the set of options for creating a run task
type RunTaskIncludeOpt ¶ added in v1.0.0
type RunTaskIncludeOpt string
RunTaskIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run-tasks/run-tasks#list-run-tasks
const ( RunTaskWorkspaceTasks RunTaskIncludeOpt = "workspace_tasks" RunTaskWorkspace RunTaskIncludeOpt = "workspace_tasks.workspace" )
type RunTaskList ¶ added in v0.26.0
type RunTaskList struct { *Pagination Items []*RunTask }
RunTaskList represents a list of run tasks
type RunTaskListOptions ¶ added in v0.26.0
type RunTaskListOptions struct { ListOptions // Optional: A list of relations to include with a run task. See available resources: // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run-tasks/run-tasks#list-run-tasks Include []RunTaskIncludeOpt `url:"include,omitempty"` }
RunTaskListOptions represents the set of options for listing run tasks
type RunTaskReadOptions ¶ added in v0.26.0
type RunTaskReadOptions struct { // Optional: A list of relations to include with a run task. See available resources: // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run-tasks/run-tasks#list-run-tasks Include []RunTaskIncludeOpt `url:"include,omitempty"` }
RunTaskReadOptions represents the set of options for reading a run task
type RunTaskRequest ¶ added in v1.59.0
type RunTaskRequest struct { AccessToken string `json:"access_token"` Capabilitites RunTaskRequestCapabilitites `json:"capabilitites,omitempty"` ConfigurationVersionDownloadURL string `json:"configuration_version_download_url,omitempty"` ConfigurationVersionID string `json:"configuration_version_id,omitempty"` IsSpeculative bool `json:"is_speculative"` OrganizationName string `json:"organization_name"` PayloadVersion int `json:"payload_version"` PlanJSONAPIURL string `json:"plan_json_api_url,omitempty"` // Specific to post_plan, pre_apply or post_apply stage RunAppURL string `json:"run_app_url"` RunCreatedAt time.Time `json:"run_created_at"` RunCreatedBy string `json:"run_created_by"` RunID string `json:"run_id"` RunMessage string `json:"run_message"` Stage string `json:"stage"` TaskResultCallbackURL string `json:"task_result_callback_url"` TaskResultEnforcementLevel string `json:"task_result_enforcement_level"` TaskResultID string `json:"task_result_id"` VcsBranch string `json:"vcs_branch,omitempty"` VcsCommitURL string `json:"vcs_commit_url,omitempty"` VcsPullRequestURL string `json:"vcs_pull_request_url,omitempty"` VcsRepoURL string `json:"vcs_repo_url,omitempty"` WorkspaceAppURL string `json:"workspace_app_url"` WorkspaceID string `json:"workspace_id"` WorkspaceName string `json:"workspace_name"` WorkspaceWorkingDirectory string `json:"workspace_working_directory,omitempty"` }
RunTaskRequest is the payload object that TFC/E sends to the Run Task's URL. https://developer.hashicorp.com/terraform/enterprise/api-docs/run-tasks/run-tasks-integration#common-properties
type RunTaskRequestCapabilitites ¶ added in v1.59.0
type RunTaskRequestCapabilitites struct {
Outcomes bool `json:"outcomes"`
}
RunTaskRequestCapabilitites defines the capabilities that the caller supports.
type RunTaskUpdateOptions ¶ added in v0.26.0
type RunTaskUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,tasks"` // Optional: The name of the run task, defaults to previous value Name *string `jsonapi:"attr,name,omitempty"` // Optional: The URL to send a run task payload, defaults to previous value URL *string `jsonapi:"attr,url,omitempty"` // Optional: An optional description of the task Description *string `jsonapi:"attr,description,omitempty"` // Optional: Must be "task", defaults to "task" Category *string `jsonapi:"attr,category,omitempty"` // Optional: An HMAC key to verify the run task HMACKey *string `jsonapi:"attr,hmac-key,omitempty"` // Optional: Whether the task should be enabled Enabled *bool `jsonapi:"attr,enabled,omitempty"` // Optional: Whether the task contains global configuration Global *GlobalRunTaskOptions `jsonapi:"attr,global-configuration,omitempty"` }
RunTaskUpdateOptions represents the set of options for updating an organization's run task
type RunTasks ¶ added in v0.26.0
type RunTasks interface { // Create a run task for an organization Create(ctx context.Context, organization string, options RunTaskCreateOptions) (*RunTask, error) // List all run tasks for an organization List(ctx context.Context, organization string, options *RunTaskListOptions) (*RunTaskList, error) // Read an organization's run task by ID Read(ctx context.Context, runTaskID string) (*RunTask, error) // Read an organization's run task by ID with given options ReadWithOptions(ctx context.Context, runTaskID string, options *RunTaskReadOptions) (*RunTask, error) // Update a run task for an organization Update(ctx context.Context, runTaskID string, options RunTaskUpdateOptions) (*RunTask, error) // Delete an organization's run task Delete(ctx context.Context, runTaskID string) error // Attach a run task to an organization's workspace AttachToWorkspace(ctx context.Context, workspaceID string, runTaskID string, enforcementLevel TaskEnforcementLevel) (*WorkspaceRunTask, error) }
RunTasks represents all the run task related methods in the context of an organization that the HCP Terraform and Terraform Enterprise API supports. https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run-tasks/run-tasks#run-tasks-api
type RunTasksIntegration ¶ added in v1.59.0
type RunTasksIntegration interface { // Update sends updates to TFC/E Run Task Callback URL Callback(ctx context.Context, callbackURL string, accessToken string, options TaskResultCallbackRequestOptions) error }
RunTasksIntegration describes all the Run Tasks Integration Callback API methods.
TFE API docs: https://developer.hashicorp.com/terraform/enterprise/api-docs/run-tasks/run-tasks-integration
type RunTrigger ¶ added in v0.5.0
type RunTrigger struct { ID string `jsonapi:"primary,run-triggers"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` SourceableName string `jsonapi:"attr,sourceable-name"` WorkspaceName string `jsonapi:"attr,workspace-name"` // DEPRECATED. The sourceable field is polymorphic. Use SourceableChoice instead. Sourceable *Workspace `jsonapi:"relation,sourceable"` SourceableChoice *SourceableChoice `jsonapi:"polyrelation,sourceable"` Workspace *Workspace `jsonapi:"relation,workspace"` }
RunTrigger represents a run trigger.
type RunTriggerCreateOptions ¶ added in v0.5.0
type RunTriggerCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,run-triggers"` // The source workspace Sourceable *Workspace `jsonapi:"relation,sourceable"` }
RunTriggerCreateOptions represents the options for creating a new run trigger.
type RunTriggerFilterOp ¶ added in v1.0.0
type RunTriggerFilterOp string
https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run-triggers#query-parameters
const ( RunTriggerOutbound RunTriggerFilterOp = "outbound" // create runs in other workspaces. RunTriggerInbound RunTriggerFilterOp = "inbound" // create runs in the specified workspace )
type RunTriggerIncludeOpt ¶ added in v1.0.0
type RunTriggerIncludeOpt string
A list of relations to include https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run-triggers#available-related-resources
const ( RunTriggerWorkspace RunTriggerIncludeOpt = "workspace" RunTriggerSourceable RunTriggerIncludeOpt = "sourceable" )
type RunTriggerList ¶ added in v0.5.0
type RunTriggerList struct { *Pagination Items []*RunTrigger }
RunTriggerList represents a list of Run Triggers
type RunTriggerListOptions ¶ added in v0.5.0
type RunTriggerListOptions struct { ListOptions RunTriggerType RunTriggerFilterOp `url:"filter[run-trigger][type]"` // Required Include []RunTriggerIncludeOpt `url:"include,omitempty"` // optional }
RunTriggerListOptions represents the options for listing run triggers.
type RunTriggers ¶ added in v0.5.0
type RunTriggers interface { // List all the run triggers within a workspace. List(ctx context.Context, workspaceID string, options *RunTriggerListOptions) (*RunTriggerList, error) // Create a new run trigger with the given options. Create(ctx context.Context, workspaceID string, options RunTriggerCreateOptions) (*RunTrigger, error) // Read a run trigger by its ID. Read(ctx context.Context, RunTriggerID string) (*RunTrigger, error) // Delete a run trigger by its ID. Delete(ctx context.Context, RunTriggerID string) error }
RunTriggers describes all the Run Trigger related methods that the HCP Terraform API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run-triggers
type RunVariable ¶ added in v0.21.0
RunVariableAttr represents a variable that can be applied to a run. All values must be expressed as an HCL literal in the same syntax you would use when writing terraform code. See https://developer.hashicorp.com/terraform/language/expressions/types#types for more details.
type RunVariableAttr ¶ added in v1.11.0
type Runs ¶
type Runs interface { // List all the runs of the given workspace. List(ctx context.Context, workspaceID string, options *RunListOptions) (*RunList, error) // List all the runs of the given organization. ListForOrganization(ctx context.Context, organization string, options *RunListForOrganizationOptions) (*OrganizationRunList, error) // Create a new run with the given options. Create(ctx context.Context, options RunCreateOptions) (*Run, error) // Read a run by its ID. Read(ctx context.Context, runID string) (*Run, error) // ReadWithOptions reads a run by its ID using the options supplied ReadWithOptions(ctx context.Context, runID string, options *RunReadOptions) (*Run, error) // Apply a run by its ID. Apply(ctx context.Context, runID string, options RunApplyOptions) error // Cancel a run by its ID. Cancel(ctx context.Context, runID string, options RunCancelOptions) error // Force-cancel a run by its ID. ForceCancel(ctx context.Context, runID string, options RunForceCancelOptions) error // Force execute a run by its ID. ForceExecute(ctx context.Context, runID string) error // Discard a run by its ID. Discard(ctx context.Context, runID string, options RunDiscardOptions) error }
Runs describes all the run related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/run
type RunsPermissionType ¶ added in v0.9.0
type RunsPermissionType string
RunsPermissionType represents the permissiontype to a workspace's runs.
const ( RunsPermissionRead RunsPermissionType = "read" RunsPermissionPlan RunsPermissionType = "plan" RunsPermissionApply RunsPermissionType = "apply" )
func RunsPermission ¶ added in v0.9.0
func RunsPermission(v RunsPermissionType) *RunsPermissionType
RunsPermission returns a pointer to the given team runs permission type.
type SAMLSettings ¶ added in v0.13.0
type SAMLSettings interface { // Read returns the SAML settings. Read(ctx context.Context) (*AdminSAMLSetting, error) // Update updates the SAML settings. Update(ctx context.Context, options AdminSAMLSettingsUpdateOptions) (*AdminSAMLSetting, error) // RevokeIdpCert revokes the older IdP certificate when the new IdP // certificate is known to be functioning correctly. RevokeIdpCert(ctx context.Context) (*AdminSAMLSetting, error) }
SAMLSettings describes all the SAML admin settings for the Admin Setting API. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings
type SMTPAuthType ¶ added in v0.13.0
type SMTPAuthType string
SMTPAuthType represents valid SMTP Auth types.
const ( SMTPAuthNone SMTPAuthType = "none" SMTPAuthPlain SMTPAuthType = "plain" SMTPAuthLogin SMTPAuthType = "login" )
List of all SMTP auth types.
func SMTPAuthValue ¶ added in v0.13.0
func SMTPAuthValue(v SMTPAuthType) *SMTPAuthType
SMTPAuthValue returns a pointer to a given smtp auth type.
type SMTPSettings ¶ added in v0.13.0
type SMTPSettings interface { // Read returns the SMTP settings. Read(ctx context.Context) (*AdminSMTPSetting, error) // Update updates SMTP settings. Update(ctx context.Context, options AdminSMTPSettingsUpdateOptions) (*AdminSMTPSetting, error) }
SMTPSettings describes all the SMTP admin settings for the Admin Setting API https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings
type SSHKeyCreateOptions ¶
type SSHKeyCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,ssh-keys"` // A name to identify the SSH key. Name *string `jsonapi:"attr,name"` // The content of the SSH private key. Value *string `jsonapi:"attr,value"` }
SSHKeyCreateOptions represents the options for creating an SSH key.
type SSHKeyList ¶ added in v0.2.0
type SSHKeyList struct { *Pagination Items []*SSHKey }
SSHKeyList represents a list of SSH keys.
type SSHKeyListOptions ¶
type SSHKeyListOptions struct {
ListOptions
}
SSHKeyListOptions represents the options for listing SSH keys.
type SSHKeyUpdateOptions ¶
type SSHKeyUpdateOptions struct { // For internal use only! ID string `jsonapi:"primary,ssh-keys"` // Optional: A new name to identify the SSH key. Name *string `jsonapi:"attr,name,omitempty"` }
SSHKeyUpdateOptions represents the options for updating an SSH key.
type SSHKeys ¶
type SSHKeys interface { // List all the SSH keys for a given organization List(ctx context.Context, organization string, options *SSHKeyListOptions) (*SSHKeyList, error) // Create an SSH key and associate it with an organization. Create(ctx context.Context, organization string, options SSHKeyCreateOptions) (*SSHKey, error) // Read an SSH key by its ID. Read(ctx context.Context, sshKeyID string) (*SSHKey, error) // Update an SSH key by its ID. Update(ctx context.Context, sshKeyID string, options SSHKeyUpdateOptions) (*SSHKey, error) // Delete an SSH key by its ID. Delete(ctx context.Context, sshKeyID string) error }
SSHKeys describes all the SSH key related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/ssh-keys
type SentinelMocksPermissionType ¶ added in v0.9.0
type SentinelMocksPermissionType string
SentinelMocksPermissionType represents the permissiontype to a workspace's Sentinel mocks.
const ( SentinelMocksPermissionNone SentinelMocksPermissionType = "none" SentinelMocksPermissionRead SentinelMocksPermissionType = "read" )
func SentinelMocksPermission ¶ added in v0.9.0
func SentinelMocksPermission(v SentinelMocksPermissionType) *SentinelMocksPermissionType
SentinelMocksPermission returns a pointer to the given team Sentinel mocks permission type.
type ServiceProviderType ¶
type ServiceProviderType string
ServiceProviderType represents a VCS type.
const ( ServiceProviderAzureDevOpsServer ServiceProviderType = "ado_server" ServiceProviderAzureDevOpsServices ServiceProviderType = "ado_services" ServiceProviderBitbucketDataCenter ServiceProviderType = "bitbucket_data_center" ServiceProviderBitbucket ServiceProviderType = "bitbucket_hosted" // Bitbucket Server v5.4.0 and above ServiceProviderBitbucketServer ServiceProviderType = "bitbucket_server" // Bitbucket Server v5.3.0 and below ServiceProviderBitbucketServerLegacy ServiceProviderType = "bitbucket_server_legacy" ServiceProviderGithub ServiceProviderType = "github" ServiceProviderGithubEE ServiceProviderType = "github_enterprise" ServiceProviderGitlab ServiceProviderType = "gitlab_hosted" ServiceProviderGitlabCE ServiceProviderType = "gitlab_community_edition" ServiceProviderGitlabEE ServiceProviderType = "gitlab_enterprise_edition" )
List of available VCS types.
func ServiceProvider ¶
func ServiceProvider(v ServiceProviderType) *ServiceProviderType
ServiceProvider returns a pointer to the given service provider type.
type SourceableChoice ¶ added in v1.42.0
type SourceableChoice struct {
Workspace *Workspace
}
SourceableChoice is a choice type struct that represents the possible values within a polymorphic relation. If a value is available, exactly one field will be non-nil.
type Stack ¶ added in v1.58.0
type Stack struct { ID string `jsonapi:"primary,stacks"` Name string `jsonapi:"attr,name"` Description string `jsonapi:"attr,description"` DeploymentNames []string `jsonapi:"attr,deployment-names"` VCSRepo *StackVCSRepo `jsonapi:"attr,vcs-repo"` ErrorsCount int `jsonapi:"attr,errors-count"` WarningsCount int `jsonapi:"attr,warnings-count"` SpeculativeEnabled bool `jsonapi:"attr,speculative-enabled"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` UpdatedAt time.Time `jsonapi:"attr,updated-at,iso8601"` // Relationships Project *Project `jsonapi:"relation,project"` LatestStackConfiguration *StackConfiguration `jsonapi:"relation,latest-stack-configuration"` }
Stack represents a stack.
type StackComponent ¶ added in v1.60.0
type StackComponent struct { Name string `json:"name"` Correlator string `json:"correlator"` Expanded bool `json:"expanded"` }
StackComponent represents a stack component, specified by configuration
type StackConfiguration ¶ added in v1.60.0
type StackConfiguration struct { // Attributes ID string `jsonapi:"primary,stack-configurations"` Status string `jsonapi:"attr,status"` StatusTimestamps *StackConfigurationStatusTimestamps `jsonapi:"attr,status-timestamps"` SequenceNumber int `jsonapi:"attr,sequence-number"` DeploymentNames []string `jsonapi:"attr,deployment-names"` ConvergedDeployments []string `jsonapi:"attr,converged-deployments"` Components []*StackComponent `jsonapi:"attr,components"` ErrorMessage *string `jsonapi:"attr,error-message"` EventStreamURL string `jsonapi:"attr,event-stream-url"` Diagnostics []*StackDiagnostic `jsonapi:"attr,diags"` }
StackConfiguration represents a stack configuration snapshot
type StackConfigurationStatus ¶ added in v1.63.0
type StackConfigurationStatus string
const ( StackConfigurationStatusPending StackConfigurationStatus = "pending" StackConfigurationStatusQueued StackConfigurationStatus = "queued" StackConfigurationStatusPreparing StackConfigurationStatus = "preparing" StackConfigurationStatusEnqueueing StackConfigurationStatus = "enqueueing" StackConfigurationStatusConverged StackConfigurationStatus = "converged" StackConfigurationStatusConverging StackConfigurationStatus = "converging" StackConfigurationStatusErrored StackConfigurationStatus = "errored" StackConfigurationStatusCanceled StackConfigurationStatus = "canceled" )
func (StackConfigurationStatus) String ¶ added in v1.63.0
func (s StackConfigurationStatus) String() string
type StackConfigurationStatusTimestamps ¶ added in v1.60.0
type StackConfigurationStatusTimestamps struct { QueuedAt *time.Time `jsonapi:"attr,queued-at,omitempty,rfc3339"` CompletedAt *time.Time `jsonapi:"attr,completed-at,omitempty,rfc3339"` PreparingAt *time.Time `jsonapi:"attr,preparing-at,omitempty,rfc3339"` EnqueueingAt *time.Time `jsonapi:"attr,enqueueing-at,omitempty,rfc3339"` CanceledAt *time.Time `jsonapi:"attr,canceled-at,omitempty,rfc3339"` ErroredAt *time.Time `jsonapi:"attr,errored-at,omitempty,rfc3339"` }
StackConfigurationStatusTimestamps represents the timestamps for a stack configuration
type StackConfigurations ¶ added in v1.60.0
type StackConfigurations interface { // ReadConfiguration returns a stack configuration by its ID. Read(ctx context.Context, id string) (*StackConfiguration, error) // JSONSchemas returns a byte slice of the JSON schema for the stack configuration. JSONSchemas(ctx context.Context, stackConfigurationID string) ([]byte, error) // AwaitCompleted generates a channel that will receive the status of the // stack configuration as it progresses, until that status is "converged", // "converging", "errored", "canceled". AwaitCompleted(ctx context.Context, stackConfigurationID string) <-chan WaitForStatusResult // AwaitPrepared generates a channel that will receive the status of the // stack configuration as it progresses, until that status is "<status>", // "errored", "canceled". AwaitStatus(ctx context.Context, stackConfigurationID string, status StackConfigurationStatus) <-chan WaitForStatusResult }
StackConfigurations describes all the stacks configurations-related methods that the HCP Terraform API supports. NOTE WELL: This is a beta feature and is subject to change until noted otherwise in the release notes.
type StackCreateOptions ¶ added in v1.58.0
type StackCreateOptions struct { Type string `jsonapi:"primary,stacks"` Name string `jsonapi:"attr,name"` Description *string `jsonapi:"attr,description,omitempty"` VCSRepo *StackVCSRepoOptions `jsonapi:"attr,vcs-repo"` Project *Project `jsonapi:"relation,project"` }
StackCreateOptions represents the options for creating a stack. The project relation is required.
type StackDeployment ¶ added in v1.60.0
type StackDeployment struct { // Attributes ID string `jsonapi:"primary,stack-deployments"` Name string `jsonapi:"attr,name"` Status string `jsonapi:"attr,status"` DeployedAt time.Time `jsonapi:"attr,deployed-at,iso8601"` ErrorsCount int `jsonapi:"attr,errors-count"` WarningsCount int `jsonapi:"attr,warnings-count"` PausedCount int `jsonapi:"attr,paused-count"` // Relationships CurrentStackState *StackState `jsonapi:"relation,current-stack-state"` }
StackDeployment represents a stack deployment, specified by configuration
type StackDeployments ¶ added in v1.60.0
type StackDeployments interface { // Read returns a stack deployment by its name. Read(ctx context.Context, stackID, deployment string) (*StackDeployment, error) }
StackDeployments describes all the stacks deployments-related methods that the HCP Terraform API supports. NOTE WELL: This is a beta feature and is subject to change until noted otherwise in the release notes.
type StackDiagnostic ¶ added in v1.63.0
type StackDiagnostic struct { Severity string `jsonapi:"attr,severity"` Summary string `jsonapi:"attr,summary"` Detail string `jsonapi:"attr,detail"` Range *DiagnosticRange `jsonapi:"attr,range"` }
StackDiagnostic represents any sourcebundle.Diagnostic value. The simplest form has just a severity, single line summary, and optional detail. If there is more information about the source of the diagnostic, this is represented in the range field.
type StackIncludeOpt ¶ added in v1.64.0
type StackIncludeOpt string
StackIncludeOpt represents the include options for a stack.
const ( StackIncludeOrganization StackIncludeOpt = "organization" StackIncludeProject StackIncludeOpt = "project" StackIncludeLatestStackConfiguration StackIncludeOpt = "latest_stack_configuration" StackIncludeStackDiagnostics StackIncludeOpt = "stack_diagnostics" )
type StackList ¶ added in v1.58.0
type StackList struct { *Pagination Items []*Stack }
StackList represents a list of stacks.
type StackListOptions ¶ added in v1.58.0
type StackListOptions struct { ListOptions ProjectID string `url:"filter[project[id]],omitempty"` Sort StackSortColumn `url:"sort,omitempty"` SearchByName string `url:"search[name],omitempty"` Include []StackIncludeOpt `url:"include,omitempty"` }
StackListOptions represents the options for listing stacks.
type StackPlan ¶ added in v1.60.0
type StackPlan struct { ID string `jsonapi:"primary,stack-plans"` PlanMode string `jsonapi:"attr,plan-mode"` PlanNumber string `jsonapi:"attr,plan-number"` Status StackPlanStatus `jsonapi:"attr,status"` StatusTimestamps *StackPlanStatusTimestamps `jsonapi:"attr,status-timestamps"` IsPlanned bool `jsonapi:"attr,is-planned"` Changes *PlanChanges `jsonapi:"attr,changes"` Deployment string `jsonapi:"attr,deployment"` // Relationships StackConfiguration *StackConfiguration `jsonapi:"relation,stack-configuration"` Stack *Stack `jsonapi:"relation,stack"` StackPlanOperations []*StackPlanOperation `jsonapi:"relation,stack-plan-operations"` }
StackPlan represents a plan for a stack.
type StackPlanList ¶ added in v1.60.0
type StackPlanList struct { *Pagination Items []*StackPlan }
type StackPlanOperation ¶ added in v1.62.0
type StackPlanOperation struct { ID string `jsonapi:"primary,stack-plan-operations"` Type string `jsonapi:"attr,operation-type"` Status string `jsonapi:"attr,status"` EventStreamURL string `jsonapi:"attr,event-stream-url"` Diagnostics []*StackDiagnostic `jsonapi:"attr,diags"` // Relations StackPlan *StackPlan `jsonapi:"relation,stack-plan"` }
type StackPlanOperations ¶ added in v1.62.0
type StackPlanOperations interface { // Read returns a stack plan operation by its ID. Read(ctx context.Context, stackPlanOperationID string) (*StackPlanOperation, error) // Get Stack Plans from Configuration Version DownloadEventStream(ctx context.Context, stackPlanOperationID string) ([]byte, error) }
NOTE WELL: This is a beta feature and is subject to change until noted otherwise in the release notes.
type StackPlanStatus ¶ added in v1.63.0
type StackPlanStatus string
const ( StackPlanStatusCreated StackPlanStatus = "created" StackPlanStatusRunning StackPlanStatus = "running" StackPlanStatusRunningQueued StackPlanStatus = "running_queued" StackPlanStatusRunningPlanning StackPlanStatus = "running_planning" StackPlanStatusRunningApplying StackPlanStatus = "running_applying" StackPlanStatusFinished StackPlanStatus = "finished" StackPlanStatusFinishedNoChanges StackPlanStatus = "finished_no_changes" StackPlanStatusFinishedPlanned StackPlanStatus = "finished_planned" StackPlanStatusFinishedApplied StackPlanStatus = "finished_applied" StackPlanStatusDiscarded StackPlanStatus = "discarded" StackPlanStatusErrored StackPlanStatus = "errored" StackPlanStatusCanceled StackPlanStatus = "canceled" )
func (StackPlanStatus) String ¶ added in v1.63.0
func (s StackPlanStatus) String() string
type StackPlanStatusTimestamps ¶ added in v1.60.0
type StackPlanStatusTimestamps struct { CreatedAt time.Time `jsonapi:"attr,created-at,rfc3339"` RunningAt time.Time `jsonapi:"attr,running-at,rfc3339"` PausedAt time.Time `jsonapi:"attr,paused-at,rfc3339"` FinishedAt time.Time `jsonapi:"attr,finished-at,rfc3339"` }
StackPlanStatusTimestamps are the timestamps of the status changes for a stack
type StackPlans ¶ added in v1.60.0
type StackPlans interface { // Read returns a stack plan by its ID. Read(ctx context.Context, stackPlanID string) (*StackPlan, error) // ListByConfiguration returns a list of stack plans for a given stack configuration. ListByConfiguration(ctx context.Context, stackConfigurationID string, options *StackPlansListOptions) (*StackPlanList, error) // Approve approves a stack plan. Approve(ctx context.Context, stackPlanID string) error // Cancel cancels a stack plan. Cancel(ctx context.Context, stackPlanID string) error // Discard discards a stack plan. Discard(ctx context.Context, stackPlanID string) error // PlanDescription returns the plan description for a stack plan. PlanDescription(ctx context.Context, stackPlanID string) (*JSONChangeDesc, error) // AwaitTerminal generates a channel that will receive the status of the stack plan as it progresses. // See WaitForStatusResult for more information. AwaitTerminal(ctx context.Context, stackPlanID string) <-chan WaitForStatusResult // AwaitRunning generates a channel that will receive the status of the stack plan as it progresses. // See WaitForStatusResult for more information. AwaitRunning(ctx context.Context, stackPlanID string) <-chan WaitForStatusResult }
StackPlans describes all the stacks plans-related methods that the HCP Terraform API supports. NOTE WELL: This is a beta feature and is subject to change until noted otherwise in the release notes.
type StackPlansIncludeOpt ¶ added in v1.62.0
type StackPlansIncludeOpt string
const (
StackPlansIncludeOperations StackPlansIncludeOpt = "stack_plan_operations"
)
type StackPlansListOptions ¶ added in v1.60.0
type StackPlansListOptions struct { ListOptions // Optional: A query string to filter plans by status. Status StackPlansStatusFilter `url:"filter[status],omitempty"` // Optional: A query string to filter plans by deployment. Deployment string `url:"filter[deployment],omitempty"` Include []StackPlansIncludeOpt `url:"include,omitempty"` }
type StackPlansStatusFilter ¶ added in v1.60.0
type StackPlansStatusFilter string
const ( StackPlansStatusFilterCreated StackPlansStatusFilter = "created" StackPlansStatusFilterRunning StackPlansStatusFilter = "running" StackPlansStatusFilterPaused StackPlansStatusFilter = "paused" StackPlansStatusFilterFinished StackPlansStatusFilter = "finished" StackPlansStatusFilterDiscarded StackPlansStatusFilter = "discarded" StackPlansStatusFilterErrored StackPlansStatusFilter = "errored" StackPlansStatusFilterCanceled StackPlansStatusFilter = "canceled" )
type StackReadOptions ¶ added in v1.64.0
type StackReadOptions struct {
Include []StackIncludeOpt `url:"include,omitempty"`
}
type StackSortColumn ¶ added in v1.58.0
type StackSortColumn string
StackSortColumn represents a string that can be used to sort items when using the List method.
const ( // StackSortByName sorts by the name attribute. StackSortByName StackSortColumn = "name" // StackSortByUpdatedAt sorts by the updated-at attribute. StackSortByUpdatedAt StackSortColumn = "updated-at" // StackSortByNameDesc sorts by the name attribute in descending order. StackSortByNameDesc StackSortColumn = "-name" // StackSortByUpdatedAtDesc sorts by the updated-at attribute in descending order. StackSortByUpdatedAtDesc StackSortColumn = "-updated-at" )
type StackSource ¶ added in v1.63.0
type StackSource struct { ID string `jsonapi:"primary,stack-sources"` UploadURL *string `jsonapi:"attr,upload-url"` StackConfiguration *StackConfiguration `jsonapi:"relation,stack-configuration"` Stack *Stack `jsonapi:"relation,stack"` }
StackSource represents a source of Terraform Stacks configuration files.
type StackSources ¶ added in v1.63.0
type StackSources interface { // Read retrieves a stack source by its ID. Read(ctx context.Context, stackSourceID string) (*StackSource, error) // CreateAndUpload packages and uploads the specified Terraform Stacks // configuration files in association with a Stack. CreateAndUpload(ctx context.Context, stackID string, path string, opts *CreateStackSourceOptions) (*StackSource, error) // UploadTarGzip is used to upload Terraform configuration files contained a tar gzip archive. // Any stream implementing io.Reader can be passed into this method. This method is also // particularly useful for tar streams created by non-default go-slug configurations. // // **Note**: This method does not validate the content being uploaded and is therefore the caller's // responsibility to ensure the raw content is a valid Terraform configuration. UploadTarGzip(ctx context.Context, uploadURL string, archive io.Reader) error }
StackSources describes all the stack-sources related methods that the HCP Terraform API supports. NOTE WELL: This is a beta feature and is subject to change until noted otherwise in the release notes.
type StackState ¶ added in v1.60.0
type StackState struct { // Attributes ID string `jsonapi:"primary,stack-states"` }
StackState represents a stack state
type StackUpdateOptions ¶ added in v1.58.0
type StackUpdateOptions struct { Name *string `jsonapi:"attr,name,omitempty"` Description *string `jsonapi:"attr,description,omitempty"` VCSRepo *StackVCSRepoOptions `jsonapi:"attr,vcs-repo,omitempty"` }
StackUpdateOptions represents the options for updating a stack.
type StackVCSRepo ¶ added in v1.58.0
type StackVCSRepo struct { Identifier string `jsonapi:"attr,identifier"` Branch string `jsonapi:"attr,branch,omitempty"` GHAInstallationID string `jsonapi:"attr,github-app-installation-id,omitempty"` OAuthTokenID string `jsonapi:"attr,oauth-token-id,omitempty"` }
StackVCSRepo represents the version control system repository for a stack.
type StackVCSRepoOptions ¶ added in v1.74.0
type StackVCSRepoOptions struct { Identifier string `json:"identifier"` Branch string `json:"branch,omitempty"` GHAInstallationID string `json:"github-app-installation-id,omitempty"` OAuthTokenID string `json:"oauth-token-id,omitempty"` }
StackVCSRepoOptions
type Stacks ¶ added in v1.58.0
type Stacks interface { // List returns a list of stacks, optionally filtered by project. List(ctx context.Context, organization string, options *StackListOptions) (*StackList, error) // Read returns a stack by its ID. Read(ctx context.Context, stackID string, options *StackReadOptions) (*Stack, error) // Create creates a new stack. Create(ctx context.Context, options StackCreateOptions) (*Stack, error) // Update updates a stack. Update(ctx context.Context, stackID string, options StackUpdateOptions) (*Stack, error) // Delete deletes a stack. Delete(ctx context.Context, stackID string) error // ForceDelete deletes a stack. ForceDelete(ctx context.Context, stackID string) error // UpdateConfiguration updates the configuration of a stack, triggering stack preparation. UpdateConfiguration(ctx context.Context, stackID string) (*Stack, error) }
Stacks describes all the stacks-related methods that the HCP Terraform API supports. NOTE WELL: This is a beta feature and is subject to change until noted otherwise in the release notes.
type Stage ¶ added in v0.26.0
type Stage string
Stage is an enum that represents the possible run stages for run tasks
type StateVersion ¶
type StateVersion struct { ID string `jsonapi:"primary,state-versions"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` DownloadURL string `jsonapi:"attr,hosted-state-download-url"` UploadURL string `jsonapi:"attr,hosted-state-upload-url"` Status StateVersionStatus `jsonapi:"attr,status"` JSONUploadURL string `jsonapi:"attr,hosted-json-state-upload-url"` JSONDownloadURL string `jsonapi:"attr,hosted-json-state-download-url"` Serial int64 `jsonapi:"attr,serial"` VCSCommitSHA string `jsonapi:"attr,vcs-commit-sha"` VCSCommitURL string `jsonapi:"attr,vcs-commit-url"` BillableRUMCount *uint32 `jsonapi:"attr,billable-rum-count"` // Whether HCP Terraform has finished populating any StateVersion fields that required async processing. // If `false`, some fields may appear empty even if they should actually contain data; see comments on // individual fields for details. ResourcesProcessed bool `jsonapi:"attr,resources-processed"` StateVersion int `jsonapi:"attr,state-version"` // Populated asynchronously. TerraformVersion string `jsonapi:"attr,terraform-version"` // Populated asynchronously. Modules *StateVersionModules `jsonapi:"attr,modules"` // Populated asynchronously. Providers *StateVersionProviders `jsonapi:"attr,providers"` // Populated asynchronously. Resources []*StateVersionResources `jsonapi:"attr,resources"` // Relations Run *Run `jsonapi:"relation,run"` Outputs []*StateVersionOutput `jsonapi:"relation,outputs"` }
StateVersion represents a Terraform Enterprise state version.
type StateVersionCreateOptions ¶
type StateVersionCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,state-versions"` // Optional: The lineage of the state. Lineage *string `jsonapi:"attr,lineage,omitempty"` // Required: The MD5 hash of the state version. MD5 *string `jsonapi:"attr,md5"` // Required: The serial of the state. Serial *int64 `jsonapi:"attr,serial"` // Optional: The base64 encoded state. State *string `jsonapi:"attr,state,omitempty"` // Optional: Force can be set to skip certain validations. Wrong use // of this flag can cause data loss, so USE WITH CAUTION! Force *bool `jsonapi:"attr,force,omitempty"` // Optional: Specifies the run to associate the state with. Run *Run `jsonapi:"relation,run,omitempty"` // Optional: The external, json representation of state data, base64 encoded. // https://developer.hashicorp.com/terraform/internals/json-format#state-representation // Supplying this state representation can provide more details to the platform // about the current terraform state. JSONState *string `jsonapi:"attr,json-state,omitempty"` // Optional: The external, json representation of state outputs, base64 encoded. Supplying this field // will provide more detailed output type information to TFE. // For more information on the contents of this field: https://developer.hashicorp.com/terraform/internals/json-format#values-representation // about the current terraform state. JSONStateOutputs *string `jsonapi:"attr,json-state-outputs,omitempty"` }
StateVersionCreateOptions represents the options for creating a state version.
type StateVersionCurrentOptions ¶ added in v0.11.0
type StateVersionCurrentOptions struct { // Optional: A list of relations to include. See available resources: // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions#available-related-resources Include []StateVersionIncludeOpt `url:"include,omitempty"` }
StateVersionCurrentOptions represents the options for reading the current state version.
type StateVersionIncludeOpt ¶ added in v1.0.0
type StateVersionIncludeOpt string
StateVersionIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions#available-related-resources
const ( SVcreatedby StateVersionIncludeOpt = "created_by" SVrun StateVersionIncludeOpt = "run" SVrunCreatedBy StateVersionIncludeOpt = "run.created_by" SVrunConfigurationVersion StateVersionIncludeOpt = "run.configuration_version" SVoutputs StateVersionIncludeOpt = "outputs" )
type StateVersionList ¶ added in v0.2.0
type StateVersionList struct { *Pagination Items []*StateVersion }
StateVersionList represents a list of state versions.
type StateVersionListOptions ¶
type StateVersionListOptions struct { ListOptions Organization string `url:"filter[organization][name]"` Workspace string `url:"filter[workspace][name]"` }
StateVersionListOptions represents the options for listing state versions.
type StateVersionModuleRoot ¶ added in v1.7.0
type StateVersionModules ¶ added in v1.7.0
type StateVersionModules struct {
Root StateVersionModuleRoot `jsonapi:"attr,root"`
}
type StateVersionOutput ¶ added in v0.11.0
type StateVersionOutput struct { ID string `jsonapi:"primary,state-version-outputs"` Name string `jsonapi:"attr,name"` Sensitive bool `jsonapi:"attr,sensitive"` Type string `jsonapi:"attr,type"` Value interface{} `jsonapi:"attr,value"` // BETA: This field is experimental and not universally present in all versions of TFE/Terraform DetailedType interface{} `jsonapi:"attr,detailed-type"` }
StateVersionOutput represents a State Version Outputs
type StateVersionOutputs ¶ added in v0.11.0
type StateVersionOutputs interface { Read(ctx context.Context, outputID string) (*StateVersionOutput, error) ReadCurrent(ctx context.Context, workspaceID string) (*StateVersionOutputsList, error) }
State version outputs are the output values from a Terraform state file. They include the name and value of the output, as well as a sensitive boolean if the value should be hidden by default in UIs.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-version-outputs
type StateVersionOutputsList ¶ added in v0.18.0
type StateVersionOutputsList struct { *Pagination Items []*StateVersionOutput }
StateVersionOutputsList represents a list of StateVersionOutput items.
type StateVersionOutputsListOptions ¶ added in v0.18.0
type StateVersionOutputsListOptions struct {
ListOptions
}
StateVersionOutputsListOptions represents the options for listing state version outputs.
type StateVersionProviders ¶ added in v1.7.0
type StateVersionProviders struct {
Data ProviderData `jsonapi:"attr,provider[map]string"`
}
type StateVersionReadOptions ¶ added in v0.11.0
type StateVersionReadOptions struct { // Optional: A list of relations to include. See available resources: // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions#available-related-resources Include []StateVersionIncludeOpt `url:"include,omitempty"` }
StateVersionReadOptions represents the options for reading state version.
type StateVersionResources ¶ added in v1.7.0
type StateVersionStatus ¶ added in v1.28.0
type StateVersionStatus string
StateVersionStatus are available state version status values
const ( StateVersionPending StateVersionStatus = "pending" StateVersionFinalized StateVersionStatus = "finalized" StateVersionDiscarded StateVersionStatus = "discarded" )
Available state version statuses.
type StateVersionUploadOptions ¶ added in v1.28.0
type StateVersionUploadOptions struct { StateVersionCreateOptions RawState []byte RawJSONState []byte }
type StateVersions ¶
type StateVersions interface { // List all the state versions for a given workspace. List(ctx context.Context, options *StateVersionListOptions) (*StateVersionList, error) // Create a new state version for the given workspace. Create(ctx context.Context, workspaceID string, options StateVersionCreateOptions) (*StateVersion, error) // Upload creates a new state version but uploads the state content directly to the object store. // This is a more resilient form of Create and is the recommended approach to creating state versions. Upload(ctx context.Context, workspaceID string, options StateVersionUploadOptions) (*StateVersion, error) // Read a state version by its ID. Read(ctx context.Context, svID string) (*StateVersion, error) // ReadWithOptions reads a state version by its ID using the options supplied ReadWithOptions(ctx context.Context, svID string, options *StateVersionReadOptions) (*StateVersion, error) // ReadCurrent reads the latest available state from the given workspace. ReadCurrent(ctx context.Context, workspaceID string) (*StateVersion, error) // ReadCurrentWithOptions reads the latest available state from the given workspace using the options supplied ReadCurrentWithOptions(ctx context.Context, workspaceID string, options *StateVersionCurrentOptions) (*StateVersion, error) // Download retrieves the actual stored state of a state version Download(ctx context.Context, url string) ([]byte, error) // ListOutputs retrieves all the outputs of a state version by its ID. IMPORTANT: HCP Terraform might // process outputs asynchronously. When consuming outputs or other async StateVersion fields, be sure to // wait for ResourcesProcessed to become `true` before assuming they are empty. ListOutputs(ctx context.Context, svID string, options *StateVersionOutputsListOptions) (*StateVersionOutputsList, error) // SoftDeleteBackingData soft deletes the state version's backing data // **Note: This functionality is only available in Terraform Enterprise.** SoftDeleteBackingData(ctx context.Context, svID string) error // RestoreBackingData restores a soft deleted state version's backing data // **Note: This functionality is only available in Terraform Enterprise.** RestoreBackingData(ctx context.Context, svID string) error // PermanentlyDeleteBackingData permanently deletes a soft deleted state version's backing data // **Note: This functionality is only available in Terraform Enterprise.** PermanentlyDeleteBackingData(ctx context.Context, svID string) error }
StateVersions describes all the state version related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/state-versions
type StateVersionsPermissionType ¶ added in v0.9.0
type StateVersionsPermissionType string
StateVersionsPermissionType represents the permissiontype to a workspace's state versions.
const ( StateVersionsPermissionNone StateVersionsPermissionType = "none" StateVersionsPermissionReadOutputs StateVersionsPermissionType = "read-outputs" StateVersionsPermissionRead StateVersionsPermissionType = "read" StateVersionsPermissionWrite StateVersionsPermissionType = "write" )
func StateVersionsPermission ¶ added in v0.9.0
func StateVersionsPermission(v StateVersionsPermissionType) *StateVersionsPermissionType
StateVersionsPermission returns a pointer to the given team state versions permission type.
type Tag ¶ added in v0.19.0
Tag is owned by an organization and applied to workspaces. Used for grouping and search.
type TagBinding ¶ added in v1.69.0
type TagList ¶ added in v0.19.0
type TagList struct { *Pagination Items []*Tag }
type TaskEnforcementLevel ¶ added in v0.26.0
type TaskEnforcementLevel string
TaskEnforcementLevel is an enum that describes the enforcement levels for a run task
const ( Advisory TaskEnforcementLevel = "advisory" Mandatory TaskEnforcementLevel = "mandatory" )
type TaskResult ¶ added in v0.26.0
type TaskResult struct { ID string `jsonapi:"primary,task-results"` Status TaskResultStatus `jsonapi:"attr,status"` Message string `jsonapi:"attr,message"` StatusTimestamps TaskResultStatusTimestamps `jsonapi:"attr,status-timestamps"` URL string `jsonapi:"attr,url"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` UpdatedAt time.Time `jsonapi:"attr,updated-at,iso8601"` TaskID string `jsonapi:"attr,task-id"` TaskName string `jsonapi:"attr,task-name"` TaskURL string `jsonapi:"attr,task-url"` WorkspaceTaskID string `jsonapi:"attr,workspace-task-id"` WorkspaceTaskEnforcementLevel TaskEnforcementLevel `jsonapi:"attr,workspace-task-enforcement-level"` // The task stage this result belongs to TaskStage *TaskStage `jsonapi:"relation,task_stage"` }
TaskResult represents the result of a HCP Terraform or Terraform Enterprise run task
type TaskResultCallbackRequestOptions ¶ added in v1.59.0
type TaskResultCallbackRequestOptions struct { Type string `jsonapi:"primary,task-results"` Status TaskResultStatus `jsonapi:"attr,status"` Message string `jsonapi:"attr,message,omitempty"` URL string `jsonapi:"attr,url,omitempty"` Outcomes []*TaskResultOutcome `jsonapi:"relation,outcomes,omitempty"` }
TaskResultCallbackRequestOptions represents the TFC/E Task result callback request https://developer.hashicorp.com/terraform/enterprise/api-docs/run-tasks/run-tasks-integration#request-body-1
type TaskResultOutcome ¶ added in v1.59.0
type TaskResultOutcome struct { Type string `jsonapi:"primary,task-result-outcomes"` OutcomeID string `jsonapi:"attr,outcome-id,omitempty"` Description string `jsonapi:"attr,description,omitempty"` Body string `jsonapi:"attr,body,omitempty"` URL string `jsonapi:"attr,url,omitempty"` Tags map[string][]*TaskResultTag `jsonapi:"attr,tags,omitempty"` }
TaskResultOutcome represents a detailed TFC/E run task outcome, which improves result visibility and content in the TFC/E UI. https://developer.hashicorp.com/terraform/enterprise/api-docs/run-tasks/run-tasks-integration#outcomes-payload-body
type TaskResultStatus ¶ added in v0.26.0
type TaskResultStatus string
TaskResultStatus is an enum that represents all possible statuses for a task result
const ( TaskPassed TaskResultStatus = "passed" TaskFailed TaskResultStatus = "failed" TaskPending TaskResultStatus = "pending" TaskRunning TaskResultStatus = "running" TaskUnreachable TaskResultStatus = "unreachable" TaskErrored TaskResultStatus = "errored" )
type TaskResultStatusTimestamps ¶ added in v0.26.0
type TaskResultStatusTimestamps struct { ErroredAt time.Time `jsonapi:"attr,errored-at,rfc3339"` RunningAt time.Time `jsonapi:"attr,running-at,rfc3339"` CanceledAt time.Time `jsonapi:"attr,canceled-at,rfc3339"` FailedAt time.Time `jsonapi:"attr,failed-at,rfc3339"` PassedAt time.Time `jsonapi:"attr,passed-at,rfc3339"` }
TaskResultStatusTimestamps represents the set of timestamps recorded for a task result
type TaskResultTag ¶ added in v1.59.0
TaskResultTag can be used to enrich outcomes display list in TFC/E. https://developer.hashicorp.com/terraform/enterprise/api-docs/run-tasks/run-tasks-integration#severity-and-status-tags
type TaskResults ¶ added in v0.26.0
type TaskResults interface { // Read a task result by ID Read(ctx context.Context, taskResultID string) (*TaskResult, error) }
TaskResults describes all the task result related methods that the HCP Terraform or Terraform Enterprise API supports.
type TaskStage ¶ added in v0.26.0
type TaskStage struct { ID string `jsonapi:"primary,task-stages"` Stage Stage `jsonapi:"attr,stage"` Status TaskStageStatus `jsonapi:"attr,status"` StatusTimestamps TaskStageStatusTimestamps `jsonapi:"attr,status-timestamps"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` UpdatedAt time.Time `jsonapi:"attr,updated-at,iso8601"` Permissions *Permissions `jsonapi:"attr,permissions"` Actions *Actions `jsonapi:"attr,actions"` Run *Run `jsonapi:"relation,run"` TaskResults []*TaskResult `jsonapi:"relation,task-results"` PolicyEvaluations []*PolicyEvaluation `jsonapi:"relation,policy-evaluations"` }
TaskStage represents a HCP Terraform or Terraform Enterprise run's stage where run tasks can occur
type TaskStageIncludeOpt ¶ added in v1.0.0
type TaskStageIncludeOpt string
TaskStageIncludeOpt represents the available options for include query params.
const PolicyEvaluationsTaskResults TaskStageIncludeOpt = "policy_evaluations"
**Note: This field is still in BETA and subject to change.**
const TaskStageTaskResults TaskStageIncludeOpt = "task_results"
type TaskStageList ¶ added in v0.26.0
type TaskStageList struct { *Pagination Items []*TaskStage }
TaskStageList represents a list of task stages
type TaskStageListOptions ¶ added in v0.26.0
type TaskStageListOptions struct {
ListOptions
}
TaskStageListOptions represents the options for listing task stages for a run
type TaskStageOverrideOptions ¶ added in v1.13.0
type TaskStageOverrideOptions struct { // An optional explanation for why the stage was overridden Comment *string `json:"comment,omitempty"` }
TaskStageOverrideOptions represents the options for overriding a TaskStage.
type TaskStageReadOptions ¶ added in v0.26.0
type TaskStageReadOptions struct { // Optional: A list of relations to include. Include []TaskStageIncludeOpt `url:"include,omitempty"` }
TaskStageReadOptions represents the set of options when reading a task stage
type TaskStageStatus ¶ added in v1.13.0
type TaskStageStatus string
TaskStageStatus is an enum that represents all possible statuses for a task stage
const ( TaskStagePending TaskStageStatus = "pending" TaskStageRunning TaskStageStatus = "running" TaskStagePassed TaskStageStatus = "passed" TaskStageFailed TaskStageStatus = "failed" TaskStageAwaitingOverride TaskStageStatus = "awaiting_override" TaskStageCanceled TaskStageStatus = "canceled" TaskStageErrored TaskStageStatus = "errored" TaskStageUnreachable TaskStageStatus = "unreachable" )
type TaskStageStatusTimestamps ¶ added in v0.26.0
type TaskStageStatusTimestamps struct { ErroredAt time.Time `jsonapi:"attr,errored-at,rfc3339"` RunningAt time.Time `jsonapi:"attr,running-at,rfc3339"` CanceledAt time.Time `jsonapi:"attr,canceled-at,rfc3339"` FailedAt time.Time `jsonapi:"attr,failed-at,rfc3339"` PassedAt time.Time `jsonapi:"attr,passed-at,rfc3339"` }
TaskStageStatusTimestamps represents the set of timestamps recorded for a task stage
type TaskStages ¶ added in v0.26.0
type TaskStages interface { // Read a task stage by ID Read(ctx context.Context, taskStageID string, options *TaskStageReadOptions) (*TaskStage, error) // List all task stages for a given run List(ctx context.Context, runID string, options *TaskStageListOptions) (*TaskStageList, error) // **Note: This function is still in BETA and subject to change.** // Override a task stage for a given run Override(ctx context.Context, taskStageID string, options TaskStageOverrideOptions) (*TaskStage, error) }
TaskStages describes all the task stage related methods that the HCP Terraform and Terraform Enterprise API supports.
type Team ¶
type Team struct { ID string `jsonapi:"primary,teams"` IsUnified bool `jsonapi:"attr,is-unified"` Name string `jsonapi:"attr,name"` OrganizationAccess *OrganizationAccess `jsonapi:"attr,organization-access"` Visibility string `jsonapi:"attr,visibility"` Permissions *TeamPermissions `jsonapi:"attr,permissions"` UserCount int `jsonapi:"attr,users-count"` SSOTeamID string `jsonapi:"attr,sso-team-id"` // AllowMemberTokenManagement is false for TFE versions older than v202408 AllowMemberTokenManagement bool `jsonapi:"attr,allow-member-token-management"` // Relations Users []*User `jsonapi:"relation,users"` OrganizationMemberships []*OrganizationMembership `jsonapi:"relation,organization-memberships"` }
Team represents a Terraform Enterprise team.
type TeamAccess ¶
type TeamAccess struct { ID string `jsonapi:"primary,team-workspaces"` Access AccessType `jsonapi:"attr,access"` Runs RunsPermissionType `jsonapi:"attr,runs"` Variables VariablesPermissionType `jsonapi:"attr,variables"` StateVersions StateVersionsPermissionType `jsonapi:"attr,state-versions"` SentinelMocks SentinelMocksPermissionType `jsonapi:"attr,sentinel-mocks"` WorkspaceLocking bool `jsonapi:"attr,workspace-locking"` RunTasks bool `jsonapi:"attr,run-tasks"` // Relations Team *Team `jsonapi:"relation,team"` Workspace *Workspace `jsonapi:"relation,workspace"` }
TeamAccess represents the workspace access for a team.
type TeamAccessAddOptions ¶
type TeamAccessAddOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,team-workspaces"` // The type of access to grant. Access *AccessType `jsonapi:"attr,access"` // Custom workspace access permissions. These can only be edited when Access is 'custom'; otherwise, they are // read-only and reflect the Access level's implicit permissions. Runs *RunsPermissionType `jsonapi:"attr,runs,omitempty"` Variables *VariablesPermissionType `jsonapi:"attr,variables,omitempty"` StateVersions *StateVersionsPermissionType `jsonapi:"attr,state-versions,omitempty"` SentinelMocks *SentinelMocksPermissionType `jsonapi:"attr,sentinel-mocks,omitempty"` WorkspaceLocking *bool `jsonapi:"attr,workspace-locking,omitempty"` RunTasks *bool `jsonapi:"attr,run-tasks,omitempty"` // The team to add to the workspace Team *Team `jsonapi:"relation,team"` // The workspace to which the team is to be added. Workspace *Workspace `jsonapi:"relation,workspace"` }
TeamAccessAddOptions represents the options for adding team access.
type TeamAccessList ¶ added in v0.2.0
type TeamAccessList struct { *Pagination Items []*TeamAccess }
TeamAccessList represents a list of team accesses.
type TeamAccessListOptions ¶
type TeamAccessListOptions struct { ListOptions WorkspaceID string `url:"filter[workspace][id]"` }
TeamAccessListOptions represents the options for listing team accesses.
type TeamAccessUpdateOptions ¶ added in v0.9.0
type TeamAccessUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,team-workspaces"` // The type of access to grant. Access *AccessType `jsonapi:"attr,access,omitempty"` // Custom workspace access permissions. These can only be edited when Access is 'custom'; otherwise, they are // read-only and reflect the Access level's implicit permissions. Runs *RunsPermissionType `jsonapi:"attr,runs,omitempty"` Variables *VariablesPermissionType `jsonapi:"attr,variables,omitempty"` StateVersions *StateVersionsPermissionType `jsonapi:"attr,state-versions,omitempty"` SentinelMocks *SentinelMocksPermissionType `jsonapi:"attr,sentinel-mocks,omitempty"` WorkspaceLocking *bool `jsonapi:"attr,workspace-locking,omitempty"` RunTasks *bool `jsonapi:"attr,run-tasks,omitempty"` }
TeamAccessUpdateOptions represents the options for updating team access.
type TeamAccesses ¶
type TeamAccesses interface { // List all the team accesses for a given workspace. List(ctx context.Context, options *TeamAccessListOptions) (*TeamAccessList, error) // Add team access for a workspace. Add(ctx context.Context, options TeamAccessAddOptions) (*TeamAccess, error) // Read a team access by its ID. Read(ctx context.Context, teamAccessID string) (*TeamAccess, error) // Update a team access by its ID. Update(ctx context.Context, teamAccessID string, options TeamAccessUpdateOptions) (*TeamAccess, error) // Remove team access from a workspace. Remove(ctx context.Context, teamAccessID string) error }
TeamAccesses describes all the team access related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/team-access
type TeamCreateOptions ¶
type TeamCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,teams"` // Name of the team. Name *string `jsonapi:"attr,name"` // Optional: Unique Identifier to control team membership via SAML SSOTeamID *string `jsonapi:"attr,sso-team-id,omitempty"` // The team's organization access OrganizationAccess *OrganizationAccessOptions `jsonapi:"attr,organization-access,omitempty"` // The team's visibility ("secret", "organization") Visibility *string `jsonapi:"attr,visibility,omitempty"` // Optional: Used by Owners and users with "Manage Teams" permissions to control whether team members can manage team tokens AllowMemberTokenManagement *bool `jsonapi:"attr,allow-member-token-management,omitempty"` }
TeamCreateOptions represents the options for creating a team.
type TeamIncludeOpt ¶ added in v1.0.0
type TeamIncludeOpt string
TeamIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/cloud-docs/api-docs/teams#available-related-resources
const ( TeamUsers TeamIncludeOpt = "users" TeamOrganizationMemberships TeamIncludeOpt = "organization-memberships" )
type TeamList ¶ added in v0.2.0
type TeamList struct { *Pagination Items []*Team }
TeamList represents a list of teams.
type TeamListOptions ¶
type TeamListOptions struct { ListOptions // Optional: A list of relations to include. // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/teams#available-related-resources Include []TeamIncludeOpt `url:"include,omitempty"` // Optional: A list of team names to filter by. Names []string `url:"filter[names],omitempty"` // Optional: A query string to search teams by names. Query string `url:"q,omitempty"` }
TeamListOptions represents the options for listing teams.
type TeamMemberAddOptions ¶
TeamMemberAddOptions represents the options for adding or removing team members.
type TeamMemberRemoveOptions ¶
TeamMemberRemoveOptions represents the options for adding or removing team members.
type TeamMembers ¶
type TeamMembers interface { // List returns all Users of a team calling ListUsers // See ListOrganizationMemberships for fetching memberships List(ctx context.Context, teamID string) ([]*User, error) // ListUsers returns the Users of this team. ListUsers(ctx context.Context, teamID string) ([]*User, error) // ListOrganizationMemberships returns the OrganizationMemberships of this team. ListOrganizationMemberships(ctx context.Context, teamID string) ([]*OrganizationMembership, error) // Add multiple users to a team. Add(ctx context.Context, teamID string, options TeamMemberAddOptions) error // Remove multiple users from a team. Remove(ctx context.Context, teamID string, options TeamMemberRemoveOptions) error }
TeamMembers describes all the team member related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/team-members
type TeamPermissions ¶
type TeamPermissions struct { CanDestroy bool `jsonapi:"attr,can-destroy"` CanUpdateMembership bool `jsonapi:"attr,can-update-membership"` }
TeamPermissions represents the current user's permissions on the team.
type TeamProjectAccess ¶ added in v1.17.0
type TeamProjectAccess struct { ID string `jsonapi:"primary,team-projects"` Access TeamProjectAccessType `jsonapi:"attr,access"` ProjectAccess *TeamProjectAccessProjectPermissions `jsonapi:"attr,project-access"` WorkspaceAccess *TeamProjectAccessWorkspacePermissions `jsonapi:"attr,workspace-access"` // Relations Team *Team `jsonapi:"relation,team"` Project *Project `jsonapi:"relation,project"` }
TeamProjectAccess represents a project access for a team
type TeamProjectAccessAddOptions ¶ added in v1.17.0
type TeamProjectAccessAddOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,team-projects"` // The type of access to grant. Access TeamProjectAccessType `jsonapi:"attr,access"` // The levels that project and workspace permissions grant ProjectAccess *TeamProjectAccessProjectPermissionsOptions `jsonapi:"attr,project-access,omitempty"` WorkspaceAccess *TeamProjectAccessWorkspacePermissionsOptions `jsonapi:"attr,workspace-access,omitempty"` // The team to add to the project Team *Team `jsonapi:"relation,team"` // The project to which the team is to be added. Project *Project `jsonapi:"relation,project"` }
TeamProjectAccessAddOptions represents the options for adding team access for a project
type TeamProjectAccessList ¶ added in v1.17.0
type TeamProjectAccessList struct { *Pagination Items []*TeamProjectAccess }
TeamProjectAccessList represents a list of team project accesses
type TeamProjectAccessListOptions ¶ added in v1.17.0
type TeamProjectAccessListOptions struct { ListOptions ProjectID string `url:"filter[project][id]"` }
TeamProjectAccessListOptions represents the options for listing team project accesses
type TeamProjectAccessProjectPermissions ¶ added in v1.32.0
type TeamProjectAccessProjectPermissions struct { ProjectSettingsPermission ProjectSettingsPermissionType `jsonapi:"attr,settings"` ProjectTeamsPermission ProjectTeamsPermissionType `jsonapi:"attr,teams"` // ProjectVariableSetsPermission represents read, manage, and no access custom permission for project-level variable sets ProjectVariableSetsPermission ProjectVariableSetsPermissionType `jsonapi:"attr,variable-sets"` }
ProjectPermissions represents the team's permissions on its project
type TeamProjectAccessProjectPermissionsOptions ¶ added in v1.32.0
type TeamProjectAccessProjectPermissionsOptions struct { Settings *ProjectSettingsPermissionType `json:"settings,omitempty"` Teams *ProjectTeamsPermissionType `json:"teams,omitempty"` VariableSets *ProjectVariableSetsPermissionType `json:"variable-sets,omitempty"` }
type TeamProjectAccessType ¶ added in v1.17.0
type TeamProjectAccessType string
TeamProjectAccessType represents a team project access type.
const ( TeamProjectAccessAdmin TeamProjectAccessType = "admin" TeamProjectAccessMaintain TeamProjectAccessType = "maintain" TeamProjectAccessWrite TeamProjectAccessType = "write" TeamProjectAccessRead TeamProjectAccessType = "read" TeamProjectAccessCustom TeamProjectAccessType = "custom" )
func ProjectAccess ¶ added in v1.17.0
func ProjectAccess(v TeamProjectAccessType) *TeamProjectAccessType
ProjectAccess returns a pointer to the given team access project type.
type TeamProjectAccessUpdateOptions ¶ added in v1.17.0
type TeamProjectAccessUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,team-projects"` // The type of access to grant. Access *TeamProjectAccessType `jsonapi:"attr,access,omitempty"` ProjectAccess *TeamProjectAccessProjectPermissionsOptions `jsonapi:"attr,project-access,omitempty"` WorkspaceAccess *TeamProjectAccessWorkspacePermissionsOptions `jsonapi:"attr,workspace-access,omitempty"` }
TeamProjectAccessUpdateOptions represents the options for updating a team project access
type TeamProjectAccessWorkspacePermissions ¶ added in v1.32.0
type TeamProjectAccessWorkspacePermissions struct { WorkspaceRunsPermission WorkspaceRunsPermissionType `jsonapi:"attr,runs"` WorkspaceSentinelMocksPermission WorkspaceSentinelMocksPermissionType `jsonapi:"attr,sentinel-mocks"` WorkspaceStateVersionsPermission WorkspaceStateVersionsPermissionType `jsonapi:"attr,state-versions"` WorkspaceVariablesPermission WorkspaceVariablesPermissionType `jsonapi:"attr,variables"` WorkspaceCreatePermission bool `jsonapi:"attr,create"` WorkspaceLockingPermission bool `jsonapi:"attr,locking"` WorkspaceMovePermission bool `jsonapi:"attr,move"` WorkspaceDeletePermission bool `jsonapi:"attr,delete"` WorkspaceRunTasksPermission bool `jsonapi:"attr,run-tasks"` }
WorkspacePermissions represents the team's permission on all workspaces in its project
type TeamProjectAccessWorkspacePermissionsOptions ¶ added in v1.32.0
type TeamProjectAccessWorkspacePermissionsOptions struct { Runs *WorkspaceRunsPermissionType `json:"runs,omitempty"` SentinelMocks *WorkspaceSentinelMocksPermissionType `json:"sentinel-mocks,omitempty"` StateVersions *WorkspaceStateVersionsPermissionType `json:"state-versions,omitempty"` Variables *WorkspaceVariablesPermissionType `json:"variables,omitempty"` Create *bool `json:"create,omitempty"` Locking *bool `json:"locking,omitempty"` Move *bool `json:"move,omitempty"` Delete *bool `json:"delete,omitempty"` RunTasks *bool `json:"run-tasks,omitempty"` }
type TeamProjectAccesses ¶ added in v1.17.0
type TeamProjectAccesses interface { // List all project accesses for a given project. List(ctx context.Context, options TeamProjectAccessListOptions) (*TeamProjectAccessList, error) // Add team access for a project. Add(ctx context.Context, options TeamProjectAccessAddOptions) (*TeamProjectAccess, error) // Read team access by project ID. Read(ctx context.Context, teamProjectAccessID string) (*TeamProjectAccess, error) // Update team access on a project. Update(ctx context.Context, teamProjectAccessID string, options TeamProjectAccessUpdateOptions) (*TeamProjectAccess, error) // Remove team access from a project. Remove(ctx context.Context, teamProjectAccessID string) error }
TeamProjectAccesses describes all the team project access related methods that the Terraform Enterprise API supports
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/project-team-access
type TeamToken ¶
type TeamToken struct { ID string `jsonapi:"primary,authentication-tokens"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` Description string `jsonapi:"attr,description"` LastUsedAt time.Time `jsonapi:"attr,last-used-at,iso8601"` Token string `jsonapi:"attr,token"` ExpiredAt time.Time `jsonapi:"attr,expired-at,iso8601"` CreatedBy *CreatedByChoice `jsonapi:"polyrelation,created-by"` Team *Team `jsonapi:"relation,team"` }
TeamToken represents a Terraform Enterprise team token.
type TeamTokenCreateOptions ¶ added in v1.24.0
type TeamTokenCreateOptions struct { // Optional: The token's expiration date. // This feature is available in TFE release v202305-1 and later ExpiredAt *time.Time `jsonapi:"attr,expired-at,iso8601,omitempty"` // Optional: The token's description, which must unique per team. // This feature is considered BETA, SUBJECT TO CHANGE, and likely unavailable to most users. Description string `jsonapi:"attr,description,omitempty"` }
TeamTokenCreateOptions contains the options for creating a team token.
type TeamTokens ¶
type TeamTokens interface { // Create a new team token using the legacy creation behavior, which creates a token without a description // or regenerates the existing, descriptionless token. Create(ctx context.Context, teamID string) (*TeamToken, error) // CreateWithOptions creates a team token, with options. If no description is provided, it uses the legacy // creation behavior, which regenerates the descriptionless token if it already exists. Otherwise, it create // a new token with the given unique description, allowing for the creation of multiple team tokens. CreateWithOptions(ctx context.Context, teamID string, options TeamTokenCreateOptions) (*TeamToken, error) // Read a team token by its team ID. Read(ctx context.Context, teamID string) (*TeamToken, error) // Read a team token by its token ID. ReadByID(ctx context.Context, teamID string) (*TeamToken, error) // Delete a team token by its team ID. Delete(ctx context.Context, teamID string) error // Delete a team token by its token ID. DeleteByID(ctx context.Context, tokenID string) error }
TeamTokens describes all the team token related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/team-tokens
type TeamUpdateOptions ¶ added in v0.3.8
type TeamUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,teams"` // Optional: New name for the team Name *string `jsonapi:"attr,name,omitempty"` // Optional: Unique Identifier to control team membership via SAML SSOTeamID *string `jsonapi:"attr,sso-team-id,omitempty"` // Optional: The team's organization access OrganizationAccess *OrganizationAccessOptions `jsonapi:"attr,organization-access,omitempty"` // Optional: The team's visibility ("secret", "organization") Visibility *string `jsonapi:"attr,visibility,omitempty"` // Optional: Used by Owners and users with "Manage Teams" permissions to control whether team members can manage team tokens AllowMemberTokenManagement *bool `jsonapi:"attr,allow-member-token-management,omitempty"` }
TeamUpdateOptions represents the options for updating a team.
type Teams ¶
type Teams interface { // List all the teams of the given organization. List(ctx context.Context, organization string, options *TeamListOptions) (*TeamList, error) // Create a new team with the given options. Create(ctx context.Context, organization string, options TeamCreateOptions) (*Team, error) // Read a team by its ID. Read(ctx context.Context, teamID string) (*Team, error) // Update a team by its ID. Update(ctx context.Context, teamID string, options TeamUpdateOptions) (*Team, error) // Delete a team by its ID. Delete(ctx context.Context, teamID string) error }
Teams describes all the team related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/teams
type TerraformRegistryModule ¶ added in v1.76.0
type TerraformRegistryModule struct { ID string `json:"id"` Owner string `json:"owner"` Namespace string `json:"namespace"` Name string `json:"name"` Version string `json:"version"` Provider string `json:"provider"` ProviderLogoURL string `json:"provider_logo_url"` Description string `json:"description"` Source string `json:"source"` Tag string `json:"tag"` PublishedAt string `json:"published_at"` Downloads int `json:"downloads"` Verified bool `json:"verified"` Root Root `json:"root"` Providers []string `json:"providers"` Versions []string `json:"versions"` }
TerraformRegistryModule contains data about a module from the Terraform Registry.
type TestConfig ¶ added in v1.35.0
type TestConfig struct {
TestsEnabled bool `jsonapi:"attr,tests-enabled"`
}
type TestRun ¶ added in v1.34.0
type TestRun struct { ID string `jsonapi:"primary,test-runs"` Status TestRunStatus `jsonapi:"attr,status"` StatusTimestamps TestRunStatusTimestamps `jsonapi:"attr,status-timestamps"` TestStatus TestStatus `jsonapi:"attr,test-status"` TestsPassed int `jsonapi:"attr,tests-passed"` TestsFailed int `jsonapi:"attr,tests-failed"` TestsErrored int `jsonapi:"attr,tests-errored"` TestsSkipped int `jsonapi:"attr,tests-skipped"` LogReadURL string `jsonapi:"attr,log-read-url"` // Relations ConfigurationVersion *ConfigurationVersion `jsonapi:"relation,configuration-version"` RegistryModule *RegistryModule `jsonapi:"relation,registry-module"` }
TestRun represents a Terraform Enterprise test run.
type TestRunCreateOptions ¶ added in v1.34.0
type TestRunCreateOptions struct { // Type is a public field utitilized by JSON:API to set the resource type // via the field tag. It is not a user-defined value and does not need to // be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,test-runs"` // If non-empty, requests that only a subset of testing files within the // ConfigurationVersion should be executed. Filters []string `jsonapi:"attr,filters,omitempty"` // Specifies the directory within the ConfigurationVersion that test files // should be loaded from. Defaults to "tests" if empty. TestDirectory *string `jsonapi:"attr,test-directory,omitempty"` // Verbose prints out the plan and state files for each run block that is // executed by this TestRun. Verbose *bool `jsonapi:"attr,verbose,omitempty"` // Parallelism controls the number of parallel operations to execute within a single test run. Parallelism *int `jsonapi:"attr,parallelism,omitempty"` // Variables allows you to specify terraform input variables for // a particular run, prioritized over variables defined on the workspace. Variables []*RunVariable `jsonapi:"attr,variables,omitempty"` // ConfigurationVersion specifies the configuration version to use for this // test run. ConfigurationVersion *ConfigurationVersion `jsonapi:"relation,configuration-version"` // RegistryModule specifies the registry module this test run should be // assigned to. RegistryModule *RegistryModule `jsonapi:"relation,registry-module"` }
TestRunCreateOptions represents the options for creating a run.
type TestRunList ¶ added in v1.34.0
type TestRunList struct { *Pagination Items []*TestRun }
TestRunList represents a list of test runs.
type TestRunListOptions ¶ added in v1.34.0
type TestRunListOptions struct {
ListOptions
}
TestRunListOptions represents the options for listing runs.
type TestRunStatus ¶ added in v1.34.0
type TestRunStatus string
TestRunStatus represents the status of a test run.
const ( TestRunPending TestRunStatus = "pending" TestRunQueued TestRunStatus = "queued" TestRunRunning TestRunStatus = "running" TestRunErrored TestRunStatus = "errored" TestRunCanceled TestRunStatus = "canceled" TestRunFinished TestRunStatus = "finished" )
List all available test run statuses.
type TestRunStatusTimestamps ¶ added in v1.34.0
type TestRunStatusTimestamps struct { CanceledAt time.Time `jsonapi:"attr,canceled-at,rfc3339"` ErroredAt time.Time `jsonapi:"attr,errored-at,rfc3339"` FinishedAt time.Time `jsonapi:"attr,finished-at,rfc3339"` ForceCanceledAt time.Time `jsonapi:"attr,force-canceled-at,rfc3339"` QueuedAt time.Time `jsonapi:"attr,queued-at,rfc3339"` StartedAt time.Time `jsonapi:"attr,started-at,rfc3339"` }
TestRunStatusTimestamps holds the timestamps for individual test run statuses.
type TestRuns ¶ added in v1.34.0
type TestRuns interface { // List all the test runs for a given private registry module. List(ctx context.Context, moduleID RegistryModuleID, options *TestRunListOptions) (*TestRunList, error) // Read a test run by its ID. Read(ctx context.Context, moduleID RegistryModuleID, testRunID string) (*TestRun, error) // Create a new test run with the given options. Create(ctx context.Context, options TestRunCreateOptions) (*TestRun, error) // Logs retrieves the logs for a test run by its ID. Logs(ctx context.Context, moduleID RegistryModuleID, testRunID string) (io.Reader, error) // Cancel a test run by its ID. Cancel(ctx context.Context, moduleID RegistryModuleID, testRunID string) error // ForceCancel a test run by its ID. ForceCancel(ctx context.Context, moduleID RegistryModuleID, testRunID string) error }
TestRuns describes all the test run related methods that the Terraform Enterprise API supports.
**Note: These methods are still in BETA and subject to change.**
type TestStatus ¶ added in v1.34.0
type TestStatus string
TestStatus represents the status of an individual test within an overall test run.
const ( TestPending TestStatus = "pending" TestSkip TestStatus = "skip" TestPass TestStatus = "pass" TestFail TestStatus = "fail" TestError TestStatus = "error" )
List all available test statuses.
type TestVariables ¶ added in v1.36.0
type TestVariables interface { // List all the test variables associated with the given module. List(ctx context.Context, moduleID RegistryModuleID, options *VariableListOptions) (*VariableList, error) // Read a test variable by its ID. Read(ctx context.Context, moduleID RegistryModuleID, variableID string) (*Variable, error) // Create is used to create a new variable. Create(ctx context.Context, moduleID RegistryModuleID, options VariableCreateOptions) (*Variable, error) // Update values of an existing variable. Update(ctx context.Context, moduleID RegistryModuleID, variableID string, options VariableUpdateOptions) (*Variable, error) // Delete a variable by its ID. Delete(ctx context.Context, moduleID RegistryModuleID, variableID string) error }
Variables describes all the variable related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/private-registry/tests
type TokenType ¶ added in v1.64.0
type TokenType string
const ( // A token which can only access the Audit Trails of an HCP Terraform Organization. // See https://developer.hashicorp.com/terraform/cloud-docs/api-docs/audit-trails-tokens AuditTrailToken TokenType = "audit-trails" )
type ToolVersionArchitecture ¶ added in v1.72.0
type TwilioSettings ¶ added in v0.13.0
type TwilioSettings interface { // Read returns the Twilio settings. Read(ctx context.Context) (*AdminTwilioSetting, error) // Update updates Twilio settings. Update(ctx context.Context, options AdminTwilioSettingsUpdateOptions) (*AdminTwilioSetting, error) // Verify verifies Twilio settings. Verify(ctx context.Context, options AdminTwilioSettingsVerifyOptions) error }
TwilioSettings describes all the Twilio admin settings for the Admin Setting API. https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/settings
type TwoFactor ¶
type TwoFactor struct { Enabled bool `jsonapi:"attr,enabled"` Verified bool `jsonapi:"attr,verified"` }
TwoFactor represents the organization permissions.
type User ¶
type User struct { ID string `jsonapi:"primary,users"` AvatarURL string `jsonapi:"attr,avatar-url"` Email string `jsonapi:"attr,email"` IsServiceAccount bool `jsonapi:"attr,is-service-account"` TwoFactor *TwoFactor `jsonapi:"attr,two-factor"` UnconfirmedEmail string `jsonapi:"attr,unconfirmed-email"` Username string `jsonapi:"attr,username"` V2Only bool `jsonapi:"attr,v2-only"` // Deprecated: IsSiteAdmin was deprecated in v202406 and will be removed in a future version of Terraform Enterprise IsSiteAdmin *bool `jsonapi:"attr,is-site-admin"` IsAdmin *bool `jsonapi:"attr,is-admin"` IsSsoLogin *bool `jsonapi:"attr,is-sso-login"` Permissions *UserPermissions `jsonapi:"attr,permissions"` }
User represents a Terraform Enterprise user.
type UserPermissions ¶ added in v1.21.0
type UserPermissions struct { CanCreateOrganizations bool `jsonapi:"attr,can-create-organizations"` CanChangeEmail bool `jsonapi:"attr,can-change-email"` CanChangeUsername bool `jsonapi:"attr,can-change-username"` CanManageUserTokens bool `jsonapi:"attr,can-manage-user-tokens"` CanView2FaSettings bool `jsonapi:"attr,can-view2fa-settings"` CanManageHcpAccount bool `jsonapi:"attr,can-manage-hcp-account"` }
UserPermissions represents the user permissions.
type UserToken ¶ added in v0.12.0
type UserToken struct { ID string `jsonapi:"primary,authentication-tokens"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` Description string `jsonapi:"attr,description"` LastUsedAt time.Time `jsonapi:"attr,last-used-at,iso8601"` Token string `jsonapi:"attr,token"` ExpiredAt time.Time `jsonapi:"attr,expired-at,iso8601"` CreatedBy *CreatedByChoice `jsonapi:"polyrelation,created-by"` }
UserToken represents a Terraform Enterprise user token.
type UserTokenCreateOptions ¶ added in v1.0.0
type UserTokenCreateOptions struct { Description string `jsonapi:"attr,description,omitempty"` // Optional: The token's expiration date. // This feature is available in TFE release v202305-1 and later ExpiredAt *time.Time `jsonapi:"attr,expired-at,iso8601,omitempty"` }
UserTokenCreateOptions contains the options for creating a user token.
type UserTokenList ¶ added in v0.12.0
type UserTokenList struct { *Pagination Items []*UserToken }
UserTokenList is a list of tokens for the given user ID.
type UserTokens ¶ added in v0.12.0
type UserTokens interface { // List all the tokens of the given user ID. List(ctx context.Context, userID string) (*UserTokenList, error) // Create a new user token Create(ctx context.Context, userID string, options UserTokenCreateOptions) (*UserToken, error) // Read a user token by its ID. Read(ctx context.Context, tokenID string) (*UserToken, error) // Delete a user token by its ID. Delete(ctx context.Context, tokenID string) error }
UserTokens describes all the user token related methods that the HCP Terraform and Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/user-tokens
type UserUpdateOptions ¶
type UserUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,users"` // Optional: New username. Username *string `jsonapi:"attr,username,omitempty"` // Optional: New email address (must be consumed afterwards to take effect). Email *string `jsonapi:"attr,email,omitempty"` }
UserUpdateOptions represents the options for updating a user.
type Users ¶
type Users interface { // ReadCurrent reads the details of the currently authenticated user. ReadCurrent(ctx context.Context) (*User, error) // UpdateCurrent updates attributes of the currently authenticated user. UpdateCurrent(ctx context.Context, options UserUpdateOptions) (*User, error) }
Users describes all the user related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/account
type VCSRepo ¶
type VCSRepo struct { Branch string `jsonapi:"attr,branch"` DisplayIdentifier string `jsonapi:"attr,display-identifier"` Identifier string `jsonapi:"attr,identifier"` IngressSubmodules bool `jsonapi:"attr,ingress-submodules"` OAuthTokenID string `jsonapi:"attr,oauth-token-id"` GHAInstallationID string `jsonapi:"attr,github-app-installation-id"` RepositoryHTTPURL string `jsonapi:"attr,repository-http-url"` ServiceProvider string `jsonapi:"attr,service-provider"` Tags bool `jsonapi:"attr,tags"` TagsRegex string `jsonapi:"attr,tags-regex"` WebhookURL string `jsonapi:"attr,webhook-url"` }
VCSRepo contains the configuration of a VCS integration.
type VCSRepoOptions ¶
type VCSRepoOptions struct { Branch *string `json:"branch,omitempty"` Identifier *string `json:"identifier,omitempty"` IngressSubmodules *bool `json:"ingress-submodules,omitempty"` OAuthTokenID *string `json:"oauth-token-id,omitempty"` TagsRegex *string `json:"tags-regex,omitempty"` GHAInstallationID *string `json:"github-app-installation-id,omitempty"` }
TODO: move this struct out. VCSRepoOptions is used by workspaces, policy sets, and registry modules VCSRepoOptions represents the configuration options of a VCS integration.
type Variable ¶
type Variable struct { ID string `jsonapi:"primary,vars"` Key string `jsonapi:"attr,key"` Value string `jsonapi:"attr,value"` Description string `jsonapi:"attr,description"` Category CategoryType `jsonapi:"attr,category"` HCL bool `jsonapi:"attr,hcl"` Sensitive bool `jsonapi:"attr,sensitive"` VersionID string `jsonapi:"attr,version-id"` // Relations Workspace *Workspace `jsonapi:"relation,configurable"` }
Variable represents a Terraform Enterprise variable.
type VariableCreateOptions ¶
type VariableCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,vars"` // Required: The name of the variable. Key *string `jsonapi:"attr,key"` // Optional: The value of the variable. Value *string `jsonapi:"attr,value,omitempty"` // Optional: The description of the variable. Description *string `jsonapi:"attr,description,omitempty"` // Required: Whether this is a Terraform or environment variable. Category *CategoryType `jsonapi:"attr,category"` // Optional: Whether to evaluate the value of the variable as a string of HCL code. HCL *bool `jsonapi:"attr,hcl,omitempty"` // Optional: Whether the value is sensitive. Sensitive *bool `jsonapi:"attr,sensitive,omitempty"` }
VariableCreateOptions represents the options for creating a new variable.
type VariableList ¶ added in v0.2.0
type VariableList struct { *Pagination Items []*Variable }
VariableList represents a list of variables.
type VariableListOptions ¶
type VariableListOptions struct {
ListOptions
}
VariableListOptions represents the options for listing variables.
type VariableSet ¶ added in v1.1.0
type VariableSet struct { ID string `jsonapi:"primary,varsets"` Name string `jsonapi:"attr,name"` Description string `jsonapi:"attr,description"` Global bool `jsonapi:"attr,global"` Priority bool `jsonapi:"attr,priority"` // Relations Organization *Organization `jsonapi:"relation,organization"` // Optional: Parent represents the variable set's parent (currently only organizations and projects are supported). // This relation is considered BETA, SUBJECT TO CHANGE, and likely unavailable to most users. Parent *Parent `jsonapi:"polyrelation,parent"` Workspaces []*Workspace `jsonapi:"relation,workspaces,omitempty"` Projects []*Project `jsonapi:"relation,projects,omitempty"` Variables []*VariableSetVariable `jsonapi:"relation,vars,omitempty"` }
VariableSet represents a Terraform Enterprise variable set.
type VariableSetApplyToProjectsOptions ¶ added in v1.21.0
type VariableSetApplyToProjectsOptions struct { // The projects to apply the variable set to (additive). Projects []*Project }
VariableSetApplyToProjectsOptions represents the options for applying variable sets to projects.
type VariableSetApplyToWorkspacesOptions ¶ added in v1.2.0
type VariableSetApplyToWorkspacesOptions struct { // The workspaces to apply the variable set to (additive). Workspaces []*Workspace }
VariableSetApplyToWorkspacesOptions represents the options for applying variable sets to workspaces.
type VariableSetCreateOptions ¶ added in v1.1.0
type VariableSetCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,varsets"` // The name of the variable set. // Affects variable precedence when there are conflicts between Variable Sets // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/variable-sets#apply-variable-set-to-workspaces Name *string `jsonapi:"attr,name"` // A description to provide context for the variable set. Description *string `jsonapi:"attr,description,omitempty"` // If true the variable set is considered in all runs in the organization. Global *bool `jsonapi:"attr,global,omitempty"` // If true the variables in the set override any other variable values set // in a more specific scope including values set on the command line. Priority *bool `jsonapi:"attr,priority,omitempty"` // Optional: Parent represents the variable set's parent (currently only organizations and projects are supported). // This relation is considered BETA, SUBJECT TO CHANGE, and likely unavailable to most users. Parent *Parent `jsonapi:"polyrelation,parent"` }
VariableSetCreateOptions represents the options for creating a new variable set within in a organization.
type VariableSetIncludeOpt ¶ added in v1.1.0
type VariableSetIncludeOpt string
A list of relations to include. See available resources https://developer.hashicorp.com/terraform/enterprise/api-docs/admin/organizations#available-related-resources
const ( VariableSetWorkspaces VariableSetIncludeOpt = "workspaces" VariableSetProjects VariableSetIncludeOpt = "projects" VariableSetVars VariableSetIncludeOpt = "vars" )
type VariableSetList ¶ added in v1.1.0
type VariableSetList struct { *Pagination Items []*VariableSet }
VariableSetList represents a list of variable sets.
type VariableSetListOptions ¶ added in v1.1.0
type VariableSetListOptions struct { ListOptions Include string `url:"include"` // Optional: A query string used to filter variable sets. // Any variable sets with a name partially matching this value will be returned. Query string `url:"q,omitempty"` }
VariableSetListOptions represents the options for listing variable sets.
type VariableSetReadOptions ¶ added in v1.1.0
type VariableSetReadOptions struct {
Include *[]VariableSetIncludeOpt `url:"include,omitempty"`
}
VariableSetReadOptions represents the options for reading variable sets.
type VariableSetRemoveFromProjectsOptions ¶ added in v1.21.0
type VariableSetRemoveFromProjectsOptions struct { // The projects to remove the variable set from. Projects []*Project }
VariableSetRemoveFromProjectsOptions represents the options for removing variable sets from projects.
type VariableSetRemoveFromWorkspacesOptions ¶ added in v1.2.0
type VariableSetRemoveFromWorkspacesOptions struct { // The workspaces to remove the variable set from. Workspaces []*Workspace }
VariableSetRemoveFromWorkspacesOptions represents the options for removing variable sets from workspaces.
type VariableSetUpdateOptions ¶ added in v1.1.0
type VariableSetUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,varsets"` // The name of the variable set. // Affects variable precedence when there are conflicts between Variable Sets // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/variable-sets#apply-variable-set-to-workspaces Name *string `jsonapi:"attr,name,omitempty"` // A description to provide context for the variable set. Description *string `jsonapi:"attr,description,omitempty"` // If true the variable set is considered in all runs in the organization. Global *bool `jsonapi:"attr,global,omitempty"` // If true the variables in the set override any other variable values set // in a more specific scope including values set on the command line. Priority *bool `jsonapi:"attr,priority,omitempty"` }
VariableSetUpdateOptions represents the options for updating a variable set.
type VariableSetUpdateWorkspacesOptions ¶ added in v1.1.0
type VariableSetUpdateWorkspacesOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,varsets"` // The workspaces to be applied to. An empty set means remove all applied Workspaces []*Workspace `jsonapi:"relation,workspaces"` }
VariableSetUpdateWorkspacesOptions represents a subset of update options specifically for applying variable sets to workspaces
type VariableSetVariable ¶ added in v1.1.0
type VariableSetVariable struct { ID string `jsonapi:"primary,vars"` Key string `jsonapi:"attr,key"` Value string `jsonapi:"attr,value"` Description string `jsonapi:"attr,description"` Category CategoryType `jsonapi:"attr,category"` HCL bool `jsonapi:"attr,hcl"` Sensitive bool `jsonapi:"attr,sensitive"` VersionID string `jsonapi:"attr,version-id"` // Relations VariableSet *VariableSet `jsonapi:"relation,varset"` }
type VariableSetVariableCreateOptions ¶ added in v1.1.0
type VariableSetVariableCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,vars"` // The name of the variable. Key *string `jsonapi:"attr,key"` // The value of the variable. Value *string `jsonapi:"attr,value,omitempty"` // The description of the variable. Description *string `jsonapi:"attr,description,omitempty"` // Whether this is a Terraform or environment variable. Category *CategoryType `jsonapi:"attr,category"` // Whether to evaluate the value of the variable as a string of HCL code. HCL *bool `jsonapi:"attr,hcl,omitempty"` // Whether the value is sensitive. Sensitive *bool `jsonapi:"attr,sensitive,omitempty"` }
VariableSetVariableCreatOptions represents the options for creating a new variable within a variable set
type VariableSetVariableList ¶ added in v1.1.0
type VariableSetVariableList struct { *Pagination Items []*VariableSetVariable }
type VariableSetVariableListOptions ¶ added in v1.1.0
type VariableSetVariableListOptions struct {
ListOptions
}
type VariableSetVariableUpdateOptions ¶ added in v1.1.0
type VariableSetVariableUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,vars"` // The name of the variable. Key *string `jsonapi:"attr,key,omitempty"` // The value of the variable. Value *string `jsonapi:"attr,value,omitempty"` // The description of the variable. Description *string `jsonapi:"attr,description,omitempty"` // Whether to evaluate the value of the variable as a string of HCL code. HCL *bool `jsonapi:"attr,hcl,omitempty"` // Whether the value is sensitive. Sensitive *bool `jsonapi:"attr,sensitive,omitempty"` }
VariableSetVariableUpdateOptions represents the options for updating a variable.
type VariableSetVariables ¶ added in v1.1.0
type VariableSetVariables interface { // List all variables in the variable set. List(ctx context.Context, variableSetID string, options *VariableSetVariableListOptions) (*VariableSetVariableList, error) // Create is used to create a new variable within a given variable set Create(ctx context.Context, variableSetID string, options *VariableSetVariableCreateOptions) (*VariableSetVariable, error) // Read a variable by its ID Read(ctx context.Context, variableSetID string, variableID string) (*VariableSetVariable, error) // Update valuse of an existing variable Update(ctx context.Context, variableSetID string, variableID string, options *VariableSetVariableUpdateOptions) (*VariableSetVariable, error) // Delete a variable by its ID Delete(ctx context.Context, variableSetID string, variableID string) error }
VariableSetVariables describes all variable variable related methods within the scope of Variable Sets that the Terraform Enterprise API supports
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/variable-sets#variable-relationships
type VariableSets ¶ added in v1.1.0
type VariableSets interface { // List all the variable sets within an organization. List(ctx context.Context, organization string, options *VariableSetListOptions) (*VariableSetList, error) // ListForWorkspace gets the associated variable sets for a workspace. ListForWorkspace(ctx context.Context, workspaceID string, options *VariableSetListOptions) (*VariableSetList, error) // ListForProject gets the associated variable sets for a project. ListForProject(ctx context.Context, projectID string, options *VariableSetListOptions) (*VariableSetList, error) // Create is used to create a new variable set. Create(ctx context.Context, organization string, options *VariableSetCreateOptions) (*VariableSet, error) // Read a variable set by its ID. Read(ctx context.Context, variableSetID string, options *VariableSetReadOptions) (*VariableSet, error) // Update an existing variable set. Update(ctx context.Context, variableSetID string, options *VariableSetUpdateOptions) (*VariableSet, error) // Delete a variable set by ID. Delete(ctx context.Context, variableSetID string) error // Apply variable set to workspaces in the supplied list. ApplyToWorkspaces(ctx context.Context, variableSetID string, options *VariableSetApplyToWorkspacesOptions) error // Remove variable set from workspaces in the supplied list. RemoveFromWorkspaces(ctx context.Context, variableSetID string, options *VariableSetRemoveFromWorkspacesOptions) error // Apply variable set to projects in the supplied list. ApplyToProjects(ctx context.Context, variableSetID string, options VariableSetApplyToProjectsOptions) error // Remove variable set from projects in the supplied list. RemoveFromProjects(ctx context.Context, variableSetID string, options VariableSetRemoveFromProjectsOptions) error // Update list of workspaces to which the variable set is applied to match the supplied list. UpdateWorkspaces(ctx context.Context, variableSetID string, options *VariableSetUpdateWorkspacesOptions) (*VariableSet, error) }
VariableSets describes all the Variable Set related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/variable-sets
type VariableUpdateOptions ¶
type VariableUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,vars"` // The name of the variable. Key *string `jsonapi:"attr,key,omitempty"` // The value of the variable. Value *string `jsonapi:"attr,value,omitempty"` // The description of the variable. Description *string `jsonapi:"attr,description,omitempty"` // Whether this is a Terraform or environment variable. Category *CategoryType `jsonapi:"attr,category,omitempty"` // Whether to evaluate the value of the variable as a string of HCL code. HCL *bool `jsonapi:"attr,hcl,omitempty"` // Whether the value is sensitive. Sensitive *bool `jsonapi:"attr,sensitive,omitempty"` }
VariableUpdateOptions represents the options for updating a variable.
type Variables ¶
type Variables interface { // List all the variables associated with the given workspace. List(ctx context.Context, workspaceID string, options *VariableListOptions) (*VariableList, error) // Create is used to create a new variable. Create(ctx context.Context, workspaceID string, options VariableCreateOptions) (*Variable, error) // Read a variable by its ID. Read(ctx context.Context, workspaceID string, variableID string) (*Variable, error) // Update values of an existing variable. Update(ctx context.Context, workspaceID string, variableID string, options VariableUpdateOptions) (*Variable, error) // Delete a variable by its ID. Delete(ctx context.Context, workspaceID string, variableID string) error }
Variables describes all the variable related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspace-variables
type VariablesPermissionType ¶ added in v0.9.0
type VariablesPermissionType string
VariablesPermissionType represents the permissiontype to a workspace's variables.
const ( VariablesPermissionNone VariablesPermissionType = "none" VariablesPermissionRead VariablesPermissionType = "read" VariablesPermissionWrite VariablesPermissionType = "write" )
func VariablesPermission ¶ added in v0.9.0
func VariablesPermission(v VariablesPermissionType) *VariablesPermissionType
VariablesPermission returns a pointer to the given team variables permission type.
type WSIncludeOpt ¶ added in v1.0.0
type WSIncludeOpt string
WSIncludeOpt represents the available options for include query params. https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces#available-related-resources
const ( WSOrganization WSIncludeOpt = "organization" WSCurrentConfigVer WSIncludeOpt = "current_configuration_version" WSCurrentConfigVerIngress WSIncludeOpt = "current_configuration_version.ingress_attributes" WSCurrentRun WSIncludeOpt = "current_run" WSCurrentRunPlan WSIncludeOpt = "current_run.plan" WSCurrentRunConfigVer WSIncludeOpt = "current_run.configuration_version" WSCurrentrunConfigVerIngress WSIncludeOpt = "current_run.configuration_version.ingress_attributes" WSEffectiveTagBindings WSIncludeOpt = "effective_tag_bindings" WSLockedBy WSIncludeOpt = "locked_by" WSReadme WSIncludeOpt = "readme" WSOutputs WSIncludeOpt = "outputs" WSCurrentStateVer WSIncludeOpt = "current-state-version" WSProject WSIncludeOpt = "project" )
type WaitForStatusResult ¶ added in v1.63.0
WaitForStatusResult is the data structure that is sent over the channel returned by various status polling functions. For each result, either the Error or the Status will be set, but not both. If the Quit field is set, the channel will be closed. If the Quit field is set and the Error is nil, the Status field will be set to a specified quit status.
type Workspace ¶
type Workspace struct { ID string `jsonapi:"primary,workspaces"` Actions *WorkspaceActions `jsonapi:"attr,actions"` AllowDestroyPlan bool `jsonapi:"attr,allow-destroy-plan"` AssessmentsEnabled bool `jsonapi:"attr,assessments-enabled"` AutoApply bool `jsonapi:"attr,auto-apply"` AutoApplyRunTrigger bool `jsonapi:"attr,auto-apply-run-trigger"` AutoDestroyAt jsonapi.NullableAttr[time.Time] `jsonapi:"attr,auto-destroy-at,iso8601,omitempty"` AutoDestroyActivityDuration jsonapi.NullableAttr[string] `jsonapi:"attr,auto-destroy-activity-duration,omitempty"` CanQueueDestroyPlan bool `jsonapi:"attr,can-queue-destroy-plan"` CreatedAt time.Time `jsonapi:"attr,created-at,iso8601"` Description string `jsonapi:"attr,description"` Environment string `jsonapi:"attr,environment"` ExecutionMode string `jsonapi:"attr,execution-mode"` FileTriggersEnabled bool `jsonapi:"attr,file-triggers-enabled"` GlobalRemoteState bool `jsonapi:"attr,global-remote-state"` InheritsProjectAutoDestroy bool `jsonapi:"attr,inherits-project-auto-destroy"` Locked bool `jsonapi:"attr,locked"` MigrationEnvironment string `jsonapi:"attr,migration-environment"` Name string `jsonapi:"attr,name"` NoCodeUpgradeAvailable bool `jsonapi:"attr,no-code-upgrade-available"` Operations bool `jsonapi:"attr,operations"` Permissions *WorkspacePermissions `jsonapi:"attr,permissions"` QueueAllRuns bool `jsonapi:"attr,queue-all-runs"` SpeculativeEnabled bool `jsonapi:"attr,speculative-enabled"` SourceName string `jsonapi:"attr,source-name"` SourceURL string `jsonapi:"attr,source-url"` StructuredRunOutputEnabled bool `jsonapi:"attr,structured-run-output-enabled"` TerraformVersion string `jsonapi:"attr,terraform-version"` TriggerPrefixes []string `jsonapi:"attr,trigger-prefixes"` TriggerPatterns []string `jsonapi:"attr,trigger-patterns"` VCSRepo *VCSRepo `jsonapi:"attr,vcs-repo"` WorkingDirectory string `jsonapi:"attr,working-directory"` UpdatedAt time.Time `jsonapi:"attr,updated-at,iso8601"` ResourceCount int `jsonapi:"attr,resource-count"` ApplyDurationAverage time.Duration `jsonapi:"attr,apply-duration-average"` PlanDurationAverage time.Duration `jsonapi:"attr,plan-duration-average"` PolicyCheckFailures int `jsonapi:"attr,policy-check-failures"` RunFailures int `jsonapi:"attr,run-failures"` RunsCount int `jsonapi:"attr,workspace-kpis-runs-count"` TagNames []string `jsonapi:"attr,tag-names"` SettingOverwrites *WorkspaceSettingOverwrites `jsonapi:"attr,setting-overwrites"` // Relations AgentPool *AgentPool `jsonapi:"relation,agent-pool"` CurrentRun *Run `jsonapi:"relation,current-run"` CurrentStateVersion *StateVersion `jsonapi:"relation,current-state-version"` Organization *Organization `jsonapi:"relation,organization"` SSHKey *SSHKey `jsonapi:"relation,ssh-key"` Outputs []*WorkspaceOutputs `jsonapi:"relation,outputs"` Project *Project `jsonapi:"relation,project"` Tags []*Tag `jsonapi:"relation,tags"` CurrentConfigurationVersion *ConfigurationVersion `jsonapi:"relation,current-configuration-version,omitempty"` LockedBy *LockedByChoice `jsonapi:"polyrelation,locked-by"` Variables []*Variable `jsonapi:"relation,vars"` TagBindings []*TagBinding `jsonapi:"relation,tag-bindings"` EffectiveTagBindings []*EffectiveTagBinding `jsonapi:"relation,effective-tag-bindings"` // Deprecated: Use DataRetentionPolicyChoice instead. DataRetentionPolicy *DataRetentionPolicy // **Note: This functionality is only available in Terraform Enterprise.** DataRetentionPolicyChoice *DataRetentionPolicyChoice `jsonapi:"polyrelation,data-retention-policy"` // Links Links map[string]interface{} `jsonapi:"links,omitempty"` }
Workspace represents a Terraform Enterprise workspace.
type WorkspaceActions ¶
type WorkspaceActions struct {
IsDestroyable bool `jsonapi:"attr,is-destroyable"`
}
WorkspaceActions represents the workspace actions.
type WorkspaceAddRemoteStateConsumersOptions ¶ added in v0.14.0
type WorkspaceAddRemoteStateConsumersOptions struct { // The workspaces to add as remote state consumers to the workspace. Workspaces []*Workspace }
WorkspaceAddRemoteStateConsumersOptions represents the options for adding remote state consumers to a workspace.
type WorkspaceAddTagBindingsOptions ¶ added in v1.70.0
type WorkspaceAddTagBindingsOptions struct {
TagBindings []*TagBinding
}
WorkspaceAddTagBindingsOptions represents the options for adding tag bindings to a workspace.
type WorkspaceAddTagsOptions ¶ added in v0.19.0
type WorkspaceAddTagsOptions struct {
Tags []*Tag
}
type WorkspaceAssignSSHKeyOptions ¶
type WorkspaceAssignSSHKeyOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,workspaces"` // The SSH key ID to assign. SSHKeyID *string `jsonapi:"attr,id"` }
WorkspaceAssignSSHKeyOptions represents the options to assign an SSH key to a workspace.
type WorkspaceCreateOptions ¶
type WorkspaceCreateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,workspaces"` // Required when: execution-mode is set to agent. The ID of the agent pool // belonging to the workspace's organization. This value must not be specified // if execution-mode is set to remote or local or if operations is set to true. AgentPoolID *string `jsonapi:"attr,agent-pool-id,omitempty"` // Optional: Whether destroy plans can be queued on the workspace. AllowDestroyPlan *bool `jsonapi:"attr,allow-destroy-plan,omitempty"` // Optional: Whether to enable health assessments (drift detection etc.) for the workspace. // Reference: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces#create-a-workspace // Requires remote execution mode, HCP Terraform Business entitlement, and a valid agent pool to work AssessmentsEnabled *bool `jsonapi:"attr,assessments-enabled,omitempty"` // Optional: Whether to automatically apply changes when a Terraform plan is successful. AutoApply *bool `jsonapi:"attr,auto-apply,omitempty"` // Optional: Whether to automatically apply changes for runs that are created by run triggers // from another workspace. AutoApplyRunTrigger *bool `jsonapi:"attr,auto-apply-run-trigger,omitempty"` // Optional: The time after which an automatic destroy run will be queued AutoDestroyAt jsonapi.NullableAttr[time.Time] `jsonapi:"attr,auto-destroy-at,iso8601,omitempty"` // Optional: The period of time to wait after workspace activity to trigger a destroy run. The format // should roughly match a Go duration string limited to days and hours, e.g. "24h" or "1d". AutoDestroyActivityDuration jsonapi.NullableAttr[string] `jsonapi:"attr,auto-destroy-activity-duration,omitempty"` // Optional: Whether the workspace inherits auto destroy settings from the project InheritsProjectAutoDestroy *bool `jsonapi:"attr,inherits-project-auto-destroy,omitempty"` // Optional: A description for the workspace. Description *string `jsonapi:"attr,description,omitempty"` // Optional: Which execution mode to use. Valid values are remote, local, and agent. // When set to local, the workspace will be used for state storage only. // This value must not be specified if operations is specified. // 'agent' execution mode is not available in Terraform Enterprise. ExecutionMode *string `jsonapi:"attr,execution-mode,omitempty"` // Optional: Whether to filter runs based on the changed files in a VCS push. If // enabled, the working directory and trigger prefixes describe a set of // paths which must contain changes for a VCS push to trigger a run. If // disabled, any push will trigger a run. FileTriggersEnabled *bool `jsonapi:"attr,file-triggers-enabled,omitempty"` GlobalRemoteState *bool `jsonapi:"attr,global-remote-state,omitempty"` // Optional: The legacy TFE environment to use as the source of the migration, in the // form organization/environment. Omit this unless you are migrating a legacy // environment. MigrationEnvironment *string `jsonapi:"attr,migration-environment,omitempty"` // The name of the workspace, which can only include letters, numbers, -, // and _. This will be used as an identifier and must be unique in the // organization. Name *string `jsonapi:"attr,name"` // DEPRECATED. Whether the workspace will use remote or local execution mode. // Use ExecutionMode instead. Operations *bool `jsonapi:"attr,operations,omitempty"` // Whether to queue all runs. Unless this is set to true, runs triggered by // a webhook will not be queued until at least one run is manually queued. QueueAllRuns *bool `jsonapi:"attr,queue-all-runs,omitempty"` // Whether this workspace allows speculative plans. Setting this to false // prevents HCP Terraform or the Terraform Enterprise instance from // running plans on pull requests, which can improve security if the VCS // repository is public or includes untrusted contributors. SpeculativeEnabled *bool `jsonapi:"attr,speculative-enabled,omitempty"` // BETA. A friendly name for the application or client creating this // workspace. If set, this will be displayed on the workspace as // "Created via <SOURCE NAME>". SourceName *string `jsonapi:"attr,source-name,omitempty"` // BETA. A URL for the application or client creating this workspace. This // can be the URL of a related resource in another app, or a link to // documentation or other info about the client. SourceURL *string `jsonapi:"attr,source-url,omitempty"` // BETA. Enable the experimental advanced run user interface. // This only applies to runs using Terraform version 0.15.2 or newer, // and runs executed using older versions will see the classic experience // regardless of this setting. StructuredRunOutputEnabled *bool `jsonapi:"attr,structured-run-output-enabled,omitempty"` // The version of Terraform to use for this workspace. Upon creating a // workspace, the latest version is selected unless otherwise specified. TerraformVersion *string `jsonapi:"attr,terraform-version,omitempty"` // List of repository-root-relative paths which list all locations to be // tracked for changes. See FileTriggersEnabled above for more details. TriggerPrefixes []string `jsonapi:"attr,trigger-prefixes,omitempty"` // Optional: List of patterns used to match against changed files in order // to decide whether to trigger a run or not. TriggerPatterns []string `jsonapi:"attr,trigger-patterns,omitempty"` // Settings for the workspace's VCS repository. If omitted, the workspace is // created without a VCS repo. If included, you must specify at least the // oauth-token-id and identifier keys below. VCSRepo *VCSRepoOptions `jsonapi:"attr,vcs-repo,omitempty"` // A relative path that Terraform will execute within. This defaults to the // root of your repository and is typically set to a subdirectory matching the // environment when multiple environments exist within the same repository. WorkingDirectory *string `jsonapi:"attr,working-directory,omitempty"` // A list of tags to attach to the workspace. If the tag does not already // exist, it is created and added to the workspace. Tags []*Tag `jsonapi:"relation,tags,omitempty"` // Optional: Struct of booleans, which indicate whether the workspace // specifies its own values for various settings. If you mark a setting as // `false` in this struct, it will clear the workspace's existing value for // that setting and defer to the default value that its project or // organization provides. // // In general, it's not necessary to mark a setting as `true` in this // struct; if you provide a literal value for a setting, HCP Terraform will // automatically update its overwrites field to `true`. If you do choose to // manually mark a setting as overwritten, you must provide a value for that // setting at the same time. SettingOverwrites *WorkspaceSettingOverwritesOptions `jsonapi:"attr,setting-overwrites,omitempty"` // Associated Project with the workspace. If not provided, default project // of the organization will be assigned to the workspace. Project *Project `jsonapi:"relation,project,omitempty"` // Associated TagBindings of the workspace. TagBindings []*TagBinding `jsonapi:"relation,tag-bindings,omitempty"` }
WorkspaceCreateOptions represents the options for creating a new workspace.
type WorkspaceList ¶ added in v0.2.0
type WorkspaceList struct { *Pagination Items []*Workspace }
WorkspaceList represents a list of workspaces.
type WorkspaceListOptions ¶
type WorkspaceListOptions struct { ListOptions // Optional: A search string (partial workspace name) used to filter the results. Search string `url:"search[name],omitempty"` // Optional: A search string (comma-separated tag names) used to filter the results. Tags string `url:"search[tags],omitempty"` // Optional: A search string (comma-separated tag names to exclude) used to filter the results. ExcludeTags string `url:"search[exclude-tags],omitempty"` // Optional: A search on substring matching to filter the results. WildcardName string `url:"search[wildcard-name],omitempty"` // Optional: A filter string to list all the workspaces linked to a given project id in the organization. ProjectID string `url:"filter[project][id],omitempty"` // Optional: A filter string to list all the workspaces filtered by current run status. CurrentRunStatus string `url:"filter[current-run][status],omitempty"` // Optional: A filter string to list workspaces filtered by key/value tags. // These are not annotated and therefore not encoded by go-querystring TagBindings []*TagBinding // Optional: A list of relations to include. See available resources https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces#available-related-resources Include []WSIncludeOpt `url:"include,omitempty"` // Optional: May sort on "name" (the default) and "current-run.created-at" (which sorts by the time of the current run) // Prepending a hyphen to the sort parameter will reverse the order (e.g. "-name" to reverse the default order) Sort string `url:"sort,omitempty"` }
WorkspaceListOptions represents the options for listing workspaces.
type WorkspaceLockOptions ¶
type WorkspaceLockOptions struct { // Specifies the reason for locking the workspace. Reason *string `jsonapi:"attr,reason,omitempty"` }
WorkspaceLockOptions represents the options for locking a workspace.
type WorkspaceOutputs ¶ added in v0.19.0
type WorkspacePermissions ¶
type WorkspacePermissions struct { CanDestroy bool `jsonapi:"attr,can-destroy"` CanForceUnlock bool `jsonapi:"attr,can-force-unlock"` CanLock bool `jsonapi:"attr,can-lock"` CanManageRunTasks bool `jsonapi:"attr,can-manage-run-tasks"` CanQueueApply bool `jsonapi:"attr,can-queue-apply"` CanQueueDestroy bool `jsonapi:"attr,can-queue-destroy"` CanQueueRun bool `jsonapi:"attr,can-queue-run"` CanReadSettings bool `jsonapi:"attr,can-read-settings"` CanUnlock bool `jsonapi:"attr,can-unlock"` CanUpdate bool `jsonapi:"attr,can-update"` CanUpdateVariable bool `jsonapi:"attr,can-update-variable"` CanForceDelete *bool `jsonapi:"attr,can-force-delete"` // pointer b/c it will be useful to check if this property exists, as opposed to having it default to false }
WorkspacePermissions represents the workspace permissions.
type WorkspaceReadOptions ¶ added in v0.16.0
type WorkspaceReadOptions struct { // Optional: A list of relations to include. // https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces#available-related-resources Include []WSIncludeOpt `url:"include,omitempty"` }
WorkspaceReadOptions represents the options for reading a workspace.
type WorkspaceRemoveRemoteStateConsumersOptions ¶ added in v0.14.0
type WorkspaceRemoveRemoteStateConsumersOptions struct { // The workspaces to remove as remote state consumers from the workspace. Workspaces []*Workspace }
WorkspaceRemoveRemoteStateConsumersOptions represents the options for removing remote state consumers from a workspace.
type WorkspaceRemoveTagsOptions ¶ added in v0.19.0
type WorkspaceRemoveTagsOptions struct {
Tags []*Tag
}
type WorkspaceResource ¶ added in v1.40.0
type WorkspaceResource struct { ID string `jsonapi:"primary,resources"` Address string `jsonapi:"attr,address"` Name string `jsonapi:"attr,name"` CreatedAt string `jsonapi:"attr,created-at"` UpdatedAt string `jsonapi:"attr,updated-at"` Module string `jsonapi:"attr,module"` Provider string `jsonapi:"attr,provider"` ProviderType string `jsonapi:"attr,provider-type"` ModifiedByStateVersionID string `jsonapi:"attr,modified-by-state-version-id"` NameIndex *string `jsonapi:"attr,name-index"` }
WorkspaceResource represents a Terraform Enterprise workspace resource.
type WorkspaceResourceListOptions ¶ added in v1.40.0
type WorkspaceResourceListOptions struct {
ListOptions
}
WorkspaceResourceListOptions represents the options for listing workspace resources.
type WorkspaceResources ¶ added in v1.40.0
type WorkspaceResources interface { // List all the workspaces resources within a workspace List(ctx context.Context, workspaceID string, options *WorkspaceResourceListOptions) (*WorkspaceResourcesList, error) }
WorkspaceResources describes all the workspace resources related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspace-resources
type WorkspaceResourcesList ¶ added in v1.40.0
type WorkspaceResourcesList struct { *Pagination Items []*WorkspaceResource }
WorkspaceResourcesList represents a list of workspace resources.
type WorkspaceRunTask ¶ added in v0.26.0
type WorkspaceRunTask struct { ID string `jsonapi:"primary,workspace-tasks"` EnforcementLevel TaskEnforcementLevel `jsonapi:"attr,enforcement-level"` // Deprecated: Use Stages property instead. Stage Stage `jsonapi:"attr,stage"` Stages []Stage `jsonapi:"attr,stages"` RunTask *RunTask `jsonapi:"relation,task"` Workspace *Workspace `jsonapi:"relation,workspace"` }
WorkspaceRunTask represents a HCP Terraform or Terraform Enterprise run task that belongs to a workspace
type WorkspaceRunTaskCreateOptions ¶ added in v0.26.0
type WorkspaceRunTaskCreateOptions struct { Type string `jsonapi:"primary,workspace-tasks"` // Required: The enforcement level for a run task EnforcementLevel TaskEnforcementLevel `jsonapi:"attr,enforcement-level"` // Required: The run task to attach to the workspace RunTask *RunTask `jsonapi:"relation,task"` // Deprecated: Use Stages property instead. Stage *Stage `jsonapi:"attr,stage,omitempty"` // Optional: The stage to run the task in Stages *[]Stage `jsonapi:"attr,stages,omitempty"` }
WorkspaceRunTaskCreateOptions represents the set of options for creating a workspace run task
type WorkspaceRunTaskList ¶ added in v0.26.0
type WorkspaceRunTaskList struct { *Pagination Items []*WorkspaceRunTask }
WorkspaceRunTaskList represents a list of workspace run tasks
type WorkspaceRunTaskListOptions ¶ added in v0.26.0
type WorkspaceRunTaskListOptions struct {
ListOptions
}
WorkspaceRunTaskListOptions represents the set of options for listing workspace run tasks
type WorkspaceRunTaskUpdateOptions ¶ added in v0.26.0
type WorkspaceRunTaskUpdateOptions struct { Type string `jsonapi:"primary,workspace-tasks"` EnforcementLevel TaskEnforcementLevel `jsonapi:"attr,enforcement-level,omitempty"` // Deprecated: Use Stages property instead. Stage *Stage `jsonapi:"attr,stage,omitempty"` // Optional: The stage to run the task in Stages *[]Stage `jsonapi:"attr,stages,omitempty"` }
WorkspaceRunTaskUpdateOptions represent the set of options for updating a workspace run task.
type WorkspaceRunTasks ¶ added in v0.26.0
type WorkspaceRunTasks interface { // Add a run task to a workspace Create(ctx context.Context, workspaceID string, options WorkspaceRunTaskCreateOptions) (*WorkspaceRunTask, error) // List all run tasks for a workspace List(ctx context.Context, workspaceID string, options *WorkspaceRunTaskListOptions) (*WorkspaceRunTaskList, error) // Read a workspace run task by ID Read(ctx context.Context, workspaceID string, workspaceTaskID string) (*WorkspaceRunTask, error) // Update a workspace run task by ID Update(ctx context.Context, workspaceID string, workspaceTaskID string, options WorkspaceRunTaskUpdateOptions) (*WorkspaceRunTask, error) // Delete a workspace's run task by ID Delete(ctx context.Context, workspaceID string, workspaceTaskID string) error }
WorkspaceRunTasks represent all the run task related methods in the context of a workspace that the HCP Terraform and Terraform Enterprise API supports.
type WorkspaceRunsPermissionType ¶ added in v1.32.0
type WorkspaceRunsPermissionType string
WorkspaceRunsPermissionType represents the permissiontype to project workspaces' runs
const ( WorkspaceRunsPermissionRead WorkspaceRunsPermissionType = "read" WorkspaceRunsPermissionPlan WorkspaceRunsPermissionType = "plan" WorkspaceRunsPermissionApply WorkspaceRunsPermissionType = "apply" )
func WorkspaceRunsPermission ¶ added in v1.32.0
func WorkspaceRunsPermission(v WorkspaceRunsPermissionType) *WorkspaceRunsPermissionType
WorkspaceRunsPermission returns a pointer to the given team access project type.
type WorkspaceSentinelMocksPermissionType ¶ added in v1.32.0
type WorkspaceSentinelMocksPermissionType string
WorkspaceSentinelMocksPermissionType represents the permissiontype to project workspaces' sentinel-mocks
const ( WorkspaceSentinelMocksPermissionNone WorkspaceSentinelMocksPermissionType = "none" WorkspaceSentinelMocksPermissionRead WorkspaceSentinelMocksPermissionType = "read" )
func WorkspaceSentinelMocksPermission ¶ added in v1.32.0
func WorkspaceSentinelMocksPermission(v WorkspaceSentinelMocksPermissionType) *WorkspaceSentinelMocksPermissionType
WorkspaceSentinelMocksPermission returns a pointer to the given team access project type.
type WorkspaceSettingOverwrites ¶ added in v1.39.0
type WorkspaceSettingOverwrites struct { ExecutionMode *bool `jsonapi:"attr,execution-mode"` AgentPool *bool `jsonapi:"attr,agent-pool"` }
Note: the fields of this struct are bool pointers instead of bool values, in order to simplify support for future TFE versions that support *some but not all* of the inherited defaults that go-tfe knows about.
type WorkspaceSettingOverwritesOptions ¶ added in v1.39.0
type WorkspaceSettingOverwritesOptions struct { // If false, the workspace will defer to its organization or project's DefaultExecutionMode value. ExecutionMode *bool `json:"execution-mode,omitempty"` // If false, the workspace will defer to its organization or project's DefaultAgentPool value. AgentPool *bool `json:"agent-pool,omitempty"` }
type WorkspaceStateVersionsPermissionType ¶ added in v1.32.0
type WorkspaceStateVersionsPermissionType string
WorkspaceStateVersionsPermissionType represents the permissiontype to project workspaces' state-versions
const ( WorkspaceStateVersionsPermissionNone WorkspaceStateVersionsPermissionType = "none" WorkspaceStateVersionsPermissionReadOutputs WorkspaceStateVersionsPermissionType = "read-outputs" WorkspaceStateVersionsPermissionRead WorkspaceStateVersionsPermissionType = "read" WorkspaceStateVersionsPermissionWrite WorkspaceStateVersionsPermissionType = "write" )
func WorkspaceStateVersionsPermission ¶ added in v1.32.0
func WorkspaceStateVersionsPermission(v WorkspaceStateVersionsPermissionType) *WorkspaceStateVersionsPermissionType
WorkspaceStateVersionsPermission returns a pointer to the given team access project type.
type WorkspaceTagListOptions ¶ added in v0.19.0
type WorkspaceTagListOptions struct { ListOptions // A query string used to filter workspace tags. // Any workspace tag with a name partially matching this value will be returned. Query *string `url:"name,omitempty"` }
type WorkspaceUpdateOptions ¶
type WorkspaceUpdateOptions struct { // Type is a public field utilized by JSON:API to // set the resource type via the field tag. // It is not a user-defined value and does not need to be set. // https://jsonapi.org/format/#crud-creating Type string `jsonapi:"primary,workspaces"` // Required when: execution-mode is set to agent. The ID of the agent pool // belonging to the workspace's organization. This value must not be specified // if execution-mode is set to remote or local or if operations is set to true. AgentPoolID *string `jsonapi:"attr,agent-pool-id,omitempty"` // Optional: Whether destroy plans can be queued on the workspace. AllowDestroyPlan *bool `jsonapi:"attr,allow-destroy-plan,omitempty"` // Optional: Whether to enable health assessments (drift detection etc.) for the workspace. // Reference: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces#update-a-workspace // Requires remote execution mode, HCP Terraform Business entitlement, and a valid agent pool to work AssessmentsEnabled *bool `jsonapi:"attr,assessments-enabled,omitempty"` // Optional: Whether to automatically apply changes when a Terraform plan is successful. AutoApply *bool `jsonapi:"attr,auto-apply,omitempty"` // Optional: Whether to automatically apply changes for runs that are created by run triggers // from another workspace. AutoApplyRunTrigger *bool `jsonapi:"attr,auto-apply-run-trigger,omitempty"` // Optional: The time after which an automatic destroy run will be queued AutoDestroyAt jsonapi.NullableAttr[time.Time] `jsonapi:"attr,auto-destroy-at,iso8601,omitempty"` // Optional: The period of time to wait after workspace activity to trigger a destroy run. The format // should roughly match a Go duration string limited to days and hours, e.g. "24h" or "1d". AutoDestroyActivityDuration jsonapi.NullableAttr[string] `jsonapi:"attr,auto-destroy-activity-duration,omitempty"` // Optional: Whether the workspace inherits auto destroy settings from the project InheritsProjectAutoDestroy *bool `jsonapi:"attr,inherits-project-auto-destroy,omitempty"` // Optional: A new name for the workspace, which can only include letters, numbers, -, // and _. This will be used as an identifier and must be unique in the // organization. Warning: Changing a workspace's name changes its URL in the // API and UI. Name *string `jsonapi:"attr,name,omitempty"` // Optional: A description for the workspace. Description *string `jsonapi:"attr,description,omitempty"` // Optional: Which execution mode to use. Valid values are remote, local, and agent. // When set to local, the workspace will be used for state storage only. // This value must not be specified if operations is specified. // 'agent' execution mode is not available in Terraform Enterprise. ExecutionMode *string `jsonapi:"attr,execution-mode,omitempty"` // Optional: Whether to filter runs based on the changed files in a VCS push. If // enabled, the working directory and trigger prefixes describe a set of // paths which must contain changes for a VCS push to trigger a run. If // disabled, any push will trigger a run. FileTriggersEnabled *bool `jsonapi:"attr,file-triggers-enabled,omitempty"` // Optional: GlobalRemoteState *bool `jsonapi:"attr,global-remote-state,omitempty"` // DEPRECATED. Whether the workspace will use remote or local execution mode. // Use ExecutionMode instead. Operations *bool `jsonapi:"attr,operations,omitempty"` // Optional: Whether to queue all runs. Unless this is set to true, runs triggered by // a webhook will not be queued until at least one run is manually queued. QueueAllRuns *bool `jsonapi:"attr,queue-all-runs,omitempty"` // Optional: Whether this workspace allows speculative plans. Setting this to false // prevents HCP Terraform or the Terraform Enterprise instance from // running plans on pull requests, which can improve security if the VCS // repository is public or includes untrusted contributors. SpeculativeEnabled *bool `jsonapi:"attr,speculative-enabled,omitempty"` // BETA. Enable the experimental advanced run user interface. // This only applies to runs using Terraform version 0.15.2 or newer, // and runs executed using older versions will see the classic experience // regardless of this setting. StructuredRunOutputEnabled *bool `jsonapi:"attr,structured-run-output-enabled,omitempty"` // Optional: The version of Terraform to use for this workspace. TerraformVersion *string `jsonapi:"attr,terraform-version,omitempty"` // Optional: List of repository-root-relative paths which list all locations to be // tracked for changes. See FileTriggersEnabled above for more details. TriggerPrefixes []string `jsonapi:"attr,trigger-prefixes,omitempty"` // Optional: List of patterns used to match against changed files in order // to decide whether to trigger a run or not. TriggerPatterns []string `jsonapi:"attr,trigger-patterns,omitempty"` // Optional: To delete a workspace's existing VCS repo, specify null instead of an // object. To modify a workspace's existing VCS repo, include whichever of // the keys below you wish to modify. To add a new VCS repo to a workspace // that didn't previously have one, include at least the oauth-token-id and // identifier keys. VCSRepo *VCSRepoOptions `jsonapi:"attr,vcs-repo,omitempty"` // Optional: A relative path that Terraform will execute within. This defaults to the // root of your repository and is typically set to a subdirectory matching // the environment when multiple environments exist within the same // repository. WorkingDirectory *string `jsonapi:"attr,working-directory,omitempty"` // Optional: Struct of booleans, which indicate whether the workspace // specifies its own values for various settings. If you mark a setting as // `false` in this struct, it will clear the workspace's existing value for // that setting and defer to the default value that its project or // organization provides. // // In general, it's not necessary to mark a setting as `true` in this // struct; if you provide a literal value for a setting, HCP Terraform will // automatically update its overwrites field to `true`. If you do choose to // manually mark a setting as overwritten, you must provide a value for that // setting at the same time. SettingOverwrites *WorkspaceSettingOverwritesOptions `jsonapi:"attr,setting-overwrites,omitempty"` // Associated Project with the workspace. If not provided, default project // of the organization will be assigned to the workspace Project *Project `jsonapi:"relation,project,omitempty"` // Associated TagBindings of the project. Note that this will replace // all existing tag bindings. TagBindings []*TagBinding `jsonapi:"relation,tag-bindings,omitempty"` }
WorkspaceUpdateOptions represents the options for updating a workspace.
type WorkspaceUpdateRemoteStateConsumersOptions ¶ added in v0.14.0
type WorkspaceUpdateRemoteStateConsumersOptions struct { // The workspaces to update remote state consumers for the workspace. Workspaces []*Workspace }
WorkspaceUpdateRemoteStateConsumersOptions represents the options for updatintg remote state consumers from a workspace.
type WorkspaceUpgrade ¶ added in v1.65.0
type WorkspaceUpgrade struct { // Status is the status of the run of the upgrade Status string `jsonapi:"attr,status"` // PlanURL is the URL to the plan of the upgrade PlanURL string `jsonapi:"attr,plan-url"` // Message is the message returned by the API when an upgrade is not available. Message string `jsonapi:"attr,message"` }
WorkspaceUpgrade contains the data returned by the no-code workspace upgrade API endpoint.
type WorkspaceVariablesPermissionType ¶ added in v1.32.0
type WorkspaceVariablesPermissionType string
WorkspaceVariablesPermissionType represents the permissiontype to project workspaces' variables
const ( WorkspaceVariablesPermissionNone WorkspaceVariablesPermissionType = "none" WorkspaceVariablesPermissionRead WorkspaceVariablesPermissionType = "read" WorkspaceVariablesPermissionWrite WorkspaceVariablesPermissionType = "write" )
func WorkspaceVariablesPermission ¶ added in v1.32.0
func WorkspaceVariablesPermission(v WorkspaceVariablesPermissionType) *WorkspaceVariablesPermissionType
WorkspaceStateVersionsPermission returns a pointer to the given team access project type.
type Workspaces ¶
type Workspaces interface { // List all the workspaces within an organization. List(ctx context.Context, organization string, options *WorkspaceListOptions) (*WorkspaceList, error) // Create is used to create a new workspace. Create(ctx context.Context, organization string, options WorkspaceCreateOptions) (*Workspace, error) // Read a workspace by its name and organization name. Read(ctx context.Context, organization string, workspace string) (*Workspace, error) // ReadWithOptions reads a workspace by name and organization name with given options. ReadWithOptions(ctx context.Context, organization string, workspace string, options *WorkspaceReadOptions) (*Workspace, error) // Readme gets the readme of a workspace by its ID. Readme(ctx context.Context, workspaceID string) (io.Reader, error) // ReadByID reads a workspace by its ID. ReadByID(ctx context.Context, workspaceID string) (*Workspace, error) // ReadByIDWithOptions reads a workspace by its ID with the given options. ReadByIDWithOptions(ctx context.Context, workspaceID string, options *WorkspaceReadOptions) (*Workspace, error) // Update settings of an existing workspace. Update(ctx context.Context, organization string, workspace string, options WorkspaceUpdateOptions) (*Workspace, error) // UpdateByID updates the settings of an existing workspace. UpdateByID(ctx context.Context, workspaceID string, options WorkspaceUpdateOptions) (*Workspace, error) // Delete a workspace by its name. Delete(ctx context.Context, organization string, workspace string) error // DeleteByID deletes a workspace by its ID. DeleteByID(ctx context.Context, workspaceID string) error // SafeDelete a workspace by its name. SafeDelete(ctx context.Context, organization string, workspace string) error // SafeDeleteByID deletes a workspace by its ID. SafeDeleteByID(ctx context.Context, workspaceID string) error // RemoveVCSConnection from a workspace. RemoveVCSConnection(ctx context.Context, organization, workspace string) (*Workspace, error) // RemoveVCSConnectionByID removes a VCS connection from a workspace. RemoveVCSConnectionByID(ctx context.Context, workspaceID string) (*Workspace, error) // Lock a workspace by its ID. Lock(ctx context.Context, workspaceID string, options WorkspaceLockOptions) (*Workspace, error) // Unlock a workspace by its ID. Unlock(ctx context.Context, workspaceID string) (*Workspace, error) // ForceUnlock a workspace by its ID. ForceUnlock(ctx context.Context, workspaceID string) (*Workspace, error) // AssignSSHKey to a workspace. AssignSSHKey(ctx context.Context, workspaceID string, options WorkspaceAssignSSHKeyOptions) (*Workspace, error) // UnassignSSHKey from a workspace. UnassignSSHKey(ctx context.Context, workspaceID string) (*Workspace, error) // ListRemoteStateConsumers reads the remote state consumers for a workspace. ListRemoteStateConsumers(ctx context.Context, workspaceID string, options *RemoteStateConsumersListOptions) (*WorkspaceList, error) // AddRemoteStateConsumers adds remote state consumers to a workspace. AddRemoteStateConsumers(ctx context.Context, workspaceID string, options WorkspaceAddRemoteStateConsumersOptions) error // RemoveRemoteStateConsumers removes remote state consumers from a workspace. RemoveRemoteStateConsumers(ctx context.Context, workspaceID string, options WorkspaceRemoveRemoteStateConsumersOptions) error // UpdateRemoteStateConsumers updates all the remote state consumers for a workspace // to match the workspaces in the update options. UpdateRemoteStateConsumers(ctx context.Context, workspaceID string, options WorkspaceUpdateRemoteStateConsumersOptions) error // ListTags reads the tags for a workspace. ListTags(ctx context.Context, workspaceID string, options *WorkspaceTagListOptions) (*TagList, error) // AddTags appends tags to a workspace AddTags(ctx context.Context, workspaceID string, options WorkspaceAddTagsOptions) error // RemoveTags removes tags from a workspace RemoveTags(ctx context.Context, workspaceID string, options WorkspaceRemoveTagsOptions) error // ReadDataRetentionPolicy reads a workspace's data retention policy // // Deprecated: Use ReadDataRetentionPolicyChoice instead. // **Note: This functionality is only available in Terraform Enterprise versions v202311-1 and v202312-1.** ReadDataRetentionPolicy(ctx context.Context, workspaceID string) (*DataRetentionPolicy, error) // ReadDataRetentionPolicyChoice reads a workspace's data retention policy // **Note: This functionality is only available in Terraform Enterprise.** ReadDataRetentionPolicyChoice(ctx context.Context, workspaceID string) (*DataRetentionPolicyChoice, error) // SetDataRetentionPolicy sets a workspace's data retention policy to delete data older than a certain number of days // // Deprecated: Use SetDataRetentionPolicyDeleteOlder instead // **Note: This functionality is only available in Terraform Enterprise versions v202311-1 and v202312-1.** SetDataRetentionPolicy(ctx context.Context, workspaceID string, options DataRetentionPolicySetOptions) (*DataRetentionPolicy, error) // SetDataRetentionPolicyDeleteOlder sets a workspace's data retention policy to delete data older than a certain number of days // **Note: This functionality is only available in Terraform Enterprise.** SetDataRetentionPolicyDeleteOlder(ctx context.Context, workspaceID string, options DataRetentionPolicyDeleteOlderSetOptions) (*DataRetentionPolicyDeleteOlder, error) // SetDataRetentionPolicyDontDelete sets a workspace's data retention policy to explicitly not delete data // **Note: This functionality is only available in Terraform Enterprise.** SetDataRetentionPolicyDontDelete(ctx context.Context, workspaceID string, options DataRetentionPolicyDontDeleteSetOptions) (*DataRetentionPolicyDontDelete, error) // DeleteDataRetentionPolicy deletes a workspace's data retention policy // **Note: This functionality is only available in Terraform Enterprise.** DeleteDataRetentionPolicy(ctx context.Context, workspaceID string) error // ListTagBindings lists all tag bindings associated with the workspace. ListTagBindings(ctx context.Context, workspaceID string) ([]*TagBinding, error) // ListEffectiveTagBindings lists all tag bindings associated with the workspace which may be // either inherited from a project or binded to the workspace itself. ListEffectiveTagBindings(ctx context.Context, workspaceID string) ([]*EffectiveTagBinding, error) // AddTagBindings adds or modifies the value of existing tag binding keys for a workspace. AddTagBindings(ctx context.Context, workspaceID string, options WorkspaceAddTagBindingsOptions) ([]*TagBinding, error) // DeleteAllTagBindings removes all tag bindings for a workspace. DeleteAllTagBindings(ctx context.Context, workspaceID string) error }
Workspaces describes all the workspace related methods that the Terraform Enterprise API supports.
TFE API docs: https://developer.hashicorp.com/terraform/cloud-docs/api-docs/workspaces
Example ¶
config := &Config{ Token: "insert-your-token-here", RetryServerErrors: true, } client, err := NewClient(config) if err != nil { log.Fatal(err) } // Create a context ctx := context.Background() // Create a new workspace w, err := client.Workspaces.Create(ctx, "org-name", WorkspaceCreateOptions{ Name: String("my-app-tst"), }) if err != nil { log.Fatal(err) } // Update the workspace w, err = client.Workspaces.Update(ctx, "org-name", w.Name, WorkspaceUpdateOptions{ AutoApply: Bool(false), TerraformVersion: String("0.11.1"), WorkingDirectory: String("my-app/infra"), }) if err != nil { log.Fatal(err) }
Output:
Source Files
¶
- admin_opa_version.go
- admin_organization.go
- admin_run.go
- admin_sentinel_version.go
- admin_setting.go
- admin_setting_cost_estimation.go
- admin_setting_customization.go
- admin_setting_general.go
- admin_setting_oidc.go
- admin_setting_saml.go
- admin_setting_smtp.go
- admin_setting_twilio.go
- admin_terraform_version.go
- admin_user.go
- admin_workspace.go
- agent.go
- agent_pool.go
- agent_token.go
- apply.go
- audit_trail.go
- comment.go
- configuration_version.go
- const.go
- cost_estimate.go
- data_retention_policy.go
- errors.go
- github_app_installation.go
- gpg_key.go
- internal_run_task.go
- internal_workspace_run_task.go
- ip_ranges.go
- logreader.go
- notification_configuration.go
- oauth_client.go
- oauth_token.go
- organization.go
- organization_membership.go
- organization_tags.go
- organization_token.go
- plan.go
- plan_export.go
- policy.go
- policy_check.go
- policy_evaluation.go
- policy_set.go
- policy_set_parameter.go
- policy_set_version.go
- project.go
- registry_module.go
- registry_no_code_module.go
- registry_provider.go
- registry_provider_platform.go
- registry_provider_version.go
- request.go
- request_hooks.go
- run.go
- run_event.go
- run_task.go
- run_task_request.go
- run_tasks_integration.go
- run_trigger.go
- ssh_key.go
- stack.go
- stack_configuration.go
- stack_deployments.go
- stack_diagnostic.go
- stack_plan.go
- stack_plan_operation.go
- stack_source.go
- state_version.go
- state_version_output.go
- tag.go
- task_result.go
- task_stages.go
- team.go
- team_access.go
- team_member.go
- team_project_access.go
- team_token.go
- test_config.go
- test_run.go
- test_variables.go
- tfe.go
- type_helpers.go
- user.go
- user_token.go
- validations.go
- variable.go
- variable_set.go
- variable_set_variable.go
- workspace.go
- workspace_resources.go
- workspace_run_task.go
Directories
¶
Path | Synopsis |
---|---|
examples
|
|
Package mocks is a generated GoMock package.
|
Package mocks is a generated GoMock package. |