class GeoEngineer::Resources::AwsVpnConnectionRoute

AwsVpnConnectionRoute is the aws_vpn_connection terrform resource,

{www.terraform.io/docs/providers/aws/r/vpn_connection_route.html Terraform Docs}

Public Class Methods

_fetch_remote_resources(provider) click to toggle source
# File lib/geoengineer/resources/aws_vpn_connection_route.rb, line 52
def self._fetch_remote_resources(provider)
  AwsClients.ec2(provider)
            .describe_vpn_connections['vpn_connections']
            .map(&:to_h)
            .select { |connection| !connection[:routes].empty? }
            .map { |connection| _generate_routes(connection) }
            .flatten
end
_generate_routes(connection) click to toggle source
# File lib/geoengineer/resources/aws_vpn_connection_route.rb, line 61
def self._generate_routes(connection)
  connection[:routes].map do |route|
    cidr = route[:destination_cidr_block]
    connection_id = connection[:vpn_connection_id]

    id = build_connection_route_id(cidr, connection_id)

    route.merge({ _terraform_id: id, _geo_id: id })
  end
end
build_connection_route_id(cidr, connection_id) click to toggle source
# File lib/geoengineer/resources/aws_vpn_connection_route.rb, line 44
def self.build_connection_route_id(cidr, connection_id)
  "#{cidr}:#{connection_id}"
end

Public Instance Methods

connection_route_id() click to toggle source
# File lib/geoengineer/resources/aws_vpn_connection_route.rb, line 37
def connection_route_id
  self.class.build_connection_route_id(
    destination_cidr_block,
    vpn_connection_id
  )
end
support_tags?() click to toggle source
# File lib/geoengineer/resources/aws_vpn_connection_route.rb, line 48
def support_tags?
  false
end
terraform_ref?() click to toggle source

Is the VPN connection id a terraform ref or an id

# File lib/geoengineer/resources/aws_vpn_connection_route.rb, line 22
def terraform_ref?
  /^\${[a-zA-Z0-9\._-]+}$/.match(vpn_connection_id)
end
to_terraform_state() click to toggle source
# File lib/geoengineer/resources/aws_vpn_connection_route.rb, line 26
def to_terraform_state
  tfstate = super

  tfstate[:primary][:attributes] = {
    'destination_cidr_block' => destination_cidr_block,
    'vpn_connection_id' => vpn_connection_id
  }

  tfstate
end