Class: GeoEngineer::Resources::AwsVpnGatewayAttachment
- Inherits:
-
GeoEngineer::Resource
- Object
- GeoEngineer::Resource
- GeoEngineer::Resources::AwsVpnGatewayAttachment
- Defined in:
- lib/geoengineer/resources/aws_vpn_gateway_attachment.rb
Overview
AwsVpnGatewayAttachment is the aws_vpn_gateway_attachment
terrform resource,
Constant Summary
Constants inherited from GeoEngineer::Resource
GeoEngineer::Resource::DEFAULT_PROVIDER
Constants included from HasValidations
HasValidations::MAX_POLICY_LENGTH
Instance Attribute Summary
Attributes inherited from GeoEngineer::Resource
#environment, #id, #project, #template, #type
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from GeoEngineer::Resource
_deep_symbolize_keys, #_find_remote_resource, _ignore_remote_resource?, #_json_file, #_normalize_json, _resources_to_ignore, build, #build_individual_remote_resource, clear_remote_resource_cache, #depends_on, #duplicate, #duplicate_resource, #fetch_provider, fetch_remote_resources, #find_remote_as_individual?, #for_resource, #in_project, #initialize, #matched_remote_resource, #merge_parent_tags, #merge_tags, #new?, #remote_resource, #remote_resource_params, #reset, #setup_tags_if_needed, #short_id, #short_name, #short_type, #terraform_name, #to_id_or_ref, #to_ref, #to_s, #to_terraform, #to_terraform_json, type_from_class_name, #validate_has_tag, #validate_required_subresource, #validate_subresource_required_attributes
Methods included from HasLifecycle
Methods included from HasValidations
#errors, included, #validate_at_least_one_present, #validate_cidr_block, #validate_only_one_present, #validate_policy_length, #validate_required_attributes
Methods included from HasSubResources
#assign_block, #attribute_missing, #delete_all_subresources, #delete_subresources_where, #subresources
Methods included from HasAttributes
#[], #[]=, #assign_attribute, #assign_block, #attribute_missing, #attribute_procs, #attributes, #delete, #eager_load_attributes, #method_missing, #reset_attributes, #retrieve_attribute, #terraform_attribute_ref, #terraform_attributes, #timeout
Constructor Details
This class inherits a constructor from GeoEngineer::Resource
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class HasAttributes
Class Method Details
._fetch_remote_resources(provider) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/geoengineer/resources/aws_vpn_gateway_attachment.rb', line 26 def self._fetch_remote_resources(provider) AwsClients .ec2(provider) .describe_vpn_gateways['vpn_gateways'] .map(&:to_h) .select { |gateway| !gateway[:vpc_attachments].empty? } .map { |gateway| (gateway) } end |
._generate_attachment(gateway) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/geoengineer/resources/aws_vpn_gateway_attachment.rb', line 35 def self.(gateway) # Terraform ID generation via: # https://github.com/hashicorp/terraform/blob/master/builtin/providers/aws/resource_aws_vpn_gateway_attachment.go#L209 vpc_id = gateway[:vpc_attachments].first[:vpc_id] id_string = "#{vpc_id}-#{gateway[:vpn_gateway_id]}" terraform_id = "vpn-attachment-#{Crc32.hashcode(id_string)}" { _terraform_id: terraform_id, _geo_id: "#{vpc_id}::#{gateway[:vpn_gateway_id]}", vpn_gateway_id: gateway[:vpn_gateway_id], vpc_id: vpc_id } end |
Instance Method Details
#support_tags? ⇒ Boolean
22 23 24 |
# File 'lib/geoengineer/resources/aws_vpn_gateway_attachment.rb', line 22 def false end |
#to_terraform_state ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/geoengineer/resources/aws_vpn_gateway_attachment.rb', line 14 def to_terraform_state tfstate = super tfstate[:primary][:attributes] = { 'vpn_gateway_id' => vpn_gateway_id } tfstate end |