Module: Pangea::Types
- Defined in:
- lib/pangea/types/registry.rb,
lib/pangea/types/base_types.rb,
lib/pangea/types/domain_types.rb
Defined Under Namespace
Modules: BaseTypes Classes: Registry
Constant Summary collapse
- StrippedString =
Basic types with coercion
Coercible::String.constructor(&:strip)
- SymbolizedString =
Coercible::Symbol
- Path =
Coercible::String.constrained(min_size: 1)
- JSONHash =
JSON/Hash types
Strict::Hash
- SymbolizedHash =
Strict::Hash.constructor do |value| case value when Hash value.transform_keys(&:to_sym).transform_values do |v| if v.respond_to?(:transform_keys) v.transform_keys(&:to_sym) else v end end when String then JSON.parse(value, symbolize_names: true) else value end end
- Identifier =
Domain-specific identifiers
Strict::String.constrained( format: /\A[a-z][a-z0-9_-]*\z/, min_size: 1, max_size: 63 )
- NamespaceString =
Identifier- ProjectString =
Identifier- SiteString =
Identifier- ModuleName =
Identifier- FilePath =
File system types
Strict::String.constrained(min_size: 1)
- DirectoryPath =
FilePath- FileName =
Strict::String.constrained( format: /\A[a-zA-Z0-9._-]+\z/, min_size: 1 )
- StateBackendType =
State backend configuration
Strict::Symbol.enum(:s3, :local)
- TerraformAction =
Terraform/OpenTofu types
Strict::Symbol.enum(:plan, :apply, :destroy, :init)
- TerraformVersion =
Strict::String.constrained( format: /\A\d+\.\d+\.\d+\z/ )
- ConfigFormat =
Configuration file types
Strict::Symbol.enum(:yaml, :yml, :json, :toml, :rb)
- TerraformJSON =
Template and synthesis types
Strict::Hash
- ResourceType =
Strict::String.constrained( format: /\A[a-z][a-z0-9_]*\z/ )
- ResourceName =
Identifier- EnvironmentVariable =
Environment variables
Strict::String.constrained( format: /\A[A-Z][A-Z0-9_]*\z/ )
- Version =
Semantic versioning
Strict::String.constrained( format: /\A\d+\.\d+\.\d+(-[a-z0-9]+)?\z/ )
- HttpUrl =
URL types
Strict::String.constrained( format: %r{\Ahttps?://[^\s]+\z} )
- GitUrl =
Strict::String.constrained( format: %r{\A(https?://|git@|git://)[^\s]+\.git\z} )
- StringArray =
Arrays
Strict::Array.of(Strict::String)
- IdentifierArray =
Strict::Array.of(Identifier)
- ModuleArray =
Strict::Array.of(ModuleName)
- OptionalString =
Optional types
Strict::String.optional
- OptionalIdentifier =
Identifier.optional
- OptionalPath =
FilePath.optional