schema

package
v1.202.1 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AWSAuthContext added in v1.196.0

type AWSAuthContext struct {
	// CredentialsFile is the absolute path to the AWS credentials file managed by Atmos.
	// Example: /home/user/.atmos/auth/aws-sso/credentials
	CredentialsFile string `json:"credentials_file" yaml:"credentials_file"`

	// ConfigFile is the absolute path to the AWS config file managed by Atmos.
	// Example: /home/user/.atmos/auth/aws-sso/config
	ConfigFile string `json:"config_file" yaml:"config_file"`

	// Profile is the AWS profile name to use from the credentials file.
	// This corresponds to the identity name in Atmos auth config.
	Profile string `json:"profile" yaml:"profile"`

	// Region is the AWS region (optional, may be empty if not specified in identity).
	Region string `json:"region,omitempty" yaml:"region,omitempty"`
}

AWSAuthContext holds AWS-specific authentication context. This is populated by the AWS auth system and consumed by AWS SDK calls.

type Account added in v1.200.0

type Account struct {
	Name string `yaml:"name,omitempty" json:"name,omitempty" mapstructure:"name"`
	ID   string `yaml:"id,omitempty" json:"id,omitempty" mapstructure:"id"`
}

Account defines account information for a principal.

type Affected

type Affected struct {
	Component            string              `yaml:"component" json:"component" mapstructure:"component"`
	ComponentType        string              `yaml:"component_type" json:"component_type" mapstructure:"component_type"`
	ComponentPath        string              `yaml:"component_path" json:"component_path" mapstructure:"component_path"`
	Namespace            string              `yaml:"namespace,omitempty" json:"namespace,omitempty" mapstructure:"namespace"`
	Tenant               string              `yaml:"tenant,omitempty" json:"tenant,omitempty" mapstructure:"tenant"`
	Environment          string              `yaml:"environment,omitempty" json:"environment,omitempty" mapstructure:"environment"`
	Stage                string              `yaml:"stage,omitempty" json:"stage,omitempty" mapstructure:"stage"`
	Stack                string              `yaml:"stack" json:"stack" mapstructure:"stack"`
	StackSlug            string              `yaml:"stack_slug" json:"stack_slug" mapstructure:"stack_slug"`
	SpaceliftStack       string              `yaml:"spacelift_stack,omitempty" json:"spacelift_stack,omitempty" mapstructure:"spacelift_stack"`
	AtlantisProject      string              `yaml:"atlantis_project,omitempty" json:"atlantis_project,omitempty" mapstructure:"atlantis_project"`
	Affected             string              `yaml:"affected" json:"affected" mapstructure:"affected"`
	AffectedAll          []string            `yaml:"affected_all" json:"affected_all" mapstructure:"affected_all"`
	File                 string              `yaml:"file,omitempty" json:"file,omitempty" mapstructure:"file"`
	Folder               string              `yaml:"folder,omitempty" json:"folder,omitempty" mapstructure:"folder"`
	Dependents           []Dependent         `yaml:"dependents" json:"dependents" mapstructure:"dependents"`
	IncludedInDependents bool                `yaml:"included_in_dependents" json:"included_in_dependents" mapstructure:"included_in_dependents"`
	Settings             AtmosSectionMapType `yaml:"settings" json:"settings" mapstructure:"settings"`
}

type ArgsAndFlagsInfo

type ArgsAndFlagsInfo struct {
	AdditionalArgsAndFlags    []string
	SubCommand                string
	SubCommand2               string
	ComponentFromArg          string
	GlobalOptions             []string
	TerraformCommand          string
	TerraformDir              string
	HelmfileCommand           string
	HelmfileDir               string
	PackerCommand             string
	PackerDir                 string
	ConfigDir                 string
	StacksDir                 string
	WorkflowsDir              string
	BasePath                  string
	VendorBasePath            string
	DeployRunInit             string
	InitRunReconfigure        string
	InitPassVars              string
	PlanSkipPlanfile          string
	AutoGenerateBackendFile   string
	AppendUserAgent           string
	UseTerraformPlan          bool
	PlanFile                  string
	DryRun                    bool
	SkipInit                  bool
	NeedHelp                  bool
	JsonSchemaDir             string
	OpaDir                    string
	CueDir                    string
	AtmosManifestJsonSchema   string
	RedirectStdErr            string
	LogsLevel                 string
	LogsFile                  string
	SettingsListMergeStrategy string
	Query                     string
	Affected                  bool
	All                       bool
	Identity                  string
	NeedsPathResolution       bool // True if ComponentFromArg is a path that needs resolution.
}

type Atlantis

type Atlantis struct {
	Path              string                           `yaml:"path,omitempty" json:"path,omitempty" mapstructure:"path"`
	ConfigTemplates   map[string]AtlantisRepoConfig    `yaml:"config_templates,omitempty" json:"config_templates,omitempty" mapstructure:"config_templates"`
	ProjectTemplates  map[string]AtlantisProjectConfig `yaml:"project_templates,omitempty" json:"project_templates,omitempty" mapstructure:"project_templates"`
	WorkflowTemplates AtmosSectionMapType              `yaml:"workflow_templates,omitempty" json:"workflow_templates,omitempty" mapstructure:"workflow_templates"`
}

type AtlantisConfigOutput

type AtlantisConfigOutput struct {
	Version                   int                     `yaml:"version" json:"version" mapstructure:"version"`
	Automerge                 bool                    `yaml:"automerge" json:"automerge" mapstructure:"automerge"`
	DeleteSourceBranchOnMerge bool                    `` /* 148-byte string literal not displayed */
	ParallelPlan              bool                    `yaml:"parallel_plan" json:"parallel_plan" mapstructure:"parallel_plan"`
	ParallelApply             bool                    `yaml:"parallel_apply" json:"parallel_apply" mapstructure:"parallel_apply"`
	AllowedRegexpPrefixes     []string                `yaml:"allowed_regexp_prefixes" json:"allowed_regexp_prefixes" mapstructure:"allowed_regexp_prefixes"`
	Projects                  []AtlantisProjectConfig `yaml:"projects" json:"projects" mapstructure:"projects"`
	Workflows                 AtmosSectionMapType     `yaml:"workflows,omitempty" json:"workflows,omitempty" mapstructure:"workflows"`
}

type AtlantisProjectAutoplanConfig

type AtlantisProjectAutoplanConfig struct {
	Enabled      bool     `yaml:"enabled" json:"enabled" mapstructure:"enabled"`
	WhenModified []string `yaml:"when_modified" json:"when_modified" mapstructure:"when_modified"`
}

type AtlantisProjectConfig

type AtlantisProjectConfig struct {
	Name                      string                        `yaml:"name" json:"name" mapstructure:"name"`
	Workspace                 string                        `yaml:"workspace" json:"workspace" mapstructure:"workspace"`
	Workflow                  string                        `yaml:"workflow,omitempty" json:"workflow,omitempty" mapstructure:"workflow"`
	Dir                       string                        `yaml:"dir" json:"dir" mapstructure:"dir"`
	TerraformVersion          string                        `yaml:"terraform_version,omitempty" json:"terraform_version,omitempty" mapstructure:"terraform_version,omitempty"`
	DeleteSourceBranchOnMerge bool                          `` /* 148-byte string literal not displayed */
	Autoplan                  AtlantisProjectAutoplanConfig `yaml:"autoplan" json:"autoplan" mapstructure:"autoplan"`
	ApplyRequirements         []string                      `yaml:"apply_requirements,omitempty" json:"apply_requirements,omitempty" mapstructure:"apply_requirements,omitempty"`
}

type AtlantisRepoConfig

type AtlantisRepoConfig struct {
	Version                   int      `yaml:"version" json:"version" mapstructure:"version"`
	Automerge                 bool     `yaml:"automerge" json:"automerge" mapstructure:"automerge"`
	DeleteSourceBranchOnMerge bool     `` /* 148-byte string literal not displayed */
	ParallelPlan              bool     `yaml:"parallel_plan" json:"parallel_plan" mapstructure:"parallel_plan"`
	ParallelApply             bool     `yaml:"parallel_apply" json:"parallel_apply" mapstructure:"parallel_apply"`
	AllowedRegexpPrefixes     []string `yaml:"allowed_regexp_prefixes" json:"allowed_regexp_prefixes" mapstructure:"allowed_regexp_prefixes"`
}

type AtmosConfiguration added in v1.131.0

type AtmosConfiguration struct {
	BasePath                      string             `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
	Components                    Components         `yaml:"components" json:"components" mapstructure:"components"`
	Stacks                        Stacks             `yaml:"stacks" json:"stacks" mapstructure:"stacks"`
	Workflows                     Workflows          `yaml:"workflows,omitempty" json:"workflows,omitempty" mapstructure:"workflows"`
	Logs                          Logs               `yaml:"logs,omitempty" json:"logs,omitempty" mapstructure:"logs"`
	Errors                        ErrorsConfig       `yaml:"errors,omitempty" json:"errors,omitempty" mapstructure:"errors"`
	Commands                      []Command          `yaml:"commands,omitempty" json:"commands,omitempty" mapstructure:"commands"`
	CommandAliases                CommandAliases     `yaml:"aliases,omitempty" json:"aliases,omitempty" mapstructure:"aliases"`
	Integrations                  Integrations       `yaml:"integrations,omitempty" json:"integrations,omitempty" mapstructure:"integrations"`
	Schemas                       map[string]any     `yaml:"schemas,omitempty" json:"schemas,omitempty" mapstructure:"schemas"`
	Templates                     Templates          `yaml:"templates,omitempty" json:"templates,omitempty" mapstructure:"templates"`
	Settings                      AtmosSettings      `yaml:"settings,omitempty" json:"settings,omitempty" mapstructure:"settings"`
	Describe                      Describe           `yaml:"describe,omitempty" json:"describe,omitempty" mapstructure:"describe"`
	StoresConfig                  store.StoresConfig `yaml:"stores,omitempty" json:"stores,omitempty" mapstructure:"stores"`
	Vendor                        Vendor             `yaml:"vendor,omitempty" json:"vendor,omitempty" mapstructure:"vendor"`
	Initialized                   bool               `yaml:"initialized" json:"initialized" mapstructure:"initialized"`
	BasePathAbsolute              string             `yaml:"basePathAbsolute,omitempty" json:"basePathAbsolute,omitempty" mapstructure:"basePathAbsolute"`
	StacksBaseAbsolutePath        string             `yaml:"stacksBaseAbsolutePath,omitempty" json:"stacksBaseAbsolutePath,omitempty" mapstructure:"stacksBaseAbsolutePath"`
	IncludeStackAbsolutePaths     []string           `` /* 126-byte string literal not displayed */
	ExcludeStackAbsolutePaths     []string           `` /* 126-byte string literal not displayed */
	TerraformDirAbsolutePath      string             `yaml:"terraformDirAbsolutePath,omitempty" json:"terraformDirAbsolutePath,omitempty" mapstructure:"terraformDirAbsolutePath"`
	HelmfileDirAbsolutePath       string             `yaml:"helmfileDirAbsolutePath,omitempty" json:"helmfileDirAbsolutePath,omitempty" mapstructure:"helmfileDirAbsolutePath"`
	PackerDirAbsolutePath         string             `yaml:"packerDirAbsolutePath,omitempty" json:"packerDirAbsolutePath,omitempty" mapstructure:"packerDirAbsolutePath"`
	StackConfigFilesRelativePaths []string           `` /* 138-byte string literal not displayed */
	StackConfigFilesAbsolutePaths []string           `` /* 138-byte string literal not displayed */
	StackType                     string             `yaml:"stackType,omitempty" json:"StackType,omitempty" mapstructure:"stackType"`
	Default                       bool               `yaml:"default" json:"default" mapstructure:"default"`
	Version                       Version            `yaml:"version,omitempty" json:"version,omitempty" mapstructure:"version"`
	Validate                      Validate           `yaml:"validate,omitempty" json:"validate,omitempty" mapstructure:"validate"`
	// Stores is never read from yaml, it is populated in processStoreConfig and it's used to pass to the populated store
	// registry through to the yaml parsing functions when !store is run and to pass the registry to the hooks
	// functions to be able to call stores from within hooks.
	Stores          store.StoreRegistry `yaml:"stores_registry,omitempty" json:"stores_registry,omitempty" mapstructure:"stores_registry"`
	CliConfigPath   string              `yaml:"cli_config_path" json:"cli_config_path,omitempty" mapstructure:"cli_config_path"`
	Import          []string            `yaml:"import" json:"import" mapstructure:"import"`
	Docs            Docs                `yaml:"docs,omitempty" json:"docs,omitempty" mapstructure:"docs"`
	Auth            AuthConfig          `yaml:"auth,omitempty" json:"auth,omitempty" mapstructure:"auth"`
	Env             map[string]string   `yaml:"env,omitempty" json:"env,omitempty" mapstructure:"-"` // mapstructure:"-" avoids collision with Command.Env []CommandEnv.
	CaseMaps        *casemap.CaseMaps   `yaml:"-" json:"-" mapstructure:"-"`                         // Stores original case for YAML map keys (Viper lowercases them).
	Profiler        profiler.Config     `yaml:"profiler,omitempty" json:"profiler,omitempty" mapstructure:"profiler"`
	TrackProvenance bool                `yaml:"track_provenance,omitempty" json:"track_provenance,omitempty" mapstructure:"track_provenance"`
	Devcontainer    map[string]any      `yaml:"devcontainer,omitempty" json:"devcontainer,omitempty" mapstructure:"devcontainer"`
	Profiles        ProfilesConfig      `yaml:"profiles,omitempty" json:"profiles,omitempty" mapstructure:"profiles"`
	Metadata        ConfigMetadata      `yaml:"metadata,omitempty" json:"metadata,omitempty" mapstructure:"metadata"`
}

AtmosConfiguration structure represents schema for `atmos.yaml` CLI config.

func (*AtmosConfiguration) GetCaseSensitiveMap added in v1.202.0

func (a *AtmosConfiguration) GetCaseSensitiveMap(path string) map[string]string

GetCaseSensitiveMap returns the specified map with original key casing restored. This compensates for Viper lowercasing all YAML map keys. Supported paths: "env".

func (*AtmosConfiguration) GetResourcePath added in v1.166.0

func (m *AtmosConfiguration) GetResourcePath(key string) ResourcePath

func (*AtmosConfiguration) GetSchemaRegistry added in v1.166.0

func (m *AtmosConfiguration) GetSchemaRegistry(key string) SchemaRegistry

func (*AtmosConfiguration) ProcessSchemas added in v1.166.0

func (a *AtmosConfiguration) ProcessSchemas()

func (*AtmosConfiguration) UnmarshalYAML added in v1.166.0

func (m *AtmosConfiguration) UnmarshalYAML(value *yaml.Node) error

Custom YAML unmarshaler for `Schemas`.

type AtmosSectionMapType added in v1.88.0

type AtmosSectionMapType = map[string]any

type AtmosSettings added in v1.131.0

type AtmosSettings struct {
	ListMergeStrategy string   `yaml:"list_merge_strategy" json:"list_merge_strategy" mapstructure:"list_merge_strategy"`
	Terminal          Terminal `yaml:"terminal,omitempty" json:"terminal,omitempty" mapstructure:"terminal"`
	// Deprecated: this was moved to top-level Atmos config
	Docs                 Docs             `yaml:"docs,omitempty" json:"docs,omitempty" mapstructure:"docs"`
	Markdown             MarkdownSettings `yaml:"markdown,omitempty" json:"markdown,omitempty" mapstructure:"markdown"`
	InjectGithubToken    bool             `yaml:"inject_github_token,omitempty" mapstructure:"inject_github_token"`
	GithubToken          string           `yaml:"github_token,omitempty" mapstructure:"github_token"`
	AtmosGithubToken     string           `yaml:"atmos_github_token,omitempty" mapstructure:"atmos_github_token"`
	GithubUsername       string           `yaml:"github_username,omitempty" mapstructure:"github_username"`
	InjectBitbucketToken bool             `yaml:"inject_bitbucket_token,omitempty" mapstructure:"inject_bitbucket_token"`
	BitbucketToken       string           `yaml:"bitbucket_token,omitempty" mapstructure:"bitbucket_token"`
	AtmosBitbucketToken  string           `yaml:"atmos_bitbucket_token,omitempty" mapstructure:"atmos_bitbucket_token"`
	BitbucketUsername    string           `yaml:"bitbucket_username,omitempty" mapstructure:"bitbucket_username"`
	InjectGitlabToken    bool             `yaml:"inject_gitlab_token,omitempty" mapstructure:"inject_gitlab_token"`
	AtmosGitlabToken     string           `yaml:"atmos_gitlab_token,omitempty" mapstructure:"atmos_gitlab_token"`
	GitlabToken          string           `yaml:"gitlab_token,omitempty" mapstructure:"gitlab_token"`
	// Atmos Pro integration settings
	Pro ProSettings `yaml:"pro,omitempty" json:"pro,omitempty" mapstructure:"pro"`
	// Telemetry settings
	Telemetry TelemetrySettings `yaml:"telemetry,omitempty" json:"telemetry,omitempty" mapstructure:"telemetry"`
}

type AtmosVendorConfig added in v1.47.0

type AtmosVendorConfig struct {
	ApiVersion string `yaml:"apiVersion" json:"apiVersion" mapstructure:"apiVersion"`
	Kind       string `yaml:"kind" json:"kind" mapstructure:"kind"`
	Metadata   AtmosVendorMetadata
	Spec       AtmosVendorSpec `yaml:"spec" json:"spec" mapstructure:"spec"`
}

type AtmosVendorMetadata added in v1.47.0

type AtmosVendorMetadata struct {
	Name        string `yaml:"name" json:"name" mapstructure:"name"`
	Description string `yaml:"description" json:"description" mapstructure:"description"`
}

type AtmosVendorSource added in v1.47.0

type AtmosVendorSource struct {
	Component     string   `yaml:"component" json:"component" mapstructure:"component"`
	Source        string   `yaml:"source" json:"source" mapstructure:"source"`
	Version       string   `yaml:"version" json:"version" mapstructure:"version"`
	File          string   `yaml:"file" json:"file" mapstructure:"file"`
	Targets       []string `yaml:"targets" json:"targets" mapstructure:"targets"`
	IncludedPaths []string `yaml:"included_paths,omitempty" json:"included_paths,omitempty" mapstructure:"included_paths"`
	ExcludedPaths []string `yaml:"excluded_paths,omitempty" json:"excluded_paths,omitempty" mapstructure:"excluded_paths"`
	Tags          []string `yaml:"tags" json:"tags" mapstructure:"tags"`
}

type AtmosVendorSpec added in v1.47.0

type AtmosVendorSpec struct {
	Imports []string            `yaml:"imports,omitempty" json:"imports,omitempty" mapstructure:"imports"`
	Sources []AtmosVendorSource `yaml:"sources" json:"sources" mapstructure:"sources"`
}

type AuthConfig added in v1.194.0

type AuthConfig struct {
	Logs       Logs                `yaml:"logs,omitempty" json:"logs,omitempty" mapstructure:"logs"`
	Keyring    KeyringConfig       `yaml:"keyring,omitempty" json:"keyring,omitempty" mapstructure:"keyring"`
	Providers  map[string]Provider `yaml:"providers" json:"providers" mapstructure:"providers"`
	Identities map[string]Identity `yaml:"identities" json:"identities" mapstructure:"identities"`
	// IdentityCaseMap maps lowercase identity names to their original case.
	// This is populated during config loading to work around Viper's case-insensitive behavior.
	IdentityCaseMap map[string]string `yaml:"-" json:"-" mapstructure:"-"`
}

AuthConfig defines the authentication configuration structure.

type AuthContext added in v1.196.0

type AuthContext struct {
	// AWS holds AWS credentials if an AWS identity is active.
	AWS *AWSAuthContext `json:"aws,omitempty" yaml:"aws,omitempty"`

	// Azure holds Azure credentials if an Azure identity is active.
	Azure *AzureAuthContext `json:"azure,omitempty" yaml:"azure,omitempty"`
}

AuthContext holds active authentication credentials for multiple providers. This is the SINGLE SOURCE OF TRUTH for auth credentials, populated by the auth system during PostAuthenticate().

AuthContext is used by: 1. In-process SDK calls (e.g., !terraform.state reading from S3) 2. Deriving ComponentEnvSection/ComponentEnvList for spawned processes

It enables multiple cloud provider identities to be active simultaneously (e.g., AWS + GitHub credentials in the same component).

type AwsEksUpdateKubeconfigContext

type AwsEksUpdateKubeconfigContext struct {
	Component   string
	Stack       string
	Profile     string
	ClusterName string
	Kubeconfig  string
	RoleArn     string
	DryRun      bool
	Verbose     bool
	Alias       string
	Namespace   string
	Tenant      string
	Environment string
	Stage       string
	Region      string
}

type AzureAuthContext added in v1.199.0

type AzureAuthContext struct {
	// CredentialsFile is the absolute path to the Azure credentials file managed by Atmos.
	// Example: /home/user/.azure/atmos/azure-oidc/credentials.json
	CredentialsFile string `json:"credentials_file" yaml:"credentials_file"`

	// Profile is the Azure profile name to use from the credentials file.
	// This corresponds to the identity name in Atmos auth config.
	Profile string `json:"profile" yaml:"profile"`

	// SubscriptionID is the Azure subscription ID.
	SubscriptionID string `json:"subscription_id" yaml:"subscription_id"`

	// TenantID is the Azure Active Directory tenant ID.
	TenantID string `json:"tenant_id" yaml:"tenant_id"`

	// Location is the Azure region/location (optional, e.g., "eastus").
	Location string `json:"location,omitempty" yaml:"location,omitempty"`
}

AzureAuthContext holds Azure-specific authentication context. This is populated by the Azure auth system and consumed by Azure SDK calls.

type BackoffStrategy added in v1.186.0

type BackoffStrategy string
var (
	BackoffConstant    BackoffStrategy = "constant"
	BackoffLinear      BackoffStrategy = "linear"
	BackoffExponential BackoffStrategy = "exponential"
)

Backoff strategies constants.

type BaseComponentConfig

type BaseComponentConfig struct {
	BaseComponentVars                      AtmosSectionMapType
	BaseComponentSettings                  AtmosSectionMapType
	BaseComponentEnv                       AtmosSectionMapType
	BaseComponentAuth                      AtmosSectionMapType
	BaseComponentMetadata                  AtmosSectionMapType
	BaseComponentProviders                 AtmosSectionMapType
	BaseComponentHooks                     AtmosSectionMapType
	FinalBaseComponentName                 string
	BaseComponentCommand                   string
	BaseComponentBackendType               string
	BaseComponentBackendSection            AtmosSectionMapType
	BaseComponentRemoteStateBackendType    string
	BaseComponentRemoteStateBackendSection AtmosSectionMapType
	ComponentInheritanceChain              []string
}

type ChromaStyle added in v1.135.0

type ChromaStyle struct {
	Color string `yaml:"color,omitempty" json:"color,omitempty" mapstructure:"color"`
}

type Command

type Command struct {
	Name             string                 `yaml:"name" json:"name" mapstructure:"name"`
	Description      string                 `yaml:"description" json:"description" mapstructure:"description"`
	WorkingDirectory string                 `yaml:"working_directory,omitempty" json:"working_directory,omitempty" mapstructure:"working_directory"`
	Env              []CommandEnv           `yaml:"env" json:"env" mapstructure:"env"`
	Arguments        []CommandArgument      `yaml:"arguments" json:"arguments" mapstructure:"arguments"`
	Flags            []CommandFlag          `yaml:"flags" json:"flags" mapstructure:"flags"`
	ComponentConfig  CommandComponentConfig `yaml:"component_config" json:"component_config" mapstructure:"component_config"`
	Steps            []string               `yaml:"steps" json:"steps" mapstructure:"steps"`
	Commands         []Command              `yaml:"commands" json:"commands" mapstructure:"commands"`
	Verbose          bool                   `yaml:"verbose" json:"verbose" mapstructure:"verbose"`
	Identity         string                 `yaml:"identity,omitempty" json:"identity,omitempty" mapstructure:"identity"`
}

type CommandAliases added in v1.64.2

type CommandAliases map[string]string

type CommandArgument

type CommandArgument struct {
	Name        string `yaml:"name" json:"name" mapstructure:"name"`
	Description string `yaml:"description" json:"description" mapstructure:"description"`
	Required    bool   `yaml:"required" json:"required" mapstructure:"required"`
	Default     string `yaml:"default" json:"default" mapstructure:"default"`
}

type CommandComponentConfig

type CommandComponentConfig struct {
	Component string `yaml:"component" json:"component" mapstructure:"component"`
	Stack     string `yaml:"stack" json:"stack" mapstructure:"stack"`
}

type CommandEnv

type CommandEnv struct {
	Key          string `yaml:"key" json:"key" mapstructure:"key"`
	Value        string `yaml:"value" json:"value" mapstructure:"value"`
	ValueCommand string `yaml:"valueCommand" json:"valueCommand" mapstructure:"valueCommand"`
}

type CommandFlag

type CommandFlag struct {
	Name        string `yaml:"name" json:"name" mapstructure:"name"`
	Shorthand   string `yaml:"shorthand" json:"shorthand" mapstructure:"shorthand"`
	Type        string `yaml:"type" json:"type" mapstructure:"type"`
	Description string `yaml:"description" json:"description" mapstructure:"description"`
	Usage       string `yaml:"usage" json:"usage" mapstructure:"usage"`
	Required    bool   `yaml:"required" json:"required" mapstructure:"required"`
	Default     any    `yaml:"default" json:"default" mapstructure:"default"`
}

type ComponentAuthConfig added in v1.194.0

type ComponentAuthConfig struct {
	Providers  map[string]Provider `yaml:"providers,omitempty" json:"providers,omitempty" mapstructure:"providers"`
	Identities map[string]Identity `yaml:"identities,omitempty" json:"identities,omitempty" mapstructure:"identities"`
}

ComponentAuthConfig defines auth configuration at the component level.

type ComponentManifest added in v1.176.0

type ComponentManifest struct {
	APIVersion string         `yaml:"apiVersion,omitempty" json:"apiVersion,omitempty" mapstructure:"apiVersion"`
	Kind       string         `yaml:"kind,omitempty" json:"kind,omitempty" mapstructure:"kind"`
	Metadata   map[string]any `yaml:"metadata,omitempty" json:"metadata,omitempty" mapstructure:"metadata"`
	Spec       map[string]any `yaml:"spec,omitempty" json:"spec,omitempty" mapstructure:"spec"`
	Vars       map[string]any `yaml:"vars,omitempty" json:"vars,omitempty" mapstructure:"vars"`
}

ComponentManifest defines the structure of the component manifest file (component.yaml).

type Components

type Components struct {
	// Built-in component types (legacy - will migrate to plugin model in future phases).
	Terraform Terraform `yaml:"terraform" json:"terraform" mapstructure:"terraform"`
	Helmfile  Helmfile  `yaml:"helmfile" json:"helmfile" mapstructure:"helmfile"`
	Packer    Packer    `yaml:"packer" json:"packer" mapstructure:"packer"`

	// List configuration for component listing.
	List ListConfig `yaml:"list,omitempty" json:"list,omitempty" mapstructure:"list"`

	// Dynamic plugin component types.
	// Uses mapstructure:",remain" to capture all unmapped fields from the YAML/JSON.
	// This allows new component types (like mock, pulumi, cdk) to be added without schema changes.
	Plugins map[string]any `yaml:",inline" json:",inline" mapstructure:",remain"`
}

func (*Components) GetComponentConfig added in v1.196.0

func (c *Components) GetComponentConfig(componentType string) (any, bool)

GetComponentConfig retrieves configuration for any component type. It first checks built-in types (terraform, helmfile, packer) for type-safe access, then falls back to the Plugins map for dynamic component types.

Returns the configuration and true if found, nil and false otherwise.

type ConfigAndStacksInfo

type ConfigAndStacksInfo struct {
	StackFromArg                  string
	Stack                         string
	StackFile                     string
	StackManifestName             string // Stack-level 'name' override from manifest (highest precedence).
	ComponentType                 string
	ComponentFromArg              string
	Component                     string
	ComponentFolderPrefix         string
	ComponentFolderPrefixReplaced string
	BaseComponentPath             string
	BaseComponent                 string
	FinalComponent                string
	Command                       string
	SubCommand                    string
	SubCommand2                   string
	ComponentSection              AtmosSectionMapType
	ComponentVarsSection          AtmosSectionMapType
	ComponentSettingsSection      AtmosSectionMapType
	ComponentOverridesSection     AtmosSectionMapType
	ComponentProvidersSection     AtmosSectionMapType
	ComponentHooksSection         AtmosSectionMapType
	ComponentEnvSection           AtmosSectionMapType
	ComponentAuthSection          AtmosSectionMapType
	ComponentEnvList              []string
	ComponentBackendSection       AtmosSectionMapType
	// AuthContext holds active authentication credentials for cloud providers.
	// This is the SINGLE SOURCE OF TRUTH for auth credentials.
	// ComponentEnvSection/ComponentEnvList are derived from this context.
	AuthContext *AuthContext
	// AuthManager holds the authentication manager instance used to create AuthContext.
	// This is needed for nested operations (e.g., nested !terraform.state functions)
	// that require re-authentication or access to the original authentication chain.
	//
	// Type is 'any' to avoid circular dependency:
	//   - Using auth.AuthManager would require importing pkg/auth
	//   - pkg/auth already imports pkg/schema (for ConfigAndStacksInfo)
	//   - This would create: schema → auth → schema (circular dependency error)
	//   - Type assertions are used at usage sites to recover type safety
	AuthManager               any
	ComponentBackendType      string
	AdditionalArgsAndFlags    []string
	GlobalOptions             []string
	BasePath                  string
	VendorBasePathFlag        string
	TerraformCommand          string
	TerraformDir              string
	HelmfileCommand           string
	HelmfileDir               string
	PackerCommand             string
	PackerDir                 string
	ConfigDir                 string
	StacksDir                 string
	WorkflowsDir              string
	Context                   Context
	ContextPrefix             string
	DeployRunInit             string
	InitRunReconfigure        string
	InitPassVars              string
	PlanSkipPlanfile          string
	AutoGenerateBackendFile   string
	UseTerraformPlan          bool
	PlanFile                  string
	DryRun                    bool
	SkipInit                  bool
	ComponentInheritanceChain []string
	ComponentImportsSection   []string
	NeedHelp                  bool
	ComponentIsAbstract       bool
	ComponentIsEnabled        bool
	ComponentIsLocked         bool
	ComponentMetadataSection  AtmosSectionMapType
	TerraformWorkspace        string
	JsonSchemaDir             string
	OpaDir                    string
	CueDir                    string
	AtmosManifestJsonSchema   string
	AtmosCliConfigPath        string
	AtmosBasePath             string
	ProfilesFromArg           []string
	RedirectStdErr            string
	LogsLevel                 string
	LogsFile                  string
	SettingsListMergeStrategy string
	Query                     string
	AtmosConfigFilesFromArg   []string
	AtmosConfigDirsFromArg    []string
	ProcessTemplates          bool
	ProcessFunctions          bool
	Skip                      []string
	CliArgs                   []string
	Affected                  bool
	All                       bool
	Components                []string
	Identity                  string
	NeedsPathResolution       bool // True if ComponentFromArg is a path that needs resolution.
}

func (*ConfigAndStacksInfo) GetComponentEnvSection added in v1.199.0

func (c *ConfigAndStacksInfo) GetComponentEnvSection() map[string]any

GetComponentEnvSection returns the component's env section map. This implements the utils.EnvVarContext interface.

type ConfigMetadata added in v1.199.0

type ConfigMetadata struct {
	// Name is the name of the configuration or profile.
	Name string `yaml:"name,omitempty" json:"name,omitempty" mapstructure:"name"`

	// Description is a human-readable description.
	Description string `yaml:"description,omitempty" json:"description,omitempty" mapstructure:"description"`

	// Version is the semantic version of the configuration.
	Version string `yaml:"version,omitempty" json:"version,omitempty" mapstructure:"version"`

	// Tags are labels for filtering and organization.
	Tags []string `yaml:"tags,omitempty" json:"tags,omitempty" mapstructure:"tags"`

	// Deprecated indicates if this configuration should no longer be used.
	Deprecated bool `yaml:"deprecated,omitempty" json:"deprecated,omitempty" mapstructure:"deprecated"`
}

ConfigMetadata contains metadata about a configuration file or profile.

type ConfigSources added in v1.42.0

type ConfigSources map[string]map[string]ConfigSourcesItem

type ConfigSourcesItem added in v1.42.0

type ConfigSourcesItem struct {
	FinalValue        any                            `yaml:"final_value" json:"final_value" mapstructure:"final_value"`
	Name              string                         `yaml:"name" json:"name" mapstructure:"name"`
	StackDependencies ConfigSourcesStackDependencies `yaml:"stack_dependencies" json:"stack_dependencies" mapstructure:"stack_dependencies"`
}

type ConfigSourcesStackDependencies added in v1.42.0

type ConfigSourcesStackDependencies []ConfigSourcesStackDependency

type ConfigSourcesStackDependency added in v1.42.0

type ConfigSourcesStackDependency struct {
	StackFile        string `yaml:"stack_file" json:"stack_file" mapstructure:"stack_file"`
	StackFileSection string `yaml:"stack_file_section" json:"stack_file_section" mapstructure:"stack_file_section"`
	DependencyType   string `yaml:"dependency_type" json:"dependency_type" mapstructure:"dependency_type"`
	VariableValue    any    `yaml:"variable_value" json:"variable_value" mapstructure:"variable_value"`
}

ConfigSourcesStackDependency defines schema for sources of config sections.

type ConsoleConfig added in v1.196.0

type ConsoleConfig struct {
	SessionDuration string `yaml:"session_duration,omitempty" json:"session_duration,omitempty" mapstructure:"session_duration"` // Duration string (e.g., "12h"). Max: 12h for AWS.
}

ConsoleConfig defines web console access configuration for providers.

type Context

type Context struct {
	Namespace          string `yaml:"namespace" json:"namespace" mapstructure:"namespace"`
	Tenant             string `yaml:"tenant" json:"tenant" mapstructure:"tenant"`
	Environment        string `yaml:"environment" json:"environment" mapstructure:"environment"`
	Stage              string `yaml:"stage" json:"stage" mapstructure:"stage"`
	Region             string `yaml:"region" json:"region" mapstructure:"region"`
	Component          string `yaml:"component" json:"component" mapstructure:"component"`
	BaseComponent      string `yaml:"base_component" json:"base_component" mapstructure:"base_component"`
	ComponentPath      string `yaml:"component_path" json:"component_path" mapstructure:"component_path"`
	Workspace          string `yaml:"workspace" json:"workspace" mapstructure:"workspace"`
	Attributes         []any  `yaml:"attributes" json:"attributes" mapstructure:"attributes"`
	File               string `yaml:"file" json:"file" mapstructure:"file"`
	Folder             string `yaml:"folder" json:"folder" mapstructure:"folder"`
	TerraformWorkspace string `yaml:"terraform_workspace" json:"terraform_workspace" mapstructure:"terraform_workspace"`
	Stack              string `yaml:"stack" json:"stack" mapstructure:"stack"`
}

type Dependent added in v1.33.2

type Dependent struct {
	Component            string              `yaml:"component" json:"component" mapstructure:"component"`
	ComponentType        string              `yaml:"component_type" json:"component_type" mapstructure:"component_type"`
	ComponentPath        string              `yaml:"component_path" json:"component_path" mapstructure:"component_path"`
	Namespace            string              `yaml:"namespace,omitempty" json:"namespace,omitempty" mapstructure:"namespace"`
	Tenant               string              `yaml:"tenant,omitempty" json:"tenant,omitempty" mapstructure:"tenant"`
	Environment          string              `yaml:"environment,omitempty" json:"environment,omitempty" mapstructure:"environment"`
	Stage                string              `yaml:"stage,omitempty" json:"stage,omitempty" mapstructure:"stage"`
	Stack                string              `yaml:"stack" json:"stack" mapstructure:"stack"`
	StackSlug            string              `yaml:"stack_slug" json:"stack_slug" mapstructure:"stack_slug"`
	SpaceliftStack       string              `yaml:"spacelift_stack,omitempty" json:"spacelift_stack,omitempty" mapstructure:"spacelift_stack"`
	AtlantisProject      string              `yaml:"atlantis_project,omitempty" json:"atlantis_project,omitempty" mapstructure:"atlantis_project"`
	Dependents           []Dependent         `yaml:"dependents" json:"dependents" mapstructure:"dependents"`
	IncludedInDependents bool                `yaml:"included_in_dependents" json:"included_in_dependents" mapstructure:"included_in_dependents"`
	Settings             AtmosSectionMapType `yaml:"settings" json:"settings" mapstructure:"settings"`
}

type DependsOn

type DependsOn map[any]Context

type Describe added in v1.176.0

type Describe struct {
	Settings DescribeSettings `yaml:"settings,omitempty" json:"settings,omitempty" mapstructure:"settings"`
}

Describe contains configuration for the describe command.

type DescribeSettings added in v1.176.0

type DescribeSettings struct {
	IncludeEmpty *bool `yaml:"include_empty,omitempty" json:"include_empty,omitempty" mapstructure:"include_empty"`
}

DescribeSettings contains settings for the describe command output.

type DescribeWorkflowsItem added in v1.55.0

type DescribeWorkflowsItem struct {
	File     string `yaml:"file" json:"file" mapstructure:"file"`
	Workflow string `yaml:"workflow" json:"workflow" mapstructure:"workflow"`
}

type Docs added in v1.103.0

type Docs struct {
	// Deprecated: this has moved to `settings.terminal.max-width`
	MaxWidth int `yaml:"max-width" json:"max_width" mapstructure:"max-width"`
	// Deprecated: this has moved to `settings.terminal.pagination`
	Pagination bool                    `yaml:"pagination" json:"pagination" mapstructure:"pagination"`
	Generate   map[string]DocsGenerate `yaml:"generate,omitempty" json:"generate,omitempty" mapstructure:"generate"`
}

type DocsGenerate added in v1.175.0

type DocsGenerate struct {
	BaseDir   string                      `yaml:"base-dir,omitempty" json:"base-dir,omitempty" mapstructure:"base-dir"`
	Input     []any                       `yaml:"input,omitempty" json:"input,omitempty" mapstructure:"input"`
	Template  string                      `yaml:"template,omitempty" json:"template,omitempty" mapstructure:"template"`
	Output    string                      `yaml:"output,omitempty" json:"output,omitempty" mapstructure:"output"`
	Terraform TerraformDocsReadmeSettings `yaml:"terraform,omitempty" json:"terraform,omitempty" mapstructure:"terraform"`
}

type EditorConfig added in v1.151.0

type EditorConfig struct {
	IgnoreDefaults  bool     `yaml:"ignore_defaults,omitempty" json:"ignore_defaults,omitempty" mapstructure:"ignore_defaults"`
	DryRun          bool     `yaml:"dry_run,omitempty" json:"dry_run,omitempty" mapstructure:"dry_run"`
	Format          string   `yaml:"format,omitempty" json:"format,omitempty" mapstructure:"format"`
	ConfigFilePaths []string `yaml:"config_file_paths,omitempty" json:"config_file_paths,omitempty" mapstructure:"config_file_paths"`
	Exclude         []string `yaml:"exclude,omitempty" json:"exclude,omitempty" mapstructure:"exclude"`
	Init            bool     `yaml:"init,omitempty" json:"init,omitempty" mapstructure:"init"`

	DisableEndOfLine              bool `yaml:"disable_end_of_line,omitempty" json:"disable_end_of_line,omitempty" mapstructure:"disable_end_of_line"`
	DisableInsertFinalNewline     bool `` /* 135-byte string literal not displayed */
	DisableIndentation            bool `yaml:"disable_indentation,omitempty" json:"disable_indentation,omitempty" mapstructure:"disable_indentation"`
	DisableIndentSize             bool `yaml:"disable_indent_size,omitempty" json:"disable_indent_size,omitempty" mapstructure:"disable_indent_size"`
	DisableMaxLineLength          bool `yaml:"disable_max_line_length,omitempty" json:"disable_max_line_length,omitempty" mapstructure:"disable_max_line_length"`
	DisableTrimTrailingWhitespace bool `` /* 147-byte string literal not displayed */
}

type EnvironmentVariable added in v1.194.0

type EnvironmentVariable struct {
	Key   string `yaml:"key" json:"key" mapstructure:"key"`
	Value string `yaml:"value" json:"value" mapstructure:"value"`
}

EnvironmentVariable defines an environment variable with preserved case sensitivity.

type ErrorFormatConfig added in v1.199.0

type ErrorFormatConfig struct {
	Verbose bool `yaml:"verbose,omitempty" json:"verbose,omitempty" mapstructure:"verbose"`
}

ErrorFormatConfig contains formatting options for errors.

type ErrorsConfig added in v1.199.0

type ErrorsConfig struct {
	Format ErrorFormatConfig `yaml:"format,omitempty" json:"format,omitempty" mapstructure:"format"`
	Sentry SentryConfig      `yaml:"sentry,omitempty" json:"sentry,omitempty" mapstructure:"sentry"`
}

ErrorsConfig contains configuration for error handling.

type GithubOIDCSettings added in v1.180.0

type GithubOIDCSettings struct {
	RequestURL   string `yaml:"request_url,omitempty" json:"request_url,omitempty" mapstructure:"request_url"`
	RequestToken string `yaml:"request_token,omitempty" json:"request_token,omitempty" mapstructure:"request_token"`
}

GithubOIDCSettings contains GitHub OIDC token configuration.

type Helmfile

type Helmfile struct {
	BasePath              string `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
	UseEKS                bool   `yaml:"use_eks" json:"use_eks" mapstructure:"use_eks"`
	KubeconfigPath        string `yaml:"kubeconfig_path" json:"kubeconfig_path" mapstructure:"kubeconfig_path"`
	HelmAwsProfilePattern string `yaml:"helm_aws_profile_pattern" json:"helm_aws_profile_pattern" mapstructure:"helm_aws_profile_pattern"`
	ClusterNamePattern    string `yaml:"cluster_name_pattern" json:"cluster_name_pattern" mapstructure:"cluster_name_pattern"`
	Command               string `yaml:"command" json:"command" mapstructure:"command"`
}

type Identity added in v1.194.0

type Identity struct {
	Kind        string                 `yaml:"kind" json:"kind" mapstructure:"kind"`
	Default     bool                   `yaml:"default,omitempty" json:"default,omitempty" mapstructure:"default"`
	Provider    string                 `yaml:"provider,omitempty" json:"provider,omitempty" mapstructure:"provider"` // Provider name for direct provider association (for provisioned identities).
	Via         *IdentityVia           `yaml:"via,omitempty" json:"via,omitempty" mapstructure:"via"`
	Principal   map[string]interface{} `yaml:"principal,omitempty" json:"principal,omitempty" mapstructure:"principal"` // Principal information (role name, account, etc.). For AWS permission sets: {name: string, account: {name: string, id: string}}.
	Credentials map[string]interface{} `yaml:"credentials,omitempty" json:"credentials,omitempty" mapstructure:"credentials"`
	Alias       string                 `yaml:"alias,omitempty" json:"alias,omitempty" mapstructure:"alias"`
	Env         []EnvironmentVariable  `yaml:"env,omitempty" json:"env,omitempty" mapstructure:"env"`
	Session     *SessionConfig         `yaml:"session,omitempty" json:"session,omitempty" mapstructure:"session"`
}

Identity defines an authentication identity configuration.

type IdentityVia added in v1.194.0

type IdentityVia struct {
	Provider string `yaml:"provider,omitempty" json:"provider,omitempty" mapstructure:"provider"`
	Identity string `yaml:"identity,omitempty" json:"identity,omitempty" mapstructure:"identity"`
}

IdentityVia defines how an identity connects to a provider or other identity.

type Instance added in v1.192.0

type Instance struct {
	Component     string              `yaml:"component" json:"component" mapstructure:"component"`
	Stack         string              `yaml:"stack" json:"stack" mapstructure:"stack"`
	ComponentType string              `yaml:"component_type" json:"component_type" mapstructure:"component_type"`
	Settings      AtmosSectionMapType `yaml:"settings" json:"settings" mapstructure:"settings"`
	Vars          AtmosSectionMapType `yaml:"vars" json:"vars" mapstructure:"vars"`
	Env           AtmosSectionMapType `yaml:"env" json:"env" mapstructure:"env"`
	Backend       AtmosSectionMapType `yaml:"backend" json:"backend" mapstructure:"backend"`
	Metadata      AtmosSectionMapType `yaml:"metadata" json:"metadata" mapstructure:"metadata"`
}

Instance represents an instance of a component for a specific stack.

type Integrations

type Integrations struct {
	Atlantis Atlantis            `yaml:"atlantis,omitempty" json:"atlantis,omitempty" mapstructure:"atlantis"`
	GitHub   AtmosSectionMapType `yaml:"github,omitempty" json:"github,omitempty" mapstructure:"github"`
	Pro      AtmosSectionMapType `yaml:"pro,omitempty" json:"pro,omitempty" mapstructure:"pro"`
}

type KeyringConfig added in v1.196.0

type KeyringConfig struct {
	Type string                 `yaml:"type,omitempty" json:"type,omitempty" mapstructure:"type"` // "system", "file", or "memory"
	Spec map[string]interface{} `yaml:"spec,omitempty" json:"spec,omitempty" mapstructure:"spec"` // Type-specific configuration
}

KeyringConfig defines keyring backend configuration for credential storage.

type ListColumnConfig added in v1.155.0

type ListColumnConfig struct {
	Name  string `yaml:"name" json:"name" mapstructure:"name"`
	Value string `yaml:"value" json:"value" mapstructure:"value"`
	Width int    `yaml:"width,omitempty" json:"width,omitempty" mapstructure:"width"`
}

type ListConfig added in v1.155.0

type ListConfig struct {
	// Format specifies the output format (table, json, csv)
	// If empty, defaults to table format
	Format  string             `yaml:"format" json:"format" mapstructure:"format" validate:"omitempty,oneof=table json csv"`
	Columns []ListColumnConfig `yaml:"columns" json:"columns" mapstructure:"columns"`
}

type Logs

type Logs struct {
	File  string `yaml:"file" json:"file" mapstructure:"file"`
	Level string `yaml:"level" json:"level" mapstructure:"level"`
}

type MarkdownSettings added in v1.135.0

type MarkdownSettings struct {
	Document              MarkdownStyle `yaml:"document,omitempty" json:"document,omitempty" mapstructure:"document"`
	BlockQuote            MarkdownStyle `yaml:"block_quote,omitempty" json:"block_quote,omitempty" mapstructure:"block_quote"`
	Paragraph             MarkdownStyle `yaml:"paragraph,omitempty" json:"paragraph,omitempty" mapstructure:"paragraph"`
	List                  MarkdownStyle `yaml:"list,omitempty" json:"list,omitempty" mapstructure:"list"`
	ListItem              MarkdownStyle `yaml:"list_item,omitempty" json:"list_item,omitempty" mapstructure:"list_item"`
	Heading               MarkdownStyle `yaml:"heading,omitempty" json:"heading,omitempty" mapstructure:"heading"`
	H1                    MarkdownStyle `yaml:"h1,omitempty" json:"h1,omitempty" mapstructure:"h1"`
	H2                    MarkdownStyle `yaml:"h2,omitempty" json:"h2,omitempty" mapstructure:"h2"`
	H3                    MarkdownStyle `yaml:"h3,omitempty" json:"h3,omitempty" mapstructure:"h3"`
	H4                    MarkdownStyle `yaml:"h4,omitempty" json:"h4,omitempty" mapstructure:"h4"`
	H5                    MarkdownStyle `yaml:"h5,omitempty" json:"h5,omitempty" mapstructure:"h5"`
	H6                    MarkdownStyle `yaml:"h6,omitempty" json:"h6,omitempty" mapstructure:"h6"`
	Text                  MarkdownStyle `yaml:"text,omitempty" json:"text,omitempty" mapstructure:"text"`
	Strong                MarkdownStyle `yaml:"strong,omitempty" json:"strong,omitempty" mapstructure:"strong"`
	Emph                  MarkdownStyle `yaml:"emph,omitempty" json:"emph,omitempty" mapstructure:"emph"`
	Hr                    MarkdownStyle `yaml:"hr,omitempty" json:"hr,omitempty" mapstructure:"hr"`
	Item                  MarkdownStyle `yaml:"item,omitempty" json:"item,omitempty" mapstructure:"item"`
	Enumeration           MarkdownStyle `yaml:"enumeration,omitempty" json:"enumeration,omitempty" mapstructure:"enumeration"`
	Code                  MarkdownStyle `yaml:"code,omitempty" json:"code,omitempty" mapstructure:"code"`
	CodeBlock             MarkdownStyle `yaml:"code_block,omitempty" json:"code_block,omitempty" mapstructure:"code_block"`
	Table                 MarkdownStyle `yaml:"table,omitempty" json:"table,omitempty" mapstructure:"table"`
	DefinitionList        MarkdownStyle `yaml:"definition_list,omitempty" json:"definition_list,omitempty" mapstructure:"definition_list"`
	DefinitionTerm        MarkdownStyle `yaml:"definition_term,omitempty" json:"definition_term,omitempty" mapstructure:"definition_term"`
	DefinitionDescription MarkdownStyle `yaml:"definition_description,omitempty" json:"definition_description,omitempty" mapstructure:"definition_description"`
	HtmlBlock             MarkdownStyle `yaml:"html_block,omitempty" json:"html_block,omitempty" mapstructure:"html_block"`
	HtmlSpan              MarkdownStyle `yaml:"html_span,omitempty" json:"html_span,omitempty" mapstructure:"html_span"`
	Link                  MarkdownStyle `yaml:"link,omitempty" json:"link,omitempty" mapstructure:"link"`
	LinkText              MarkdownStyle `yaml:"link_text,omitempty" json:"link_text,omitempty" mapstructure:"link_text"`
}

type MarkdownStyle added in v1.135.0

type MarkdownStyle struct {
	BlockPrefix     string                 `yaml:"block_prefix,omitempty" json:"block_prefix,omitempty" mapstructure:"block_prefix"`
	BlockSuffix     string                 `yaml:"block_suffix,omitempty" json:"block_suffix,omitempty" mapstructure:"block_suffix"`
	Color           string                 `yaml:"color,omitempty" json:"color,omitempty" mapstructure:"color"`
	BackgroundColor string                 `yaml:"background_color,omitempty" json:"background_color,omitempty" mapstructure:"background_color"`
	Bold            bool                   `yaml:"bold,omitempty" json:"bold,omitempty" mapstructure:"bold"`
	Italic          bool                   `yaml:"italic,omitempty" json:"italic,omitempty" mapstructure:"italic"`
	Underline       bool                   `yaml:"underline,omitempty" json:"underline,omitempty" mapstructure:"underline"`
	Margin          int                    `yaml:"margin,omitempty" json:"margin,omitempty" mapstructure:"margin"`
	Padding         int                    `yaml:"padding,omitempty" json:"padding,omitempty" mapstructure:"padding"`
	Indent          int                    `yaml:"indent,omitempty" json:"indent,omitempty" mapstructure:"indent"`
	IndentToken     string                 `yaml:"indent_token,omitempty" json:"indent_token,omitempty" mapstructure:"indent_token"`
	LevelIndent     int                    `yaml:"level_indent,omitempty" json:"level_indent,omitempty" mapstructure:"level_indent"`
	Format          string                 `yaml:"format,omitempty" json:"format,omitempty" mapstructure:"format"`
	Prefix          string                 `yaml:"prefix,omitempty" json:"prefix,omitempty" mapstructure:"prefix"`
	StyleOverride   bool                   `yaml:"style_override,omitempty" json:"style_override,omitempty" mapstructure:"style_override"`
	Chroma          map[string]ChromaStyle `yaml:"chroma,omitempty" json:"chroma,omitempty" mapstructure:"chroma"`
}

type MaskSettings added in v1.198.0

type MaskSettings struct {
	Enabled     bool     `yaml:"enabled" json:"enabled" mapstructure:"enabled"`
	Replacement string   `yaml:"replacement,omitempty" json:"replacement,omitempty" mapstructure:"replacement"` // Custom replacement string (default: ***MASKED***)
	Patterns    []string `yaml:"patterns,omitempty" json:"patterns,omitempty" mapstructure:"patterns"`          // Custom regex patterns to mask
	Literals    []string `yaml:"literals,omitempty" json:"literals,omitempty" mapstructure:"literals"`          // Custom literal values to mask
}

MaskSettings contains configuration for sensitive data masking.

type Packer added in v1.186.0

type Packer struct {
	BasePath string `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
	Command  string `yaml:"command" json:"command" mapstructure:"command"`
}

type Principal added in v1.200.0

type Principal struct {
	Name    string   `yaml:"name,omitempty" json:"name,omitempty" mapstructure:"name"`
	Account *Account `yaml:"account,omitempty" json:"account,omitempty" mapstructure:"account"`
}

Principal defines the principal information for an identity (for provisioned identities). This is a helper struct for creating provisioned identities programmatically.

func (*Principal) ToMap added in v1.200.0

func (p *Principal) ToMap() map[string]interface{}

ToMap converts a Principal struct to a map[string]interface{} for use in Identity.Principal.

type ProSettings added in v1.180.0

type ProSettings struct {
	BaseURL     string             `yaml:"base_url,omitempty" json:"base_url,omitempty" mapstructure:"base_url"`
	Endpoint    string             `yaml:"endpoint,omitempty" json:"endpoint,omitempty" mapstructure:"endpoint"`
	Token       string             `yaml:"token,omitempty" json:"token,omitempty" mapstructure:"token"`
	WorkspaceID string             `yaml:"workspace_id,omitempty" json:"workspace_id,omitempty" mapstructure:"workspace_id"`
	GithubOIDC  GithubOIDCSettings `yaml:"github_oidc,omitempty" json:"github_oidc,omitempty" mapstructure:"github_oidc"`
}

ProSettings contains Atmos Pro integration configuration.

type ProfilesConfig added in v1.199.0

type ProfilesConfig struct {
	// BasePath is the custom directory for profile storage.
	// If relative, resolved from atmos.yaml directory.
	// If absolute, used as-is.
	BasePath string `yaml:"base_path,omitempty" json:"base_path,omitempty" mapstructure:"base_path"`
}

ProfilesConfig defines configuration for the profiles system.

type Provider added in v1.194.0

type Provider struct {
	Kind                    string                 `yaml:"kind" json:"kind" mapstructure:"kind"`
	StartURL                string                 `yaml:"start_url,omitempty" json:"start_url,omitempty" mapstructure:"start_url"`
	URL                     string                 `yaml:"url,omitempty" json:"url,omitempty" mapstructure:"url"`
	Region                  string                 `yaml:"region,omitempty" json:"region,omitempty" mapstructure:"region"`
	Username                string                 `yaml:"username,omitempty" json:"username,omitempty" mapstructure:"username"`
	Password                string                 `yaml:"password,omitempty" json:"password,omitempty" mapstructure:"password"`
	Driver                  string                 `yaml:"driver,omitempty" json:"driver,omitempty" mapstructure:"driver"`
	ProviderType            string                 `yaml:"provider_type,omitempty" json:"provider_type,omitempty" mapstructure:"provider_type"` // Deprecated: use driver.
	DownloadBrowserDriver   bool                   `yaml:"download_browser_driver,omitempty" json:"download_browser_driver,omitempty" mapstructure:"download_browser_driver"`
	AutoProvisionIdentities *bool                  `` /* 126-byte string literal not displayed */
	Session                 *SessionConfig         `yaml:"session,omitempty" json:"session,omitempty" mapstructure:"session"`
	Console                 *ConsoleConfig         `yaml:"console,omitempty" json:"console,omitempty" mapstructure:"console"`
	Default                 bool                   `yaml:"default,omitempty" json:"default,omitempty" mapstructure:"default"`
	Spec                    map[string]interface{} `yaml:"spec,omitempty" json:"spec,omitempty" mapstructure:"spec"`
}

Provider defines an authentication provider configuration.

type ResourcePath added in v1.166.0

type ResourcePath struct {
	BasePath string `yaml:"base_path,omitempty" json:"base_path,omitempty" mapstructure:"base_path"`
}

type RetryConfig added in v1.186.0

type RetryConfig struct {
	MaxAttempts     int             `yaml:"max_attempts" json:"max_attempts" mapstructure:"max_attempts"`
	BackoffStrategy BackoffStrategy `yaml:"backoff_strategy" json:"backoff_strategy" mapstructure:"backoff_strategy"`
	InitialDelay    time.Duration   `yaml:"initial_delay" json:"initial_delay" mapstructure:"initial_delay"`
	MaxDelay        time.Duration   `yaml:"max_delay" json:"max_delay" mapstructure:"max_delay"`
	RandomJitter    float64         `yaml:"random_jitter" json:"random_jitter" mapstructure:"random_jitter"`
	Multiplier      float64         `yaml:"multiplier" json:"multiplier" mapstructure:"multiplier"`
	MaxElapsedTime  time.Duration   `yaml:"max_elapsed_time" json:"max_elapsed_time" mapstructure:"max_elapsed_time"`
}

RetryConfig represents the retry configuration.

type SchemaRegistry added in v1.166.0

type SchemaRegistry struct {
	Manifest string   `yaml:"manifest,omitempty" json:"manifest,omitempty" mapstructure:"manifest"`
	Schema   string   `yaml:"schema,omitempty" json:"schema,omitempty" mapstructure:"schema"`
	Matches  []string `yaml:"matches,omitempty" json:"matches,omitempty" mapstructure:"matches"`
}

type SentryConfig added in v1.199.0

type SentryConfig struct {
	Enabled             bool              `yaml:"enabled" json:"enabled" mapstructure:"enabled"`
	DSN                 string            `yaml:"dsn" json:"dsn" mapstructure:"dsn"`
	Environment         string            `yaml:"environment,omitempty" json:"environment,omitempty" mapstructure:"environment"`
	Release             string            `yaml:"release,omitempty" json:"release,omitempty" mapstructure:"release"`
	SampleRate          float64           `yaml:"sample_rate,omitempty" json:"sample_rate,omitempty" mapstructure:"sample_rate"`
	Debug               bool              `yaml:"debug,omitempty" json:"debug,omitempty" mapstructure:"debug"`
	Tags                map[string]string `yaml:"tags,omitempty" json:"tags,omitempty" mapstructure:"tags"`
	CaptureStackContext bool              `yaml:"capture_stack_context,omitempty" json:"capture_stack_context,omitempty" mapstructure:"capture_stack_context"`
}

SentryConfig contains Sentry error reporting configuration.

type SessionConfig added in v1.194.0

type SessionConfig struct {
	Duration string `yaml:"duration,omitempty" json:"duration,omitempty" mapstructure:"duration"`
}

SessionConfig defines session configuration for providers.

type Settings

type Settings struct {
	DependsOn DependsOn         `yaml:"depends_on,omitempty" json:"depends_on,omitempty" mapstructure:"depends_on"`
	Spacelift SettingsSpacelift `yaml:"spacelift,omitempty" json:"spacelift,omitempty" mapstructure:"spacelift"`
	Templates Templates         `yaml:"templates,omitempty" json:"templates,omitempty" mapstructure:"templates"`
}

type SettingsSpacelift added in v1.37.0

type SettingsSpacelift AtmosSectionMapType

type ShellConfig added in v1.107.0

type ShellConfig struct {
	Prompt string `yaml:"prompt" json:"prompt" mapstructure:"prompt"`
}

type StackImport

type StackImport struct {
	Path                        string              `yaml:"path" json:"path" mapstructure:"path"`
	Context                     AtmosSectionMapType `yaml:"context" json:"context" mapstructure:"context"`
	SkipTemplatesProcessing     bool                `` /* 126-byte string literal not displayed */
	IgnoreMissingTemplateValues bool                `` /* 141-byte string literal not displayed */
	SkipIfMissing               bool                `yaml:"skip_if_missing,omitempty" json:"skip_if_missing,omitempty" mapstructure:"skip_if_missing"`
}

type StackLockActionParams added in v1.192.0

type StackLockActionParams struct {
	Method  string `yaml:"method,omitempty" json:"method,omitempty" mapstructure:"method"`
	URL     string `yaml:"url,omitempty" json:"url,omitempty" mapstructure:"url"`
	Body    any    `yaml:"body,omitempty" json:"body,omitempty" mapstructure:"body"`
	Out     any    `yaml:"out,omitempty" json:"out,omitempty" mapstructure:"out"`
	Op      string `yaml:"op,omitempty" json:"op,omitempty" mapstructure:"op"`
	WrapErr error  `yaml:"wrap_err,omitempty" json:"wrap_err,omitempty" mapstructure:"wrap_err"`
}

StackLockActionParams holds the parameters for stack lock/unlock operations.

type Stacks

type Stacks struct {
	BasePath      string        `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
	IncludedPaths []string      `yaml:"included_paths" json:"included_paths" mapstructure:"included_paths"`
	ExcludedPaths []string      `yaml:"excluded_paths" json:"excluded_paths" mapstructure:"excluded_paths"`
	NamePattern   string        `yaml:"name_pattern" json:"name_pattern" mapstructure:"name_pattern"`
	NameTemplate  string        `yaml:"name_template" json:"name_template" mapstructure:"name_template"`
	List          ListConfig    `yaml:"list,omitempty" json:"list,omitempty" mapstructure:"list"`
	Inherit       StacksInherit `yaml:"inherit,omitempty" json:"inherit,omitempty" mapstructure:"inherit"`
}

type StacksInherit added in v1.201.0

type StacksInherit struct {
	// Metadata controls whether metadata fields are inherited from base components.
	// When true (default), all metadata fields except 'inherits' are inherited.
	// When false, metadata is per-component only (legacy behavior).
	Metadata *bool `yaml:"metadata,omitempty" json:"metadata,omitempty" mapstructure:"metadata"`
}

StacksInherit controls inheritance behavior for stack processing.

func (*StacksInherit) IsMetadataInheritanceEnabled added in v1.201.0

func (s *StacksInherit) IsMetadataInheritanceEnabled() bool

IsMetadataInheritanceEnabled returns whether metadata inheritance is enabled. Defaults to true if not explicitly set.

type SyntaxHighlighting added in v1.148.0

type SyntaxHighlighting struct {
	Enabled     bool   `yaml:"enabled" json:"enabled" mapstructure:"enabled"`
	Lexer       string `yaml:"lexer" json:"lexer" mapstructure:"lexer"`
	Formatter   string `yaml:"formatter" json:"formatter" mapstructure:"formatter"`
	Theme       string `yaml:"theme" json:"theme" mapstructure:"theme"`
	LineNumbers bool   `yaml:"line_numbers" json:"line_numbers" mapstructure:"line_numbers"`
	Wrap        bool   `yaml:"wrap" json:"wrap" mapstructure:"wrap"`
}

type TelemetrySettings added in v1.183.0

type TelemetrySettings struct {
	Enabled  bool   `yaml:"enabled,omitempty" json:"enabled,omitempty" mapstructure:"enabled"`
	Endpoint string `yaml:"endpoint,omitempty" json:"endpoint,omitempty" mapstructure:"endpoint"`
	Token    string `yaml:"token,omitempty" json:"token,omitempty" mapstructure:"token"`
	Logging  bool   `yaml:"logging" json:"logging" mapstructure:"logging"`
}

TelemetrySettings contains configuration for telemetry collection.

type Templates added in v1.68.0

type Templates struct {
	Settings TemplatesSettings `yaml:"settings" json:"settings" mapstructure:"settings"`
}

type TemplatesSettings added in v1.68.0

type TemplatesSettings struct {
	Enabled     bool                      `yaml:"enabled" json:"enabled" mapstructure:"enabled"`
	Sprig       TemplatesSettingsSprig    `yaml:"sprig" json:"sprig" mapstructure:"sprig"`
	Gomplate    TemplatesSettingsGomplate `yaml:"gomplate" json:"gomplate" mapstructure:"gomplate"`
	Delimiters  []string                  `yaml:"delimiters,omitempty" json:"delimiters,omitempty" mapstructure:"delimiters"`
	Evaluations int                       `yaml:"evaluations,omitempty" json:"evaluations,omitempty" mapstructure:"evaluations"`
	Env         map[string]string         `yaml:"env,omitempty" json:"env,omitempty" mapstructure:"-"` // mapstructure:"-" avoids collision with Command.Env []CommandEnv.
}

type TemplatesSettingsGomplate added in v1.68.0

type TemplatesSettingsGomplate struct {
	Enabled     bool                                           `yaml:"enabled" json:"enabled" mapstructure:"enabled"`
	Timeout     int                                            `yaml:"timeout" json:"timeout" mapstructure:"timeout"`
	Datasources map[string]TemplatesSettingsGomplateDatasource `yaml:"datasources" json:"datasources" mapstructure:"datasources"`
}

type TemplatesSettingsGomplateDatasource added in v1.70.0

type TemplatesSettingsGomplateDatasource struct {
	Url     string              `yaml:"url" json:"url" mapstructure:"url"`
	Headers map[string][]string `yaml:"headers" json:"headers" mapstructure:"headers"`
}

type TemplatesSettingsSprig added in v1.68.0

type TemplatesSettingsSprig struct {
	Enabled bool `yaml:"enabled" json:"enabled" mapstructure:"enabled"`
}

type Terminal added in v1.135.0

type Terminal struct {
	MaxWidth           int                `yaml:"max_width" json:"max_width" mapstructure:"max_width"`
	Pager              string             `yaml:"pager" json:"pager" mapstructure:"pager"`
	Unicode            bool               `yaml:"unicode" json:"unicode" mapstructure:"unicode"`
	SyntaxHighlighting SyntaxHighlighting `yaml:"syntax_highlighting" json:"syntax_highlighting" mapstructure:"syntax_highlighting"`
	Color              bool               `yaml:"color" json:"color" mapstructure:"color"`
	NoColor            bool               `yaml:"no_color" json:"no_color" mapstructure:"no_color"` // Deprecated in config, use Color instead
	ForceColor         bool               `yaml:"-" json:"-" mapstructure:"force_color"`            // ENV-only: ATMOS_FORCE_COLOR
	TabWidth           int                `yaml:"tab_width,omitempty" json:"tab_width,omitempty" mapstructure:"tab_width"`
	Title              bool               `yaml:"title,omitempty" json:"title,omitempty" mapstructure:"title"`
	Alerts             bool               `yaml:"alerts,omitempty" json:"alerts,omitempty" mapstructure:"alerts"`
	Mask               MaskSettings       `yaml:"mask,omitempty" json:"mask,omitempty" mapstructure:"mask"`
	Theme              string             `yaml:"theme,omitempty" json:"theme,omitempty" mapstructure:"theme"`
}

func (*Terminal) IsColorEnabled added in v1.192.0

func (t *Terminal) IsColorEnabled(isTTY bool) bool

IsColorEnabled determines if color output should be enabled. The isTTY parameter provides the default when Color is not explicitly set.

func (*Terminal) IsPagerEnabled added in v1.175.0

func (t *Terminal) IsPagerEnabled() bool

IsPagerEnabled reports whether a pager should be used based on Terminal.Pager. It returns true if the pager is explicitly enabled or set to a specific pager command, and false if disabled or not configured.

type Terraform

type Terraform struct {
	BasePath                string        `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
	ApplyAutoApprove        bool          `yaml:"apply_auto_approve" json:"apply_auto_approve" mapstructure:"apply_auto_approve"`
	AppendUserAgent         string        `yaml:"append_user_agent" json:"append_user_agent" mapstructure:"append_user_agent"`
	DeployRunInit           bool          `yaml:"deploy_run_init" json:"deploy_run_init" mapstructure:"deploy_run_init"`
	InitRunReconfigure      bool          `yaml:"init_run_reconfigure" json:"init_run_reconfigure" mapstructure:"init_run_reconfigure"`
	AutoGenerateBackendFile bool          `yaml:"auto_generate_backend_file" json:"auto_generate_backend_file" mapstructure:"auto_generate_backend_file"`
	WorkspacesEnabled       *bool         `yaml:"workspaces_enabled,omitempty" json:"workspaces_enabled,omitempty" mapstructure:"workspaces_enabled"`
	Command                 string        `yaml:"command" json:"command" mapstructure:"command"`
	Shell                   ShellConfig   `yaml:"shell" json:"shell" mapstructure:"shell"`
	Init                    TerraformInit `yaml:"init" json:"init" mapstructure:"init"`
	Plan                    TerraformPlan `yaml:"plan" json:"plan" mapstructure:"plan"`
}

type TerraformDocsReadmeSettings added in v1.175.0

type TerraformDocsReadmeSettings struct {
	Source        string `yaml:"source,omitempty" json:"source,omitempty" mapstructure:"source"`
	Enabled       bool   `yaml:"enabled,omitempty" json:"enabled,omitempty" mapstructure:"enabled"`
	Format        string `yaml:"format,omitempty" json:"format,omitempty" mapstructure:"format"`
	ShowProviders bool   `yaml:"show_providers,omitempty" json:"show_providers,omitempty" mapstructure:"show_providers"`
	ShowInputs    bool   `yaml:"show_inputs,omitempty" json:"show_inputs,omitempty" mapstructure:"show_inputs"`
	ShowOutputs   bool   `yaml:"show_outputs,omitempty" json:"show_outputs,omitempty" mapstructure:"show_outputs"`
	SortBy        string `yaml:"sort_by,omitempty" json:"sort_by,omitempty" mapstructure:"sort_by"`
	HideEmpty     bool   `yaml:"hide_empty,omitempty" json:"hide_empty,omitempty" mapstructure:"hide_empty"`
	IndentLevel   int    `yaml:"indent_level,omitempty" json:"indent_level,omitempty" mapstructure:"indent_level"`
}

type TerraformInit added in v1.167.0

type TerraformInit struct {
	PassVars bool `yaml:"pass_vars" json:"pass_vars" mapstructure:"pass_vars"`
}

type TerraformPlan added in v1.185.0

type TerraformPlan struct {
	SkipPlanfile bool `yaml:"skip_planfile" json:"skip_planfile" mapstructure:"skip_planfile"`
}

type Validate added in v1.151.0

type Validate struct {
	EditorConfig EditorConfig `yaml:"editorconfig,omitempty" json:"editorconfig,omitempty" mapstructure:"editorconfig"`
}

type Validation

type Validation map[string]ValidationItem

type ValidationItem

type ValidationItem struct {
	SchemaType  string   `yaml:"schema_type" json:"schema_type" mapstructure:"schema_type"`
	SchemaPath  string   `yaml:"schema_path" json:"schema_path" mapstructure:"schema_path"`
	ModulePaths []string `yaml:"module_paths" json:"module_paths" mapstructure:"module_paths"`
	Description string   `yaml:"description" json:"description" mapstructure:"description"`
	Disabled    bool     `yaml:"disabled" json:"disabled" mapstructure:"disabled"`
	Timeout     int      `yaml:"timeout" json:"timeout" mapstructure:"timeout"`
}

type Vendor added in v1.106.0

type Vendor struct {
	// Path to vendor configuration file or directory containing vendor files
	// If a directory is specified, all .yaml files in the directory will be processed in lexicographical order
	BasePath string     `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
	List     ListConfig `yaml:"list,omitempty" json:"list,omitempty" mapstructure:"list"`
}

type VendorComponentConfig

type VendorComponentConfig struct {
	ApiVersion string                  `yaml:"apiVersion" json:"apiVersion" mapstructure:"apiVersion"`
	Kind       string                  `yaml:"kind" json:"kind" mapstructure:"kind"`
	Metadata   VendorComponentMetadata `yaml:"metadata" json:"metadata" mapstructure:"metadata"`
	Spec       VendorComponentSpec     `yaml:"spec" json:"spec" mapstructure:"spec"`
}

type VendorComponentMetadata

type VendorComponentMetadata struct {
	Name        string `yaml:"name" json:"name" mapstructure:"name"`
	Description string `yaml:"description" json:"description" mapstructure:"description"`
}

type VendorComponentMixins

type VendorComponentMixins struct {
	Type     string `yaml:"type" json:"type" mapstructure:"type"`
	Uri      string `yaml:"uri" json:"uri" mapstructure:"uri"`
	Version  string `yaml:"version" json:"version" mapstructure:"version"`
	Filename string `yaml:"filename" json:"filename" mapstructure:"filename"`
}

type VendorComponentSource

type VendorComponentSource struct {
	Type          string   `yaml:"type" json:"type" mapstructure:"type"`
	Uri           string   `yaml:"uri" json:"uri" mapstructure:"uri"`
	Version       string   `yaml:"version" json:"version" mapstructure:"version"`
	IncludedPaths []string `yaml:"included_paths" json:"included_paths" mapstructure:"included_paths"`
	ExcludedPaths []string `yaml:"excluded_paths" json:"excluded_paths" mapstructure:"excluded_paths"`
}

type VendorComponentSpec

type VendorComponentSpec struct {
	Source VendorComponentSource   `yaml:"source" json:"source" mapstructure:"source"`
	Mixins []VendorComponentMixins `yaml:"mixins" json:"mixins" mapstructure:"mixins"`
}

type Version added in v1.127.0

type Version struct {
	Check      VersionCheck      `yaml:"check,omitempty" mapstructure:"check" json:"check,omitempty"`
	Constraint VersionConstraint `yaml:"constraint,omitempty" mapstructure:"constraint" json:"constraint,omitempty"`
}

Version configures version checking and constraint validation.

type VersionCheck added in v1.127.0

type VersionCheck struct {
	Enabled   bool   `yaml:"enabled,omitempty" mapstructure:"enabled" json:"enabled,omitempty"`
	Timeout   int    `yaml:"timeout,omitempty" mapstructure:"timeout" json:"timeout,omitempty"`
	Frequency string `yaml:"frequency,omitempty" mapstructure:"frequency" json:"frequency,omitempty"`
}

VersionCheck configures automatic version checking against GitHub releases.

type VersionConstraint added in v1.201.0

type VersionConstraint struct {
	// Require specifies the semver constraint(s) for Atmos version as a single string.
	// Multiple constraints are comma-separated and treated as logical AND.
	// Uses hashicorp/go-version library syntax (same as Terraform).
	//
	// Examples:
	//   ">=1.2.3"                    - Minimum version
	//   "<2.0.0"                     - Maximum version (exclude)
	//   ">=1.2.3, <2.0.0"            - Range (AND logic)
	//   ">=2.5.0, !=2.7.0, <3.0.0"   - Complex (multiple AND constraints)
	//   "~>1.2"                      - Pessimistic constraint (>=1.2.0, <1.3.0)
	//   "~>1.2.3"                    - Pessimistic constraint (>=1.2.3, <1.3.0)
	//   "1.2.3"                      - Exact version
	Require string `yaml:"require,omitempty" mapstructure:"require" json:"require,omitempty"`

	// Enforcement specifies the behavior when version constraint is not satisfied.
	// Values:
	//   "fatal" - Exit immediately with error code 1 (default)
	//   "warn"  - Log warning but continue execution
	//   "silent" - Skip validation entirely (for debugging)
	Enforcement string `yaml:"enforcement,omitempty" mapstructure:"enforcement" json:"enforcement,omitempty"`

	// Message provides a custom message to display when constraint fails.
	// If empty, a default message is shown.
	Message string `yaml:"message,omitempty" mapstructure:"message" json:"message,omitempty"`
}

VersionConstraint configures version constraint validation for Atmos. When specified, Atmos validates that the current version satisfies the constraint before executing any command.

type WorkflowConfig

type WorkflowConfig map[string]WorkflowDefinition

type WorkflowDefinition

type WorkflowDefinition struct {
	Description      string         `yaml:"description,omitempty" json:"description,omitempty" mapstructure:"description"`
	WorkingDirectory string         `yaml:"working_directory,omitempty" json:"working_directory,omitempty" mapstructure:"working_directory"`
	Steps            []WorkflowStep `yaml:"steps" json:"steps" mapstructure:"steps"`
	Stack            string         `yaml:"stack,omitempty" json:"stack,omitempty" mapstructure:"stack"`
}

type WorkflowManifest added in v1.56.0

type WorkflowManifest struct {
	Name        string         `yaml:"name,omitempty" json:"name,omitempty" mapstructure:"name"`
	Description string         `yaml:"description,omitempty" json:"description,omitempty" mapstructure:"description"`
	Workflows   WorkflowConfig `yaml:"workflows" json:"workflows" mapstructure:"workflows"`
}

type WorkflowStep

type WorkflowStep struct {
	Name             string       `yaml:"name,omitempty" json:"name,omitempty" mapstructure:"name"`
	Command          string       `yaml:"command" json:"command" mapstructure:"command"`
	Stack            string       `yaml:"stack,omitempty" json:"stack,omitempty" mapstructure:"stack"`
	Type             string       `yaml:"type,omitempty" json:"type,omitempty" mapstructure:"type"`
	WorkingDirectory string       `yaml:"working_directory,omitempty" json:"working_directory,omitempty" mapstructure:"working_directory"`
	Retry            *RetryConfig `yaml:"retry,omitempty" json:"retry,omitempty" mapstructure:"retry"`
	Identity         string       `yaml:"identity,omitempty" json:"identity,omitempty" mapstructure:"identity"`
}

type Workflows

type Workflows struct {
	BasePath string     `yaml:"base_path" json:"base_path" mapstructure:"base_path"`
	List     ListConfig `yaml:"list" json:"list" mapstructure:"list"`
}

Jump to

Keyboard shortcuts

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