Documentation ¶
Index ¶
- func ARecord_IsConstruct(x interface{}) *bool
- func ARecord_IsOwnedResource(construct constructs.IConstruct) *bool
- func ARecord_IsResource(construct constructs.IConstruct) *bool
- func AaaaRecord_IsConstruct(x interface{}) *bool
- func AaaaRecord_IsOwnedResource(construct constructs.IConstruct) *bool
- func AaaaRecord_IsResource(construct constructs.IConstruct) *bool
- func CaaAmazonRecord_IsConstruct(x interface{}) *bool
- func CaaAmazonRecord_IsOwnedResource(construct constructs.IConstruct) *bool
- func CaaAmazonRecord_IsResource(construct constructs.IConstruct) *bool
- func CaaRecord_IsConstruct(x interface{}) *bool
- func CaaRecord_IsOwnedResource(construct constructs.IConstruct) *bool
- func CaaRecord_IsResource(construct constructs.IConstruct) *bool
- func CfnCidrCollection_CFN_RESOURCE_TYPE_NAME() *string
- func CfnCidrCollection_IsCfnElement(x interface{}) *bool
- func CfnCidrCollection_IsCfnResource(x interface{}) *bool
- func CfnCidrCollection_IsConstruct(x interface{}) *bool
- func CfnDNSSEC_CFN_RESOURCE_TYPE_NAME() *string
- func CfnDNSSEC_IsCfnElement(x interface{}) *bool
- func CfnDNSSEC_IsCfnResource(x interface{}) *bool
- func CfnDNSSEC_IsConstruct(x interface{}) *bool
- func CfnHealthCheck_CFN_RESOURCE_TYPE_NAME() *string
- func CfnHealthCheck_IsCfnElement(x interface{}) *bool
- func CfnHealthCheck_IsCfnResource(x interface{}) *bool
- func CfnHealthCheck_IsConstruct(x interface{}) *bool
- func CfnHostedZone_CFN_RESOURCE_TYPE_NAME() *string
- func CfnHostedZone_IsCfnElement(x interface{}) *bool
- func CfnHostedZone_IsCfnResource(x interface{}) *bool
- func CfnHostedZone_IsConstruct(x interface{}) *bool
- func CfnKeySigningKey_CFN_RESOURCE_TYPE_NAME() *string
- func CfnKeySigningKey_IsCfnElement(x interface{}) *bool
- func CfnKeySigningKey_IsCfnResource(x interface{}) *bool
- func CfnKeySigningKey_IsConstruct(x interface{}) *bool
- func CfnRecordSetGroup_CFN_RESOURCE_TYPE_NAME() *string
- func CfnRecordSetGroup_IsCfnElement(x interface{}) *bool
- func CfnRecordSetGroup_IsCfnResource(x interface{}) *bool
- func CfnRecordSetGroup_IsConstruct(x interface{}) *bool
- func CfnRecordSet_CFN_RESOURCE_TYPE_NAME() *string
- func CfnRecordSet_IsCfnElement(x interface{}) *bool
- func CfnRecordSet_IsCfnResource(x interface{}) *bool
- func CfnRecordSet_IsConstruct(x interface{}) *bool
- func CnameRecord_IsConstruct(x interface{}) *bool
- func CnameRecord_IsOwnedResource(construct constructs.IConstruct) *bool
- func CnameRecord_IsResource(construct constructs.IConstruct) *bool
- func CrossAccountZoneDelegationRecord_IsConstruct(x interface{}) *bool
- func DsRecord_IsConstruct(x interface{}) *bool
- func DsRecord_IsOwnedResource(construct constructs.IConstruct) *bool
- func DsRecord_IsResource(construct constructs.IConstruct) *bool
- func HostedZone_IsConstruct(x interface{}) *bool
- func HostedZone_IsOwnedResource(construct constructs.IConstruct) *bool
- func HostedZone_IsResource(construct constructs.IConstruct) *bool
- func KeySigningKey_IsConstruct(x interface{}) *bool
- func KeySigningKey_IsOwnedResource(construct constructs.IConstruct) *bool
- func KeySigningKey_IsResource(construct constructs.IConstruct) *bool
- func MxRecord_IsConstruct(x interface{}) *bool
- func MxRecord_IsOwnedResource(construct constructs.IConstruct) *bool
- func MxRecord_IsResource(construct constructs.IConstruct) *bool
- func NewARecord_Override(a ARecord, scope constructs.Construct, id *string, props *ARecordProps)
- func NewAaaaRecord_Override(a AaaaRecord, scope constructs.Construct, id *string, props *AaaaRecordProps)
- func NewCaaAmazonRecord_Override(c CaaAmazonRecord, scope constructs.Construct, id *string, ...)
- func NewCaaRecord_Override(c CaaRecord, scope constructs.Construct, id *string, props *CaaRecordProps)
- func NewCfnCidrCollection_Override(c CfnCidrCollection, scope constructs.Construct, id *string, ...)
- func NewCfnDNSSEC_Override(c CfnDNSSEC, scope constructs.Construct, id *string, props *CfnDNSSECProps)
- func NewCfnHealthCheck_Override(c CfnHealthCheck, scope constructs.Construct, id *string, ...)
- func NewCfnHostedZone_Override(c CfnHostedZone, scope constructs.Construct, id *string, ...)
- func NewCfnKeySigningKey_Override(c CfnKeySigningKey, scope constructs.Construct, id *string, ...)
- func NewCfnRecordSetGroup_Override(c CfnRecordSetGroup, scope constructs.Construct, id *string, ...)
- func NewCfnRecordSet_Override(c CfnRecordSet, scope constructs.Construct, id *string, ...)
- func NewCnameRecord_Override(c CnameRecord, scope constructs.Construct, id *string, props *CnameRecordProps)
- func NewCrossAccountZoneDelegationRecord_Override(c CrossAccountZoneDelegationRecord, scope constructs.Construct, id *string, ...)
- func NewDsRecord_Override(d DsRecord, scope constructs.Construct, id *string, props *DsRecordProps)
- func NewHostedZone_Override(h HostedZone, scope constructs.Construct, id *string, props *HostedZoneProps)
- func NewKeySigningKey_Override(k KeySigningKey, scope constructs.Construct, id *string, ...)
- func NewMxRecord_Override(m MxRecord, scope constructs.Construct, id *string, props *MxRecordProps)
- func NewNsRecord_Override(n NsRecord, scope constructs.Construct, id *string, props *NsRecordProps)
- func NewPrivateHostedZone_Override(p PrivateHostedZone, scope constructs.Construct, id *string, ...)
- func NewPublicHostedZone_Override(p PublicHostedZone, scope constructs.Construct, id *string, ...)
- func NewRecordSet_Override(r RecordSet, scope constructs.Construct, id *string, props *RecordSetProps)
- func NewRecordTarget_Override(r RecordTarget, values *[]*string, aliasTarget IAliasRecordTarget)
- func NewSrvRecord_Override(s SrvRecord, scope constructs.Construct, id *string, props *SrvRecordProps)
- func NewTxtRecord_Override(t TxtRecord, scope constructs.Construct, id *string, props *TxtRecordProps)
- func NewVpcEndpointServiceDomainName_Override(v VpcEndpointServiceDomainName, scope constructs.Construct, id *string, ...)
- func NewZoneDelegationRecord_Override(z ZoneDelegationRecord, scope constructs.Construct, id *string, ...)
- func NsRecord_IsConstruct(x interface{}) *bool
- func NsRecord_IsOwnedResource(construct constructs.IConstruct) *bool
- func NsRecord_IsResource(construct constructs.IConstruct) *bool
- func PrivateHostedZone_IsConstruct(x interface{}) *bool
- func PrivateHostedZone_IsOwnedResource(construct constructs.IConstruct) *bool
- func PrivateHostedZone_IsResource(construct constructs.IConstruct) *bool
- func PublicHostedZone_IsConstruct(x interface{}) *bool
- func PublicHostedZone_IsOwnedResource(construct constructs.IConstruct) *bool
- func PublicHostedZone_IsResource(construct constructs.IConstruct) *bool
- func RecordSet_IsConstruct(x interface{}) *bool
- func RecordSet_IsOwnedResource(construct constructs.IConstruct) *bool
- func RecordSet_IsResource(construct constructs.IConstruct) *bool
- func SrvRecord_IsConstruct(x interface{}) *bool
- func SrvRecord_IsOwnedResource(construct constructs.IConstruct) *bool
- func SrvRecord_IsResource(construct constructs.IConstruct) *bool
- func TxtRecord_IsConstruct(x interface{}) *bool
- func TxtRecord_IsOwnedResource(construct constructs.IConstruct) *bool
- func TxtRecord_IsResource(construct constructs.IConstruct) *bool
- func VpcEndpointServiceDomainName_IsConstruct(x interface{}) *bool
- func ZoneDelegationRecord_IsConstruct(x interface{}) *bool
- func ZoneDelegationRecord_IsOwnedResource(construct constructs.IConstruct) *bool
- func ZoneDelegationRecord_IsResource(construct constructs.IConstruct) *bool
- type ARecord
- type ARecordAttrs
- type ARecordProps
- type AaaaRecord
- type AaaaRecordProps
- type AliasRecordTargetConfig
- type CaaAmazonRecord
- type CaaAmazonRecordProps
- type CaaRecord
- type CaaRecordProps
- type CaaRecordValue
- type CaaTag
- type CfnCidrCollection
- type CfnCidrCollectionProps
- type CfnCidrCollection_LocationProperty
- type CfnDNSSEC
- type CfnDNSSECProps
- type CfnHealthCheck
- type CfnHealthCheckProps
- type CfnHealthCheck_AlarmIdentifierProperty
- type CfnHealthCheck_HealthCheckConfigProperty
- type CfnHealthCheck_HealthCheckTagProperty
- type CfnHostedZone
- type CfnHostedZoneProps
- type CfnHostedZone_HostedZoneConfigProperty
- type CfnHostedZone_HostedZoneTagProperty
- type CfnHostedZone_QueryLoggingConfigProperty
- type CfnHostedZone_VPCProperty
- type CfnKeySigningKey
- type CfnKeySigningKeyProps
- type CfnRecordSet
- type CfnRecordSetGroup
- type CfnRecordSetGroupProps
- type CfnRecordSetGroup_AliasTargetProperty
- type CfnRecordSetGroup_CidrRoutingConfigProperty
- type CfnRecordSetGroup_CoordinatesProperty
- type CfnRecordSetGroup_GeoLocationProperty
- type CfnRecordSetGroup_GeoProximityLocationProperty
- type CfnRecordSetGroup_RecordSetProperty
- type CfnRecordSetProps
- type CfnRecordSet_AliasTargetProperty
- type CfnRecordSet_CidrRoutingConfigProperty
- type CfnRecordSet_CoordinatesProperty
- type CfnRecordSet_GeoLocationProperty
- type CfnRecordSet_GeoProximityLocationProperty
- type CnameRecord
- type CnameRecordProps
- type CommonHostedZoneProps
- type Continent
- type CrossAccountZoneDelegationRecord
- type CrossAccountZoneDelegationRecordProps
- type DsRecord
- type DsRecordProps
- type GeoLocation
- type HostedZone
- type HostedZoneAttributes
- type HostedZoneProps
- type HostedZoneProviderProps
- type IAliasRecordTarget
- type IHostedZone
- func HostedZone_FromHostedZoneAttributes(scope constructs.Construct, id *string, attrs *HostedZoneAttributes) IHostedZone
- func HostedZone_FromHostedZoneId(scope constructs.Construct, id *string, hostedZoneId *string) IHostedZone
- func HostedZone_FromLookup(scope constructs.Construct, id *string, query *HostedZoneProviderProps) IHostedZone
- func PrivateHostedZone_FromHostedZoneAttributes(scope constructs.Construct, id *string, attrs *HostedZoneAttributes) IHostedZone
- func PrivateHostedZone_FromHostedZoneId(scope constructs.Construct, id *string, hostedZoneId *string) IHostedZone
- func PrivateHostedZone_FromLookup(scope constructs.Construct, id *string, query *HostedZoneProviderProps) IHostedZone
- func PublicHostedZone_FromHostedZoneAttributes(scope constructs.Construct, id *string, attrs *HostedZoneAttributes) IHostedZone
- func PublicHostedZone_FromHostedZoneId(scope constructs.Construct, id *string, hostedZoneId *string) IHostedZone
- func PublicHostedZone_FromLookup(scope constructs.Construct, id *string, query *HostedZoneProviderProps) IHostedZone
- type IKeySigningKey
- type IPrivateHostedZone
- type IPublicHostedZone
- type IRecordSet
- type KeySigningKey
- type KeySigningKeyAttributes
- type KeySigningKeyProps
- type KeySigningKeyStatus
- type MxRecord
- type MxRecordProps
- type MxRecordValue
- type NsRecord
- type NsRecordProps
- type PrivateHostedZone
- type PrivateHostedZoneProps
- type PublicHostedZone
- type PublicHostedZoneAttributes
- type PublicHostedZoneProps
- type RecordSet
- type RecordSetOptions
- type RecordSetProps
- type RecordTarget
- type RecordType
- type SrvRecord
- type SrvRecordProps
- type SrvRecordValue
- type TxtRecord
- type TxtRecordProps
- type VpcEndpointServiceDomainName
- type VpcEndpointServiceDomainNameProps
- type ZoneDelegationOptions
- type ZoneDelegationRecord
- type ZoneDelegationRecordProps
- type ZoneSigningOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ARecord_IsConstruct ¶
func ARecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func ARecord_IsOwnedResource ¶ added in v2.32.0
func ARecord_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func ARecord_IsResource ¶
func ARecord_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func AaaaRecord_IsConstruct ¶
func AaaaRecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func AaaaRecord_IsOwnedResource ¶ added in v2.32.0
func AaaaRecord_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func AaaaRecord_IsResource ¶
func AaaaRecord_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func CaaAmazonRecord_IsConstruct ¶
func CaaAmazonRecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CaaAmazonRecord_IsOwnedResource ¶ added in v2.32.0
func CaaAmazonRecord_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func CaaAmazonRecord_IsResource ¶
func CaaAmazonRecord_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func CaaRecord_IsConstruct ¶
func CaaRecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CaaRecord_IsOwnedResource ¶ added in v2.32.0
func CaaRecord_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func CaaRecord_IsResource ¶
func CaaRecord_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func CfnCidrCollection_CFN_RESOURCE_TYPE_NAME ¶ added in v2.31.0
func CfnCidrCollection_CFN_RESOURCE_TYPE_NAME() *string
func CfnCidrCollection_IsCfnElement ¶ added in v2.31.0
func CfnCidrCollection_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnCidrCollection_IsCfnResource ¶ added in v2.31.0
func CfnCidrCollection_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnCidrCollection_IsConstruct ¶ added in v2.31.0
func CfnCidrCollection_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CfnDNSSEC_CFN_RESOURCE_TYPE_NAME ¶
func CfnDNSSEC_CFN_RESOURCE_TYPE_NAME() *string
func CfnDNSSEC_IsCfnElement ¶
func CfnDNSSEC_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnDNSSEC_IsCfnResource ¶
func CfnDNSSEC_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnDNSSEC_IsConstruct ¶
func CfnDNSSEC_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CfnHealthCheck_CFN_RESOURCE_TYPE_NAME ¶
func CfnHealthCheck_CFN_RESOURCE_TYPE_NAME() *string
func CfnHealthCheck_IsCfnElement ¶
func CfnHealthCheck_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnHealthCheck_IsCfnResource ¶
func CfnHealthCheck_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnHealthCheck_IsConstruct ¶
func CfnHealthCheck_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CfnHostedZone_CFN_RESOURCE_TYPE_NAME ¶
func CfnHostedZone_CFN_RESOURCE_TYPE_NAME() *string
func CfnHostedZone_IsCfnElement ¶
func CfnHostedZone_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnHostedZone_IsCfnResource ¶
func CfnHostedZone_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnHostedZone_IsConstruct ¶
func CfnHostedZone_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CfnKeySigningKey_CFN_RESOURCE_TYPE_NAME ¶
func CfnKeySigningKey_CFN_RESOURCE_TYPE_NAME() *string
func CfnKeySigningKey_IsCfnElement ¶
func CfnKeySigningKey_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnKeySigningKey_IsCfnResource ¶
func CfnKeySigningKey_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnKeySigningKey_IsConstruct ¶
func CfnKeySigningKey_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CfnRecordSetGroup_CFN_RESOURCE_TYPE_NAME ¶
func CfnRecordSetGroup_CFN_RESOURCE_TYPE_NAME() *string
func CfnRecordSetGroup_IsCfnElement ¶
func CfnRecordSetGroup_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnRecordSetGroup_IsCfnResource ¶
func CfnRecordSetGroup_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnRecordSetGroup_IsConstruct ¶
func CfnRecordSetGroup_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CfnRecordSet_CFN_RESOURCE_TYPE_NAME ¶
func CfnRecordSet_CFN_RESOURCE_TYPE_NAME() *string
func CfnRecordSet_IsCfnElement ¶
func CfnRecordSet_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnRecordSet_IsCfnResource ¶
func CfnRecordSet_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnRecordSet_IsConstruct ¶
func CfnRecordSet_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CnameRecord_IsConstruct ¶
func CnameRecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CnameRecord_IsOwnedResource ¶ added in v2.32.0
func CnameRecord_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func CnameRecord_IsResource ¶
func CnameRecord_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func CrossAccountZoneDelegationRecord_IsConstruct ¶
func CrossAccountZoneDelegationRecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func DsRecord_IsConstruct ¶
func DsRecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func DsRecord_IsOwnedResource ¶ added in v2.32.0
func DsRecord_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func DsRecord_IsResource ¶
func DsRecord_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func HostedZone_IsConstruct ¶
func HostedZone_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func HostedZone_IsOwnedResource ¶ added in v2.32.0
func HostedZone_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func HostedZone_IsResource ¶
func HostedZone_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func KeySigningKey_IsConstruct ¶ added in v2.138.0
func KeySigningKey_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func KeySigningKey_IsOwnedResource ¶ added in v2.138.0
func KeySigningKey_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func KeySigningKey_IsResource ¶ added in v2.138.0
func KeySigningKey_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func MxRecord_IsConstruct ¶
func MxRecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func MxRecord_IsOwnedResource ¶ added in v2.32.0
func MxRecord_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func MxRecord_IsResource ¶
func MxRecord_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func NewARecord_Override ¶
func NewARecord_Override(a ARecord, scope constructs.Construct, id *string, props *ARecordProps)
func NewAaaaRecord_Override ¶
func NewAaaaRecord_Override(a AaaaRecord, scope constructs.Construct, id *string, props *AaaaRecordProps)
func NewCaaAmazonRecord_Override ¶
func NewCaaAmazonRecord_Override(c CaaAmazonRecord, scope constructs.Construct, id *string, props *CaaAmazonRecordProps)
func NewCaaRecord_Override ¶
func NewCaaRecord_Override(c CaaRecord, scope constructs.Construct, id *string, props *CaaRecordProps)
func NewCfnCidrCollection_Override ¶ added in v2.31.0
func NewCfnCidrCollection_Override(c CfnCidrCollection, scope constructs.Construct, id *string, props *CfnCidrCollectionProps)
func NewCfnDNSSEC_Override ¶
func NewCfnDNSSEC_Override(c CfnDNSSEC, scope constructs.Construct, id *string, props *CfnDNSSECProps)
func NewCfnHealthCheck_Override ¶
func NewCfnHealthCheck_Override(c CfnHealthCheck, scope constructs.Construct, id *string, props *CfnHealthCheckProps)
func NewCfnHostedZone_Override ¶
func NewCfnHostedZone_Override(c CfnHostedZone, scope constructs.Construct, id *string, props *CfnHostedZoneProps)
func NewCfnKeySigningKey_Override ¶
func NewCfnKeySigningKey_Override(c CfnKeySigningKey, scope constructs.Construct, id *string, props *CfnKeySigningKeyProps)
func NewCfnRecordSetGroup_Override ¶
func NewCfnRecordSetGroup_Override(c CfnRecordSetGroup, scope constructs.Construct, id *string, props *CfnRecordSetGroupProps)
func NewCfnRecordSet_Override ¶
func NewCfnRecordSet_Override(c CfnRecordSet, scope constructs.Construct, id *string, props *CfnRecordSetProps)
func NewCnameRecord_Override ¶
func NewCnameRecord_Override(c CnameRecord, scope constructs.Construct, id *string, props *CnameRecordProps)
func NewCrossAccountZoneDelegationRecord_Override ¶
func NewCrossAccountZoneDelegationRecord_Override(c CrossAccountZoneDelegationRecord, scope constructs.Construct, id *string, props *CrossAccountZoneDelegationRecordProps)
func NewDsRecord_Override ¶
func NewDsRecord_Override(d DsRecord, scope constructs.Construct, id *string, props *DsRecordProps)
func NewHostedZone_Override ¶
func NewHostedZone_Override(h HostedZone, scope constructs.Construct, id *string, props *HostedZoneProps)
func NewKeySigningKey_Override ¶ added in v2.138.0
func NewKeySigningKey_Override(k KeySigningKey, scope constructs.Construct, id *string, props *KeySigningKeyProps)
func NewMxRecord_Override ¶
func NewMxRecord_Override(m MxRecord, scope constructs.Construct, id *string, props *MxRecordProps)
func NewNsRecord_Override ¶
func NewNsRecord_Override(n NsRecord, scope constructs.Construct, id *string, props *NsRecordProps)
func NewPrivateHostedZone_Override ¶
func NewPrivateHostedZone_Override(p PrivateHostedZone, scope constructs.Construct, id *string, props *PrivateHostedZoneProps)
func NewPublicHostedZone_Override ¶
func NewPublicHostedZone_Override(p PublicHostedZone, scope constructs.Construct, id *string, props *PublicHostedZoneProps)
func NewRecordSet_Override ¶
func NewRecordSet_Override(r RecordSet, scope constructs.Construct, id *string, props *RecordSetProps)
func NewRecordTarget_Override ¶
func NewRecordTarget_Override(r RecordTarget, values *[]*string, aliasTarget IAliasRecordTarget)
func NewSrvRecord_Override ¶
func NewSrvRecord_Override(s SrvRecord, scope constructs.Construct, id *string, props *SrvRecordProps)
func NewTxtRecord_Override ¶
func NewTxtRecord_Override(t TxtRecord, scope constructs.Construct, id *string, props *TxtRecordProps)
func NewVpcEndpointServiceDomainName_Override ¶
func NewVpcEndpointServiceDomainName_Override(v VpcEndpointServiceDomainName, scope constructs.Construct, id *string, props *VpcEndpointServiceDomainNameProps)
func NewZoneDelegationRecord_Override ¶
func NewZoneDelegationRecord_Override(z ZoneDelegationRecord, scope constructs.Construct, id *string, props *ZoneDelegationRecordProps)
func NsRecord_IsConstruct ¶
func NsRecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func NsRecord_IsOwnedResource ¶ added in v2.32.0
func NsRecord_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func NsRecord_IsResource ¶
func NsRecord_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func PrivateHostedZone_IsConstruct ¶
func PrivateHostedZone_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func PrivateHostedZone_IsOwnedResource ¶ added in v2.32.0
func PrivateHostedZone_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func PrivateHostedZone_IsResource ¶
func PrivateHostedZone_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func PublicHostedZone_IsConstruct ¶
func PublicHostedZone_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func PublicHostedZone_IsOwnedResource ¶ added in v2.32.0
func PublicHostedZone_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func PublicHostedZone_IsResource ¶
func PublicHostedZone_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func RecordSet_IsConstruct ¶
func RecordSet_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func RecordSet_IsOwnedResource ¶ added in v2.32.0
func RecordSet_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func RecordSet_IsResource ¶
func RecordSet_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func SrvRecord_IsConstruct ¶
func SrvRecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func SrvRecord_IsOwnedResource ¶ added in v2.32.0
func SrvRecord_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func SrvRecord_IsResource ¶
func SrvRecord_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func TxtRecord_IsConstruct ¶
func TxtRecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func TxtRecord_IsOwnedResource ¶ added in v2.32.0
func TxtRecord_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func TxtRecord_IsResource ¶
func TxtRecord_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func VpcEndpointServiceDomainName_IsConstruct ¶
func VpcEndpointServiceDomainName_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func ZoneDelegationRecord_IsConstruct ¶
func ZoneDelegationRecord_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func ZoneDelegationRecord_IsOwnedResource ¶ added in v2.32.0
func ZoneDelegationRecord_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func ZoneDelegationRecord_IsResource ¶
func ZoneDelegationRecord_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
Types ¶
type ARecord ¶
type ARecord interface { RecordSet // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A DNS A record.
Example:
import apigw "github.com/aws/aws-cdk-go/awscdk" var zone hostedZone var restApi lambdaRestApi route53.NewARecord(this, jsii.String("AliasRecord"), &ARecordProps{ Zone: Zone, Target: route53.RecordTarget_FromAlias(targets.NewApiGateway(restApi)), })
func ARecord_FromARecordAttributes ¶ added in v2.140.0
func ARecord_FromARecordAttributes(scope constructs.Construct, id *string, attrs *ARecordAttrs) ARecord
Creates new A record of type alias with target set to an existing A Record DNS.
Use when the target A record is created outside of CDK For records created as part of CDK use.
Returns: AWS::Route53::RecordSet of type A with target alias set to existing A record.
func NewARecord ¶
func NewARecord(scope constructs.Construct, id *string, props *ARecordProps) ARecord
type ARecordAttrs ¶ added in v2.140.0
type ARecordAttrs struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // Existing A record DNS name to set RecordTarget. TargetDNS *string `field:"required" json:"targetDNS" yaml:"targetDNS"` }
Construction properties to import existing ARecord as target.
Example:
var myZone hostedZone targetRecord := "existing.record.cdk.local" record := route53.ARecord_FromARecordAttributes(this, jsii.String("A"), &ARecordAttrs{ Zone: myZone, RecordName: jsii.String("test"), TargetDNS: targetRecord, })
type ARecordProps ¶
type ARecordProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // The target. Target RecordTarget `field:"required" json:"target" yaml:"target"` }
Construction properties for a ARecord.
Example:
import apigw "github.com/aws/aws-cdk-go/awscdk" var zone hostedZone var restApi lambdaRestApi route53.NewARecord(this, jsii.String("AliasRecord"), &ARecordProps{ Zone: Zone, Target: route53.RecordTarget_FromAlias(targets.NewApiGateway(restApi)), })
type AaaaRecord ¶
type AaaaRecord interface { RecordSet // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A DNS AAAA record.
Example:
import cloudfront "github.com/aws/aws-cdk-go/awscdk" var myZone hostedZone var distribution cloudFrontWebDistribution route53.NewAaaaRecord(this, jsii.String("Alias"), &AaaaRecordProps{ Zone: myZone, Target: route53.RecordTarget_FromAlias(targets.NewCloudFrontTarget(distribution)), })
func NewAaaaRecord ¶
func NewAaaaRecord(scope constructs.Construct, id *string, props *AaaaRecordProps) AaaaRecord
type AaaaRecordProps ¶
type AaaaRecordProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // The target. Target RecordTarget `field:"required" json:"target" yaml:"target"` }
Construction properties for a AaaaRecord.
Example:
import cloudfront "github.com/aws/aws-cdk-go/awscdk" var myZone hostedZone var distribution cloudFrontWebDistribution route53.NewAaaaRecord(this, jsii.String("Alias"), &AaaaRecordProps{ Zone: myZone, Target: route53.RecordTarget_FromAlias(targets.NewCloudFrontTarget(distribution)), })
type AliasRecordTargetConfig ¶
type AliasRecordTargetConfig struct { // DNS name of the target. DnsName *string `field:"required" json:"dnsName" yaml:"dnsName"` // Hosted zone ID of the target. HostedZoneId *string `field:"required" json:"hostedZoneId" yaml:"hostedZoneId"` }
Represents the properties of an alias target destination.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" aliasRecordTargetConfig := &AliasRecordTargetConfig{ DnsName: jsii.String("dnsName"), HostedZoneId: jsii.String("hostedZoneId"), }
type CaaAmazonRecord ¶
type CaaAmazonRecord interface { CaaRecord // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A DNS Amazon CAA record.
A CAA record to restrict certificate authorities allowed to issue certificates for a domain to Amazon only.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone caaAmazonRecord := awscdk.Aws_route53.NewCaaAmazonRecord(this, jsii.String("MyCaaAmazonRecord"), &CaaAmazonRecordProps{ Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), })
func NewCaaAmazonRecord ¶
func NewCaaAmazonRecord(scope constructs.Construct, id *string, props *CaaAmazonRecordProps) CaaAmazonRecord
type CaaAmazonRecordProps ¶
type CaaAmazonRecordProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` }
Construction properties for a CaaAmazonRecord.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone caaAmazonRecordProps := &CaaAmazonRecordProps{ Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), }
type CaaRecord ¶
type CaaRecord interface { RecordSet // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A DNS CAA record.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone caaRecord := awscdk.Aws_route53.NewCaaRecord(this, jsii.String("MyCaaRecord"), &CaaRecordProps{ Values: []caaRecordValue{ &caaRecordValue{ Flag: jsii.Number(123), Tag: awscdk.*Aws_route53.CaaTag_ISSUE, Value: jsii.String("value"), }, }, Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), })
func NewCaaRecord ¶
func NewCaaRecord(scope constructs.Construct, id *string, props *CaaRecordProps) CaaRecord
type CaaRecordProps ¶
type CaaRecordProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // The values. Values *[]*CaaRecordValue `field:"required" json:"values" yaml:"values"` }
Construction properties for a CaaRecord.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone caaRecordProps := &CaaRecordProps{ Values: []caaRecordValue{ &caaRecordValue{ Flag: jsii.Number(123), Tag: awscdk.Aws_route53.CaaTag_ISSUE, Value: jsii.String("value"), }, }, Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), }
type CaaRecordValue ¶
type CaaRecordValue struct { // The flag. Flag *float64 `field:"required" json:"flag" yaml:"flag"` // The tag. Tag CaaTag `field:"required" json:"tag" yaml:"tag"` // The value associated with the tag. Value *string `field:"required" json:"value" yaml:"value"` }
Properties for a CAA record value.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" caaRecordValue := &CaaRecordValue{ Flag: jsii.Number(123), Tag: awscdk.Aws_route53.CaaTag_ISSUE, Value: jsii.String("value"), }
type CaaTag ¶
type CaaTag string
The CAA tag.
const ( // Explicity authorizes a single certificate authority to issue a certificate (any type) for the hostname. CaaTag_ISSUE CaaTag = "ISSUE" // Explicity authorizes a single certificate authority to issue a wildcard certificate (and only wildcard) for the hostname. CaaTag_ISSUEWILD CaaTag = "ISSUEWILD" // Specifies a URL to which a certificate authority may report policy violations. CaaTag_IODEF CaaTag = "IODEF" )
type CfnCidrCollection ¶ added in v2.31.0
type CfnCidrCollection interface { awscdk.CfnResource awscdk.IInspectable // "The Amazon resource name (ARN) to uniquely identify the AWS resource. AttrArn() *string // The UUID of the CIDR collection. AttrId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // A complex type that contains information about the list of CIDR locations. Locations() interface{} SetLocations(val interface{}) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The name of a CIDR collection. Name() *string SetName(val *string) // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
Creates a CIDR collection in the current AWS account.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnCidrCollection := awscdk.Aws_route53.NewCfnCidrCollection(this, jsii.String("MyCfnCidrCollection"), &CfnCidrCollectionProps{ Name: jsii.String("name"), // the properties below are optional Locations: []interface{}{ &LocationProperty{ CidrList: []*string{ jsii.String("cidrList"), }, LocationName: jsii.String("locationName"), }, }, })
func NewCfnCidrCollection ¶ added in v2.31.0
func NewCfnCidrCollection(scope constructs.Construct, id *string, props *CfnCidrCollectionProps) CfnCidrCollection
type CfnCidrCollectionProps ¶ added in v2.31.0
type CfnCidrCollectionProps struct { // The name of a CIDR collection. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-cidrcollection.html#cfn-route53-cidrcollection-name // Name *string `field:"required" json:"name" yaml:"name"` // A complex type that contains information about the list of CIDR locations. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-cidrcollection.html#cfn-route53-cidrcollection-locations // Locations interface{} `field:"optional" json:"locations" yaml:"locations"` }
Properties for defining a `CfnCidrCollection`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnCidrCollectionProps := &CfnCidrCollectionProps{ Name: jsii.String("name"), // the properties below are optional Locations: []interface{}{ &LocationProperty{ CidrList: []*string{ jsii.String("cidrList"), }, LocationName: jsii.String("locationName"), }, }, }
type CfnCidrCollection_LocationProperty ¶ added in v2.31.0
type CfnCidrCollection_LocationProperty struct { // List of CIDR blocks. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-cidrcollection-location.html#cfn-route53-cidrcollection-location-cidrlist // CidrList *[]*string `field:"required" json:"cidrList" yaml:"cidrList"` // The CIDR collection location name. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-cidrcollection-location.html#cfn-route53-cidrcollection-location-locationname // LocationName *string `field:"required" json:"locationName" yaml:"locationName"` }
Specifies the list of CIDR blocks for a CIDR location.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" locationProperty := &LocationProperty{ CidrList: []*string{ jsii.String("cidrList"), }, LocationName: jsii.String("locationName"), }
type CfnDNSSEC ¶
type CfnDNSSEC interface { awscdk.CfnResource awscdk.IInspectable // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // A unique string (ID) that is used to identify a hosted zone. HostedZoneId() *string SetHostedZoneId(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
The `AWS::Route53::DNSSEC` resource is used to enable DNSSEC signing in a hosted zone.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnDNSSEC := awscdk.Aws_route53.NewCfnDNSSEC(this, jsii.String("MyCfnDNSSEC"), &CfnDNSSECProps{ HostedZoneId: jsii.String("hostedZoneId"), })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-dnssec.html
func NewCfnDNSSEC ¶
func NewCfnDNSSEC(scope constructs.Construct, id *string, props *CfnDNSSECProps) CfnDNSSEC
type CfnDNSSECProps ¶
type CfnDNSSECProps struct { // A unique string (ID) that is used to identify a hosted zone. // // For example: `Z00001111A1ABCaaABC11` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-dnssec.html#cfn-route53-dnssec-hostedzoneid // HostedZoneId *string `field:"required" json:"hostedZoneId" yaml:"hostedZoneId"` }
Properties for defining a `CfnDNSSEC`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnDNSSECProps := &CfnDNSSECProps{ HostedZoneId: jsii.String("hostedZoneId"), }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-dnssec.html
type CfnHealthCheck ¶
type CfnHealthCheck interface { awscdk.CfnResource awscdk.IInspectable // The identifier that Amazon Route 53 assigned to the health check when you created it. // // When you add or update a resource record set, you use this value to specify which health check to use. The value can be up to 64 characters long. AttrHealthCheckId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // A complex type that contains detailed information about one health check. HealthCheckConfig() interface{} SetHealthCheckConfig(val interface{}) // The `HealthCheckTags` property describes key-value pairs that are associated with an `AWS::Route53::HealthCheck` resource. HealthCheckTags() interface{} SetHealthCheckTags(val interface{}) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
The `AWS::Route53::HealthCheck` resource is a Route 53 resource type that contains settings for a Route 53 health check.
For information about associating health checks with records, see [HealthCheckId](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResourceRecordSet.html#Route53-Type-ResourceRecordSet-HealthCheckId) in [ChangeResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html) .
> You can't create a health check with simple routing.
*ELB Load Balancers*
If you're registering EC2 instances with an Elastic Load Balancing (ELB) load balancer, do not create Amazon Route 53 health checks for the EC2 instances. When you register an EC2 instance with a load balancer, you configure settings for an ELB health check, which performs a similar function to a Route 53 health check.
*Private Hosted Zones*
You can associate health checks with failover records in a private hosted zone. Note the following:
- Route 53 health checkers are outside the VPC. To check the health of an endpoint within a VPC by IP address, you must assign a public IP address to the instance in the VPC. - You can configure a health checker to check the health of an external resource that the instance relies on, such as a database server. - You can create a CloudWatch metric, associate an alarm with the metric, and then create a health check that is based on the state of the alarm. For example, you might create a CloudWatch metric that checks the status of the Amazon EC2 `StatusCheckFailed` metric, add an alarm to the metric, and then create a health check that is based on the state of the alarm. For information about creating CloudWatch metrics and alarms by using the CloudWatch console, see the [Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatch.html) .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnHealthCheck := awscdk.Aws_route53.NewCfnHealthCheck(this, jsii.String("MyCfnHealthCheck"), &CfnHealthCheckProps{ HealthCheckConfig: &HealthCheckConfigProperty{ Type: jsii.String("type"), // the properties below are optional AlarmIdentifier: &AlarmIdentifierProperty{ Name: jsii.String("name"), Region: jsii.String("region"), }, ChildHealthChecks: []*string{ jsii.String("childHealthChecks"), }, EnableSni: jsii.Boolean(false), FailureThreshold: jsii.Number(123), FullyQualifiedDomainName: jsii.String("fullyQualifiedDomainName"), HealthThreshold: jsii.Number(123), InsufficientDataHealthStatus: jsii.String("insufficientDataHealthStatus"), Inverted: jsii.Boolean(false), IpAddress: jsii.String("ipAddress"), MeasureLatency: jsii.Boolean(false), Port: jsii.Number(123), Regions: []*string{ jsii.String("regions"), }, RequestInterval: jsii.Number(123), ResourcePath: jsii.String("resourcePath"), RoutingControlArn: jsii.String("routingControlArn"), SearchString: jsii.String("searchString"), }, // the properties below are optional HealthCheckTags: []interface{}{ &HealthCheckTagProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html
func NewCfnHealthCheck ¶
func NewCfnHealthCheck(scope constructs.Construct, id *string, props *CfnHealthCheckProps) CfnHealthCheck
type CfnHealthCheckProps ¶
type CfnHealthCheckProps struct { // A complex type that contains detailed information about one health check. // // For the values to enter for `HealthCheckConfig` , see [HealthCheckConfig](https://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html#cfn-route53-healthcheck-healthcheckconfig // HealthCheckConfig interface{} `field:"required" json:"healthCheckConfig" yaml:"healthCheckConfig"` // The `HealthCheckTags` property describes key-value pairs that are associated with an `AWS::Route53::HealthCheck` resource. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html#cfn-route53-healthcheck-healthchecktags // HealthCheckTags interface{} `field:"optional" json:"healthCheckTags" yaml:"healthCheckTags"` }
Properties for defining a `CfnHealthCheck`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnHealthCheckProps := &CfnHealthCheckProps{ HealthCheckConfig: &HealthCheckConfigProperty{ Type: jsii.String("type"), // the properties below are optional AlarmIdentifier: &AlarmIdentifierProperty{ Name: jsii.String("name"), Region: jsii.String("region"), }, ChildHealthChecks: []*string{ jsii.String("childHealthChecks"), }, EnableSni: jsii.Boolean(false), FailureThreshold: jsii.Number(123), FullyQualifiedDomainName: jsii.String("fullyQualifiedDomainName"), HealthThreshold: jsii.Number(123), InsufficientDataHealthStatus: jsii.String("insufficientDataHealthStatus"), Inverted: jsii.Boolean(false), IpAddress: jsii.String("ipAddress"), MeasureLatency: jsii.Boolean(false), Port: jsii.Number(123), Regions: []*string{ jsii.String("regions"), }, RequestInterval: jsii.Number(123), ResourcePath: jsii.String("resourcePath"), RoutingControlArn: jsii.String("routingControlArn"), SearchString: jsii.String("searchString"), }, // the properties below are optional HealthCheckTags: []interface{}{ &HealthCheckTagProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-healthcheck.html
type CfnHealthCheck_AlarmIdentifierProperty ¶
type CfnHealthCheck_AlarmIdentifierProperty struct { // The name of the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether this health check is healthy. // // > Route 53 supports CloudWatch alarms with the following features: // > // > - Standard-resolution metrics. High-resolution metrics aren't supported. For more information, see [High-Resolution Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html#high-resolution-metrics) in the *Amazon CloudWatch User Guide* . // > - Statistics: Average, Minimum, Maximum, Sum, and SampleCount. Extended statistics aren't supported. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-alarmidentifier.html#cfn-route53-healthcheck-alarmidentifier-name // Name *string `field:"required" json:"name" yaml:"name"` // For the CloudWatch alarm that you want Route 53 health checkers to use to determine whether this health check is healthy, the region that the alarm was created in. // // For the current list of CloudWatch regions, see [Amazon CloudWatch endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/cw_region.html) in the *Amazon Web Services General Reference* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-alarmidentifier.html#cfn-route53-healthcheck-alarmidentifier-region // Region *string `field:"required" json:"region" yaml:"region"` }
A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" alarmIdentifierProperty := &AlarmIdentifierProperty{ Name: jsii.String("name"), Region: jsii.String("region"), }
type CfnHealthCheck_HealthCheckConfigProperty ¶
type CfnHealthCheck_HealthCheckConfigProperty struct { // The type of health check that you want to create, which indicates how Amazon Route 53 determines whether an endpoint is healthy. // // > You can't change the value of `Type` after you create a health check. // // You can create the following types of health checks: // // - *HTTP* : Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400. // - *HTTPS* : Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400. // // > If you specify `HTTPS` for the value of `Type` , the endpoint must support TLS v1.0 or later. // - *HTTP_STR_MATCH* : Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and searches the first 5,120 bytes of the response body for the string that you specify in `SearchString` . // - *HTTPS_STR_MATCH* : Route 53 tries to establish a TCP connection. If successful, Route 53 submits an `HTTPS` request and searches the first 5,120 bytes of the response body for the string that you specify in `SearchString` . // - *TCP* : Route 53 tries to establish a TCP connection. // - *CLOUDWATCH_METRIC* : The health check is associated with a CloudWatch alarm. If the state of the alarm is `OK` , the health check is considered healthy. If the state is `ALARM` , the health check is considered unhealthy. If CloudWatch doesn't have sufficient data to determine whether the state is `OK` or `ALARM` , the health check status depends on the setting for `InsufficientDataHealthStatus` : `Healthy` , `Unhealthy` , or `LastKnownStatus` . // // > Route 53 supports CloudWatch alarms with the following features: // > // > - Standard-resolution metrics. High-resolution metrics aren't supported. For more information, see [High-Resolution Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html#high-resolution-metrics) in the *Amazon CloudWatch User Guide* . // > - Statistics: Average, Minimum, Maximum, Sum, and SampleCount. Extended statistics aren't supported. // - *CALCULATED* : For health checks that monitor the status of other health checks, Route 53 adds up the number of health checks that Route 53 health checkers consider to be healthy and compares that number with the value of `HealthThreshold` . // - *RECOVERY_CONTROL* : The health check is assocated with a Route53 Application Recovery Controller routing control. If the routing control state is `ON` , the health check is considered healthy. If the state is `OFF` , the health check is considered unhealthy. // // For more information, see [How Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) in the *Amazon Route 53 Developer Guide* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-type // Type *string `field:"required" json:"type" yaml:"type"` // A complex type that identifies the CloudWatch alarm that you want Amazon Route 53 health checkers to use to determine whether the specified health check is healthy. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-alarmidentifier // AlarmIdentifier interface{} `field:"optional" json:"alarmIdentifier" yaml:"alarmIdentifier"` // (CALCULATED Health Checks Only) A complex type that contains one `ChildHealthCheck` element for each health check that you want to associate with a `CALCULATED` health check. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-childhealthchecks // ChildHealthChecks *[]*string `field:"optional" json:"childHealthChecks" yaml:"childHealthChecks"` // Specify whether you want Amazon Route 53 to send the value of `FullyQualifiedDomainName` to the endpoint in the `client_hello` message during TLS negotiation. // // This allows the endpoint to respond to `HTTPS` health check requests with the applicable SSL/TLS certificate. // // Some endpoints require that `HTTPS` requests include the host name in the `client_hello` message. If you don't enable SNI, the status of the health check will be `SSL alert handshake_failure` . A health check can also have that status for other reasons. If SNI is enabled and you're still getting the error, check the SSL/TLS configuration on your endpoint and confirm that your certificate is valid. // // The SSL/TLS certificate on your endpoint includes a domain name in the `Common Name` field and possibly several more in the `Subject Alternative Names` field. One of the domain names in the certificate should match the value that you specify for `FullyQualifiedDomainName` . If the endpoint responds to the `client_hello` message with a certificate that does not include the domain name that you specified in `FullyQualifiedDomainName` , a health checker will retry the handshake. In the second attempt, the health checker will omit `FullyQualifiedDomainName` from the `client_hello` message. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-enablesni // EnableSni interface{} `field:"optional" json:"enableSni" yaml:"enableSni"` // The number of consecutive health checks that an endpoint must pass or fail for Amazon Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa. // // For more information, see [How Amazon Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) in the *Amazon Route 53 Developer Guide* . // // If you don't specify a value for `FailureThreshold` , the default value is three health checks. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-failurethreshold // FailureThreshold *float64 `field:"optional" json:"failureThreshold" yaml:"failureThreshold"` // Amazon Route 53 behavior depends on whether you specify a value for `IPAddress` . // // *If you specify a value for* `IPAddress` : // // Amazon Route 53 sends health check requests to the specified IPv4 or IPv6 address and passes the value of `FullyQualifiedDomainName` in the `Host` header for all health checks except TCP health checks. This is typically the fully qualified DNS name of the endpoint on which you want Route 53 to perform health checks. // // When Route 53 checks the health of an endpoint, here is how it constructs the `Host` header: // // - If you specify a value of `80` for `Port` and `HTTP` or `HTTP_STR_MATCH` for `Type` , Route 53 passes the value of `FullyQualifiedDomainName` to the endpoint in the Host header. // - If you specify a value of `443` for `Port` and `HTTPS` or `HTTPS_STR_MATCH` for `Type` , Route 53 passes the value of `FullyQualifiedDomainName` to the endpoint in the `Host` header. // - If you specify another value for `Port` and any value except `TCP` for `Type` , Route 53 passes `FullyQualifiedDomainName:Port` to the endpoint in the `Host` header. // // If you don't specify a value for `FullyQualifiedDomainName` , Route 53 substitutes the value of `IPAddress` in the `Host` header in each of the preceding cases. // // *If you don't specify a value for `IPAddress`* : // // Route 53 sends a DNS request to the domain that you specify for `FullyQualifiedDomainName` at the interval that you specify for `RequestInterval` . Using an IPv4 address that DNS returns, Route 53 then checks the health of the endpoint. // // > If you don't specify a value for `IPAddress` , Route 53 uses only IPv4 to send health checks to the endpoint. If there's no record with a type of A for the name that you specify for `FullyQualifiedDomainName` , the health check fails with a "DNS resolution failed" error. // // If you want to check the health of multiple records that have the same name and type, such as multiple weighted records, and if you choose to specify the endpoint only by `FullyQualifiedDomainName` , we recommend that you create a separate health check for each endpoint. For example, create a health check for each HTTP server that is serving content for www.example.com. For the value of `FullyQualifiedDomainName` , specify the domain name of the server (such as us-east-2-www.example.com), not the name of the records (www.example.com). // // > In this configuration, if you create a health check for which the value of `FullyQualifiedDomainName` matches the name of the records and you then associate the health check with those records, health check results will be unpredictable. // // In addition, if the value that you specify for `Type` is `HTTP` , `HTTPS` , `HTTP_STR_MATCH` , or `HTTPS_STR_MATCH` , Route 53 passes the value of `FullyQualifiedDomainName` in the `Host` header, as it does when you specify a value for `IPAddress` . If the value of `Type` is `TCP` , Route 53 doesn't pass a `Host` header. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-fullyqualifieddomainname // FullyQualifiedDomainName *string `field:"optional" json:"fullyQualifiedDomainName" yaml:"fullyQualifiedDomainName"` // The number of child health checks that are associated with a `CALCULATED` health check that Amazon Route 53 must consider healthy for the `CALCULATED` health check to be considered healthy. // // To specify the child health checks that you want to associate with a `CALCULATED` health check, use the [ChildHealthChecks](https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-ChildHealthChecks) element. // // Note the following: // // - If you specify a number greater than the number of child health checks, Route 53 always considers this health check to be unhealthy. // - If you specify `0` , Route 53 always considers this health check to be healthy. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-healththreshold // HealthThreshold *float64 `field:"optional" json:"healthThreshold" yaml:"healthThreshold"` // When CloudWatch has insufficient data about the metric to determine the alarm state, the status that you want Amazon Route 53 to assign to the health check: - `Healthy` : Route 53 considers the health check to be healthy. // // - `Unhealthy` : Route 53 considers the health check to be unhealthy. // - `LastKnownStatus` : Route 53 uses the status of the health check from the last time that CloudWatch had sufficient data to determine the alarm state. For new health checks that have no last known status, the default status for the health check is healthy. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-insufficientdatahealthstatus // InsufficientDataHealthStatus *string `field:"optional" json:"insufficientDataHealthStatus" yaml:"insufficientDataHealthStatus"` // Specify whether you want Amazon Route 53 to invert the status of a health check, for example, to consider a health check unhealthy when it otherwise would be considered healthy. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-inverted // Inverted interface{} `field:"optional" json:"inverted" yaml:"inverted"` // The IPv4 or IPv6 IP address of the endpoint that you want Amazon Route 53 to perform health checks on. // // If you don't specify a value for `IPAddress` , Route 53 sends a DNS request to resolve the domain name that you specify in `FullyQualifiedDomainName` at the interval that you specify in `RequestInterval` . Using an IP address returned by DNS, Route 53 then checks the health of the endpoint. // // Use one of the following formats for the value of `IPAddress` : // // - *IPv4 address* : four values between 0 and 255, separated by periods (.), for example, `192.0.2.44` . // - *IPv6 address* : eight groups of four hexadecimal values, separated by colons (:), for example, `2001:0db8:85a3:0000:0000:abcd:0001:2345` . You can also shorten IPv6 addresses as described in RFC 5952, for example, `2001:db8:85a3::abcd:1:2345` . // // If the endpoint is an EC2 instance, we recommend that you create an Elastic IP address, associate it with your EC2 instance, and specify the Elastic IP address for `IPAddress` . This ensures that the IP address of your instance will never change. // // For more information, see [FullyQualifiedDomainName](https://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHealthCheck.html#Route53-UpdateHealthCheck-request-FullyQualifiedDomainName) . // // Constraints: Route 53 can't check the health of endpoints for which the IP address is in local, private, non-routable, or multicast ranges. For more information about IP addresses for which you can't create health checks, see the following documents: // // - [RFC 5735, Special Use IPv4 Addresses](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc5735) // - [RFC 6598, IANA-Reserved IPv4 Prefix for Shared Address Space](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc6598) // - [RFC 5156, Special-Use IPv6 Addresses](https://docs.aws.amazon.com/https://tools.ietf.org/html/rfc5156) // // When the value of `Type` is `CALCULATED` or `CLOUDWATCH_METRIC` , omit `IPAddress` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-ipaddress // IpAddress *string `field:"optional" json:"ipAddress" yaml:"ipAddress"` // Specify whether you want Amazon Route 53 to measure the latency between health checkers in multiple AWS regions and your endpoint, and to display CloudWatch latency graphs on the *Health Checks* page in the Route 53 console. // // > You can't change the value of `MeasureLatency` after you create a health check. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-measurelatency // MeasureLatency interface{} `field:"optional" json:"measureLatency" yaml:"measureLatency"` // The port on the endpoint that you want Amazon Route 53 to perform health checks on. // // > Don't specify a value for `Port` when you specify a value for [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-type) of `CLOUDWATCH_METRIC` or `CALCULATED` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-port // Port *float64 `field:"optional" json:"port" yaml:"port"` // A complex type that contains one `Region` element for each region from which you want Amazon Route 53 health checkers to check the specified endpoint. // // If you don't specify any regions, Route 53 health checkers automatically performs checks from all of the regions that are listed under *Valid Values* . // // If you update a health check to remove a region that has been performing health checks, Route 53 will briefly continue to perform checks from that region to ensure that some health checkers are always checking the endpoint (for example, if you replace three regions with four different regions). // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-regions // Regions *[]*string `field:"optional" json:"regions" yaml:"regions"` // The number of seconds between the time that Amazon Route 53 gets a response from your endpoint and the time that it sends the next health check request. // // Each Route 53 health checker makes requests at this interval. // // > You can't change the value of `RequestInterval` after you create a health check. // // If you don't specify a value for `RequestInterval` , the default value is `30` seconds. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-requestinterval // RequestInterval *float64 `field:"optional" json:"requestInterval" yaml:"requestInterval"` // The path, if any, that you want Amazon Route 53 to request when performing health checks. // // The path can be any value for which your endpoint will return an HTTP status code of 2xx or 3xx when the endpoint is healthy, for example, the file /docs/route53-health-check.html. You can also include query string parameters, for example, `/welcome.html?language=jp&login=y` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-resourcepath // ResourcePath *string `field:"optional" json:"resourcePath" yaml:"resourcePath"` // The Amazon Resource Name (ARN) for the Route 53 Application Recovery Controller routing control. // // For more information about Route 53 Application Recovery Controller, see [Route 53 Application Recovery Controller Developer Guide.](https://docs.aws.amazon.com/r53recovery/latest/dg/what-is-route-53-recovery.html) . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-routingcontrolarn // RoutingControlArn *string `field:"optional" json:"routingControlArn" yaml:"routingControlArn"` // If the value of Type is `HTTP_STR_MATCH` or `HTTPS_STR_MATCH` , the string that you want Amazon Route 53 to search for in the response body from the specified resource. // // If the string appears in the response body, Route 53 considers the resource healthy. // // Route 53 considers case when searching for `SearchString` in the response body. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthcheckconfig.html#cfn-route53-healthcheck-healthcheckconfig-searchstring // SearchString *string `field:"optional" json:"searchString" yaml:"searchString"` }
A complex type that contains information about the health check.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" healthCheckConfigProperty := &HealthCheckConfigProperty{ Type: jsii.String("type"), // the properties below are optional AlarmIdentifier: &AlarmIdentifierProperty{ Name: jsii.String("name"), Region: jsii.String("region"), }, ChildHealthChecks: []*string{ jsii.String("childHealthChecks"), }, EnableSni: jsii.Boolean(false), FailureThreshold: jsii.Number(123), FullyQualifiedDomainName: jsii.String("fullyQualifiedDomainName"), HealthThreshold: jsii.Number(123), InsufficientDataHealthStatus: jsii.String("insufficientDataHealthStatus"), Inverted: jsii.Boolean(false), IpAddress: jsii.String("ipAddress"), MeasureLatency: jsii.Boolean(false), Port: jsii.Number(123), Regions: []*string{ jsii.String("regions"), }, RequestInterval: jsii.Number(123), ResourcePath: jsii.String("resourcePath"), RoutingControlArn: jsii.String("routingControlArn"), SearchString: jsii.String("searchString"), }
type CfnHealthCheck_HealthCheckTagProperty ¶
type CfnHealthCheck_HealthCheckTagProperty struct { // The value of `Key` depends on the operation that you want to perform:. // // - *Add a tag to a health check or hosted zone* : `Key` is the name that you want to give the new tag. // - *Edit a tag* : `Key` is the name of the tag that you want to change the `Value` for. // - *Delete a key* : `Key` is the name of the tag you want to remove. // - *Give a name to a health check* : Edit the default `Name` tag. In the Amazon Route 53 console, the list of your health checks includes a *Name* column that lets you see the name that you've given to each health check. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthchecktag.html#cfn-route53-healthcheck-healthchecktag-key // Key *string `field:"required" json:"key" yaml:"key"` // The value of `Value` depends on the operation that you want to perform:. // // - *Add a tag to a health check or hosted zone* : `Value` is the value that you want to give the new tag. // - *Edit a tag* : `Value` is the new value that you want to assign the tag. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-healthcheck-healthchecktag.html#cfn-route53-healthcheck-healthchecktag-value // Value *string `field:"required" json:"value" yaml:"value"` }
The `HealthCheckTag` property describes one key-value pair that is associated with an `AWS::Route53::HealthCheck` resource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" healthCheckTagProperty := &HealthCheckTagProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }
type CfnHostedZone ¶
type CfnHostedZone interface { awscdk.CfnResource awscdk.IInspectable awscdk.ITaggable // The ID that Amazon Route 53 assigned to the hosted zone when you created it. AttrId() *string // Returns the set of name servers for the specific hosted zone. For example: `ns1.example.com` . // // This attribute is not supported for private hosted zones. AttrNameServers() *[]*string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // A complex type that contains an optional comment. HostedZoneConfig() interface{} SetHostedZoneConfig(val interface{}) // Adds, edits, or deletes tags for a health check or a hosted zone. HostedZoneTagsRaw() *[]*CfnHostedZone_HostedZoneTagProperty SetHostedZoneTagsRaw(val *[]*CfnHostedZone_HostedZoneTagProperty) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The name of the domain. Name() *string SetName(val *string) // The tree node. Node() constructs.Node // Creates a configuration for DNS query logging. QueryLoggingConfig() interface{} SetQueryLoggingConfig(val interface{}) // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Tag Manager which manages the tags for this resource. Tags() awscdk.TagManager // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. Vpcs() interface{} SetVpcs(val interface{}) // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
Creates a new public or private hosted zone.
You create records in a public hosted zone to define how you want to route traffic on the internet for a domain, such as example.com, and its subdomains (apex.example.com, acme.example.com). You create records in a private hosted zone to define how you want to route traffic for a domain and its subdomains within one or more Amazon Virtual Private Clouds (Amazon VPCs).
> You can't convert a public hosted zone to a private hosted zone or vice versa. Instead, you must create a new hosted zone with the same name and create new resource record sets.
For more information about charges for hosted zones, see [Amazon Route 53 Pricing](https://docs.aws.amazon.com/route53/pricing/) .
Note the following:
- You can't create a hosted zone for a top-level domain (TLD) such as .com. - If your domain is registered with a registrar other than Route 53, you must update the name servers with your registrar to make Route 53 the DNS service for the domain. For more information, see [Migrating DNS Service for an Existing Domain to Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html) in the *Amazon Route 53 Developer Guide* .
When you submit a `CreateHostedZone` request, the initial status of the hosted zone is `PENDING` . For public hosted zones, this means that the NS and SOA records are not yet available on all Route 53 DNS servers. When the NS and SOA records are available, the status of the zone changes to `INSYNC` .
The `CreateHostedZone` request requires the caller to have an `ec2:DescribeVpcs` permission.
> When creating private hosted zones, the Amazon VPC must belong to the same partition where the hosted zone is created. A partition is a group of AWS Regions . Each AWS account is scoped to one partition. > > The following are the supported partitions: > > - `aws` - AWS Regions > - `aws-cn` - China Regions > - `aws-us-gov` - AWS GovCloud (US) Region > > For more information, see [Access Management](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *AWS General Reference* .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnHostedZone := awscdk.Aws_route53.NewCfnHostedZone(this, jsii.String("MyCfnHostedZone"), &CfnHostedZoneProps{ HostedZoneConfig: &HostedZoneConfigProperty{ Comment: jsii.String("comment"), }, HostedZoneTags: []hostedZoneTagProperty{ &hostedZoneTagProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, Name: jsii.String("name"), QueryLoggingConfig: &QueryLoggingConfigProperty{ CloudWatchLogsLogGroupArn: jsii.String("cloudWatchLogsLogGroupArn"), }, Vpcs: []interface{}{ &VPCProperty{ VpcId: jsii.String("vpcId"), VpcRegion: jsii.String("vpcRegion"), }, }, })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html
func NewCfnHostedZone ¶
func NewCfnHostedZone(scope constructs.Construct, id *string, props *CfnHostedZoneProps) CfnHostedZone
type CfnHostedZoneProps ¶
type CfnHostedZoneProps struct { // A complex type that contains an optional comment. // // If you don't want to specify a comment, omit the `HostedZoneConfig` and `Comment` elements. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-hostedzoneconfig // HostedZoneConfig interface{} `field:"optional" json:"hostedZoneConfig" yaml:"hostedZoneConfig"` // Adds, edits, or deletes tags for a health check or a hosted zone. // // For information about using tags for cost allocation, see [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) in the *AWS Billing and Cost Management User Guide* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-hostedzonetags // HostedZoneTags *[]*CfnHostedZone_HostedZoneTagProperty `field:"optional" json:"hostedZoneTags" yaml:"hostedZoneTags"` // The name of the domain. // // Specify a fully qualified domain name, for example, *www.example.com* . The trailing dot is optional; Amazon Route 53 assumes that the domain name is fully qualified. This means that Route 53 treats *www.example.com* (without a trailing dot) and *www.example.com.* (with a trailing dot) as identical. // // If you're creating a public hosted zone, this is the name you have registered with your DNS registrar. If your domain name is registered with a registrar other than Route 53, change the name servers for your domain to the set of `NameServers` that are returned by the `Fn::GetAtt` intrinsic function. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-name // Name *string `field:"optional" json:"name" yaml:"name"` // Creates a configuration for DNS query logging. // // After you create a query logging configuration, Amazon Route 53 begins to publish log data to an Amazon CloudWatch Logs log group. // // DNS query logs contain information about the queries that Route 53 receives for a specified public hosted zone, such as the following: // // - Route 53 edge location that responded to the DNS query // - Domain or subdomain that was requested // - DNS record type, such as A or AAAA // - DNS response code, such as `NoError` or `ServFail` // // - **Log Group and Resource Policy** - Before you create a query logging configuration, perform the following operations. // // > If you create a query logging configuration using the Route 53 console, Route 53 performs these operations automatically. // // - Create a CloudWatch Logs log group, and make note of the ARN, which you specify when you create a query logging configuration. Note the following: // // - You must create the log group in the us-east-1 region. // - You must use the same AWS account to create the log group and the hosted zone that you want to configure query logging for. // - When you create log groups for query logging, we recommend that you use a consistent prefix, for example: // // `/aws/route53/ *hosted zone name*` // // In the next step, you'll create a resource policy, which controls access to one or more log groups and the associated AWS resources, such as Route 53 hosted zones. There's a limit on the number of resource policies that you can create, so we recommend that you use a consistent prefix so you can use the same resource policy for all the log groups that you create for query logging. // - Create a CloudWatch Logs resource policy, and give it the permissions that Route 53 needs to create log streams and to send query logs to log streams. You must create the CloudWatch Logs resource policy in the us-east-1 region. For the value of `Resource` , specify the ARN for the log group that you created in the previous step. To use the same resource policy for all the CloudWatch Logs log groups that you created for query logging configurations, replace the hosted zone name with `*` , for example: // // `arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/*` // // To avoid the confused deputy problem, a security issue where an entity without a permission for an action can coerce a more-privileged entity to perform it, you can optionally limit the permissions that a service has to a resource in a resource-based policy by supplying the following values: // // - For `aws:SourceArn` , supply the hosted zone ARN used in creating the query logging configuration. For example, `aws:SourceArn: arn:aws:route53:::hostedzone/hosted zone ID` . // - For `aws:SourceAccount` , supply the account ID for the account that creates the query logging configuration. For example, `aws:SourceAccount:111111111111` . // // For more information, see [The confused deputy problem](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) in the *AWS IAM User Guide* . // // > You can't use the CloudWatch console to create or edit a resource policy. You must use the CloudWatch API, one of the AWS SDKs, or the AWS CLI . // - **Log Streams and Edge Locations** - When Route 53 finishes creating the configuration for DNS query logging, it does the following: // // - Creates a log stream for an edge location the first time that the edge location responds to DNS queries for the specified hosted zone. That log stream is used to log all queries that Route 53 responds to for that edge location. // - Begins to send query logs to the applicable log stream. // // The name of each log stream is in the following format: // // `*hosted zone ID* / *edge location code*` // // The edge location code is a three-letter code and an arbitrarily assigned number, for example, DFW3. The three-letter code typically corresponds with the International Air Transport Association airport code for an airport near the edge location. (These abbreviations might change in the future.) For a list of edge locations, see "The Route 53 Global Network" on the [Route 53 Product Details](https://docs.aws.amazon.com/route53/details/) page. // - **Queries That Are Logged** - Query logs contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has already cached the response to a query (such as the IP address for a load balancer for example.com), the resolver will continue to return the cached response. It doesn't forward another query to Route 53 until the TTL for the corresponding resource record set expires. Depending on how many DNS queries are submitted for a resource record set, and depending on the TTL for that resource record set, query logs might contain information about only one query out of every several thousand queries that are submitted to DNS. For more information about how DNS works, see [Routing Internet Traffic to Your Website or Web Application](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/welcome-dns-service.html) in the *Amazon Route 53 Developer Guide* . // - **Log File Format** - For a list of the values in each query log and the format of each value, see [Logging DNS Queries](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/query-logs.html) in the *Amazon Route 53 Developer Guide* . // - **Pricing** - For information about charges for query logs, see [Amazon CloudWatch Pricing](https://docs.aws.amazon.com/cloudwatch/pricing/) . // - **How to Stop Logging** - If you want Route 53 to stop sending query logs to CloudWatch Logs, delete the query logging configuration. For more information, see [DeleteQueryLoggingConfig](https://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteQueryLoggingConfig.html) . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-queryloggingconfig // QueryLoggingConfig interface{} `field:"optional" json:"queryLoggingConfig" yaml:"queryLoggingConfig"` // *Private hosted zones:* A complex type that contains information about the VPCs that are associated with the specified hosted zone. // // > For public hosted zones, omit `VPCs` , `VPCId` , and `VPCRegion` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-vpcs // Vpcs interface{} `field:"optional" json:"vpcs" yaml:"vpcs"` }
Properties for defining a `CfnHostedZone`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnHostedZoneProps := &CfnHostedZoneProps{ HostedZoneConfig: &HostedZoneConfigProperty{ Comment: jsii.String("comment"), }, HostedZoneTags: []hostedZoneTagProperty{ &hostedZoneTagProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, Name: jsii.String("name"), QueryLoggingConfig: &QueryLoggingConfigProperty{ CloudWatchLogsLogGroupArn: jsii.String("cloudWatchLogsLogGroupArn"), }, Vpcs: []interface{}{ &VPCProperty{ VpcId: jsii.String("vpcId"), VpcRegion: jsii.String("vpcRegion"), }, }, }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html
type CfnHostedZone_HostedZoneConfigProperty ¶
type CfnHostedZone_HostedZoneConfigProperty struct { // Any comments that you want to include about the hosted zone. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzoneconfig.html#cfn-route53-hostedzone-hostedzoneconfig-comment // Comment *string `field:"optional" json:"comment" yaml:"comment"` }
A complex type that contains an optional comment about your hosted zone.
If you don't want to specify a comment, omit both the `HostedZoneConfig` and `Comment` elements.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" hostedZoneConfigProperty := &HostedZoneConfigProperty{ Comment: jsii.String("comment"), }
type CfnHostedZone_HostedZoneTagProperty ¶
type CfnHostedZone_HostedZoneTagProperty struct { // The value of `Key` depends on the operation that you want to perform:. // // - *Add a tag to a health check or hosted zone* : `Key` is the name that you want to give the new tag. // - *Edit a tag* : `Key` is the name of the tag that you want to change the `Value` for. // - *Delete a key* : `Key` is the name of the tag you want to remove. // - *Give a name to a health check* : Edit the default `Name` tag. In the Amazon Route 53 console, the list of your health checks includes a *Name* column that lets you see the name that you've given to each health check. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetag.html#cfn-route53-hostedzone-hostedzonetag-key // Key *string `field:"required" json:"key" yaml:"key"` // The value of `Value` depends on the operation that you want to perform:. // // - *Add a tag to a health check or hosted zone* : `Value` is the value that you want to give the new tag. // - *Edit a tag* : `Value` is the new value that you want to assign the tag. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetag.html#cfn-route53-hostedzone-hostedzonetag-value // Value *string `field:"required" json:"value" yaml:"value"` }
A complex type that contains information about a tag that you want to add or edit for the specified health check or hosted zone.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" hostedZoneTagProperty := &HostedZoneTagProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }
type CfnHostedZone_QueryLoggingConfigProperty ¶
type CfnHostedZone_QueryLoggingConfigProperty struct { // The Amazon Resource Name (ARN) of the CloudWatch Logs log group that Amazon Route 53 is publishing logs to. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-queryloggingconfig.html#cfn-route53-hostedzone-queryloggingconfig-cloudwatchlogsloggrouparn // CloudWatchLogsLogGroupArn *string `field:"required" json:"cloudWatchLogsLogGroupArn" yaml:"cloudWatchLogsLogGroupArn"` }
A complex type that contains information about a configuration for DNS query logging.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" queryLoggingConfigProperty := &QueryLoggingConfigProperty{ CloudWatchLogsLogGroupArn: jsii.String("cloudWatchLogsLogGroupArn"), }
type CfnHostedZone_VPCProperty ¶
type CfnHostedZone_VPCProperty struct { // *Private hosted zones only:* The ID of an Amazon VPC. // // > For public hosted zones, omit `VPCs` , `VPCId` , and `VPCRegion` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-vpc.html#cfn-route53-hostedzone-vpc-vpcid // VpcId *string `field:"required" json:"vpcId" yaml:"vpcId"` // *Private hosted zones only:* The region that an Amazon VPC was created in. // // > For public hosted zones, omit `VPCs` , `VPCId` , and `VPCRegion` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-vpc.html#cfn-route53-hostedzone-vpc-vpcregion // VpcRegion *string `field:"required" json:"vpcRegion" yaml:"vpcRegion"` }
*Private hosted zones only:* A complex type that contains information about an Amazon VPC.
Route 53 Resolver uses the records in the private hosted zone to route traffic in that VPC.
> For public hosted zones, omit `VPCs` , `VPCId` , and `VPCRegion` .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" vPCProperty := &VPCProperty{ VpcId: jsii.String("vpcId"), VpcRegion: jsii.String("vpcRegion"), }
type CfnKeySigningKey ¶
type CfnKeySigningKey interface { awscdk.CfnResource awscdk.IInspectable // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The unique string (ID) that is used to identify a hosted zone. HostedZoneId() *string SetHostedZoneId(val *string) // The Amazon resource name (ARN) for a customer managed customer master key (CMK) in AWS Key Management Service ( AWS KMS ). KeyManagementServiceArn() *string SetKeyManagementServiceArn(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // A string used to identify a key-signing key (KSK). Name() *string SetName(val *string) // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // A string that represents the current key-signing key (KSK) status. Status() *string SetStatus(val *string) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
The `AWS::Route53::KeySigningKey` resource creates a new key-signing key (KSK) in a hosted zone.
The hosted zone ID is passed as a parameter in the KSK properties. You can specify the properties of this KSK using the `Name` , `Status` , and `KeyManagementServiceArn` properties of the resource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnKeySigningKey := awscdk.Aws_route53.NewCfnKeySigningKey(this, jsii.String("MyCfnKeySigningKey"), &CfnKeySigningKeyProps{ HostedZoneId: jsii.String("hostedZoneId"), KeyManagementServiceArn: jsii.String("keyManagementServiceArn"), Name: jsii.String("name"), Status: jsii.String("status"), })
func NewCfnKeySigningKey ¶
func NewCfnKeySigningKey(scope constructs.Construct, id *string, props *CfnKeySigningKeyProps) CfnKeySigningKey
type CfnKeySigningKeyProps ¶
type CfnKeySigningKeyProps struct { // The unique string (ID) that is used to identify a hosted zone. // // For example: `Z00001111A1ABCaaABC11` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-keysigningkey.html#cfn-route53-keysigningkey-hostedzoneid // HostedZoneId *string `field:"required" json:"hostedZoneId" yaml:"hostedZoneId"` // The Amazon resource name (ARN) for a customer managed customer master key (CMK) in AWS Key Management Service ( AWS KMS ). // // The `KeyManagementServiceArn` must be unique for each key-signing key (KSK) in a single hosted zone. For example: `arn:aws:kms:us-east-1:111122223333:key/111a2222-a11b-1ab1-2ab2-1ab21a2b3a111` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-keysigningkey.html#cfn-route53-keysigningkey-keymanagementservicearn // KeyManagementServiceArn *string `field:"required" json:"keyManagementServiceArn" yaml:"keyManagementServiceArn"` // A string used to identify a key-signing key (KSK). // // `Name` can include numbers, letters, and underscores (_). `Name` must be unique for each key-signing key in the same hosted zone. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-keysigningkey.html#cfn-route53-keysigningkey-name // Name *string `field:"required" json:"name" yaml:"name"` // A string that represents the current key-signing key (KSK) status. // // Status can have one of the following values: // // - **ACTIVE** - The KSK is being used for signing. // - **INACTIVE** - The KSK is not being used for signing. // - **DELETING** - The KSK is in the process of being deleted. // - **ACTION_NEEDED** - There is a problem with the KSK that requires you to take action to resolve. For example, the customer managed key might have been deleted, or the permissions for the customer managed key might have been changed. // - **INTERNAL_FAILURE** - There was an error during a request. Before you can continue to work with DNSSEC signing, including actions that involve this KSK, you must correct the problem. For example, you may need to activate or deactivate the KSK. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-keysigningkey.html#cfn-route53-keysigningkey-status // Status *string `field:"required" json:"status" yaml:"status"` }
Properties for defining a `CfnKeySigningKey`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnKeySigningKeyProps := &CfnKeySigningKeyProps{ HostedZoneId: jsii.String("hostedZoneId"), KeyManagementServiceArn: jsii.String("keyManagementServiceArn"), Name: jsii.String("name"), Status: jsii.String("status"), }
type CfnRecordSet ¶
type CfnRecordSet interface { awscdk.CfnResource awscdk.IInspectable // *Alias resource record sets only:* Information about the AWS resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to. AliasTarget() interface{} SetAliasTarget(val interface{}) // Specifies a coordinate of the east–west position of a geographic point on the surface of the Earth. AttrId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // The object that is specified in resource record set object when you are linking a resource record set to a CIDR location. CidrRoutingConfig() interface{} SetCidrRoutingConfig(val interface{}) // *Optional:* Any comments you want to include about a change batch request. Comment() *string SetComment(val *string) // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // *Failover resource record sets only:* To configure failover, you add the `Failover` element to two resource record sets. Failover() *string SetFailover(val *string) // *Geolocation resource record sets only:* A complex type that lets you control how Amazon Route 53 responds to DNS queries based on the geographic origin of the query. GeoLocation() interface{} SetGeoLocation(val interface{}) // *GeoproximityLocation resource record sets only:* A complex type that lets you control how Route 53 responds to DNS queries based on the geographic origin of the query and your resources. GeoProximityLocation() interface{} SetGeoProximityLocation(val interface{}) // If you want Amazon Route 53 to return this resource record set in response to a DNS query only when the status of a health check is healthy, include the `HealthCheckId` element and specify the ID of the applicable health check. HealthCheckId() *string SetHealthCheckId(val *string) // The ID of the hosted zone that you want to create records in. HostedZoneId() *string SetHostedZoneId(val *string) // The name of the hosted zone that you want to create records in. HostedZoneName() *string SetHostedZoneName(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // *Multivalue answer resource record sets only* : To route traffic approximately randomly to multiple resources, such as web servers, create one multivalue answer record for each resource and specify `true` for `MultiValueAnswer` . MultiValueAnswer() interface{} SetMultiValueAnswer(val interface{}) // For `ChangeResourceRecordSets` requests, the name of the record that you want to create, update, or delete. Name() *string SetName(val *string) // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // *Latency-based resource record sets only:* The Amazon EC2 Region where you created the resource that this resource record set refers to. Region() *string SetRegion(val *string) // One or more values that correspond with the value that you specified for the `Type` property. ResourceRecords() *[]*string SetResourceRecords(val *[]*string) // *Resource record sets that have a routing policy other than simple:* An identifier that differentiates among multiple resource record sets that have the same combination of name and type, such as multiple weighted resource record sets named acme.example.com that have a type of A. In a group of resource record sets that have the same name and type, the value of `SetIdentifier` must be unique for each resource record set. SetIdentifier() *string SetSetIdentifier(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // The resource record cache time to live (TTL), in seconds. // // Note the following:. Ttl() *string SetTtl(val *string) // The DNS record type. Type() *string SetType(val *string) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // *Weighted resource record sets only:* Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. Weight() *float64 SetWeight(val *float64) // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
Information about the record that you want to create.
The `AWS::Route53::RecordSet` type can be used as a standalone resource or as an embedded property in the `AWS::Route53::RecordSetGroup` type. Note that some `AWS::Route53::RecordSet` properties are valid only when used within `AWS::Route53::RecordSetGroup` .
For more information, see [ChangeResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html) in the *Amazon Route 53 API Reference* .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnRecordSet := awscdk.Aws_route53.NewCfnRecordSet(this, jsii.String("MyCfnRecordSet"), &CfnRecordSetProps{ Name: jsii.String("name"), Type: jsii.String("type"), // the properties below are optional AliasTarget: &AliasTargetProperty{ DnsName: jsii.String("dnsName"), HostedZoneId: jsii.String("hostedZoneId"), // the properties below are optional EvaluateTargetHealth: jsii.Boolean(false), }, CidrRoutingConfig: &CidrRoutingConfigProperty{ CollectionId: jsii.String("collectionId"), LocationName: jsii.String("locationName"), }, Comment: jsii.String("comment"), Failover: jsii.String("failover"), GeoLocation: &GeoLocationProperty{ ContinentCode: jsii.String("continentCode"), CountryCode: jsii.String("countryCode"), SubdivisionCode: jsii.String("subdivisionCode"), }, GeoProximityLocation: &GeoProximityLocationProperty{ AwsRegion: jsii.String("awsRegion"), Bias: jsii.Number(123), Coordinates: &CoordinatesProperty{ Latitude: jsii.String("latitude"), Longitude: jsii.String("longitude"), }, LocalZoneGroup: jsii.String("localZoneGroup"), }, HealthCheckId: jsii.String("healthCheckId"), HostedZoneId: jsii.String("hostedZoneId"), HostedZoneName: jsii.String("hostedZoneName"), MultiValueAnswer: jsii.Boolean(false), Region: jsii.String("region"), ResourceRecords: []*string{ jsii.String("resourceRecords"), }, SetIdentifier: jsii.String("setIdentifier"), Ttl: jsii.String("ttl"), Weight: jsii.Number(123), })
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html
func NewCfnRecordSet ¶
func NewCfnRecordSet(scope constructs.Construct, id *string, props *CfnRecordSetProps) CfnRecordSet
type CfnRecordSetGroup ¶
type CfnRecordSetGroup interface { awscdk.CfnResource awscdk.IInspectable // Specifies a coordinate of the east–west position of a geographic point on the surface of the Earth. AttrId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // *Optional:* Any comments you want to include about a change batch request. Comment() *string SetComment(val *string) // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The ID of the hosted zone that you want to create records in. HostedZoneId() *string SetHostedZoneId(val *string) // The name of the hosted zone that you want to create records in. HostedZoneName() *string SetHostedZoneName(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // A complex type that contains one `RecordSet` element for each record that you want to create. RecordSets() interface{} SetRecordSets(val interface{}) // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
A complex type that contains an optional comment, the name and ID of the hosted zone that you want to make changes in, and values for the records that you want to create.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnRecordSetGroup := awscdk.Aws_route53.NewCfnRecordSetGroup(this, jsii.String("MyCfnRecordSetGroup"), &CfnRecordSetGroupProps{ Comment: jsii.String("comment"), HostedZoneId: jsii.String("hostedZoneId"), HostedZoneName: jsii.String("hostedZoneName"), RecordSets: []interface{}{ &RecordSetProperty{ Name: jsii.String("name"), Type: jsii.String("type"), // the properties below are optional AliasTarget: &AliasTargetProperty{ DnsName: jsii.String("dnsName"), HostedZoneId: jsii.String("hostedZoneId"), // the properties below are optional EvaluateTargetHealth: jsii.Boolean(false), }, CidrRoutingConfig: &CidrRoutingConfigProperty{ CollectionId: jsii.String("collectionId"), LocationName: jsii.String("locationName"), }, Failover: jsii.String("failover"), GeoLocation: &GeoLocationProperty{ ContinentCode: jsii.String("continentCode"), CountryCode: jsii.String("countryCode"), SubdivisionCode: jsii.String("subdivisionCode"), }, GeoProximityLocation: &GeoProximityLocationProperty{ AwsRegion: jsii.String("awsRegion"), Bias: jsii.Number(123), Coordinates: &CoordinatesProperty{ Latitude: jsii.String("latitude"), Longitude: jsii.String("longitude"), }, LocalZoneGroup: jsii.String("localZoneGroup"), }, HealthCheckId: jsii.String("healthCheckId"), HostedZoneId: jsii.String("hostedZoneId"), HostedZoneName: jsii.String("hostedZoneName"), MultiValueAnswer: jsii.Boolean(false), Region: jsii.String("region"), ResourceRecords: []*string{ jsii.String("resourceRecords"), }, SetIdentifier: jsii.String("setIdentifier"), Ttl: jsii.String("ttl"), Weight: jsii.Number(123), }, }, })
func NewCfnRecordSetGroup ¶
func NewCfnRecordSetGroup(scope constructs.Construct, id *string, props *CfnRecordSetGroupProps) CfnRecordSetGroup
type CfnRecordSetGroupProps ¶
type CfnRecordSetGroupProps struct { // *Optional:* Any comments you want to include about a change batch request. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html#cfn-route53-recordsetgroup-comment // Comment *string `field:"optional" json:"comment" yaml:"comment"` // The ID of the hosted zone that you want to create records in. // // Specify either `HostedZoneName` or `HostedZoneId` , but not both. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html#cfn-route53-recordsetgroup-hostedzoneid // HostedZoneId *string `field:"optional" json:"hostedZoneId" yaml:"hostedZoneId"` // The name of the hosted zone that you want to create records in. // // You must include a trailing dot (for example, `www.example.com.` ) as part of the `HostedZoneName` . // // When you create a stack using an `AWS::Route53::RecordSet` that specifies `HostedZoneName` , AWS CloudFormation attempts to find a hosted zone whose name matches the `HostedZoneName` . If AWS CloudFormation can't find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack. // // Specify either `HostedZoneName` or `HostedZoneId` , but not both. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html#cfn-route53-recordsetgroup-hostedzonename // HostedZoneName *string `field:"optional" json:"hostedZoneName" yaml:"hostedZoneName"` // A complex type that contains one `RecordSet` element for each record that you want to create. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordsetgroup.html#cfn-route53-recordsetgroup-recordsets // RecordSets interface{} `field:"optional" json:"recordSets" yaml:"recordSets"` }
Properties for defining a `CfnRecordSetGroup`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnRecordSetGroupProps := &CfnRecordSetGroupProps{ Comment: jsii.String("comment"), HostedZoneId: jsii.String("hostedZoneId"), HostedZoneName: jsii.String("hostedZoneName"), RecordSets: []interface{}{ &RecordSetProperty{ Name: jsii.String("name"), Type: jsii.String("type"), // the properties below are optional AliasTarget: &AliasTargetProperty{ DnsName: jsii.String("dnsName"), HostedZoneId: jsii.String("hostedZoneId"), // the properties below are optional EvaluateTargetHealth: jsii.Boolean(false), }, CidrRoutingConfig: &CidrRoutingConfigProperty{ CollectionId: jsii.String("collectionId"), LocationName: jsii.String("locationName"), }, Failover: jsii.String("failover"), GeoLocation: &GeoLocationProperty{ ContinentCode: jsii.String("continentCode"), CountryCode: jsii.String("countryCode"), SubdivisionCode: jsii.String("subdivisionCode"), }, GeoProximityLocation: &GeoProximityLocationProperty{ AwsRegion: jsii.String("awsRegion"), Bias: jsii.Number(123), Coordinates: &CoordinatesProperty{ Latitude: jsii.String("latitude"), Longitude: jsii.String("longitude"), }, LocalZoneGroup: jsii.String("localZoneGroup"), }, HealthCheckId: jsii.String("healthCheckId"), HostedZoneId: jsii.String("hostedZoneId"), HostedZoneName: jsii.String("hostedZoneName"), MultiValueAnswer: jsii.Boolean(false), Region: jsii.String("region"), ResourceRecords: []*string{ jsii.String("resourceRecords"), }, SetIdentifier: jsii.String("setIdentifier"), Ttl: jsii.String("ttl"), Weight: jsii.Number(123), }, }, }
type CfnRecordSetGroup_AliasTargetProperty ¶
type CfnRecordSetGroup_AliasTargetProperty struct { // *Alias records only:* The value that you specify depends on where you want to route queries:. // // - **Amazon API Gateway custom regional APIs and edge-optimized APIs** - Specify the applicable domain name for your API. You can get the applicable value using the AWS CLI command [get-domain-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html) : // // - For regional APIs, specify the value of `regionalDomainName` . // - For edge-optimized APIs, specify the value of `distributionDomainName` . This is the name of the associated CloudFront distribution, such as `da1b2c3d4e5.cloudfront.net` . // // > The name of the record that you're creating must match a custom domain name for your API, such as `api.example.com` . // - **Amazon Virtual Private Cloud interface VPC endpoint** - Enter the API endpoint for the interface endpoint, such as `vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com` . For edge-optimized APIs, this is the domain name for the corresponding CloudFront distribution. You can get the value of `DnsName` using the AWS CLI command [describe-vpc-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html) . // - **CloudFront distribution** - Specify the domain name that CloudFront assigned when you created your distribution. // // Your CloudFront distribution must include an alternate domain name that matches the name of the record. For example, if the name of the record is *acme.example.com* , your CloudFront distribution must include *acme.example.com* as one of the alternate domain names. For more information, see [Using Alternate Domain Names (CNAMEs)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html) in the *Amazon CloudFront Developer Guide* . // // You can't create a record in a private hosted zone to route traffic to a CloudFront distribution. // // > For failover alias records, you can't specify a CloudFront distribution for both the primary and secondary records. A distribution must include an alternate domain name that matches the name of the record. However, the primary and secondary records have the same name, and you can't include the same alternate domain name in more than one distribution. // - **Elastic Beanstalk environment** - If the domain name for your Elastic Beanstalk environment includes the region that you deployed the environment in, you can create an alias record that routes traffic to the environment. For example, the domain name `my-environment. *us-west-2* .elasticbeanstalk.com` is a regionalized domain name. // // > For environments that were created before early 2016, the domain name doesn't include the region. To route traffic to these environments, you must create a CNAME record instead of an alias record. Note that you can't create a CNAME record for the root domain name. For example, if your domain name is example.com, you can create a record that routes traffic for acme.example.com to your Elastic Beanstalk environment, but you can't create a record that routes traffic for example.com to your Elastic Beanstalk environment. // // For Elastic Beanstalk environments that have regionalized subdomains, specify the `CNAME` attribute for the environment. You can use the following methods to get the value of the CNAME attribute: // // - *AWS Management Console* : For information about how to get the value by using the console, see [Using Custom Domains with AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html) in the *AWS Elastic Beanstalk Developer Guide* . // - *Elastic Beanstalk API* : Use the `DescribeEnvironments` action to get the value of the `CNAME` attribute. For more information, see [DescribeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html) in the *AWS Elastic Beanstalk API Reference* . // - *AWS CLI* : Use the `describe-environments` command to get the value of the `CNAME` attribute. For more information, see [describe-environments](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html) in the *AWS CLI* . // - **ELB load balancer** - Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management Console , the ELB API, or the AWS CLI . // // - *AWS Management Console* : Go to the EC2 page, choose *Load Balancers* in the navigation pane, choose the load balancer, choose the *Description* tab, and get the value of the *DNS name* field. // // If you're routing traffic to a Classic Load Balancer, get the value that begins with *dualstack* . If you're routing traffic to another type of load balancer, get the value that applies to the record type, A or AAAA. // - *Elastic Load Balancing API* : Use `DescribeLoadBalancers` to get the value of `DNSName` . For more information, see the applicable guide: // // - Classic Load Balancers: [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) // - Application and Network Load Balancers: [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) // - *CloudFormation Fn::GetAtt intrinsic function* : Use the [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) intrinsic function to get the value of `DNSName` : // // - [Classic Load Balancers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#aws-properties-ec2-elb-return-values) . // - [Application and Network Load Balancers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#aws-resource-elasticloadbalancingv2-loadbalancer-return-values) . // - *AWS CLI* : Use `describe-load-balancers` to get the value of `DNSName` . For more information, see the applicable guide: // // - Classic Load Balancers: [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) // - Application and Network Load Balancers: [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) // - **Global Accelerator accelerator** - Specify the DNS name for your accelerator: // // - *Global Accelerator API* : To get the DNS name, use [DescribeAccelerator](https://docs.aws.amazon.com/global-accelerator/latest/api/API_DescribeAccelerator.html) . // - *AWS CLI* : To get the DNS name, use [describe-accelerator](https://docs.aws.amazon.com/cli/latest/reference/globalaccelerator/describe-accelerator.html) . // - **Amazon S3 bucket that is configured as a static website** - Specify the domain name of the Amazon S3 website endpoint that you created the bucket in, for example, `s3-website.us-east-2.amazonaws.com` . For more information about valid values, see the table [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints) in the *Amazon Web Services General Reference* . For more information about using S3 buckets for websites, see [Getting Started with Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html) in the *Amazon Route 53 Developer Guide.* // - **Another Route 53 record** - Specify the value of the `Name` element for a record in the current hosted zone. // // > If you're creating an alias record that has the same name as the hosted zone (known as the zone apex), you can't specify the domain name for a record for which the value of `Type` is `CNAME` . This is because the alias record must have the same type as the record that you're routing traffic to, and creating a CNAME record for the zone apex isn't supported even for an alias record. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-aliastarget.html#cfn-route53-recordsetgroup-aliastarget-dnsname // DnsName *string `field:"required" json:"dnsName" yaml:"dnsName"` // *Alias resource records sets only* : The value used depends on where you want to route traffic:. // // - **Amazon API Gateway custom regional APIs and edge-optimized APIs** - Specify the hosted zone ID for your API. You can get the applicable value using the AWS CLI command [get-domain-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html) : // // - For regional APIs, specify the value of `regionalHostedZoneId` . // - For edge-optimized APIs, specify the value of `distributionHostedZoneId` . // - **Amazon Virtual Private Cloud interface VPC endpoint** - Specify the hosted zone ID for your interface endpoint. You can get the value of `HostedZoneId` using the AWS CLI command [describe-vpc-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html) . // - **CloudFront distribution** - Specify `Z2FDTNDATAQYW2` . This is always the hosted zone ID when you create an alias record that routes traffic to a CloudFront distribution. // // > Alias records for CloudFront can't be created in a private zone. // - **Elastic Beanstalk environment** - Specify the hosted zone ID for the region that you created the environment in. The environment must have a regionalized subdomain. For a list of regions and the corresponding hosted zone IDs, see [AWS Elastic Beanstalk endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html) in the *Amazon Web Services General Reference* . // - **ELB load balancer** - Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone ID: // // - [Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/elb.html) table in the "Elastic Load Balancing endpoints and quotas" topic in the *Amazon Web Services General Reference* : Use the value that corresponds with the region that you created your load balancer in. Note that there are separate columns for Application and Classic Load Balancers and for Network Load Balancers. // - *AWS Management Console* : Go to the Amazon EC2 page, choose *Load Balancers* in the navigation pane, select the load balancer, and get the value of the *Hosted zone* field on the *Description* tab. // - *Elastic Load Balancing API* : Use `DescribeLoadBalancers` to get the applicable value. For more information, see the applicable guide: // // - Classic Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneNameID` . // - Application and Network Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneID` . // - *CloudFormation Fn::GetAtt intrinsic function* : Use the [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) intrinsic function to get the applicable value: // // - Classic Load Balancers: Get [CanonicalHostedZoneNameID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#aws-properties-ec2-elb-return-values) . // - Application and Network Load Balancers: Get [CanonicalHostedZoneID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#aws-resource-elasticloadbalancingv2-loadbalancer-return-values) . // - *AWS CLI* : Use `describe-load-balancers` to get the applicable value. For more information, see the applicable guide: // // - Classic Load Balancers: Use [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) to get the value of `CanonicalHostedZoneNameID` . // - Application and Network Load Balancers: Use [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) to get the value of `CanonicalHostedZoneID` . // - **Global Accelerator accelerator** - Specify `Z2BJ6XQ5FK7U4H` . // - **An Amazon S3 bucket configured as a static website** - Specify the hosted zone ID for the region that you created the bucket in. For more information about valid values, see the table [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints) in the *Amazon Web Services General Reference* . // - **Another Route 53 record in your hosted zone** - Specify the hosted zone ID of your hosted zone. (An alias record can't reference a record in a different hosted zone.) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-aliastarget.html#cfn-route53-recordsetgroup-aliastarget-hostedzoneid // HostedZoneId *string `field:"required" json:"hostedZoneId" yaml:"hostedZoneId"` // *Applies only to alias records with any routing policy:* When `EvaluateTargetHealth` is `true` , an alias record inherits the health of the referenced AWS resource, such as an ELB load balancer or another record in the hosted zone. // // Note the following: // // - **CloudFront distributions** - You can't set `EvaluateTargetHealth` to `true` when the alias target is a CloudFront distribution. // - **Elastic Beanstalk environments that have regionalized subdomains** - If you specify an Elastic Beanstalk environment in `DNSName` and the environment contains an ELB load balancer, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. (An environment automatically contains an ELB load balancer if it includes more than one Amazon EC2 instance.) If you set `EvaluateTargetHealth` to `true` and either no Amazon EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other available resources that are healthy, if any. // // If the environment contains a single Amazon EC2 instance, there are no special requirements. // - **ELB load balancers** - Health checking behavior depends on the type of load balancer: // // - *Classic Load Balancers* : If you specify an ELB Classic Load Balancer in `DNSName` , Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. If you set `EvaluateTargetHealth` to `true` and either no EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other resources. // - *Application and Network Load Balancers* : If you specify an ELB Application or Network Load Balancer and you set `EvaluateTargetHealth` to `true` , Route 53 routes queries to the load balancer based on the health of the target groups that are associated with the load balancer: // // - For an Application or Network Load Balancer to be considered healthy, every target group that contains targets must contain at least one healthy target. If any target group contains only unhealthy targets, the load balancer is considered unhealthy, and Route 53 routes queries to other resources. // - A target group that has no registered targets is considered unhealthy. // // > When you create a load balancer, you configure settings for Elastic Load Balancing health checks; they're not Route 53 health checks, but they perform a similar function. Do not create Route 53 health checks for the EC2 instances that you register with an ELB load balancer. // - **S3 buckets** - There are no special requirements for setting `EvaluateTargetHealth` to `true` when the alias target is an S3 bucket. // - **Other records in the same hosted zone** - If the AWS resource that you specify in `DNSName` is a record or a group of records (for example, a group of weighted records) but is not another alias record, we recommend that you associate a health check with all of the records in the alias target. For more information, see [What Happens When You Omit Health Checks?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting) in the *Amazon Route 53 Developer Guide* . // // For more information and examples, see [Amazon Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) in the *Amazon Route 53 Developer Guide* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-aliastarget.html#cfn-route53-recordsetgroup-aliastarget-evaluatetargethealth // EvaluateTargetHealth interface{} `field:"optional" json:"evaluateTargetHealth" yaml:"evaluateTargetHealth"` }
*Alias records only:* Information about the AWS resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to.
When creating records for a private hosted zone, note the following:
- Creating geolocation alias and latency alias records in a private hosted zone is allowed but not supported. - For information about creating failover records in a private hosted zone, see [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" aliasTargetProperty := &AliasTargetProperty{ DnsName: jsii.String("dnsName"), HostedZoneId: jsii.String("hostedZoneId"), // the properties below are optional EvaluateTargetHealth: jsii.Boolean(false), }
type CfnRecordSetGroup_CidrRoutingConfigProperty ¶ added in v2.31.0
type CfnRecordSetGroup_CidrRoutingConfigProperty struct { // The CIDR collection ID. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-cidrroutingconfig.html#cfn-route53-recordsetgroup-cidrroutingconfig-collectionid // CollectionId *string `field:"required" json:"collectionId" yaml:"collectionId"` // The CIDR collection location name. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-cidrroutingconfig.html#cfn-route53-recordsetgroup-cidrroutingconfig-locationname // LocationName *string `field:"required" json:"locationName" yaml:"locationName"` }
The object that is specified in resource record set object when you are linking a resource record set to a CIDR location.
A `LocationName` with an asterisk “*” can be used to create a default CIDR record. `CollectionId` is still required for default record.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cidrRoutingConfigProperty := &CidrRoutingConfigProperty{ CollectionId: jsii.String("collectionId"), LocationName: jsii.String("locationName"), }
type CfnRecordSetGroup_CoordinatesProperty ¶ added in v2.129.0
type CfnRecordSetGroup_CoordinatesProperty struct { // Specifies a coordinate of the north–south position of a geographic point on the surface of the Earth (-90 - 90). // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-coordinates.html#cfn-route53-recordsetgroup-coordinates-latitude // Latitude *string `field:"required" json:"latitude" yaml:"latitude"` // Specifies a coordinate of the east–west position of a geographic point on the surface of the Earth (-180 - 180). // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-coordinates.html#cfn-route53-recordsetgroup-coordinates-longitude // Longitude *string `field:"required" json:"longitude" yaml:"longitude"` }
A complex type that lists the coordinates for a geoproximity resource record.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" coordinatesProperty := &CoordinatesProperty{ Latitude: jsii.String("latitude"), Longitude: jsii.String("longitude"), }
type CfnRecordSetGroup_GeoLocationProperty ¶
type CfnRecordSetGroup_GeoLocationProperty struct { // For geolocation resource record sets, a two-letter abbreviation that identifies a continent. Route 53 supports the following continent codes:. // // - *AF* : Africa // - *AN* : Antarctica // - *AS* : Asia // - *EU* : Europe // - *OC* : Oceania // - *NA* : North America // - *SA* : South America // // Constraint: Specifying `ContinentCode` with either `CountryCode` or `SubdivisionCode` returns an `InvalidInput` error. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-geolocation.html#cfn-route53-recordsetgroup-geolocation-continentcode // ContinentCode *string `field:"optional" json:"continentCode" yaml:"continentCode"` // For geolocation resource record sets, the two-letter code for a country. // // Route 53 uses the two-letter country codes that are specified in [ISO standard 3166-1 alpha-2](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-geolocation.html#cfn-route53-recordsetgroup-geolocation-countrycode // CountryCode *string `field:"optional" json:"countryCode" yaml:"countryCode"` // For geolocation resource record sets, the two-letter code for a state of the United States. // // Route 53 doesn't support any other values for `SubdivisionCode` . For a list of state abbreviations, see [Appendix B: Two–Letter State and Possession Abbreviations](https://docs.aws.amazon.com/https://pe.usps.com/text/pub28/28apb.htm) on the United States Postal Service website. // // If you specify `subdivisioncode` , you must also specify `US` for `CountryCode` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-geolocation.html#cfn-route53-recordsetgroup-geolocation-subdivisioncode // SubdivisionCode *string `field:"optional" json:"subdivisionCode" yaml:"subdivisionCode"` }
A complex type that contains information about a geographic location.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" geoLocationProperty := &GeoLocationProperty{ ContinentCode: jsii.String("continentCode"), CountryCode: jsii.String("countryCode"), SubdivisionCode: jsii.String("subdivisionCode"), }
type CfnRecordSetGroup_GeoProximityLocationProperty ¶ added in v2.129.0
type CfnRecordSetGroup_GeoProximityLocationProperty struct { // The AWS Region the resource you are directing DNS traffic to, is in. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-geoproximitylocation.html#cfn-route53-recordsetgroup-geoproximitylocation-awsregion // AwsRegion *string `field:"optional" json:"awsRegion" yaml:"awsRegion"` // The bias increases or decreases the size of the geographic region from which Route 53 routes traffic to a resource. // // To use `Bias` to change the size of the geographic region, specify the applicable value for the bias: // // - To expand the size of the geographic region from which Route 53 routes traffic to a resource, specify a positive integer from 1 to 99 for the bias. Route 53 shrinks the size of adjacent regions. // - To shrink the size of the geographic region from which Route 53 routes traffic to a resource, specify a negative bias of -1 to -99. Route 53 expands the size of adjacent regions. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-geoproximitylocation.html#cfn-route53-recordsetgroup-geoproximitylocation-bias // Bias *float64 `field:"optional" json:"bias" yaml:"bias"` // Contains the longitude and latitude for a geographic region. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-geoproximitylocation.html#cfn-route53-recordsetgroup-geoproximitylocation-coordinates // Coordinates interface{} `field:"optional" json:"coordinates" yaml:"coordinates"` // Specifies an AWS Local Zone Group. // // A local Zone Group is usually the Local Zone code without the ending character. For example, if the Local Zone is `us-east-1-bue-1a` the Local Zone Group is `us-east-1-bue-1` . // // You can identify the Local Zones Group for a specific Local Zone by using the [describe-availability-zones](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-availability-zones.html) CLI command: // // This command returns: `"GroupName": "us-west-2-den-1"` , specifying that the Local Zone `us-west-2-den-1a` belongs to the Local Zone Group `us-west-2-den-1` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-geoproximitylocation.html#cfn-route53-recordsetgroup-geoproximitylocation-localzonegroup // LocalZoneGroup *string `field:"optional" json:"localZoneGroup" yaml:"localZoneGroup"` }
(Resource record sets only): A complex type that lets you specify where your resources are located.
Only one of `LocalZoneGroup` , `Coordinates` , or `AWS Region` is allowed per request at a time.
For more information about geoproximity routing, see [Geoproximity routing](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-geoproximity.html) in the *Amazon Route 53 Developer Guide* .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" geoProximityLocationProperty := &GeoProximityLocationProperty{ AwsRegion: jsii.String("awsRegion"), Bias: jsii.Number(123), Coordinates: &CoordinatesProperty{ Latitude: jsii.String("latitude"), Longitude: jsii.String("longitude"), }, LocalZoneGroup: jsii.String("localZoneGroup"), }
type CfnRecordSetGroup_RecordSetProperty ¶
type CfnRecordSetGroup_RecordSetProperty struct { // For `ChangeResourceRecordSets` requests, the name of the record that you want to create, update, or delete. // // For `ListResourceRecordSets` responses, the name of a record in the specified hosted zone. // // *ChangeResourceRecordSets Only* // // Enter a fully qualified domain name, for example, `www.example.com` . You can optionally include a trailing dot. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified. This means that Route 53 treats `www.example.com` (without a trailing dot) and `www.example.com.` (with a trailing dot) as identical. // // For information about how to specify characters other than `a-z` , `0-9` , and `-` (hyphen) and how to specify internationalized domain names, see [DNS Domain Name Format](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html) in the *Amazon Route 53 Developer Guide* . // // You can use the asterisk (*) wildcard to replace the leftmost label in a domain name, for example, `*.example.com` . Note the following: // // - The * must replace the entire label. For example, you can't specify `*prod.example.com` or `prod*.example.com` . // - The * can't replace any of the middle labels, for example, marketing.*.example.com. // - If you include * in any position other than the leftmost label in a domain name, DNS treats it as an * character (ASCII 42), not as a wildcard. // // > You can't use the * wildcard for resource records sets that have a type of NS. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-name // Name *string `field:"required" json:"name" yaml:"name"` // The DNS record type. // // For information about different record types and how data is encoded for them, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide* . // // Valid values for basic resource record sets: `A` | `AAAA` | `CAA` | `CNAME` | `DS` | `MX` | `NAPTR` | `NS` | `PTR` | `SOA` | `SPF` | `SRV` | `TXT` // // Values for weighted, latency, geolocation, and failover resource record sets: `A` | `AAAA` | `CAA` | `CNAME` | `MX` | `NAPTR` | `PTR` | `SPF` | `SRV` | `TXT` . When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group. // // Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | `PTR` | `SPF` | `SRV` | `TXT` | `CAA` // // > SPF records were formerly used to verify the identity of the sender of email messages. However, we no longer recommend that you create resource record sets for which the value of `Type` is `SPF` . RFC 7208, *Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1* , has been updated to say, "...[I]ts existence and mechanism defined in [RFC4408] have led to some interoperability issues. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it." In RFC 7208, see section 14.1, [The SPF DNS Record Type](https://docs.aws.amazon.com/http://tools.ietf.org/html/rfc7208#section-14.1) . // // Values for alias resource record sets: // // - *Amazon API Gateway custom regional APIs and edge-optimized APIs:* `A` // - *CloudFront distributions:* `A` // // If IPv6 is enabled for the distribution, create two resource record sets to route traffic to your distribution, one with a value of `A` and one with a value of `AAAA` . // - *Amazon API Gateway environment that has a regionalized subdomain* : `A` // - *ELB load balancers:* `A` | `AAAA` // - *Amazon S3 buckets:* `A` // - *Amazon Virtual Private Cloud interface VPC endpoints* `A` // - *Another resource record set in this hosted zone:* Specify the type of the resource record set that you're creating the alias for. All values are supported except `NS` and `SOA` . // // > If you're creating an alias record that has the same name as the hosted zone (known as the zone apex), you can't route traffic to a record for which the value of `Type` is `CNAME` . This is because the alias record must have the same type as the record you're routing traffic to, and creating a CNAME record for the zone apex isn't supported even for an alias record. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-type // Type *string `field:"required" json:"type" yaml:"type"` // *Alias resource record sets only:* Information about the AWS resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to. // // If you're creating resource records sets for a private hosted zone, note the following: // // - You can't create an alias resource record set in a private hosted zone to route traffic to a CloudFront distribution. // - For information about creating failover resource record sets in a private hosted zone, see [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) in the *Amazon Route 53 Developer Guide* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-aliastarget // AliasTarget interface{} `field:"optional" json:"aliasTarget" yaml:"aliasTarget"` // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-cidrroutingconfig // CidrRoutingConfig interface{} `field:"optional" json:"cidrRoutingConfig" yaml:"cidrRoutingConfig"` // *Failover resource record sets only:* To configure failover, you add the `Failover` element to two resource record sets. // // For one resource record set, you specify `PRIMARY` as the value for `Failover` ; for the other resource record set, you specify `SECONDARY` . In addition, you include the `HealthCheckId` element and specify the health check that you want Amazon Route 53 to perform for each resource record set. // // Except where noted, the following failover behaviors assume that you have included the `HealthCheckId` element in both resource record sets: // // - When the primary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the secondary resource record set. // - When the primary resource record set is unhealthy and the secondary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the secondary resource record set. // - When the secondary resource record set is unhealthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the primary resource record set. // - If you omit the `HealthCheckId` element for the secondary resource record set, and if the primary resource record set is unhealthy, Route 53 always responds to DNS queries with the applicable value from the secondary resource record set. This is true regardless of the health of the associated endpoint. // // You can't create non-failover resource record sets that have the same values for the `Name` and `Type` elements as failover resource record sets. // // For failover alias resource record sets, you must also include the `EvaluateTargetHealth` element and set the value to true. // // For more information about configuring failover for Route 53, see the following topics in the *Amazon Route 53 Developer Guide* : // // - [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) // - [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-failover // Failover *string `field:"optional" json:"failover" yaml:"failover"` // *Geolocation resource record sets only:* A complex type that lets you control how Amazon Route 53 responds to DNS queries based on the geographic origin of the query. // // For example, if you want all queries from Africa to be routed to a web server with an IP address of `192.0.2.111` , create a resource record set with a `Type` of `A` and a `ContinentCode` of `AF` . // // If you create separate resource record sets for overlapping geographic regions (for example, one resource record set for a continent and one for a country on the same continent), priority goes to the smallest geographic region. This allows you to route most queries for a continent to one resource and to route queries for a country on that continent to a different resource. // // You can't create two geolocation resource record sets that specify the same geographic location. // // The value `*` in the `CountryCode` element matches all geographic locations that aren't specified in other geolocation resource record sets that have the same values for the `Name` and `Type` elements. // // > Geolocation works by mapping IP addresses to locations. However, some IP addresses aren't mapped to geographic locations, so even if you create geolocation resource record sets that cover all seven continents, Route 53 will receive some DNS queries from locations that it can't identify. We recommend that you create a resource record set for which the value of `CountryCode` is `*` . Two groups of queries are routed to the resource that you specify in this record: queries that come from locations for which you haven't created geolocation resource record sets and queries from IP addresses that aren't mapped to a location. If you don't create a `*` resource record set, Route 53 returns a "no answer" response for queries from those locations. // // You can't create non-geolocation resource record sets that have the same values for the `Name` and `Type` elements as geolocation resource record sets. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-geolocation // GeoLocation interface{} `field:"optional" json:"geoLocation" yaml:"geoLocation"` // A complex type that contains information about a geographic location. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-geoproximitylocation // GeoProximityLocation interface{} `field:"optional" json:"geoProximityLocation" yaml:"geoProximityLocation"` // If you want Amazon Route 53 to return this resource record set in response to a DNS query only when the status of a health check is healthy, include the `HealthCheckId` element and specify the ID of the applicable health check. // // Route 53 determines whether a resource record set is healthy based on one of the following: // // - By periodically sending a request to the endpoint that is specified in the health check // - By aggregating the status of a specified group of health checks (calculated health checks) // - By determining the current state of a CloudWatch alarm (CloudWatch metric health checks) // // > Route 53 doesn't check the health of the endpoint that is specified in the resource record set, for example, the endpoint specified by the IP address in the `Value` element. When you add a `HealthCheckId` element to a resource record set, Route 53 checks the health of the endpoint that you specified in the health check. // // For more information, see the following topics in the *Amazon Route 53 Developer Guide* : // // - [How Amazon Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) // - [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) // - [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) // // *When to Specify HealthCheckId* // // Specifying a value for `HealthCheckId` is useful only when Route 53 is choosing between two or more resource record sets to respond to a DNS query, and you want Route 53 to base the choice in part on the status of a health check. Configuring health checks makes sense only in the following configurations: // // - *Non-alias resource record sets* : You're checking the health of a group of non-alias resource record sets that have the same routing policy, name, and type (such as multiple weighted records named www.example.com with a type of A) and you specify health check IDs for all the resource record sets. // // If the health check status for a resource record set is healthy, Route 53 includes the record among the records that it responds to DNS queries with. // // If the health check status for a resource record set is unhealthy, Route 53 stops responding to DNS queries using the value for that resource record set. // // If the health check status for all resource record sets in the group is unhealthy, Route 53 considers all resource record sets in the group healthy and responds to DNS queries accordingly. // - *Alias resource record sets* : You specify the following settings: // // - You set `EvaluateTargetHealth` to true for an alias resource record set in a group of resource record sets that have the same routing policy, name, and type (such as multiple weighted records named www.example.com with a type of A). // - You configure the alias resource record set to route traffic to a non-alias resource record set in the same hosted zone. // - You specify a health check ID for the non-alias resource record set. // // If the health check status is healthy, Route 53 considers the alias resource record set to be healthy and includes the alias record among the records that it responds to DNS queries with. // // If the health check status is unhealthy, Route 53 stops responding to DNS queries using the alias resource record set. // // > The alias resource record set can also route traffic to a *group* of non-alias resource record sets that have the same routing policy, name, and type. In that configuration, associate health checks with all of the resource record sets in the group of non-alias resource record sets. // // *Geolocation Routing* // // For geolocation resource record sets, if an endpoint is unhealthy, Route 53 looks for a resource record set for the larger, associated geographic region. For example, suppose you have resource record sets for a state in the United States, for the entire United States, for North America, and a resource record set that has `*` for `CountryCode` is `*` , which applies to all locations. If the endpoint for the state resource record set is unhealthy, Route 53 checks for healthy resource record sets in the following order until it finds a resource record set for which the endpoint is healthy: // // - The United States // - North America // - The default resource record set // // *Specifying the Health Check Endpoint by Domain Name* // // If your health checks specify the endpoint only by domain name, we recommend that you create a separate health check for each endpoint. For example, create a health check for each `HTTP` server that is serving content for `www.example.com` . For the value of `FullyQualifiedDomainName` , specify the domain name of the server (such as `us-east-2-www.example.com` ), not the name of the resource record sets ( `www.example.com` ). // // > Health check results will be unpredictable if you do the following: // > // > - Create a health check that has the same value for `FullyQualifiedDomainName` as the name of a resource record set. // > - Associate that health check with the resource record set. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-healthcheckid // HealthCheckId *string `field:"optional" json:"healthCheckId" yaml:"healthCheckId"` // The ID of the hosted zone that you want to create records in. // // Specify either `HostedZoneName` or `HostedZoneId` , but not both. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId` . // // Do not provide the `HostedZoneId` if it is already defined in `AWS::Route53::RecordSetGroup` . The creation fails if `HostedZoneId` is defined in both. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-hostedzoneid // HostedZoneId *string `field:"optional" json:"hostedZoneId" yaml:"hostedZoneId"` // The name of the hosted zone that you want to create records in. // // You must include a trailing dot (for example, `www.example.com.` ) as part of the `HostedZoneName` . // // When you create a stack using an `AWS::Route53::RecordSet` that specifies `HostedZoneName` , AWS CloudFormation attempts to find a hosted zone whose name matches the `HostedZoneName` . If AWS CloudFormation can't find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack. // // Specify either `HostedZoneName` or `HostedZoneId` , but not both. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-hostedzonename // HostedZoneName *string `field:"optional" json:"hostedZoneName" yaml:"hostedZoneName"` // *Multivalue answer resource record sets only* : To route traffic approximately randomly to multiple resources, such as web servers, create one multivalue answer record for each resource and specify `true` for `MultiValueAnswer` . // // Note the following: // // - If you associate a health check with a multivalue answer resource record set, Amazon Route 53 responds to DNS queries with the corresponding IP address only when the health check is healthy. // - If you don't associate a health check with a multivalue answer record, Route 53 always considers the record to be healthy. // - Route 53 responds to DNS queries with up to eight healthy records; if you have eight or fewer healthy records, Route 53 responds to all DNS queries with all the healthy records. // - If you have more than eight healthy records, Route 53 responds to different DNS resolvers with different combinations of healthy records. // - When all records are unhealthy, Route 53 responds to DNS queries with up to eight unhealthy records. // - If a resource becomes unavailable after a resolver caches a response, client software typically tries another of the IP addresses in the response. // // You can't create multivalue answer alias records. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-multivalueanswer // MultiValueAnswer interface{} `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // *Latency-based resource record sets only:* The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. Route 53 then returns the value that is associated with the selected resource record set. // // Note the following: // // - You can only specify one `ResourceRecord` per latency resource record set. // - You can only create one latency resource record set for each Amazon EC2 Region. // - You aren't required to create latency resource record sets for all Amazon EC2 Regions. Route 53 will choose the region with the best latency from among the regions that you create latency resource record sets for. // - You can't create non-latency resource record sets that have the same values for the `Name` and `Type` elements as latency resource record sets. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-region // Region *string `field:"optional" json:"region" yaml:"region"` // Information about the records that you want to create. // // Each record should be in the format appropriate for the record type specified by the `Type` property. For information about different record types and their record formats, see [Values That You Specify When You Create or Edit Amazon Route 53 Records](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values.html) in the *Amazon Route 53 Developer Guide* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-resourcerecords // ResourceRecords *[]*string `field:"optional" json:"resourceRecords" yaml:"resourceRecords"` // *Resource record sets that have a routing policy other than simple:* An identifier that differentiates among multiple resource record sets that have the same combination of name and type, such as multiple weighted resource record sets named acme.example.com that have a type of A. In a group of resource record sets that have the same name and type, the value of `SetIdentifier` must be unique for each resource record set. // // For information about routing policies, see [Choosing a Routing Policy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) in the *Amazon Route 53 Developer Guide* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-setidentifier // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL), in seconds. Note the following:. // // - If you're creating or updating an alias resource record set, omit `TTL` . Amazon Route 53 uses the value of `TTL` for the alias target. // - If you're associating this resource record set with a health check (if you're adding a `HealthCheckId` element), we recommend that you specify a `TTL` of 60 seconds or less so clients respond quickly to changes in health status. // - All of the resource record sets in a group of weighted resource record sets must have the same value for `TTL` . // - If a group of weighted resource record sets includes one or more weighted alias resource record sets for which the alias target is an ELB load balancer, we recommend that you specify a `TTL` of 60 seconds for all of the non-alias weighted resource record sets that have the same name and type. Values other than 60 seconds (the TTL for load balancers) will change the effect of the values that you specify for `Weight` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-ttl // Ttl *string `field:"optional" json:"ttl" yaml:"ttl"` // *Weighted resource record sets only:* Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. Route 53 then responds to queries based on the ratio of a resource's weight to the total. Note the following: // // - You must specify a value for the `Weight` element for every weighted resource record set. // - You can only specify one `ResourceRecord` per weighted resource record set. // - You can't create latency, failover, or geolocation resource record sets that have the same values for the `Name` and `Type` elements as weighted resource record sets. // - You can create a maximum of 100 weighted resource record sets that have the same values for the `Name` and `Type` elements. // - For weighted (but not weighted alias) resource record sets, if you set `Weight` to `0` for a resource record set, Route 53 never responds to queries with the applicable value for that resource record set. However, if you set `Weight` to `0` for all resource record sets that have the same combination of DNS name and type, traffic is routed to all resources with equal probability. // // The effect of setting `Weight` to `0` is different when you associate health checks with weighted resource record sets. For more information, see [Options for Configuring Route 53 Active-Active and Active-Passive Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring-options.html) in the *Amazon Route 53 Developer Guide* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordsetgroup-recordset.html#cfn-route53-recordsetgroup-recordset-weight // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` }
Information about one record that you want to create.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" recordSetProperty := &RecordSetProperty{ Name: jsii.String("name"), Type: jsii.String("type"), // the properties below are optional AliasTarget: &AliasTargetProperty{ DnsName: jsii.String("dnsName"), HostedZoneId: jsii.String("hostedZoneId"), // the properties below are optional EvaluateTargetHealth: jsii.Boolean(false), }, CidrRoutingConfig: &CidrRoutingConfigProperty{ CollectionId: jsii.String("collectionId"), LocationName: jsii.String("locationName"), }, Failover: jsii.String("failover"), GeoLocation: &GeoLocationProperty{ ContinentCode: jsii.String("continentCode"), CountryCode: jsii.String("countryCode"), SubdivisionCode: jsii.String("subdivisionCode"), }, GeoProximityLocation: &GeoProximityLocationProperty{ AwsRegion: jsii.String("awsRegion"), Bias: jsii.Number(123), Coordinates: &CoordinatesProperty{ Latitude: jsii.String("latitude"), Longitude: jsii.String("longitude"), }, LocalZoneGroup: jsii.String("localZoneGroup"), }, HealthCheckId: jsii.String("healthCheckId"), HostedZoneId: jsii.String("hostedZoneId"), HostedZoneName: jsii.String("hostedZoneName"), MultiValueAnswer: jsii.Boolean(false), Region: jsii.String("region"), ResourceRecords: []*string{ jsii.String("resourceRecords"), }, SetIdentifier: jsii.String("setIdentifier"), Ttl: jsii.String("ttl"), Weight: jsii.Number(123), }
type CfnRecordSetProps ¶
type CfnRecordSetProps struct { // For `ChangeResourceRecordSets` requests, the name of the record that you want to create, update, or delete. // // For `ListResourceRecordSets` responses, the name of a record in the specified hosted zone. // // *ChangeResourceRecordSets Only* // // Enter a fully qualified domain name, for example, `www.example.com` . You can optionally include a trailing dot. If you omit the trailing dot, Amazon Route 53 assumes that the domain name that you specify is fully qualified. This means that Route 53 treats `www.example.com` (without a trailing dot) and `www.example.com.` (with a trailing dot) as identical. // // For information about how to specify characters other than `a-z` , `0-9` , and `-` (hyphen) and how to specify internationalized domain names, see [DNS Domain Name Format](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html) in the *Amazon Route 53 Developer Guide* . // // You can use the asterisk (*) wildcard to replace the leftmost label in a domain name, for example, `*.example.com` . Note the following: // // - The * must replace the entire label. For example, you can't specify `*prod.example.com` or `prod*.example.com` . // - The * can't replace any of the middle labels, for example, marketing.*.example.com. // - If you include * in any position other than the leftmost label in a domain name, DNS treats it as an * character (ASCII 42), not as a wildcard. // // > You can't use the * wildcard for resource records sets that have a type of NS. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-name // Name *string `field:"required" json:"name" yaml:"name"` // The DNS record type. // // For information about different record types and how data is encoded for them, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide* . // // Valid values for basic resource record sets: `A` | `AAAA` | `CAA` | `CNAME` | `DS` | `MX` | `NAPTR` | `NS` | `PTR` | `SOA` | `SPF` | `SRV` | `TXT` // // Values for weighted, latency, geolocation, and failover resource record sets: `A` | `AAAA` | `CAA` | `CNAME` | `MX` | `NAPTR` | `PTR` | `SPF` | `SRV` | `TXT` . When creating a group of weighted, latency, geolocation, or failover resource record sets, specify the same value for all of the resource record sets in the group. // // Valid values for multivalue answer resource record sets: `A` | `AAAA` | `MX` | `NAPTR` | `PTR` | `SPF` | `SRV` | `TXT` | `CAA` // // > SPF records were formerly used to verify the identity of the sender of email messages. However, we no longer recommend that you create resource record sets for which the value of `Type` is `SPF` . RFC 7208, *Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1* , has been updated to say, "...[I]ts existence and mechanism defined in [RFC4408] have led to some interoperability issues. Accordingly, its use is no longer appropriate for SPF version 1; implementations are not to use it." In RFC 7208, see section 14.1, [The SPF DNS Record Type](https://docs.aws.amazon.com/http://tools.ietf.org/html/rfc7208#section-14.1) . // // Values for alias resource record sets: // // - *Amazon API Gateway custom regional APIs and edge-optimized APIs:* `A` // - *CloudFront distributions:* `A` // // If IPv6 is enabled for the distribution, create two resource record sets to route traffic to your distribution, one with a value of `A` and one with a value of `AAAA` . // - *Amazon API Gateway environment that has a regionalized subdomain* : `A` // - *ELB load balancers:* `A` | `AAAA` // - *Amazon S3 buckets:* `A` // - *Amazon Virtual Private Cloud interface VPC endpoints* `A` // - *Another resource record set in this hosted zone:* Specify the type of the resource record set that you're creating the alias for. All values are supported except `NS` and `SOA` . // // > If you're creating an alias record that has the same name as the hosted zone (known as the zone apex), you can't route traffic to a record for which the value of `Type` is `CNAME` . This is because the alias record must have the same type as the record you're routing traffic to, and creating a CNAME record for the zone apex isn't supported even for an alias record. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-type // Type *string `field:"required" json:"type" yaml:"type"` // *Alias resource record sets only:* Information about the AWS resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to. // // If you're creating resource records sets for a private hosted zone, note the following: // // - You can't create an alias resource record set in a private hosted zone to route traffic to a CloudFront distribution. // - For information about creating failover resource record sets in a private hosted zone, see [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) in the *Amazon Route 53 Developer Guide* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-aliastarget // AliasTarget interface{} `field:"optional" json:"aliasTarget" yaml:"aliasTarget"` // The object that is specified in resource record set object when you are linking a resource record set to a CIDR location. // // A `LocationName` with an asterisk “*” can be used to create a default CIDR record. `CollectionId` is still required for default record. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-cidrroutingconfig // CidrRoutingConfig interface{} `field:"optional" json:"cidrRoutingConfig" yaml:"cidrRoutingConfig"` // *Optional:* Any comments you want to include about a change batch request. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-comment // Comment *string `field:"optional" json:"comment" yaml:"comment"` // *Failover resource record sets only:* To configure failover, you add the `Failover` element to two resource record sets. // // For one resource record set, you specify `PRIMARY` as the value for `Failover` ; for the other resource record set, you specify `SECONDARY` . In addition, you include the `HealthCheckId` element and specify the health check that you want Amazon Route 53 to perform for each resource record set. // // Except where noted, the following failover behaviors assume that you have included the `HealthCheckId` element in both resource record sets: // // - When the primary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the secondary resource record set. // - When the primary resource record set is unhealthy and the secondary resource record set is healthy, Route 53 responds to DNS queries with the applicable value from the secondary resource record set. // - When the secondary resource record set is unhealthy, Route 53 responds to DNS queries with the applicable value from the primary resource record set regardless of the health of the primary resource record set. // - If you omit the `HealthCheckId` element for the secondary resource record set, and if the primary resource record set is unhealthy, Route 53 always responds to DNS queries with the applicable value from the secondary resource record set. This is true regardless of the health of the associated endpoint. // // You can't create non-failover resource record sets that have the same values for the `Name` and `Type` elements as failover resource record sets. // // For failover alias resource record sets, you must also include the `EvaluateTargetHealth` element and set the value to true. // // For more information about configuring failover for Route 53, see the following topics in the *Amazon Route 53 Developer Guide* : // // - [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) // - [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-failover // Failover *string `field:"optional" json:"failover" yaml:"failover"` // *Geolocation resource record sets only:* A complex type that lets you control how Amazon Route 53 responds to DNS queries based on the geographic origin of the query. // // For example, if you want all queries from Africa to be routed to a web server with an IP address of `192.0.2.111` , create a resource record set with a `Type` of `A` and a `ContinentCode` of `AF` . // // If you create separate resource record sets for overlapping geographic regions (for example, one resource record set for a continent and one for a country on the same continent), priority goes to the smallest geographic region. This allows you to route most queries for a continent to one resource and to route queries for a country on that continent to a different resource. // // You can't create two geolocation resource record sets that specify the same geographic location. // // The value `*` in the `CountryCode` element matches all geographic locations that aren't specified in other geolocation resource record sets that have the same values for the `Name` and `Type` elements. // // > Geolocation works by mapping IP addresses to locations. However, some IP addresses aren't mapped to geographic locations, so even if you create geolocation resource record sets that cover all seven continents, Route 53 will receive some DNS queries from locations that it can't identify. We recommend that you create a resource record set for which the value of `CountryCode` is `*` . Two groups of queries are routed to the resource that you specify in this record: queries that come from locations for which you haven't created geolocation resource record sets and queries from IP addresses that aren't mapped to a location. If you don't create a `*` resource record set, Route 53 returns a "no answer" response for queries from those locations. // // You can't create non-geolocation resource record sets that have the same values for the `Name` and `Type` elements as geolocation resource record sets. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-geolocation // GeoLocation interface{} `field:"optional" json:"geoLocation" yaml:"geoLocation"` // *GeoproximityLocation resource record sets only:* A complex type that lets you control how Route 53 responds to DNS queries based on the geographic origin of the query and your resources. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-geoproximitylocation // GeoProximityLocation interface{} `field:"optional" json:"geoProximityLocation" yaml:"geoProximityLocation"` // If you want Amazon Route 53 to return this resource record set in response to a DNS query only when the status of a health check is healthy, include the `HealthCheckId` element and specify the ID of the applicable health check. // // Route 53 determines whether a resource record set is healthy based on one of the following: // // - By periodically sending a request to the endpoint that is specified in the health check // - By aggregating the status of a specified group of health checks (calculated health checks) // - By determining the current state of a CloudWatch alarm (CloudWatch metric health checks) // // > Route 53 doesn't check the health of the endpoint that is specified in the resource record set, for example, the endpoint specified by the IP address in the `Value` element. When you add a `HealthCheckId` element to a resource record set, Route 53 checks the health of the endpoint that you specified in the health check. // // For more information, see the following topics in the *Amazon Route 53 Developer Guide* : // // - [How Amazon Route 53 Determines Whether an Endpoint Is Healthy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) // - [Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) // - [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) // // *When to Specify HealthCheckId* // // Specifying a value for `HealthCheckId` is useful only when Route 53 is choosing between two or more resource record sets to respond to a DNS query, and you want Route 53 to base the choice in part on the status of a health check. Configuring health checks makes sense only in the following configurations: // // - *Non-alias resource record sets* : You're checking the health of a group of non-alias resource record sets that have the same routing policy, name, and type (such as multiple weighted records named www.example.com with a type of A) and you specify health check IDs for all the resource record sets. // // If the health check status for a resource record set is healthy, Route 53 includes the record among the records that it responds to DNS queries with. // // If the health check status for a resource record set is unhealthy, Route 53 stops responding to DNS queries using the value for that resource record set. // // If the health check status for all resource record sets in the group is unhealthy, Route 53 considers all resource record sets in the group healthy and responds to DNS queries accordingly. // - *Alias resource record sets* : You specify the following settings: // // - You set `EvaluateTargetHealth` to true for an alias resource record set in a group of resource record sets that have the same routing policy, name, and type (such as multiple weighted records named www.example.com with a type of A). // - You configure the alias resource record set to route traffic to a non-alias resource record set in the same hosted zone. // - You specify a health check ID for the non-alias resource record set. // // If the health check status is healthy, Route 53 considers the alias resource record set to be healthy and includes the alias record among the records that it responds to DNS queries with. // // If the health check status is unhealthy, Route 53 stops responding to DNS queries using the alias resource record set. // // > The alias resource record set can also route traffic to a *group* of non-alias resource record sets that have the same routing policy, name, and type. In that configuration, associate health checks with all of the resource record sets in the group of non-alias resource record sets. // // *Geolocation Routing* // // For geolocation resource record sets, if an endpoint is unhealthy, Route 53 looks for a resource record set for the larger, associated geographic region. For example, suppose you have resource record sets for a state in the United States, for the entire United States, for North America, and a resource record set that has `*` for `CountryCode` is `*` , which applies to all locations. If the endpoint for the state resource record set is unhealthy, Route 53 checks for healthy resource record sets in the following order until it finds a resource record set for which the endpoint is healthy: // // - The United States // - North America // - The default resource record set // // *Specifying the Health Check Endpoint by Domain Name* // // If your health checks specify the endpoint only by domain name, we recommend that you create a separate health check for each endpoint. For example, create a health check for each `HTTP` server that is serving content for `www.example.com` . For the value of `FullyQualifiedDomainName` , specify the domain name of the server (such as `us-east-2-www.example.com` ), not the name of the resource record sets ( `www.example.com` ). // // > Health check results will be unpredictable if you do the following: // > // > - Create a health check that has the same value for `FullyQualifiedDomainName` as the name of a resource record set. // > - Associate that health check with the resource record set. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-healthcheckid // HealthCheckId *string `field:"optional" json:"healthCheckId" yaml:"healthCheckId"` // The ID of the hosted zone that you want to create records in. // // Specify either `HostedZoneName` or `HostedZoneId` , but not both. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-hostedzoneid // HostedZoneId *string `field:"optional" json:"hostedZoneId" yaml:"hostedZoneId"` // The name of the hosted zone that you want to create records in. // // You must include a trailing dot (for example, `www.example.com.` ) as part of the `HostedZoneName` . // // When you create a stack using an AWS::Route53::RecordSet that specifies `HostedZoneName` , AWS CloudFormation attempts to find a hosted zone whose name matches the HostedZoneName. If AWS CloudFormation cannot find a hosted zone with a matching domain name, or if there is more than one hosted zone with the specified domain name, AWS CloudFormation will not create the stack. // // Specify either `HostedZoneName` or `HostedZoneId` , but not both. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-hostedzonename // HostedZoneName *string `field:"optional" json:"hostedZoneName" yaml:"hostedZoneName"` // *Multivalue answer resource record sets only* : To route traffic approximately randomly to multiple resources, such as web servers, create one multivalue answer record for each resource and specify `true` for `MultiValueAnswer` . // // Note the following: // // - If you associate a health check with a multivalue answer resource record set, Amazon Route 53 responds to DNS queries with the corresponding IP address only when the health check is healthy. // - If you don't associate a health check with a multivalue answer record, Route 53 always considers the record to be healthy. // - Route 53 responds to DNS queries with up to eight healthy records; if you have eight or fewer healthy records, Route 53 responds to all DNS queries with all the healthy records. // - If you have more than eight healthy records, Route 53 responds to different DNS resolvers with different combinations of healthy records. // - When all records are unhealthy, Route 53 responds to DNS queries with up to eight unhealthy records. // - If a resource becomes unavailable after a resolver caches a response, client software typically tries another of the IP addresses in the response. // // You can't create multivalue answer alias records. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-multivalueanswer // MultiValueAnswer interface{} `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // *Latency-based resource record sets only:* The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. Route 53 then returns the value that is associated with the selected resource record set. // // Note the following: // // - You can only specify one `ResourceRecord` per latency resource record set. // - You can only create one latency resource record set for each Amazon EC2 Region. // - You aren't required to create latency resource record sets for all Amazon EC2 Regions. Route 53 will choose the region with the best latency from among the regions that you create latency resource record sets for. // - You can't create non-latency resource record sets that have the same values for the `Name` and `Type` elements as latency resource record sets. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // Region *string `field:"optional" json:"region" yaml:"region"` // One or more values that correspond with the value that you specified for the `Type` property. // // For example, if you specified `A` for `Type` , you specify one or more IP addresses in IPv4 format for `ResourceRecords` . For information about the format of values for each record type, see [Supported DNS Resource Record Types](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) in the *Amazon Route 53 Developer Guide* . // // Note the following: // // - You can specify more than one value for all record types except CNAME and SOA. // - The maximum length of a value is 4000 characters. // - If you're creating an alias record, omit `ResourceRecords` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-resourcerecords // ResourceRecords *[]*string `field:"optional" json:"resourceRecords" yaml:"resourceRecords"` // *Resource record sets that have a routing policy other than simple:* An identifier that differentiates among multiple resource record sets that have the same combination of name and type, such as multiple weighted resource record sets named acme.example.com that have a type of A. In a group of resource record sets that have the same name and type, the value of `SetIdentifier` must be unique for each resource record set. // // For information about routing policies, see [Choosing a Routing Policy](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) in the *Amazon Route 53 Developer Guide* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-setidentifier // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL), in seconds. Note the following:. // // - If you're creating or updating an alias resource record set, omit `TTL` . Amazon Route 53 uses the value of `TTL` for the alias target. // - If you're associating this resource record set with a health check (if you're adding a `HealthCheckId` element), we recommend that you specify a `TTL` of 60 seconds or less so clients respond quickly to changes in health status. // - All of the resource record sets in a group of weighted resource record sets must have the same value for `TTL` . // - If a group of weighted resource record sets includes one or more weighted alias resource record sets for which the alias target is an ELB load balancer, we recommend that you specify a `TTL` of 60 seconds for all of the non-alias weighted resource record sets that have the same name and type. Values other than 60 seconds (the TTL for load balancers) will change the effect of the values that you specify for `Weight` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-ttl // Ttl *string `field:"optional" json:"ttl" yaml:"ttl"` // *Weighted resource record sets only:* Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. Route 53 then responds to queries based on the ratio of a resource's weight to the total. Note the following: // // - You must specify a value for the `Weight` element for every weighted resource record set. // - You can only specify one `ResourceRecord` per weighted resource record set. // - You can't create latency, failover, or geolocation resource record sets that have the same values for the `Name` and `Type` elements as weighted resource record sets. // - You can create a maximum of 100 weighted resource record sets that have the same values for the `Name` and `Type` elements. // - For weighted (but not weighted alias) resource record sets, if you set `Weight` to `0` for a resource record set, Route 53 never responds to queries with the applicable value for that resource record set. However, if you set `Weight` to `0` for all resource record sets that have the same combination of DNS name and type, traffic is routed to all resources with equal probability. // // The effect of setting `Weight` to `0` is different when you associate health checks with weighted resource record sets. For more information, see [Options for Configuring Route 53 Active-Active and Active-Passive Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring-options.html) in the *Amazon Route 53 Developer Guide* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-weight // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` }
Properties for defining a `CfnRecordSet`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnRecordSetProps := &CfnRecordSetProps{ Name: jsii.String("name"), Type: jsii.String("type"), // the properties below are optional AliasTarget: &AliasTargetProperty{ DnsName: jsii.String("dnsName"), HostedZoneId: jsii.String("hostedZoneId"), // the properties below are optional EvaluateTargetHealth: jsii.Boolean(false), }, CidrRoutingConfig: &CidrRoutingConfigProperty{ CollectionId: jsii.String("collectionId"), LocationName: jsii.String("locationName"), }, Comment: jsii.String("comment"), Failover: jsii.String("failover"), GeoLocation: &GeoLocationProperty{ ContinentCode: jsii.String("continentCode"), CountryCode: jsii.String("countryCode"), SubdivisionCode: jsii.String("subdivisionCode"), }, GeoProximityLocation: &GeoProximityLocationProperty{ AwsRegion: jsii.String("awsRegion"), Bias: jsii.Number(123), Coordinates: &CoordinatesProperty{ Latitude: jsii.String("latitude"), Longitude: jsii.String("longitude"), }, LocalZoneGroup: jsii.String("localZoneGroup"), }, HealthCheckId: jsii.String("healthCheckId"), HostedZoneId: jsii.String("hostedZoneId"), HostedZoneName: jsii.String("hostedZoneName"), MultiValueAnswer: jsii.Boolean(false), Region: jsii.String("region"), ResourceRecords: []*string{ jsii.String("resourceRecords"), }, SetIdentifier: jsii.String("setIdentifier"), Ttl: jsii.String("ttl"), Weight: jsii.Number(123), }
See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html
type CfnRecordSet_AliasTargetProperty ¶
type CfnRecordSet_AliasTargetProperty struct { // *Alias records only:* The value that you specify depends on where you want to route queries:. // // - **Amazon API Gateway custom regional APIs and edge-optimized APIs** - Specify the applicable domain name for your API. You can get the applicable value using the AWS CLI command [get-domain-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html) : // // - For regional APIs, specify the value of `regionalDomainName` . // - For edge-optimized APIs, specify the value of `distributionDomainName` . This is the name of the associated CloudFront distribution, such as `da1b2c3d4e5.cloudfront.net` . // // > The name of the record that you're creating must match a custom domain name for your API, such as `api.example.com` . // - **Amazon Virtual Private Cloud interface VPC endpoint** - Enter the API endpoint for the interface endpoint, such as `vpce-123456789abcdef01-example-us-east-1a.elasticloadbalancing.us-east-1.vpce.amazonaws.com` . For edge-optimized APIs, this is the domain name for the corresponding CloudFront distribution. You can get the value of `DnsName` using the AWS CLI command [describe-vpc-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html) . // - **CloudFront distribution** - Specify the domain name that CloudFront assigned when you created your distribution. // // Your CloudFront distribution must include an alternate domain name that matches the name of the record. For example, if the name of the record is *acme.example.com* , your CloudFront distribution must include *acme.example.com* as one of the alternate domain names. For more information, see [Using Alternate Domain Names (CNAMEs)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html) in the *Amazon CloudFront Developer Guide* . // // You can't create a record in a private hosted zone to route traffic to a CloudFront distribution. // // > For failover alias records, you can't specify a CloudFront distribution for both the primary and secondary records. A distribution must include an alternate domain name that matches the name of the record. However, the primary and secondary records have the same name, and you can't include the same alternate domain name in more than one distribution. // - **Elastic Beanstalk environment** - If the domain name for your Elastic Beanstalk environment includes the region that you deployed the environment in, you can create an alias record that routes traffic to the environment. For example, the domain name `my-environment. *us-west-2* .elasticbeanstalk.com` is a regionalized domain name. // // > For environments that were created before early 2016, the domain name doesn't include the region. To route traffic to these environments, you must create a CNAME record instead of an alias record. Note that you can't create a CNAME record for the root domain name. For example, if your domain name is example.com, you can create a record that routes traffic for acme.example.com to your Elastic Beanstalk environment, but you can't create a record that routes traffic for example.com to your Elastic Beanstalk environment. // // For Elastic Beanstalk environments that have regionalized subdomains, specify the `CNAME` attribute for the environment. You can use the following methods to get the value of the CNAME attribute: // // - *AWS Management Console* : For information about how to get the value by using the console, see [Using Custom Domains with AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html) in the *AWS Elastic Beanstalk Developer Guide* . // - *Elastic Beanstalk API* : Use the `DescribeEnvironments` action to get the value of the `CNAME` attribute. For more information, see [DescribeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeEnvironments.html) in the *AWS Elastic Beanstalk API Reference* . // - *AWS CLI* : Use the `describe-environments` command to get the value of the `CNAME` attribute. For more information, see [describe-environments](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-environments.html) in the *AWS CLI* . // - **ELB load balancer** - Specify the DNS name that is associated with the load balancer. Get the DNS name by using the AWS Management Console , the ELB API, or the AWS CLI . // // - *AWS Management Console* : Go to the EC2 page, choose *Load Balancers* in the navigation pane, choose the load balancer, choose the *Description* tab, and get the value of the *DNS name* field. // // If you're routing traffic to a Classic Load Balancer, get the value that begins with *dualstack* . If you're routing traffic to another type of load balancer, get the value that applies to the record type, A or AAAA. // - *Elastic Load Balancing API* : Use `DescribeLoadBalancers` to get the value of `DNSName` . For more information, see the applicable guide: // // - Classic Load Balancers: [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) // - Application and Network Load Balancers: [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) // - *CloudFormation Fn::GetAtt intrinsic function* : Use the [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) intrinsic function to get the value of `DNSName` : // // - [Classic Load Balancers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#aws-properties-ec2-elb-return-values) . // - [Application and Network Load Balancers](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#aws-resource-elasticloadbalancingv2-loadbalancer-return-values) . // - *AWS CLI* : Use `describe-load-balancers` to get the value of `DNSName` . For more information, see the applicable guide: // // - Classic Load Balancers: [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) // - Application and Network Load Balancers: [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) // - **Global Accelerator accelerator** - Specify the DNS name for your accelerator: // // - *Global Accelerator API* : To get the DNS name, use [DescribeAccelerator](https://docs.aws.amazon.com/global-accelerator/latest/api/API_DescribeAccelerator.html) . // - *AWS CLI* : To get the DNS name, use [describe-accelerator](https://docs.aws.amazon.com/cli/latest/reference/globalaccelerator/describe-accelerator.html) . // - **Amazon S3 bucket that is configured as a static website** - Specify the domain name of the Amazon S3 website endpoint that you created the bucket in, for example, `s3-website.us-east-2.amazonaws.com` . For more information about valid values, see the table [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints) in the *Amazon Web Services General Reference* . For more information about using S3 buckets for websites, see [Getting Started with Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/getting-started.html) in the *Amazon Route 53 Developer Guide.* // - **Another Route 53 record** - Specify the value of the `Name` element for a record in the current hosted zone. // // > If you're creating an alias record that has the same name as the hosted zone (known as the zone apex), you can't specify the domain name for a record for which the value of `Type` is `CNAME` . This is because the alias record must have the same type as the record that you're routing traffic to, and creating a CNAME record for the zone apex isn't supported even for an alias record. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-aliastarget.html#cfn-route53-recordset-aliastarget-dnsname // DnsName *string `field:"required" json:"dnsName" yaml:"dnsName"` // *Alias resource records sets only* : The value used depends on where you want to route traffic:. // // - **Amazon API Gateway custom regional APIs and edge-optimized APIs** - Specify the hosted zone ID for your API. You can get the applicable value using the AWS CLI command [get-domain-names](https://docs.aws.amazon.com/cli/latest/reference/apigateway/get-domain-names.html) : // // - For regional APIs, specify the value of `regionalHostedZoneId` . // - For edge-optimized APIs, specify the value of `distributionHostedZoneId` . // - **Amazon Virtual Private Cloud interface VPC endpoint** - Specify the hosted zone ID for your interface endpoint. You can get the value of `HostedZoneId` using the AWS CLI command [describe-vpc-endpoints](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html) . // - **CloudFront distribution** - Specify `Z2FDTNDATAQYW2` . This is always the hosted zone ID when you create an alias record that routes traffic to a CloudFront distribution. // // > Alias records for CloudFront can't be created in a private zone. // - **Elastic Beanstalk environment** - Specify the hosted zone ID for the region that you created the environment in. The environment must have a regionalized subdomain. For a list of regions and the corresponding hosted zone IDs, see [AWS Elastic Beanstalk endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html) in the *Amazon Web Services General Reference* . // - **ELB load balancer** - Specify the value of the hosted zone ID for the load balancer. Use the following methods to get the hosted zone ID: // // - [Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/elb.html) table in the "Elastic Load Balancing Endpoints and Quotas" topic in the *Amazon Web Services General Reference* : Use the value that corresponds with the region that you created your load balancer in. Note that there are separate columns for Application and Classic Load Balancers and for Network Load Balancers. // - *AWS Management Console* : Go to the Amazon EC2 page, choose *Load Balancers* in the navigation pane, select the load balancer, and get the value of the *Hosted zone* field on the *Description* tab. // - *Elastic Load Balancing API* : Use `DescribeLoadBalancers` to get the applicable value. For more information, see the applicable guide: // // - Classic Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/2012-06-01/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneNameID` . // - Application and Network Load Balancers: Use [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) to get the value of `CanonicalHostedZoneID` . // - *CloudFormation Fn::GetAtt intrinsic function* : Use the [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) intrinsic function to get the applicable value: // // - Classic Load Balancers: Get [CanonicalHostedZoneNameID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#aws-properties-ec2-elb-return-values) . // - Application and Network Load Balancers: Get [CanonicalHostedZoneID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html#aws-resource-elasticloadbalancingv2-loadbalancer-return-values) . // - *AWS CLI* : Use `describe-load-balancers` to get the applicable value. For more information, see the applicable guide: // // - Classic Load Balancers: Use [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elb/describe-load-balancers.html) to get the value of `CanonicalHostedZoneNameID` . // - Application and Network Load Balancers: Use [describe-load-balancers](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-load-balancers.html) to get the value of `CanonicalHostedZoneID` . // - **Global Accelerator accelerator** - Specify `Z2BJ6XQ5FK7U4H` . // - **An Amazon S3 bucket configured as a static website** - Specify the hosted zone ID for the region that you created the bucket in. For more information about valid values, see the table [Amazon S3 Website Endpoints](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_website_region_endpoints) in the *Amazon Web Services General Reference* . // - **Another Route 53 record in your hosted zone** - Specify the hosted zone ID of your hosted zone. (An alias record can't reference a record in a different hosted zone.) // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-aliastarget.html#cfn-route53-recordset-aliastarget-hostedzoneid // HostedZoneId *string `field:"required" json:"hostedZoneId" yaml:"hostedZoneId"` // *Applies only to alias, failover alias, geolocation alias, latency alias, and weighted alias resource record sets:* When `EvaluateTargetHealth` is `true` , an alias resource record set inherits the health of the referenced AWS resource, such as an ELB load balancer or another resource record set in the hosted zone. // // Note the following: // // - **CloudFront distributions** - You can't set `EvaluateTargetHealth` to `true` when the alias target is a CloudFront distribution. // - **Elastic Beanstalk environments that have regionalized subdomains** - If you specify an Elastic Beanstalk environment in `DNSName` and the environment contains an ELB load balancer, Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. (An environment automatically contains an ELB load balancer if it includes more than one Amazon EC2 instance.) If you set `EvaluateTargetHealth` to `true` and either no Amazon EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other available resources that are healthy, if any. // // If the environment contains a single Amazon EC2 instance, there are no special requirements. // - **ELB load balancers** - Health checking behavior depends on the type of load balancer: // // - *Classic Load Balancers* : If you specify an ELB Classic Load Balancer in `DNSName` , Elastic Load Balancing routes queries only to the healthy Amazon EC2 instances that are registered with the load balancer. If you set `EvaluateTargetHealth` to `true` and either no EC2 instances are healthy or the load balancer itself is unhealthy, Route 53 routes queries to other resources. // - *Application and Network Load Balancers* : If you specify an ELB Application or Network Load Balancer and you set `EvaluateTargetHealth` to `true` , Route 53 routes queries to the load balancer based on the health of the target groups that are associated with the load balancer: // // - For an Application or Network Load Balancer to be considered healthy, every target group that contains targets must contain at least one healthy target. If any target group contains only unhealthy targets, the load balancer is considered unhealthy, and Route 53 routes queries to other resources. // - A target group that has no registered targets is considered unhealthy. // // > When you create a load balancer, you configure settings for Elastic Load Balancing health checks; they're not Route 53 health checks, but they perform a similar function. Do not create Route 53 health checks for the EC2 instances that you register with an ELB load balancer. // - **S3 buckets** - There are no special requirements for setting `EvaluateTargetHealth` to `true` when the alias target is an S3 bucket. // - **Other records in the same hosted zone** - If the AWS resource that you specify in `DNSName` is a record or a group of records (for example, a group of weighted records) but is not another alias record, we recommend that you associate a health check with all of the records in the alias target. For more information, see [What Happens When You Omit Health Checks?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-complex-configs.html#dns-failover-complex-configs-hc-omitting) in the *Amazon Route 53 Developer Guide* . // // For more information and examples, see [Amazon Route 53 Health Checks and DNS Failover](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) in the *Amazon Route 53 Developer Guide* . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-aliastarget.html#cfn-route53-recordset-aliastarget-evaluatetargethealth // EvaluateTargetHealth interface{} `field:"optional" json:"evaluateTargetHealth" yaml:"evaluateTargetHealth"` }
*Alias records only:* Information about the AWS resource, such as a CloudFront distribution or an Amazon S3 bucket, that you want to route traffic to.
When creating records for a private hosted zone, note the following:
- Creating geolocation alias and latency alias records in a private hosted zone is allowed but not supported. - For information about creating failover records in a private hosted zone, see [Configuring Failover in a Private Hosted Zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" aliasTargetProperty := &AliasTargetProperty{ DnsName: jsii.String("dnsName"), HostedZoneId: jsii.String("hostedZoneId"), // the properties below are optional EvaluateTargetHealth: jsii.Boolean(false), }
type CfnRecordSet_CidrRoutingConfigProperty ¶ added in v2.31.0
type CfnRecordSet_CidrRoutingConfigProperty struct { // The CIDR collection ID. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-cidrroutingconfig.html#cfn-route53-recordset-cidrroutingconfig-collectionid // CollectionId *string `field:"required" json:"collectionId" yaml:"collectionId"` // The CIDR collection location name. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-cidrroutingconfig.html#cfn-route53-recordset-cidrroutingconfig-locationname // LocationName *string `field:"required" json:"locationName" yaml:"locationName"` }
The object that is specified in resource record set object when you are linking a resource record set to a CIDR location.
A `LocationName` with an asterisk “*” can be used to create a default CIDR record. `CollectionId` is still required for default record.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cidrRoutingConfigProperty := &CidrRoutingConfigProperty{ CollectionId: jsii.String("collectionId"), LocationName: jsii.String("locationName"), }
type CfnRecordSet_CoordinatesProperty ¶ added in v2.129.0
type CfnRecordSet_CoordinatesProperty struct { // Specifies a coordinate of the north–south position of a geographic point on the surface of the Earth (-90 - 90). // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-coordinates.html#cfn-route53-recordset-coordinates-latitude // Latitude *string `field:"required" json:"latitude" yaml:"latitude"` // Specifies a coordinate of the east–west position of a geographic point on the surface of the Earth (-180 - 180). // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-coordinates.html#cfn-route53-recordset-coordinates-longitude // Longitude *string `field:"required" json:"longitude" yaml:"longitude"` }
A complex type that lists the coordinates for a geoproximity resource record.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" coordinatesProperty := &CoordinatesProperty{ Latitude: jsii.String("latitude"), Longitude: jsii.String("longitude"), }
type CfnRecordSet_GeoLocationProperty ¶
type CfnRecordSet_GeoLocationProperty struct { // For geolocation resource record sets, a two-letter abbreviation that identifies a continent. Route 53 supports the following continent codes:. // // - *AF* : Africa // - *AN* : Antarctica // - *AS* : Asia // - *EU* : Europe // - *OC* : Oceania // - *NA* : North America // - *SA* : South America // // Constraint: Specifying `ContinentCode` with either `CountryCode` or `SubdivisionCode` returns an `InvalidInput` error. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html#cfn-route53-recordset-geolocation-continentcode // ContinentCode *string `field:"optional" json:"continentCode" yaml:"continentCode"` // For geolocation resource record sets, the two-letter code for a country. // // Route 53 uses the two-letter country codes that are specified in [ISO standard 3166-1 alpha-2](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html#cfn-route53-recordset-geolocation-countrycode // CountryCode *string `field:"optional" json:"countryCode" yaml:"countryCode"` // For geolocation resource record sets, the two-letter code for a state of the United States. // // Route 53 doesn't support any other values for `SubdivisionCode` . For a list of state abbreviations, see [Appendix B: Two–Letter State and Possession Abbreviations](https://docs.aws.amazon.com/https://pe.usps.com/text/pub28/28apb.htm) on the United States Postal Service website. // // If you specify `subdivisioncode` , you must also specify `US` for `CountryCode` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geolocation.html#cfn-route53-recordset-geolocation-subdivisioncode // SubdivisionCode *string `field:"optional" json:"subdivisionCode" yaml:"subdivisionCode"` }
A complex type that contains information about a geographic location.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" geoLocationProperty := &GeoLocationProperty{ ContinentCode: jsii.String("continentCode"), CountryCode: jsii.String("countryCode"), SubdivisionCode: jsii.String("subdivisionCode"), }
type CfnRecordSet_GeoProximityLocationProperty ¶ added in v2.129.0
type CfnRecordSet_GeoProximityLocationProperty struct { // The AWS Region the resource you are directing DNS traffic to, is in. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geoproximitylocation.html#cfn-route53-recordset-geoproximitylocation-awsregion // AwsRegion *string `field:"optional" json:"awsRegion" yaml:"awsRegion"` // The bias increases or decreases the size of the geographic region from which Route 53 routes traffic to a resource. // // To use `Bias` to change the size of the geographic region, specify the applicable value for the bias: // // - To expand the size of the geographic region from which Route 53 routes traffic to a resource, specify a positive integer from 1 to 99 for the bias. Route 53 shrinks the size of adjacent regions. // - To shrink the size of the geographic region from which Route 53 routes traffic to a resource, specify a negative bias of -1 to -99. Route 53 expands the size of adjacent regions. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geoproximitylocation.html#cfn-route53-recordset-geoproximitylocation-bias // Bias *float64 `field:"optional" json:"bias" yaml:"bias"` // Contains the longitude and latitude for a geographic region. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geoproximitylocation.html#cfn-route53-recordset-geoproximitylocation-coordinates // Coordinates interface{} `field:"optional" json:"coordinates" yaml:"coordinates"` // Specifies an AWS Local Zone Group. // // A local Zone Group is usually the Local Zone code without the ending character. For example, if the Local Zone is `us-east-1-bue-1a` the Local Zone Group is `us-east-1-bue-1` . // // You can identify the Local Zones Group for a specific Local Zone by using the [describe-availability-zones](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-availability-zones.html) CLI command: // // This command returns: `"GroupName": "us-west-2-den-1"` , specifying that the Local Zone `us-west-2-den-1a` belongs to the Local Zone Group `us-west-2-den-1` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-geoproximitylocation.html#cfn-route53-recordset-geoproximitylocation-localzonegroup // LocalZoneGroup *string `field:"optional" json:"localZoneGroup" yaml:"localZoneGroup"` }
(Resource record sets only): A complex type that lets you specify where your resources are located.
Only one of `LocalZoneGroup` , `Coordinates` , or `AWS Region` is allowed per request at a time.
For more information about geoproximity routing, see [Geoproximity routing](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-geoproximity.html) in the *Amazon Route 53 Developer Guide* .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" geoProximityLocationProperty := &GeoProximityLocationProperty{ AwsRegion: jsii.String("awsRegion"), Bias: jsii.Number(123), Coordinates: &CoordinatesProperty{ Latitude: jsii.String("latitude"), Longitude: jsii.String("longitude"), }, LocalZoneGroup: jsii.String("localZoneGroup"), }
type CnameRecord ¶
type CnameRecord interface { RecordSet // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A DNS CNAME record.
Example:
import acm "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" // hosted zone and route53 features var hostedZoneId string zoneName := "example.com" myDomainName := "api.example.com" certificate := acm.NewCertificate(this, jsii.String("cert"), &CertificateProps{ DomainName: myDomainName, }) schema := appsync.NewSchemaFile(&SchemaProps{ FilePath: jsii.String("mySchemaFile"), }) api := appsync.NewGraphqlApi(this, jsii.String("api"), &GraphqlApiProps{ Name: jsii.String("myApi"), Definition: appsync.Definition_FromSchema(schema), DomainName: &DomainOptions{ Certificate: *Certificate, DomainName: myDomainName, }, }) // hosted zone for adding appsync domain zone := route53.HostedZone_FromHostedZoneAttributes(this, jsii.String("HostedZone"), &HostedZoneAttributes{ HostedZoneId: jsii.String(HostedZoneId), ZoneName: jsii.String(ZoneName), }) // create a cname to the appsync domain. will map to something like xxxx.cloudfront.net // create a cname to the appsync domain. will map to something like xxxx.cloudfront.net route53.NewCnameRecord(this, jsii.String("CnameApiRecord"), &CnameRecordProps{ RecordName: jsii.String("api"), Zone: Zone, DomainName: api.appSyncDomainName, })
func NewCnameRecord ¶
func NewCnameRecord(scope constructs.Construct, id *string, props *CnameRecordProps) CnameRecord
type CnameRecordProps ¶
type CnameRecordProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // The domain name of the target that this record should point to. DomainName *string `field:"required" json:"domainName" yaml:"domainName"` }
Construction properties for a CnameRecord.
Example:
import acm "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" // hosted zone and route53 features var hostedZoneId string zoneName := "example.com" myDomainName := "api.example.com" certificate := acm.NewCertificate(this, jsii.String("cert"), &CertificateProps{ DomainName: myDomainName, }) schema := appsync.NewSchemaFile(&SchemaProps{ FilePath: jsii.String("mySchemaFile"), }) api := appsync.NewGraphqlApi(this, jsii.String("api"), &GraphqlApiProps{ Name: jsii.String("myApi"), Definition: appsync.Definition_FromSchema(schema), DomainName: &DomainOptions{ Certificate: *Certificate, DomainName: myDomainName, }, }) // hosted zone for adding appsync domain zone := route53.HostedZone_FromHostedZoneAttributes(this, jsii.String("HostedZone"), &HostedZoneAttributes{ HostedZoneId: jsii.String(HostedZoneId), ZoneName: jsii.String(ZoneName), }) // create a cname to the appsync domain. will map to something like xxxx.cloudfront.net // create a cname to the appsync domain. will map to something like xxxx.cloudfront.net route53.NewCnameRecord(this, jsii.String("CnameApiRecord"), &CnameRecordProps{ RecordName: jsii.String("api"), Zone: Zone, DomainName: api.appSyncDomainName, })
type CommonHostedZoneProps ¶
type CommonHostedZoneProps struct { // The name of the domain. // // For resource record types that include a domain // name, specify a fully qualified domain name. ZoneName *string `field:"required" json:"zoneName" yaml:"zoneName"` // Whether to add a trailing dot to the zone name. // Default: true. // AddTrailingDot *bool `field:"optional" json:"addTrailingDot" yaml:"addTrailingDot"` // Any comments that you want to include about the hosted zone. // Default: none. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // The Amazon Resource Name (ARN) for the log group that you want Amazon Route 53 to send query logs to. // Default: disabled. // QueryLogsLogGroupArn *string `field:"optional" json:"queryLogsLogGroupArn" yaml:"queryLogsLogGroupArn"` }
Common properties to create a Route 53 hosted zone.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" commonHostedZoneProps := &CommonHostedZoneProps{ ZoneName: jsii.String("zoneName"), // the properties below are optional AddTrailingDot: jsii.Boolean(false), Comment: jsii.String("comment"), QueryLogsLogGroupArn: jsii.String("queryLogsLogGroupArn"), }
type Continent ¶ added in v2.89.0
type Continent string
Continents for geolocation routing.
Example:
var myZone hostedZone // continent // continent route53.NewARecord(this, jsii.String("ARecordGeoLocationContinent"), &ARecordProps{ Zone: myZone, Target: route53.RecordTarget_FromIpAddresses(jsii.String("1.2.3.0"), jsii.String("5.6.7.0")), GeoLocation: route53.GeoLocation_Continent(route53.Continent_EUROPE), }) // country // country route53.NewARecord(this, jsii.String("ARecordGeoLocationCountry"), &ARecordProps{ Zone: myZone, Target: route53.RecordTarget_*FromIpAddresses(jsii.String("1.2.3.1"), jsii.String("5.6.7.1")), GeoLocation: route53.GeoLocation_Country(jsii.String("DE")), }) // subdivision // subdivision route53.NewARecord(this, jsii.String("ARecordGeoLocationSubDividion"), &ARecordProps{ Zone: myZone, Target: route53.RecordTarget_*FromIpAddresses(jsii.String("1.2.3.2"), jsii.String("5.6.7.2")), GeoLocation: route53.GeoLocation_Subdivision(jsii.String("WA")), }) // default (wildcard record if no specific record is found) // default (wildcard record if no specific record is found) route53.NewARecord(this, jsii.String("ARecordGeoLocationDefault"), &ARecordProps{ Zone: myZone, Target: route53.RecordTarget_*FromIpAddresses(jsii.String("1.2.3.3"), jsii.String("5.6.7.3")), GeoLocation: route53.GeoLocation_Default(), })
const ( // Africa. Continent_AFRICA Continent = "AFRICA" // Antarctica. Continent_ANTARCTICA Continent = "ANTARCTICA" // Asia. Continent_ASIA Continent = "ASIA" // Europe. Continent_EUROPE Continent = "EUROPE" // Oceania. Continent_OCEANIA Continent = "OCEANIA" // North America. Continent_NORTH_AMERICA Continent = "NORTH_AMERICA" // South America. Continent_SOUTH_AMERICA Continent = "SOUTH_AMERICA" )
type CrossAccountZoneDelegationRecord ¶
type CrossAccountZoneDelegationRecord interface { constructs.Construct // The tree node. Node() constructs.Node // Returns a string representation of this construct. ToString() *string }
A Cross Account Zone Delegation record.
Example:
subZone := route53.NewPublicHostedZone(this, jsii.String("SubZone"), &PublicHostedZoneProps{ ZoneName: jsii.String("sub.someexample.com"), }) // import the delegation role by constructing the roleArn delegationRoleArn := awscdk.stack_Of(this).FormatArn(&ArnComponents{ Region: jsii.String(""), // IAM is global in each partition Service: jsii.String("iam"), Account: jsii.String("parent-account-id"), Resource: jsii.String("role"), ResourceName: jsii.String("MyDelegationRole"), }) delegationRole := iam.Role_FromRoleArn(this, jsii.String("DelegationRole"), delegationRoleArn) // create the record // create the record route53.NewCrossAccountZoneDelegationRecord(this, jsii.String("delegate"), &CrossAccountZoneDelegationRecordProps{ DelegatedZone: subZone, ParentHostedZoneName: jsii.String("someexample.com"), // or you can use parentHostedZoneId DelegationRole: DelegationRole, })
func NewCrossAccountZoneDelegationRecord ¶
func NewCrossAccountZoneDelegationRecord(scope constructs.Construct, id *string, props *CrossAccountZoneDelegationRecordProps) CrossAccountZoneDelegationRecord
type CrossAccountZoneDelegationRecordProps ¶
type CrossAccountZoneDelegationRecordProps struct { // The zone to be delegated. DelegatedZone IHostedZone `field:"required" json:"delegatedZone" yaml:"delegatedZone"` // The delegation role in the parent account. DelegationRole awsiam.IRole `field:"required" json:"delegationRole" yaml:"delegationRole"` // Region from which to obtain temporary credentials. // Default: - the Route53 signing region in the current partition. // AssumeRoleRegion *string `field:"optional" json:"assumeRoleRegion" yaml:"assumeRoleRegion"` // The hosted zone id in the parent account. // Default: - no zone id. // ParentHostedZoneId *string `field:"optional" json:"parentHostedZoneId" yaml:"parentHostedZoneId"` // The hosted zone name in the parent account. // Default: - no zone name. // ParentHostedZoneName *string `field:"optional" json:"parentHostedZoneName" yaml:"parentHostedZoneName"` // The removal policy to apply to the record set. // Default: RemovalPolicy.DESTROY // RemovalPolicy awscdk.RemovalPolicy `field:"optional" json:"removalPolicy" yaml:"removalPolicy"` // The resource record cache time to live (TTL). // Default: Duration.days(2) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` }
Construction properties for a CrossAccountZoneDelegationRecord.
Example:
subZone := route53.NewPublicHostedZone(this, jsii.String("SubZone"), &PublicHostedZoneProps{ ZoneName: jsii.String("sub.someexample.com"), }) // import the delegation role by constructing the roleArn delegationRoleArn := awscdk.stack_Of(this).FormatArn(&ArnComponents{ Region: jsii.String(""), // IAM is global in each partition Service: jsii.String("iam"), Account: jsii.String("parent-account-id"), Resource: jsii.String("role"), ResourceName: jsii.String("MyDelegationRole"), }) delegationRole := iam.Role_FromRoleArn(this, jsii.String("DelegationRole"), delegationRoleArn) // create the record // create the record route53.NewCrossAccountZoneDelegationRecord(this, jsii.String("delegate"), &CrossAccountZoneDelegationRecordProps{ DelegatedZone: subZone, ParentHostedZoneName: jsii.String("someexample.com"), // or you can use parentHostedZoneId DelegationRole: DelegationRole, })
type DsRecord ¶
type DsRecord interface { RecordSet // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A DNS DS record.
Example:
var myZone hostedZone route53.NewDsRecord(this, jsii.String("DSRecord"), &DsRecordProps{ Zone: myZone, RecordName: jsii.String("foo"), Values: []*string{ jsii.String("12345 3 1 123456789abcdef67890123456789abcdef67890"), }, Ttl: awscdk.Duration_Minutes(jsii.Number(90)), })
func NewDsRecord ¶
func NewDsRecord(scope constructs.Construct, id *string, props *DsRecordProps) DsRecord
type DsRecordProps ¶
type DsRecordProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // The DS values. Values *[]*string `field:"required" json:"values" yaml:"values"` }
Construction properties for a DSRecord.
Example:
var myZone hostedZone route53.NewDsRecord(this, jsii.String("DSRecord"), &DsRecordProps{ Zone: myZone, RecordName: jsii.String("foo"), Values: []*string{ jsii.String("12345 3 1 123456789abcdef67890123456789abcdef67890"), }, Ttl: awscdk.Duration_Minutes(jsii.Number(90)), })
type GeoLocation ¶ added in v2.89.0
type GeoLocation interface { ContinentCode() Continent CountryCode() *string SubdivisionCode() *string }
Routing based on geographical location.
Example:
var myZone hostedZone // continent // continent route53.NewARecord(this, jsii.String("ARecordGeoLocationContinent"), &ARecordProps{ Zone: myZone, Target: route53.RecordTarget_FromIpAddresses(jsii.String("1.2.3.0"), jsii.String("5.6.7.0")), GeoLocation: route53.GeoLocation_Continent(route53.Continent_EUROPE), }) // country // country route53.NewARecord(this, jsii.String("ARecordGeoLocationCountry"), &ARecordProps{ Zone: myZone, Target: route53.RecordTarget_*FromIpAddresses(jsii.String("1.2.3.1"), jsii.String("5.6.7.1")), GeoLocation: route53.GeoLocation_Country(jsii.String("DE")), }) // subdivision // subdivision route53.NewARecord(this, jsii.String("ARecordGeoLocationSubDividion"), &ARecordProps{ Zone: myZone, Target: route53.RecordTarget_*FromIpAddresses(jsii.String("1.2.3.2"), jsii.String("5.6.7.2")), GeoLocation: route53.GeoLocation_Subdivision(jsii.String("WA")), }) // default (wildcard record if no specific record is found) // default (wildcard record if no specific record is found) route53.NewARecord(this, jsii.String("ARecordGeoLocationDefault"), &ARecordProps{ Zone: myZone, Target: route53.RecordTarget_*FromIpAddresses(jsii.String("1.2.3.3"), jsii.String("5.6.7.3")), GeoLocation: route53.GeoLocation_Default(), })
func GeoLocation_Continent ¶ added in v2.89.0
func GeoLocation_Continent(continentCode Continent) GeoLocation
Geolocation resource record based on continent code.
Returns: Continent-based geolocation record.
func GeoLocation_Country ¶ added in v2.89.0
func GeoLocation_Country(countryCode *string) GeoLocation
Geolocation resource record based on country code.
Returns: Country-based geolocation record. See: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
func GeoLocation_Default ¶ added in v2.89.0
func GeoLocation_Default() GeoLocation
Default (wildcard) routing record if no specific geolocation record is found.
Returns: Wildcard routing record.
func GeoLocation_Subdivision ¶ added in v2.89.0
func GeoLocation_Subdivision(subdivisionCode *string, countryCode *string) GeoLocation
Geolocation resource record based on subdivision code (e.g. state of the United States). See: https://docs.aws.amazon.com/Route53/latest/APIReference/API_GeoLocation.html#Route53-Type-GeoLocation-SubdivisionCode
type HostedZone ¶
type HostedZone interface { awscdk.Resource IHostedZone // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // ARN of this hosted zone, such as arn:${Partition}:route53:::hostedzone/${Id}. HostedZoneArn() *string // ID of this hosted zone, such as "Z23ABC4XYZL05B". HostedZoneId() *string // Returns the set of name servers for the specific hosted zone. For example: ns1.example.com. // // This attribute will be undefined for private hosted zones or hosted zones imported from another stack. HostedZoneNameServers() *[]*string // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // VPCs to which this hosted zone will be added. Vpcs() *[]*CfnHostedZone_VPCProperty // FQDN of this hosted zone. ZoneName() *string // Add another VPC to this private hosted zone. AddVpc(vpc awsec2.IVpc) // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) // Enable DNSSEC for this hosted zone. // // This will create a key signing key with the given options and enable DNSSEC signing // for the hosted zone. EnableDnssec(options *ZoneSigningOptions) IKeySigningKey GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Grant permissions to add delegation records to this zone. GrantDelegation(grantee awsiam.IGrantable) awsiam.Grant // Returns a string representation of this construct. ToString() *string }
Container for records, and records contain information about how to route traffic for a specific domain, such as example.com and its subdomains (acme.example.com, zenith.example.com).
Example:
kmsKey := kms.NewKey(this, jsii.String("KmsCMK"), &KeyProps{ KeySpec: kms.KeySpec_ECC_NIST_P256, KeyUsage: kms.KeyUsage_SIGN_VERIFY, }) hostedZone := route53.NewHostedZone(this, jsii.String("HostedZone"), &HostedZoneProps{ ZoneName: jsii.String("example.com"), }) // Enable DNSSEC signing for the zone hostedZone.EnableDnssec(&ZoneSigningOptions{ KmsKey: KmsKey, })
func NewHostedZone ¶
func NewHostedZone(scope constructs.Construct, id *string, props *HostedZoneProps) HostedZone
type HostedZoneAttributes ¶
type HostedZoneAttributes struct { // Identifier of the hosted zone. HostedZoneId *string `field:"required" json:"hostedZoneId" yaml:"hostedZoneId"` // Name of the hosted zone. ZoneName *string `field:"required" json:"zoneName" yaml:"zoneName"` }
Reference to a hosted zone.
Example:
var app app stack := awscdk.Newstack(app, jsii.String("Stack"), &StackProps{ CrossRegionReferences: jsii.Boolean(true), Env: &Environment{ Region: jsii.String("us-east-2"), }, }) patterns.NewHttpsRedirect(this, jsii.String("Redirect"), &HttpsRedirectProps{ RecordNames: []*string{ jsii.String("foo.example.com"), }, TargetDomain: jsii.String("bar.example.com"), Zone: route53.HostedZone_FromHostedZoneAttributes(this, jsii.String("HostedZone"), &HostedZoneAttributes{ HostedZoneId: jsii.String("ID"), ZoneName: jsii.String("example.com"), }), })
type HostedZoneProps ¶
type HostedZoneProps struct { // The name of the domain. // // For resource record types that include a domain // name, specify a fully qualified domain name. ZoneName *string `field:"required" json:"zoneName" yaml:"zoneName"` // Whether to add a trailing dot to the zone name. // Default: true. // AddTrailingDot *bool `field:"optional" json:"addTrailingDot" yaml:"addTrailingDot"` // Any comments that you want to include about the hosted zone. // Default: none. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // The Amazon Resource Name (ARN) for the log group that you want Amazon Route 53 to send query logs to. // Default: disabled. // QueryLogsLogGroupArn *string `field:"optional" json:"queryLogsLogGroupArn" yaml:"queryLogsLogGroupArn"` // A VPC that you want to associate with this hosted zone. // // When you specify // this property, a private hosted zone will be created. // // You can associate additional VPCs to this private zone using `addVpc(vpc)`. // Default: public (no VPCs associated). // Vpcs *[]awsec2.IVpc `field:"optional" json:"vpcs" yaml:"vpcs"` }
Properties of a new hosted zone.
Example:
hostedZone := route53.NewHostedZone(this, jsii.String("MyHostedZone"), &HostedZoneProps{ ZoneName: jsii.String("example.org"), }) metric := cloudwatch.NewMetric(&MetricProps{ Namespace: jsii.String("AWS/Route53"), MetricName: jsii.String("DNSQueries"), DimensionsMap: map[string]*string{ "HostedZoneId": hostedZone.hostedZoneId, }, })
type HostedZoneProviderProps ¶
type HostedZoneProviderProps struct { // The zone domain e.g. example.com. DomainName *string `field:"required" json:"domainName" yaml:"domainName"` // Whether the zone that is being looked up is a private hosted zone. // Default: false. // PrivateZone *bool `field:"optional" json:"privateZone" yaml:"privateZone"` // Specifies the ID of the VPC associated with a private hosted zone. // // If a VPC ID is provided and privateZone is false, no results will be returned // and an error will be raised. // Default: - No VPC ID. // VpcId *string `field:"optional" json:"vpcId" yaml:"vpcId"` }
Zone properties for looking up the Hosted Zone.
Example:
import s3 "github.com/aws/aws-cdk-go/awscdk" recordName := "www" domainName := "example.com" bucketWebsite := s3.NewBucket(this, jsii.String("BucketWebsite"), &BucketProps{ BucketName: []*string{ recordName, domainName, }.join(jsii.String(".")), // www.example.com PublicReadAccess: jsii.Boolean(true), WebsiteIndexDocument: jsii.String("index.html"), }) zone := route53.HostedZone_FromLookup(this, jsii.String("Zone"), &HostedZoneProviderProps{ DomainName: jsii.String(DomainName), }) // example.com // example.com route53.NewARecord(this, jsii.String("AliasRecord"), &ARecordProps{ Zone: Zone, RecordName: jsii.String(RecordName), // www Target: route53.RecordTarget_FromAlias(targets.NewBucketWebsiteTarget(bucketWebsite)), })
type IAliasRecordTarget ¶
type IAliasRecordTarget interface { // Return hosted zone ID and DNS name, usable for Route53 alias targets. Bind(record IRecordSet, zone IHostedZone) *AliasRecordTargetConfig }
Classes that are valid alias record targets, like CloudFront distributions and load balancers, should implement this interface.
type IHostedZone ¶
type IHostedZone interface { awscdk.IResource // Grant permissions to add delegation records to this zone. GrantDelegation(grantee awsiam.IGrantable) awsiam.Grant // ARN of this hosted zone, such as arn:${Partition}:route53:::hostedzone/${Id}. HostedZoneArn() *string // ID of this hosted zone, such as "Z23ABC4XYZL05B". HostedZoneId() *string // Returns the set of name servers for the specific hosted zone. For example: ns1.example.com. // // This attribute will be undefined for private hosted zones or hosted zones imported from another stack. HostedZoneNameServers() *[]*string // FQDN of this hosted zone. ZoneName() *string }
Imported or created hosted zone.
func HostedZone_FromHostedZoneAttributes ¶
func HostedZone_FromHostedZoneAttributes(scope constructs.Construct, id *string, attrs *HostedZoneAttributes) IHostedZone
Imports a hosted zone from another stack.
Use when both hosted zone ID and hosted zone name are known.
func HostedZone_FromHostedZoneId ¶
func HostedZone_FromHostedZoneId(scope constructs.Construct, id *string, hostedZoneId *string) IHostedZone
Import a Route 53 hosted zone defined either outside the CDK, or in a different CDK stack.
Use when hosted zone ID is known. If a HostedZone is imported with this method the zoneName cannot be referenced. If the zoneName is needed then the HostedZone should be imported with `fromHostedZoneAttributes()` or `fromLookup()`.
func HostedZone_FromLookup ¶
func HostedZone_FromLookup(scope constructs.Construct, id *string, query *HostedZoneProviderProps) IHostedZone
Lookup a hosted zone in the current account/region based on query parameters.
Requires environment, you must specify env for the stack.
Use to easily query hosted zones. See: https://docs.aws.amazon.com/cdk/latest/guide/environments.html
func PrivateHostedZone_FromHostedZoneAttributes ¶
func PrivateHostedZone_FromHostedZoneAttributes(scope constructs.Construct, id *string, attrs *HostedZoneAttributes) IHostedZone
Imports a hosted zone from another stack.
Use when both hosted zone ID and hosted zone name are known.
func PrivateHostedZone_FromHostedZoneId ¶
func PrivateHostedZone_FromHostedZoneId(scope constructs.Construct, id *string, hostedZoneId *string) IHostedZone
Import a Route 53 hosted zone defined either outside the CDK, or in a different CDK stack.
Use when hosted zone ID is known. If a HostedZone is imported with this method the zoneName cannot be referenced. If the zoneName is needed then the HostedZone should be imported with `fromHostedZoneAttributes()` or `fromLookup()`.
func PrivateHostedZone_FromLookup ¶
func PrivateHostedZone_FromLookup(scope constructs.Construct, id *string, query *HostedZoneProviderProps) IHostedZone
Lookup a hosted zone in the current account/region based on query parameters.
Requires environment, you must specify env for the stack.
Use to easily query hosted zones. See: https://docs.aws.amazon.com/cdk/latest/guide/environments.html
func PublicHostedZone_FromHostedZoneAttributes ¶
func PublicHostedZone_FromHostedZoneAttributes(scope constructs.Construct, id *string, attrs *HostedZoneAttributes) IHostedZone
Imports a hosted zone from another stack.
Use when both hosted zone ID and hosted zone name are known.
func PublicHostedZone_FromHostedZoneId ¶
func PublicHostedZone_FromHostedZoneId(scope constructs.Construct, id *string, hostedZoneId *string) IHostedZone
Import a Route 53 hosted zone defined either outside the CDK, or in a different CDK stack.
Use when hosted zone ID is known. If a HostedZone is imported with this method the zoneName cannot be referenced. If the zoneName is needed then the HostedZone should be imported with `fromHostedZoneAttributes()` or `fromLookup()`.
func PublicHostedZone_FromLookup ¶
func PublicHostedZone_FromLookup(scope constructs.Construct, id *string, query *HostedZoneProviderProps) IHostedZone
Lookup a hosted zone in the current account/region based on query parameters.
Requires environment, you must specify env for the stack.
Use to easily query hosted zones. See: https://docs.aws.amazon.com/cdk/latest/guide/environments.html
type IKeySigningKey ¶ added in v2.138.0
type IKeySigningKey interface { awscdk.IResource // The hosted zone that the key signing key signs. HostedZone() IHostedZone // The ID of the key signing key, derived from the hosted zone ID and its name. KeySigningKeyId() *string // The name of the key signing key. KeySigningKeyName() *string }
A Key Signing Key for a Route 53 Hosted Zone.
func KeySigningKey_FromKeySigningKeyAttributes ¶ added in v2.138.0
func KeySigningKey_FromKeySigningKeyAttributes(scope constructs.Construct, id *string, attrs *KeySigningKeyAttributes) IKeySigningKey
Imports a key signing key from its attributes.
type IPrivateHostedZone ¶
type IPrivateHostedZone interface { IHostedZone }
Represents a Route 53 private hosted zone.
func PrivateHostedZone_FromPrivateHostedZoneId ¶
func PrivateHostedZone_FromPrivateHostedZoneId(scope constructs.Construct, id *string, privateHostedZoneId *string) IPrivateHostedZone
Import a Route 53 private hosted zone defined either outside the CDK, or in a different CDK stack.
Use when hosted zone ID is known. If a HostedZone is imported with this method the zoneName cannot be referenced. If the zoneName is needed then you cannot import a PrivateHostedZone.
type IPublicHostedZone ¶
type IPublicHostedZone interface { IHostedZone }
Represents a Route 53 public hosted zone.
func PublicHostedZone_FromPublicHostedZoneAttributes ¶ added in v2.21.0
func PublicHostedZone_FromPublicHostedZoneAttributes(scope constructs.Construct, id *string, attrs *PublicHostedZoneAttributes) IPublicHostedZone
Imports a public hosted zone from another stack.
Use when both hosted zone ID and hosted zone name are known.
func PublicHostedZone_FromPublicHostedZoneId ¶
func PublicHostedZone_FromPublicHostedZoneId(scope constructs.Construct, id *string, publicHostedZoneId *string) IPublicHostedZone
Import a Route 53 public hosted zone defined either outside the CDK, or in a different CDK stack.
Use when hosted zone ID is known. If a PublicHostedZone is imported with this method the zoneName cannot be referenced. If the zoneName is needed then the PublicHostedZone should be imported with `fromPublicHostedZoneAttributes()`.
type IRecordSet ¶
type IRecordSet interface { awscdk.IResource // The domain name of the record. DomainName() *string }
A record set.
type KeySigningKey ¶ added in v2.138.0
type KeySigningKey interface { awscdk.Resource IKeySigningKey // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The hosted zone that the key signing key signs. HostedZone() IHostedZone // The ID of the key signing key, derived from the hosted zone ID and its name. KeySigningKeyId() *string // The name of the key signing key. KeySigningKeyName() *string // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A Key Signing Key for a Route 53 Hosted Zone.
Example:
var hostedZone hostedZone var kmsKey key route53.NewKeySigningKey(this, jsii.String("KeySigningKey"), &KeySigningKeyProps{ HostedZone: HostedZone, KmsKey: KmsKey, KeySigningKeyName: jsii.String("ksk"), Status: route53.KeySigningKeyStatus_ACTIVE, })
func NewKeySigningKey ¶ added in v2.138.0
func NewKeySigningKey(scope constructs.Construct, id *string, props *KeySigningKeyProps) KeySigningKey
type KeySigningKeyAttributes ¶ added in v2.138.0
type KeySigningKeyAttributes struct { // The hosted zone that the key signing key signs. HostedZone IHostedZone `field:"required" json:"hostedZone" yaml:"hostedZone"` // The name of the key signing key. KeySigningKeyName *string `field:"required" json:"keySigningKeyName" yaml:"keySigningKeyName"` }
The attributes of a key signing key.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var hostedZone hostedZone keySigningKeyAttributes := &KeySigningKeyAttributes{ HostedZone: hostedZone, KeySigningKeyName: jsii.String("keySigningKeyName"), }
type KeySigningKeyProps ¶ added in v2.138.0
type KeySigningKeyProps struct { // The hosted zone that this key will be used to sign. HostedZone IHostedZone `field:"required" json:"hostedZone" yaml:"hostedZone"` // The customer-managed KMS key that that will be used to sign the records. // // The KMS Key must be unique for each KSK within a hosted zone. Additionally, the // KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html // KmsKey awskms.IKey `field:"required" json:"kmsKey" yaml:"kmsKey"` // The name for the key signing key. // // This name must be unique within a hosted zone. // Default: an autogenerated name. // KeySigningKeyName *string `field:"optional" json:"keySigningKeyName" yaml:"keySigningKeyName"` // The status of the key signing key. // Default: ACTIVE. // Status KeySigningKeyStatus `field:"optional" json:"status" yaml:"status"` }
Properties for constructing a Key Signing Key.
Example:
var hostedZone hostedZone var kmsKey key route53.NewKeySigningKey(this, jsii.String("KeySigningKey"), &KeySigningKeyProps{ HostedZone: HostedZone, KmsKey: KmsKey, KeySigningKeyName: jsii.String("ksk"), Status: route53.KeySigningKeyStatus_ACTIVE, })
type KeySigningKeyStatus ¶ added in v2.138.0
type KeySigningKeyStatus string
The status for a Key Signing Key.
Example:
var hostedZone hostedZone var kmsKey key route53.NewKeySigningKey(this, jsii.String("KeySigningKey"), &KeySigningKeyProps{ HostedZone: HostedZone, KmsKey: KmsKey, KeySigningKeyName: jsii.String("ksk"), Status: route53.KeySigningKeyStatus_ACTIVE, })
const ( // The KSK is being used for signing. KeySigningKeyStatus_ACTIVE KeySigningKeyStatus = "ACTIVE" // The KSK is not being used for signing. KeySigningKeyStatus_INACTIVE KeySigningKeyStatus = "INACTIVE" )
type MxRecord ¶
type MxRecord interface { RecordSet // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A DNS MX record.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone mxRecord := awscdk.Aws_route53.NewMxRecord(this, jsii.String("MyMxRecord"), &MxRecordProps{ Values: []mxRecordValue{ &mxRecordValue{ HostName: jsii.String("hostName"), Priority: jsii.Number(123), }, }, Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), })
func NewMxRecord ¶
func NewMxRecord(scope constructs.Construct, id *string, props *MxRecordProps) MxRecord
type MxRecordProps ¶
type MxRecordProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // The values. Values *[]*MxRecordValue `field:"required" json:"values" yaml:"values"` }
Construction properties for a MxRecord.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone mxRecordProps := &MxRecordProps{ Values: []mxRecordValue{ &mxRecordValue{ HostName: jsii.String("hostName"), Priority: jsii.Number(123), }, }, Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), }
type MxRecordValue ¶
type MxRecordValue struct { // The mail server host name. HostName *string `field:"required" json:"hostName" yaml:"hostName"` // The priority. Priority *float64 `field:"required" json:"priority" yaml:"priority"` }
Properties for a MX record value.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" mxRecordValue := &MxRecordValue{ HostName: jsii.String("hostName"), Priority: jsii.Number(123), }
type NsRecord ¶
type NsRecord interface { RecordSet // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A DNS NS record.
Example:
var myZone hostedZone route53.NewNsRecord(this, jsii.String("NSRecord"), &NsRecordProps{ Zone: myZone, RecordName: jsii.String("foo"), Values: []*string{ jsii.String("ns-1.awsdns.co.uk."), jsii.String("ns-2.awsdns.com."), }, Ttl: awscdk.Duration_Minutes(jsii.Number(90)), })
func NewNsRecord ¶
func NewNsRecord(scope constructs.Construct, id *string, props *NsRecordProps) NsRecord
type NsRecordProps ¶
type NsRecordProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // The NS values. Values *[]*string `field:"required" json:"values" yaml:"values"` }
Construction properties for a NSRecord.
Example:
var myZone hostedZone route53.NewNsRecord(this, jsii.String("NSRecord"), &NsRecordProps{ Zone: myZone, RecordName: jsii.String("foo"), Values: []*string{ jsii.String("ns-1.awsdns.co.uk."), jsii.String("ns-2.awsdns.com."), }, Ttl: awscdk.Duration_Minutes(jsii.Number(90)), })
type PrivateHostedZone ¶
type PrivateHostedZone interface { HostedZone IPrivateHostedZone // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // ARN of this hosted zone, such as arn:${Partition}:route53:::hostedzone/${Id}. HostedZoneArn() *string // ID of this hosted zone, such as "Z23ABC4XYZL05B". HostedZoneId() *string // Returns the set of name servers for the specific hosted zone. For example: ns1.example.com. // // This attribute will be undefined for private hosted zones or hosted zones imported from another stack. HostedZoneNameServers() *[]*string // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // VPCs to which this hosted zone will be added. Vpcs() *[]*CfnHostedZone_VPCProperty // FQDN of this hosted zone. ZoneName() *string // Add another VPC to this private hosted zone. AddVpc(vpc awsec2.IVpc) // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) // Enable DNSSEC for this hosted zone. // // This will create a key signing key with the given options and enable DNSSEC signing // for the hosted zone. EnableDnssec(options *ZoneSigningOptions) IKeySigningKey GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Grant permissions to add delegation records to this zone. GrantDelegation(grantee awsiam.IGrantable) awsiam.Grant // Returns a string representation of this construct. ToString() *string }
Create a Route53 private hosted zone for use in one or more VPCs.
Note that `enableDnsHostnames` and `enableDnsSupport` must have been enabled for the VPC you're configuring for private hosted zones.
Example:
var vpc vpc zone := route53.NewPrivateHostedZone(this, jsii.String("HostedZone"), &PrivateHostedZoneProps{ ZoneName: jsii.String("fully.qualified.domain.com"), Vpc: Vpc, })
func NewPrivateHostedZone ¶
func NewPrivateHostedZone(scope constructs.Construct, id *string, props *PrivateHostedZoneProps) PrivateHostedZone
type PrivateHostedZoneProps ¶
type PrivateHostedZoneProps struct { // The name of the domain. // // For resource record types that include a domain // name, specify a fully qualified domain name. ZoneName *string `field:"required" json:"zoneName" yaml:"zoneName"` // Whether to add a trailing dot to the zone name. // Default: true. // AddTrailingDot *bool `field:"optional" json:"addTrailingDot" yaml:"addTrailingDot"` // Any comments that you want to include about the hosted zone. // Default: none. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // The Amazon Resource Name (ARN) for the log group that you want Amazon Route 53 to send query logs to. // Default: disabled. // QueryLogsLogGroupArn *string `field:"optional" json:"queryLogsLogGroupArn" yaml:"queryLogsLogGroupArn"` // A VPC that you want to associate with this hosted zone. // // Private hosted zones must be associated with at least one VPC. You can // associated additional VPCs using `addVpc(vpc)`. Vpc awsec2.IVpc `field:"required" json:"vpc" yaml:"vpc"` }
Properties to create a Route 53 private hosted zone.
Example:
var vpc vpc zone := route53.NewPrivateHostedZone(this, jsii.String("HostedZone"), &PrivateHostedZoneProps{ ZoneName: jsii.String("fully.qualified.domain.com"), Vpc: Vpc, })
type PublicHostedZone ¶
type PublicHostedZone interface { HostedZone IPublicHostedZone // Role for cross account zone delegation. CrossAccountZoneDelegationRole() awsiam.Role // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // ARN of this hosted zone, such as arn:${Partition}:route53:::hostedzone/${Id}. HostedZoneArn() *string // ID of this hosted zone, such as "Z23ABC4XYZL05B". HostedZoneId() *string // Returns the set of name servers for the specific hosted zone. For example: ns1.example.com. // // This attribute will be undefined for private hosted zones or hosted zones imported from another stack. HostedZoneNameServers() *[]*string // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // VPCs to which this hosted zone will be added. Vpcs() *[]*CfnHostedZone_VPCProperty // FQDN of this hosted zone. ZoneName() *string // Adds a delegation from this zone to a designated zone. AddDelegation(delegate IPublicHostedZone, opts *ZoneDelegationOptions) // Add another VPC to this private hosted zone. AddVpc(_vpc awsec2.IVpc) // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) // Enable DNSSEC for this hosted zone. // // This will create a key signing key with the given options and enable DNSSEC signing // for the hosted zone. EnableDnssec(options *ZoneSigningOptions) IKeySigningKey GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Grant permissions to add delegation records to this zone. GrantDelegation(grantee awsiam.IGrantable) awsiam.Grant // Returns a string representation of this construct. ToString() *string }
Create a Route53 public hosted zone.
Example:
stack1 := awscdk.Newstack(app, jsii.String("Stack1"), &stackProps{ Env: &Environment{ Region: jsii.String("us-east-1"), }, CrossRegionReferences: jsii.Boolean(true), }) cert := acm.NewCertificate(stack1, jsii.String("Cert"), &CertificateProps{ DomainName: jsii.String("*.example.com"), Validation: acm.CertificateValidation_FromDns(route53.PublicHostedZone_FromHostedZoneId(stack1, jsii.String("Zone"), jsii.String("Z0329774B51CGXTDQV3X"))), }) stack2 := awscdk.Newstack(app, jsii.String("Stack2"), &stackProps{ Env: &Environment{ Region: jsii.String("us-east-2"), }, CrossRegionReferences: jsii.Boolean(true), }) cloudfront.NewDistribution(stack2, jsii.String("Distribution"), &DistributionProps{ DefaultBehavior: &BehaviorOptions{ Origin: origins.NewHttpOrigin(jsii.String("example.com")), }, DomainNames: []*string{ jsii.String("dev.example.com"), }, Certificate: cert, })
func NewPublicHostedZone ¶
func NewPublicHostedZone(scope constructs.Construct, id *string, props *PublicHostedZoneProps) PublicHostedZone
type PublicHostedZoneAttributes ¶ added in v2.21.0
type PublicHostedZoneAttributes struct { // Identifier of the hosted zone. HostedZoneId *string `field:"required" json:"hostedZoneId" yaml:"hostedZoneId"` // Name of the hosted zone. ZoneName *string `field:"required" json:"zoneName" yaml:"zoneName"` }
Reference to a public hosted zone.
Example:
zoneFromAttributes := route53.PublicHostedZone_FromPublicHostedZoneAttributes(this, jsii.String("MyZone"), &PublicHostedZoneAttributes{ ZoneName: jsii.String("example.com"), HostedZoneId: jsii.String("ZOJJZC49E0EPZ"), }) // Does not know zoneName zoneFromId := route53.PublicHostedZone_FromPublicHostedZoneId(this, jsii.String("MyZone"), jsii.String("ZOJJZC49E0EPZ"))
type PublicHostedZoneProps ¶
type PublicHostedZoneProps struct { // The name of the domain. // // For resource record types that include a domain // name, specify a fully qualified domain name. ZoneName *string `field:"required" json:"zoneName" yaml:"zoneName"` // Whether to add a trailing dot to the zone name. // Default: true. // AddTrailingDot *bool `field:"optional" json:"addTrailingDot" yaml:"addTrailingDot"` // Any comments that you want to include about the hosted zone. // Default: none. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // The Amazon Resource Name (ARN) for the log group that you want Amazon Route 53 to send query logs to. // Default: disabled. // QueryLogsLogGroupArn *string `field:"optional" json:"queryLogsLogGroupArn" yaml:"queryLogsLogGroupArn"` // Whether to create a CAA record to restrict certificate authorities allowed to issue certificates for this domain to Amazon only. // Default: false. // CaaAmazon *bool `field:"optional" json:"caaAmazon" yaml:"caaAmazon"` // A principal which is trusted to assume a role for zone delegation. // // If supplied, this will create a Role in the same account as the Hosted // Zone, which can be assumed by the `CrossAccountZoneDelegationRecord` to // create a delegation record to a zone in a different account. // // Be sure to indicate the account(s) that you trust to create delegation // records, using either `iam.AccountPrincipal` or `iam.OrganizationPrincipal`. // // If you are planning to use `iam.ServicePrincipal`s here, be sure to include // region-specific service principals for every opt-in region you are going to // be delegating to; or don't use this feature and create separate roles // with appropriate permissions for every opt-in region instead. // Default: - No delegation configuration. // // Deprecated: Create the Role yourself and call `hostedZone.grantDelegation()`. CrossAccountZoneDelegationPrincipal awsiam.IPrincipal `field:"optional" json:"crossAccountZoneDelegationPrincipal" yaml:"crossAccountZoneDelegationPrincipal"` // The name of the role created for cross account delegation. // Default: - A role name is generated automatically. // // Deprecated: Create the Role yourself and call `hostedZone.grantDelegation()`. CrossAccountZoneDelegationRoleName *string `field:"optional" json:"crossAccountZoneDelegationRoleName" yaml:"crossAccountZoneDelegationRoleName"` }
Construction properties for a PublicHostedZone.
Example:
parentZone := route53.NewPublicHostedZone(this, jsii.String("HostedZone"), &PublicHostedZoneProps{ ZoneName: jsii.String("someexample.com"), }) crossAccountRole := iam.NewRole(this, jsii.String("CrossAccountRole"), &RoleProps{ // The role name must be predictable RoleName: jsii.String("MyDelegationRole"), // The other account AssumedBy: iam.NewAccountPrincipal(jsii.String("12345678901")), // You can scope down this role policy to be least privileged. // If you want the other account to be able to manage specific records, // you can scope down by resource and/or normalized record names InlinePolicies: map[string]policyDocument{ "crossAccountPolicy": iam.NewPolicyDocument(&PolicyDocumentProps{ "statements": []PolicyStatement{ iam.NewPolicyStatement(&PolicyStatementProps{ "sid": jsii.String("ListHostedZonesByName"), "effect": iam.Effect_ALLOW, "actions": []*string{ jsii.String("route53:ListHostedZonesByName"), }, "resources": []*string{ jsii.String("*"), }, }), iam.NewPolicyStatement(&PolicyStatementProps{ "sid": jsii.String("GetHostedZoneAndChangeResourceRecordSets"), "effect": iam.Effect_ALLOW, "actions": []*string{ jsii.String("route53:GetHostedZone"), jsii.String("route53:ChangeResourceRecordSets"), }, // This example assumes the RecordSet subdomain.somexample.com // is contained in the HostedZone "resources": []*string{ jsii.String("arn:aws:route53:::hostedzone/HZID00000000000000000"), }, "conditions": map[string]interface{}{ "ForAllValues:StringLike": map[string][]*string{ "route53:ChangeResourceRecordSetsNormalizedRecordNames": []*string{ jsii.String("subdomain.someexample.com"), }, }, }, }), }, }), }, }) parentZone.GrantDelegation(crossAccountRole)
type RecordSet ¶
type RecordSet interface { awscdk.Resource IRecordSet // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A record set.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone var recordTarget recordTarget recordSet := awscdk.Aws_route53.NewRecordSet(this, jsii.String("MyRecordSet"), &RecordSetProps{ RecordType: awscdk.*Aws_route53.RecordType_A, Target: recordTarget, Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), })
func NewRecordSet ¶
func NewRecordSet(scope constructs.Construct, id *string, props *RecordSetProps) RecordSet
type RecordSetOptions ¶
type RecordSetOptions struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` }
Options for a RecordSet.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone recordSetOptions := &RecordSetOptions{ Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), }
type RecordSetProps ¶
type RecordSetProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // The record type. RecordType RecordType `field:"required" json:"recordType" yaml:"recordType"` // The target for this record, either `RecordTarget.fromValues()` or `RecordTarget.fromAlias()`. Target RecordTarget `field:"required" json:"target" yaml:"target"` }
Construction properties for a RecordSet.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone var recordTarget recordTarget recordSetProps := &RecordSetProps{ RecordType: awscdk.Aws_route53.RecordType_A, Target: recordTarget, Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), }
type RecordTarget ¶
type RecordTarget interface { // alias for targets such as CloudFront distribution to route traffic to. AliasTarget() IAliasRecordTarget // correspond with the chosen record type (e.g. for 'A' Type, specify one or more IP addresses). Values() *[]*string }
Type union for a record that accepts multiple types of target.
Example:
import cloudfront "github.com/aws/aws-cdk-go/awscdk" var myZone hostedZone var distribution cloudFrontWebDistribution route53.NewAaaaRecord(this, jsii.String("Alias"), &AaaaRecordProps{ Zone: myZone, Target: route53.RecordTarget_FromAlias(targets.NewCloudFrontTarget(distribution)), })
func NewRecordTarget ¶
func NewRecordTarget(values *[]*string, aliasTarget IAliasRecordTarget) RecordTarget
func RecordTarget_FromAlias ¶
func RecordTarget_FromAlias(aliasTarget IAliasRecordTarget) RecordTarget
Use an alias as target.
func RecordTarget_FromIpAddresses ¶
func RecordTarget_FromIpAddresses(ipAddresses ...*string) RecordTarget
Use ip addresses as target.
func RecordTarget_FromValues ¶
func RecordTarget_FromValues(values ...*string) RecordTarget
Use string values as target.
type RecordType ¶
type RecordType string
The record type.
const ( // route traffic to a resource, such as a web server, using an IPv4 address in dotted decimal notation. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#AFormat // RecordType_A RecordType = "A" // route traffic to a resource, such as a web server, using an IPv6 address in colon-separated hexadecimal format. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#AAAAFormat // RecordType_AAAA RecordType = "AAAA" // A CAA record specifies which certificate authorities (CAs) are allowed to issue certificates for a domain or subdomain. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#CAAFormat // RecordType_CAA RecordType = "CAA" // A CNAME record maps DNS queries for the name of the current record, such as acme.example.com, to another domain (example.com or example.net) or subdomain (acme.example.com or zenith.example.org). // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#CNAMEFormat // RecordType_CNAME RecordType = "CNAME" // A delegation signer (DS) record refers a zone key for a delegated subdomain zone. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#DSFormat // RecordType_DS RecordType = "DS" // An MX record specifies the names of your mail servers and, if you have two or more mail servers, the priority order. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#MXFormat // RecordType_MX RecordType = "MX" // A Name Authority Pointer (NAPTR) is a type of record that is used by Dynamic Delegation Discovery System (DDDS) applications to convert one value to another or to replace one value with another. // // For example, one common use is to convert phone numbers into SIP URIs. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#NAPTRFormat // RecordType_NAPTR RecordType = "NAPTR" // An NS record identifies the name servers for the hosted zone. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#NSFormat // RecordType_NS RecordType = "NS" // A PTR record maps an IP address to the corresponding domain name. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#PTRFormat // RecordType_PTR RecordType = "PTR" // A start of authority (SOA) record provides information about a domain and the corresponding Amazon Route 53 hosted zone. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#SOAFormat // RecordType_SOA RecordType = "SOA" // SPF records were formerly used to verify the identity of the sender of email messages. // // Instead of an SPF record, we recommend that you create a TXT record that contains the applicable value. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#SPFFormat // RecordType_SPF RecordType = "SPF" // An SRV record Value element consists of four space-separated values. // // The first three values are // decimal numbers representing priority, weight, and port. The fourth value is a domain name. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#SRVFormat // RecordType_SRV RecordType = "SRV" // A TXT record contains one or more strings that are enclosed in double quotation marks ("). // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#TXTFormat // RecordType_TXT RecordType = "TXT" )
type SrvRecord ¶
type SrvRecord interface { RecordSet // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A DNS SRV record.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone srvRecord := awscdk.Aws_route53.NewSrvRecord(this, jsii.String("MySrvRecord"), &SrvRecordProps{ Values: []srvRecordValue{ &srvRecordValue{ HostName: jsii.String("hostName"), Port: jsii.Number(123), Priority: jsii.Number(123), Weight: jsii.Number(123), }, }, Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), })
func NewSrvRecord ¶
func NewSrvRecord(scope constructs.Construct, id *string, props *SrvRecordProps) SrvRecord
type SrvRecordProps ¶
type SrvRecordProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // The values. Values *[]*SrvRecordValue `field:"required" json:"values" yaml:"values"` }
Construction properties for a SrvRecord.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone srvRecordProps := &SrvRecordProps{ Values: []srvRecordValue{ &srvRecordValue{ HostName: jsii.String("hostName"), Port: jsii.Number(123), Priority: jsii.Number(123), Weight: jsii.Number(123), }, }, Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), }
type SrvRecordValue ¶
type SrvRecordValue struct { // The server host name. HostName *string `field:"required" json:"hostName" yaml:"hostName"` // The port. Port *float64 `field:"required" json:"port" yaml:"port"` // The priority. Priority *float64 `field:"required" json:"priority" yaml:"priority"` // The weight. Weight *float64 `field:"required" json:"weight" yaml:"weight"` }
Properties for a SRV record value.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" srvRecordValue := &SrvRecordValue{ HostName: jsii.String("hostName"), Port: jsii.Number(123), Priority: jsii.Number(123), Weight: jsii.Number(123), }
type TxtRecord ¶
type TxtRecord interface { RecordSet // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A DNS TXT record.
Example:
var myZone hostedZone route53.NewTxtRecord(this, jsii.String("TXTRecord"), &TxtRecordProps{ Zone: myZone, RecordName: jsii.String("_foo"), // If the name ends with a ".", it will be used as-is; // if it ends with a "." followed by the zone name, a trailing "." will be added automatically; // otherwise, a ".", the zone name, and a trailing "." will be added automatically. // Defaults to zone root if not specified. Values: []*string{ jsii.String("Bar!"), jsii.String("Baz?"), }, Ttl: awscdk.Duration_Minutes(jsii.Number(90)), })
func NewTxtRecord ¶
func NewTxtRecord(scope constructs.Construct, id *string, props *TxtRecordProps) TxtRecord
type TxtRecordProps ¶
type TxtRecordProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // The text values. Values *[]*string `field:"required" json:"values" yaml:"values"` }
Construction properties for a TxtRecord.
Example:
var myZone hostedZone route53.NewTxtRecord(this, jsii.String("TXTRecord"), &TxtRecordProps{ Zone: myZone, RecordName: jsii.String("_foo"), // If the name ends with a ".", it will be used as-is; // if it ends with a "." followed by the zone name, a trailing "." will be added automatically; // otherwise, a ".", the zone name, and a trailing "." will be added automatically. // Defaults to zone root if not specified. Values: []*string{ jsii.String("Bar!"), jsii.String("Baz?"), }, Ttl: awscdk.Duration_Minutes(jsii.Number(90)), })
type VpcEndpointServiceDomainName ¶
type VpcEndpointServiceDomainName interface { constructs.Construct // The domain name associated with the private DNS configuration. DomainName() *string SetDomainName(val *string) // The tree node. Node() constructs.Node // Returns a string representation of this construct. ToString() *string }
A Private DNS configuration for a VPC endpoint service.
Example:
import "github.com/aws/aws-cdk-go/awscdk" var zone publicHostedZone var vpces vpcEndpointService awscdk.NewVpcEndpointServiceDomainName(this, jsii.String("EndpointDomain"), &VpcEndpointServiceDomainNameProps{ EndpointService: vpces, DomainName: jsii.String("my-stuff.aws-cdk.dev"), PublicHostedZone: zone, })
func NewVpcEndpointServiceDomainName ¶
func NewVpcEndpointServiceDomainName(scope constructs.Construct, id *string, props *VpcEndpointServiceDomainNameProps) VpcEndpointServiceDomainName
type VpcEndpointServiceDomainNameProps ¶
type VpcEndpointServiceDomainNameProps struct { // The domain name to use. // // This domain name must be owned by this account (registered through Route53), // or delegated to this account. Domain ownership will be verified by AWS before // private DNS can be used. // See: https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-dns-validation.html // DomainName *string `field:"required" json:"domainName" yaml:"domainName"` // The VPC Endpoint Service to configure Private DNS for. EndpointService awsec2.IVpcEndpointService `field:"required" json:"endpointService" yaml:"endpointService"` // The public hosted zone to use for the domain. PublicHostedZone IPublicHostedZone `field:"required" json:"publicHostedZone" yaml:"publicHostedZone"` }
Properties to configure a VPC Endpoint Service domain name.
Example:
import "github.com/aws/aws-cdk-go/awscdk" var zone publicHostedZone var vpces vpcEndpointService awscdk.NewVpcEndpointServiceDomainName(this, jsii.String("EndpointDomain"), &VpcEndpointServiceDomainNameProps{ EndpointService: vpces, DomainName: jsii.String("my-stuff.aws-cdk.dev"), PublicHostedZone: zone, })
type ZoneDelegationOptions ¶
type ZoneDelegationOptions struct { // A comment to add on the DNS record created to incorporate the delegation. // Default: none. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // The TTL (Time To Live) of the DNS delegation record in DNS caches. // Default: 172800. // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` }
Options available when creating a delegation relationship from one PublicHostedZone to another.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" zoneDelegationOptions := &ZoneDelegationOptions{ Comment: jsii.String("comment"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), }
type ZoneDelegationRecord ¶
type ZoneDelegationRecord interface { RecordSet // The domain name of the record. DomainName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. ToString() *string }
A record to delegate further lookups to a different set of name servers.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone zoneDelegationRecord := awscdk.Aws_route53.NewZoneDelegationRecord(this, jsii.String("MyZoneDelegationRecord"), &ZoneDelegationRecordProps{ NameServers: []*string{ jsii.String("nameServers"), }, Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), })
func NewZoneDelegationRecord ¶
func NewZoneDelegationRecord(scope constructs.Construct, id *string, props *ZoneDelegationRecordProps) ZoneDelegationRecord
type ZoneDelegationRecordProps ¶
type ZoneDelegationRecordProps struct { // The hosted zone in which to define the new record. Zone IHostedZone `field:"required" json:"zone" yaml:"zone"` // A comment to add on the record. // Default: no comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Whether to delete the same record set in the hosted zone if it already exists (dangerous!). // // This allows to deploy a new record set while minimizing the downtime because the // new record set will be created immediately after the existing one is deleted. It // also avoids "manual" actions to delete existing record sets. // // > **N.B.:** this feature is dangerous, use with caution! It can only be used safely when // > `deleteExisting` is set to `true` as soon as the resource is added to the stack. Changing // > an existing Record Set's `deleteExisting` property from `false -> true` after deployment // > will delete the record! // Default: false. // DeleteExisting *bool `field:"optional" json:"deleteExisting" yaml:"deleteExisting"` // The geographical origin for this record to return DNS records based on the user's location. GeoLocation GeoLocation `field:"optional" json:"geoLocation" yaml:"geoLocation"` // Whether to return multiple values, such as IP addresses for your web servers, in response to DNS queries. // Default: false. // MultiValueAnswer *bool `field:"optional" json:"multiValueAnswer" yaml:"multiValueAnswer"` // The subdomain name for this record. This should be relative to the zone root name. // // For example, if you want to create a record for acme.example.com, specify // "acme". // // You can also specify the fully qualified domain name which terminates with a // ".". For example, "acme.example.com.". // Default: zone root. // RecordName *string `field:"optional" json:"recordName" yaml:"recordName"` // The Amazon EC2 Region where you created the resource that this resource record set refers to. // // The resource typically is an AWS resource, such as an EC2 instance or an ELB load balancer, // and is referred to by an IP address or a DNS domain name, depending on the record type. // // When Amazon Route 53 receives a DNS query for a domain name and type for which you have created latency resource record sets, // Route 53 selects the latency resource record set that has the lowest latency between the end user and the associated Amazon EC2 Region. // Route 53 then returns the value that is associated with the selected resource record set. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-recordset.html#cfn-route53-recordset-region // // Default: - Do not set latency based routing. // Region *string `field:"optional" json:"region" yaml:"region"` // A string used to distinguish between different records with the same combination of DNS name and type. // // It can only be set when either weight or geoLocation is defined. // // This parameter must be between 1 and 128 characters in length. // Default: - Auto generated string. // SetIdentifier *string `field:"optional" json:"setIdentifier" yaml:"setIdentifier"` // The resource record cache time to live (TTL). // Default: Duration.minutes(30) // Ttl awscdk.Duration `field:"optional" json:"ttl" yaml:"ttl"` // Among resource record sets that have the same combination of DNS name and type, a value that determines the proportion of DNS queries that Amazon Route 53 responds to using the current resource record set. // // Route 53 calculates the sum of the weights for the resource record sets that have the same combination of DNS name and type. // Route 53 then responds to queries based on the ratio of a resource's weight to the total. // // This value can be a number between 0 and 255. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy-weighted.html // // Default: - Do not set weighted routing. // Weight *float64 `field:"optional" json:"weight" yaml:"weight"` // The name servers to report in the delegation records. NameServers *[]*string `field:"required" json:"nameServers" yaml:"nameServers"` }
Construction properties for a ZoneDelegationRecord.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import cdk "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var geoLocation geoLocation var hostedZone hostedZone zoneDelegationRecordProps := &ZoneDelegationRecordProps{ NameServers: []*string{ jsii.String("nameServers"), }, Zone: hostedZone, // the properties below are optional Comment: jsii.String("comment"), DeleteExisting: jsii.Boolean(false), GeoLocation: geoLocation, MultiValueAnswer: jsii.Boolean(false), RecordName: jsii.String("recordName"), Region: jsii.String("region"), SetIdentifier: jsii.String("setIdentifier"), Ttl: cdk.Duration_Minutes(jsii.Number(30)), Weight: jsii.Number(123), }
type ZoneSigningOptions ¶ added in v2.138.0
type ZoneSigningOptions struct { // The customer-managed KMS key that that will be used to sign the records. // // The KMS Key must be unique for each KSK within a hosted zone. Additionally, the // KMS key must be an asymetric customer-managed key using the ECC_NIST_P256 algorithm. // See: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html // KmsKey awskms.IKey `field:"required" json:"kmsKey" yaml:"kmsKey"` // The name for the key signing key. // // This name must be unique within a hosted zone. // Default: an autogenerated name. // KeySigningKeyName *string `field:"optional" json:"keySigningKeyName" yaml:"keySigningKeyName"` }
Options for enabling key signing from a hosted zone.
Example:
kmsKey := kms.NewKey(this, jsii.String("KmsCMK"), &KeyProps{ KeySpec: kms.KeySpec_ECC_NIST_P256, KeyUsage: kms.KeyUsage_SIGN_VERIFY, }) hostedZone := route53.NewHostedZone(this, jsii.String("HostedZone"), &HostedZoneProps{ ZoneName: jsii.String("example.com"), }) // Enable DNSSEC signing for the zone hostedZone.EnableDnssec(&ZoneSigningOptions{ KmsKey: KmsKey, })
Source Files ¶
- ARecord.go
- ARecordAttrs.go
- ARecordProps.go
- ARecord__checks.go
- AaaaRecord.go
- AaaaRecordProps.go
- AaaaRecord__checks.go
- AliasRecordTargetConfig.go
- CaaAmazonRecord.go
- CaaAmazonRecordProps.go
- CaaAmazonRecord__checks.go
- CaaRecord.go
- CaaRecordProps.go
- CaaRecordValue.go
- CaaRecord__checks.go
- CaaTag.go
- CfnCidrCollection.go
- CfnCidrCollectionProps.go
- CfnCidrCollection_LocationProperty.go
- CfnCidrCollection__checks.go
- CfnDNSSEC.go
- CfnDNSSECProps.go
- CfnDNSSEC__checks.go
- CfnHealthCheck.go
- CfnHealthCheckProps.go
- CfnHealthCheck_AlarmIdentifierProperty.go
- CfnHealthCheck_HealthCheckConfigProperty.go
- CfnHealthCheck_HealthCheckTagProperty.go
- CfnHealthCheck__checks.go
- CfnHostedZone.go
- CfnHostedZoneProps.go
- CfnHostedZone_HostedZoneConfigProperty.go
- CfnHostedZone_HostedZoneTagProperty.go
- CfnHostedZone_QueryLoggingConfigProperty.go
- CfnHostedZone_VPCProperty.go
- CfnHostedZone__checks.go
- CfnKeySigningKey.go
- CfnKeySigningKeyProps.go
- CfnKeySigningKey__checks.go
- CfnRecordSet.go
- CfnRecordSetGroup.go
- CfnRecordSetGroupProps.go
- CfnRecordSetGroup_AliasTargetProperty.go
- CfnRecordSetGroup_CidrRoutingConfigProperty.go
- CfnRecordSetGroup_CoordinatesProperty.go
- CfnRecordSetGroup_GeoLocationProperty.go
- CfnRecordSetGroup_GeoProximityLocationProperty.go
- CfnRecordSetGroup_RecordSetProperty.go
- CfnRecordSetGroup__checks.go
- CfnRecordSetProps.go
- CfnRecordSet_AliasTargetProperty.go
- CfnRecordSet_CidrRoutingConfigProperty.go
- CfnRecordSet_CoordinatesProperty.go
- CfnRecordSet_GeoLocationProperty.go
- CfnRecordSet_GeoProximityLocationProperty.go
- CfnRecordSet__checks.go
- CnameRecord.go
- CnameRecordProps.go
- CnameRecord__checks.go
- CommonHostedZoneProps.go
- Continent.go
- CrossAccountZoneDelegationRecord.go
- CrossAccountZoneDelegationRecordProps.go
- CrossAccountZoneDelegationRecord__checks.go
- DsRecord.go
- DsRecordProps.go
- DsRecord__checks.go
- GeoLocation.go
- GeoLocation__checks.go
- HostedZone.go
- HostedZoneAttributes.go
- HostedZoneProps.go
- HostedZoneProviderProps.go
- HostedZone__checks.go
- IAliasRecordTarget.go
- IAliasRecordTarget__checks.go
- IHostedZone.go
- IHostedZone__checks.go
- IKeySigningKey.go
- IPrivateHostedZone.go
- IPublicHostedZone.go
- IRecordSet.go
- KeySigningKey.go
- KeySigningKeyAttributes.go
- KeySigningKeyProps.go
- KeySigningKeyStatus.go
- KeySigningKey__checks.go
- MxRecord.go
- MxRecordProps.go
- MxRecordValue.go
- MxRecord__checks.go
- NsRecord.go
- NsRecordProps.go
- NsRecord__checks.go
- PrivateHostedZone.go
- PrivateHostedZoneProps.go
- PrivateHostedZone__checks.go
- PublicHostedZone.go
- PublicHostedZoneAttributes.go
- PublicHostedZoneProps.go
- PublicHostedZone__checks.go
- RecordSet.go
- RecordSetOptions.go
- RecordSetProps.go
- RecordSet__checks.go
- RecordTarget.go
- RecordTarget__checks.go
- RecordType.go
- SrvRecord.go
- SrvRecordProps.go
- SrvRecordValue.go
- SrvRecord__checks.go
- TxtRecord.go
- TxtRecordProps.go
- TxtRecord__checks.go
- VpcEndpointServiceDomainName.go
- VpcEndpointServiceDomainNameProps.go
- VpcEndpointServiceDomainName__checks.go
- ZoneDelegationOptions.go
- ZoneDelegationRecord.go
- ZoneDelegationRecordProps.go
- ZoneDelegationRecord__checks.go
- ZoneSigningOptions.go
- main.go