Class: Manifold::Terraform::ProjectConfiguration

Inherits:
Configuration show all
Defined in:
lib/manifold/terraform/project_configuration.rb

Overview

Represents a Terraform configuration for a Manifold project.

Constant Summary collapse

DEFAULT_TERRAFORM_GOOGLE_PROVIDER_VERSION =
"6.24.0"

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Configuration

#write

Constructor Details

#initialize(workspaces, provider_version: DEFAULT_TERRAFORM_GOOGLE_PROVIDER_VERSION, skip_provider_config: false) ⇒ ProjectConfiguration



11
12
13
14
15
16
17
# File 'lib/manifold/terraform/project_configuration.rb', line 11

def initialize(workspaces, provider_version: DEFAULT_TERRAFORM_GOOGLE_PROVIDER_VERSION,
               skip_provider_config: false)
  super()
  @workspaces = workspaces
  @provider_version = provider_version
  @skip_provider_config = skip_provider_config
end

Instance Attribute Details

#provider_versionObject (readonly)

Returns the value of attribute provider_version.



7
8
9
# File 'lib/manifold/terraform/project_configuration.rb', line 7

def provider_version
  @provider_version
end

#skip_provider_configObject (readonly)

Returns the value of attribute skip_provider_config.



7
8
9
# File 'lib/manifold/terraform/project_configuration.rb', line 7

def skip_provider_config
  @skip_provider_config
end

#workspacesObject (readonly)

Returns the value of attribute workspaces.



7
8
9
# File 'lib/manifold/terraform/project_configuration.rb', line 7

def workspaces
  @workspaces
end

Instance Method Details

#as_jsonObject



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/manifold/terraform/project_configuration.rb', line 19

def as_json
  config = {}
  unless skip_provider_config
    config["terraform"] = terraform_block
    config["provider"] = provider_block
  end

  config.merge!(
    "variable" => variables_block,
    "module" => workspace_modules
  )
end