module Formatron::CloudFormation::Resources::Route53

Generates CloudFormation template Route53 resources

Public Class Methods

hosted_zone(name:, vpc:) click to toggle source

rubocop:disable Metrics/MethodLength

# File lib/formatron/cloud_formation/resources/route53.rb, line 9
def self.hosted_zone(name:, vpc:)
  {
    Type: 'AWS::Route53::HostedZone',
    Properties: {
      HostedZoneConfig: {
        Comment: Template.join(
          'Private Hosted Zone for CloudFormation Stack: ',
          Template.ref('AWS::StackName')
        )
      },
      Name: name,
      VPCs: [{
        VPCId: Template.ref(vpc),
        VPCRegion: Template.ref('AWS::Region')
      }]
    }
  }
end
record_set( hosted_zone_id:, sub_domain:, hosted_zone_name:, instance:, attribute: ) click to toggle source

rubocop:disable Metrics/MethodLength

# File lib/formatron/cloud_formation/resources/route53.rb, line 30
def self.record_set(
  hosted_zone_id:,
  sub_domain:,
  hosted_zone_name:,
  instance:,
  attribute:
)
  {
    Type: 'AWS::Route53::RecordSet',
    Properties: {
      HostedZoneId: hosted_zone_id,
      Name: "#{sub_domain}.#{hosted_zone_name}",
      ResourceRecords: [
        Template.get_attribute(instance, attribute)
      ],
      TTL: '900',
      Type: 'A'
    }
  }
end