Documentation
¶
Index ¶
- Constants
- Variables
- func CheckRoutableAWSTarget(r *route53.ResourceRecordSet) (string, bool)
- func GenerateRoute53HostedZoneWebURL(hzId string) string
- func GenerateWebURL(r *route53.ResourceRecordSet) (string, error)
- func GetCloudFrontWebURL(dnsIdentifier string, r *route53.ResourceRecordSet) string
- func GetEnvSession(profile string) *session.Session
- func GetLBWebURL(dnsIdentifier string, r *route53.ResourceRecordSet) string
- func StripRecord(fullRecord string) ([]string, error)
- type Conf
- type DNSRecordType
- type GetRecordAliasesResult
- type GroupManager
- type Handler
- type PrintOptions
- type RecordAccessor
- type RecordName
- type RecordResultAccessor
- func (a *RecordResultAccessor) GetAliasValue() (string, bool)
- func (a *RecordResultAccessor) GetCountryCode() (string, bool)
- func (a *RecordResultAccessor) GetFailoverDifferentiator() (string, bool)
- func (a *RecordResultAccessor) GetHostedZoneID() string
- func (a *RecordResultAccessor) GetRecord() (string, bool)
- func (a *RecordResultAccessor) GetRecordType() (string, bool)
- func (a *RecordResultAccessor) GetRegion() (string, bool)
- func (a *RecordResultAccessor) GetResources() ([]string, bool)
- func (a *RecordResultAccessor) GetRoutingPolicy() (RoutingPolicy, bool)
- func (a *RecordResultAccessor) GetRoutingPolicyDifferentiator() (string, bool)
- func (a *RecordResultAccessor) GetTTL() (int64, bool)
- func (a *RecordResultAccessor) GetWebURL() (string, bool)
- func (a *RecordResultAccessor) IsFailoverRoutingPolicy() bool
- func (a *RecordResultAccessor) IsGeoDNS() bool
- func (a *RecordResultAccessor) IsWeightedDNS() bool
- type RecordStream
- type ResCb
- type Resource
- type Route53Api
- type Route53Manager
- func (r53m *Route53Manager) GetHZNameservers(hzId string) ([]string, error)
- func (r53m *Route53Manager) GetHostedZonesFromDns(recordName string) ([]*route53.HostedZone, error)
- func (r53m *Route53Manager) GetNameservers(recordName string) ([]string, error)
- func (r53m *Route53Manager) GetRecordSetAliases(recordName string, skipNSVerification bool) (*GetRecordAliasesResult, error)
- func (r53m *Route53Manager) GetRecordSetAliasesRecursive(maxDepth int, recordName string, skipNSVerification bool, ...) ([]*GetRecordAliasesResult, error)
- func (r53m *Route53Manager) GetRegion() string
- func (r53m *Route53Manager) IsNSMatch(ns1, ns2 []string) bool
- func (r53m *Route53Manager) LookupRecord(hzName, record string, recordName RecordStream) (*route53.HostedZone, []*route53.ResourceRecordSet, error)
- func (r53 *Route53Manager) TestDNSAnswer(hostedZoneId, recordName, recordType string) (*route53.TestDNSAnswerOutput, error)
- type RoutingPolicy
Constants ¶
const ( // .us-east-1.elb.amazonaws.com ALBDns = "elb.amazonaws.com" CLBDns = "elb.amazonaws.com" // .elb.us-east-1.amazonaws.com NLBDns = "elb." // .elasticloadbalancing.us-east-2.amazonaws.com ELBDns = "elasticloadbalancing." // s3-website.af-south-1.amazonaws.com S3Suffx = "s3-website." // .us-east-1.vpce.amazonaws.com VPCEndpointDns = "vpce.amazonaws.com" CloudFrontDns = "cloudfront.net" // .us-west-2.elasticbeanstalk.com ElasticBeansTalkDns = "elasticbeanstalk.com" AcceleratorApiDns = "awsglobalaccelerator.com" )
const (
WildCard string = "\\052"
)
Variables ¶
var ( SupportedTarget = []string{ALBDns, CLBDns, NLBDns, ELBDns, S3Suffx, VPCEndpointDns, CloudFrontDns, ElasticBeansTalkDns, AcceleratorApiDns} URLGenerators = map[string]func(dnsIdentifier string, r *route53.ResourceRecordSet) string{ ALBDns: GetLBWebURL, NLBDns: GetLBWebURL, CloudFrontDns: GetCloudFrontWebURL, } )
Functions ¶
func CheckRoutableAWSTarget ¶
func CheckRoutableAWSTarget(r *route53.ResourceRecordSet) (string, bool)
checks if the value of a route53 record is an alias to a routable AWS resource, if true will return the resource type from the list
func GenerateRoute53HostedZoneWebURL ¶
id is typicall /hostedzone/1234LZW9ITZ26T and we need only 1234LZW9ITZ26T
func GenerateWebURL ¶
func GenerateWebURL(r *route53.ResourceRecordSet) (string, error)
func GetCloudFrontWebURL ¶
func GetCloudFrontWebURL(dnsIdentifier string, r *route53.ResourceRecordSet) string
https://console.aws.amazon.com/cloudfront/home?region=us-west-2# todo:: extract the record id and point to specific resource, cant search via url this is the general ui the region doesn't matter it's global
func GetEnvSession ¶
func GetLBWebURL ¶
func GetLBWebURL(dnsIdentifier string, r *route53.ResourceRecordSet) string
func StripRecord ¶
stripRecord i.e https://example.com/p/a?ok=11¬=23 into example.com
Types ¶
type DNSRecordType ¶
type DNSRecordType string
type GetRecordAliasesResult ¶
type GetRecordAliasesResult struct { Records []*route53.ResourceRecordSet HostedZone *route53.HostedZone Stream RecordStream Region string }
func (*GetRecordAliasesResult) GetRecordsAccessors ¶
func (r *GetRecordAliasesResult) GetRecordsAccessors() []RecordAccessor
func (*GetRecordAliasesResult) PrintTable ¶
func (r *GetRecordAliasesResult) PrintTable(opts *PrintOptions)
type GroupManager ¶
Manages all Handlers for a specific group (i.e route53 is a group of many resources)
type PrintOptions ¶
type PrintOptions struct {
WebURL bool
}
type RecordAccessor ¶
type RecordAccessor interface { GetHostedZoneID() string // "Record", "Type", "TTL", "Country", "Alias", "Resources" GetTTL() (int64, bool) // The record value in r53 GetRecord() (string, bool) GetRegion() (string, bool) GetRecordType() (string, bool) // for GEO dns configurations GetCountryCode() (string, bool) // alias value is for A records, typical to ELB GetAliasValue() (string, bool) // resources are non alias values, typical for TXT, NS, MX, SOA records GetResources() ([]string, bool) // web URL to see the target Alias if exist GetWebURL() (string, bool) // DNS record feature types // Record has Routing policy and differentiator (i.e weighted-50 or geo-us, or failover-prinmary) // Failover, Simple, Geolocation, etc https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html GetRoutingPolicy() (RoutingPolicy, bool) GetRoutingPolicyDifferentiator() (string, bool) IsGeoDNS() bool IsWeightedDNS() bool IsFailoverRoutingPolicy() bool GetFailoverDifferentiator() (string, bool) }
func FlatRecordResultToAccessors ¶
func FlatRecordResultToAccessors(results []*GetRecordAliasesResult) []RecordAccessor
func NewRecordResultAccessor ¶
func NewRecordResultAccessor(raw *route53.ResourceRecordSet, hostedZone *route53.HostedZone, region string) RecordAccessor
type RecordName ¶
type RecordName struct {
// contains filtered or unexported fields
}
func (*RecordName) GetAllOptionsForZoneName ¶
func (r *RecordName) GetAllOptionsForZoneName() ([]string, error)
func (*RecordName) GetParsedURL ¶
func (r *RecordName) GetParsedURL() string
func (*RecordName) GetWithWildCard ¶
func (r *RecordName) GetWithWildCard() (string, error)
func (*RecordName) HasWildCard ¶
func (r *RecordName) HasWildCard() bool
func (*RecordName) IsEqual ¶
func (r *RecordName) IsEqual(other string) bool
type RecordResultAccessor ¶
type RecordResultAccessor struct {
// contains filtered or unexported fields
}
func (*RecordResultAccessor) GetAliasValue ¶
func (a *RecordResultAccessor) GetAliasValue() (string, bool)
func (*RecordResultAccessor) GetCountryCode ¶
func (a *RecordResultAccessor) GetCountryCode() (string, bool)
func (*RecordResultAccessor) GetFailoverDifferentiator ¶
func (a *RecordResultAccessor) GetFailoverDifferentiator() (string, bool)
RoutingPolicy Failover records: return PRIMARY / SECONDARY
func (*RecordResultAccessor) GetHostedZoneID ¶
func (a *RecordResultAccessor) GetHostedZoneID() string
func (*RecordResultAccessor) GetRecord ¶
func (a *RecordResultAccessor) GetRecord() (string, bool)
func (*RecordResultAccessor) GetRecordType ¶
func (a *RecordResultAccessor) GetRecordType() (string, bool)
func (*RecordResultAccessor) GetRegion ¶
func (a *RecordResultAccessor) GetRegion() (string, bool)
func (*RecordResultAccessor) GetResources ¶
func (a *RecordResultAccessor) GetResources() ([]string, bool)
func (*RecordResultAccessor) GetRoutingPolicy ¶
func (a *RecordResultAccessor) GetRoutingPolicy() (RoutingPolicy, bool)
func (*RecordResultAccessor) GetRoutingPolicyDifferentiator ¶
func (a *RecordResultAccessor) GetRoutingPolicyDifferentiator() (string, bool)
func (*RecordResultAccessor) GetTTL ¶
func (a *RecordResultAccessor) GetTTL() (int64, bool)
func (*RecordResultAccessor) GetWebURL ¶
func (a *RecordResultAccessor) GetWebURL() (string, bool)
func (*RecordResultAccessor) IsFailoverRoutingPolicy ¶
func (a *RecordResultAccessor) IsFailoverRoutingPolicy() bool
RoutingPolicy Failover records
func (*RecordResultAccessor) IsGeoDNS ¶
func (a *RecordResultAccessor) IsGeoDNS() bool
func (*RecordResultAccessor) IsWeightedDNS ¶
func (a *RecordResultAccessor) IsWeightedDNS() bool
type RecordStream ¶
type RecordStream interface { GetAllOptionsForZoneName() ([]string, error) IsEqual(other string) bool HasWildCard() bool GetWithWildCard() (string, error) GetParsedURL() string }
func NewRecordName ¶
func NewRecordName(rawQuery string) (RecordStream, error)
type Route53Api ¶
type Route53Api interface { TestDNSAnswer(hostedZoneId, recordName, recordType string) (*route53.TestDNSAnswerOutput, error) GetHostedZonesFromDns(recordName string) ([]*route53.HostedZone, error) GetRecordSetAliases(recordName string, skipNSVerification bool) (*GetRecordAliasesResult, error) GetRecordSetAliasesRecursive(maxDepth int, recordName string, skipNSVerification bool, checkedRecord map[string]bool) ([]*GetRecordAliasesResult, error) GetRegion() string GetNameservers(recordName string) ([]string, error) GetHZNameservers(hzId string) ([]string, error) IsNSMatch(ns1, ns2 []string) bool }
func NewRoute53Api ¶
func NewRoute53Api(profile string) Route53Api
type Route53Manager ¶
type Route53Manager struct {
// contains filtered or unexported fields
}
func (*Route53Manager) GetHZNameservers ¶
func (r53m *Route53Manager) GetHZNameservers(hzId string) ([]string, error)
given hosted zone id find the nameservers
func (*Route53Manager) GetHostedZonesFromDns ¶
func (r53m *Route53Manager) GetHostedZonesFromDns(recordName string) ([]*route53.HostedZone, error)
func (*Route53Manager) GetNameservers ¶
func (r53m *Route53Manager) GetNameservers(recordName string) ([]string, error)
given a domain address do nslookup
func (*Route53Manager) GetRecordSetAliases ¶
func (r53m *Route53Manager) GetRecordSetAliases(recordName string, skipNSVerification bool) (*GetRecordAliasesResult, error)
func (*Route53Manager) GetRecordSetAliasesRecursive ¶
func (r53m *Route53Manager) GetRecordSetAliasesRecursive(maxDepth int, recordName string, skipNSVerification bool, checkedRecord map[string]bool) ([]*GetRecordAliasesResult, error)
func (*Route53Manager) GetRegion ¶
func (r53m *Route53Manager) GetRegion() string
func (*Route53Manager) IsNSMatch ¶
func (r53m *Route53Manager) IsNSMatch(ns1, ns2 []string) bool
func (*Route53Manager) LookupRecord ¶
func (r53m *Route53Manager) LookupRecord(hzName, record string, recordName RecordStream) (*route53.HostedZone, []*route53.ResourceRecordSet, error)
LookupRecord query for potential hosted zones
func (*Route53Manager) TestDNSAnswer ¶
func (r53 *Route53Manager) TestDNSAnswer(hostedZoneId, recordName, recordType string) (*route53.TestDNSAnswerOutput, error)
works only for public zones
type RoutingPolicy ¶
type RoutingPolicy string
const ( GeoLocationRP RoutingPolicy = "Geolocation" WeightedRP RoutingPolicy = "Weighted" FailoverRP RoutingPolicy = "Failover" OtherRP RoutingPolicy = "-" )