amazonka-route53-autonaming-1.6.1: Amazon Route 53 Auto Naming SDK.

Copyright(c) 2013-2018 Brendan Hay
LicenseMozilla Public License, v. 2.0.
MaintainerBrendan Hay <brendan.g.hay+amazonka@gmail.com>
Stabilityauto-generated
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell2010

Network.AWS.Route53AutoNaming.RegisterInstance

Contents

Description

Creates or updates one or more records and optionally a health check based on the settings in a specified service. When you submit a RegisterInstance request, Amazon Route 53 does the following:

  • For each DNS record that you define in the service specified by ServiceId , creates or updates a record in the hosted zone that is associated with the corresponding namespace
  • If the service includes HealthCheckConfig , creates or updates a health check based on the settings in the health check configuration
  • Associates the health check, if any, with each of the records

Important: One RegisterInstance request must complete before you can submit another request and specify the same service ID and instance ID.

For more information, see CreateService .

When Route 53 receives a DNS query for the specified DNS name, it returns the applicable value:

  • If the health check is healthy : returns all the records
  • If the health check is unhealthy : returns the applicable value for the last healthy instance
  • If you didn't specify a health check configuration : returns all the records

For the current limit on the number of instances that you can register using the same namespace and using the same service, see Limits on Auto Naming in the Route 53 Developer Guide .

Synopsis

Creating a Request

registerInstance Source #

Creates a value of RegisterInstance with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

  • riCreatorRequestId - A unique string that identifies the request and that allows failed RegisterInstance requests to be retried without the risk of executing the operation twice. You must use a unique CreatorRequestId string every time you submit a RegisterInstance request if you're registering additional instances for the same namespace and service. CreatorRequestId can be any unique string, for example, a date/time stamp.
  • riServiceId - The ID of the service that you want to use for settings for the records and health check that Route 53 will create.
  • riInstanceId - An identifier that you want to associate with the instance. Note the following: * If the service that is specified by ServiceId includes settings for an SRV record, the value of InstanceId is automatically included as part of the value for the SRV record. For more information, see 'DnsRecord$Type' . * You can use this value to update an existing instance. * To register a new instance, you must specify a value that is unique among instances that you register by using the same service. * If you specify an existing InstanceId and ServiceId , Route 53 updates the existing records. If there's also an existing health check, Route 53 deletes the old health check and creates a new one.
  • riAttributes - A string map that contains the following information for the service that you specify in ServiceId : * The attributes that apply to the records that are defined in the service. * For each attribute, the applicable value. Supported attribute keys include the following: AWS_ALIAS_DNS_NAME __ If you want Route 53 to create an alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer. For information about how to get the DNS name, see DNSName in the topic AliasTarget . Note the following: * The configuration for the service that is specified by ServiceId must include settings for an A record, an AAAA record, or both. * In the service that is specified by ServiceId , the value of RoutingPolicy must be WEIGHTED . * If the service that is specified by ServiceId includes HealthCheckConfig settings, Route 53 will create the health check, but it won't associate the health check with the alias record. * Auto naming currently doesn't support creating alias records that route traffic to AWS resources other than ELB load balancers. * If you specify a value for AWS_ALIAS_DNS_NAME , don't specify values for any of the AWS_INSTANCE attributes. AWS_INSTANCE_CNAME If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries, for example, example.com . This value is required if the service specified by ServiceId includes settings for an CNAME record. AWS_INSTANCE_IPV4 If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries, for example, 192.0.2.44 . This value is required if the service specified by ServiceId includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4 , AWS_INSTANCE_IPV6 , or both. AWS_INSTANCE_IPV6 If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries, for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345 . This value is required if the service specified by ServiceId includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4 , AWS_INSTANCE_IPV6 , or both. AWS_INSTANCE_PORT__ If the service includes an SRV record, the value that you want Route 53 to return for the port. If the service includes HealthCheckConfig , the port on the endpoint that you want Route 53 to send requests to. This value is required if you specified settings for an SRV record when you created the service.

data RegisterInstance Source #

See: registerInstance smart constructor.

Instances
Eq RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Data RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RegisterInstance -> c RegisterInstance #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RegisterInstance #

toConstr :: RegisterInstance -> Constr #

dataTypeOf :: RegisterInstance -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RegisterInstance) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RegisterInstance) #

gmapT :: (forall b. Data b => b -> b) -> RegisterInstance -> RegisterInstance #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RegisterInstance -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RegisterInstance -> r #

gmapQ :: (forall d. Data d => d -> u) -> RegisterInstance -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RegisterInstance -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RegisterInstance -> m RegisterInstance #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RegisterInstance -> m RegisterInstance #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RegisterInstance -> m RegisterInstance #

Read RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Show RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Generic RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Associated Types

type Rep RegisterInstance :: Type -> Type #

Hashable RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

ToJSON RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

AWSRequest RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Associated Types

type Rs RegisterInstance :: Type #

ToHeaders RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

ToPath RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

ToQuery RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

NFData RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Methods

rnf :: RegisterInstance -> () #

type Rep RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

type Rep RegisterInstance = D1 (MetaData "RegisterInstance" "Network.AWS.Route53AutoNaming.RegisterInstance" "amazonka-route53-autonaming-1.6.1-6b8id7oIY1vC1CYd7O7Vs3" False) (C1 (MetaCons "RegisterInstance'" PrefixI True) ((S1 (MetaSel (Just "_riCreatorRequestId") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe Text)) :*: S1 (MetaSel (Just "_riServiceId") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Text)) :*: (S1 (MetaSel (Just "_riInstanceId") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Text) :*: S1 (MetaSel (Just "_riAttributes") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Map Text Text)))))
type Rs RegisterInstance Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Request Lenses

riCreatorRequestId :: Lens' RegisterInstance (Maybe Text) Source #

A unique string that identifies the request and that allows failed RegisterInstance requests to be retried without the risk of executing the operation twice. You must use a unique CreatorRequestId string every time you submit a RegisterInstance request if you're registering additional instances for the same namespace and service. CreatorRequestId can be any unique string, for example, a date/time stamp.

riServiceId :: Lens' RegisterInstance Text Source #

The ID of the service that you want to use for settings for the records and health check that Route 53 will create.

riInstanceId :: Lens' RegisterInstance Text Source #

An identifier that you want to associate with the instance. Note the following: * If the service that is specified by ServiceId includes settings for an SRV record, the value of InstanceId is automatically included as part of the value for the SRV record. For more information, see 'DnsRecord$Type' . * You can use this value to update an existing instance. * To register a new instance, you must specify a value that is unique among instances that you register by using the same service. * If you specify an existing InstanceId and ServiceId , Route 53 updates the existing records. If there's also an existing health check, Route 53 deletes the old health check and creates a new one.

riAttributes :: Lens' RegisterInstance (HashMap Text Text) Source #

A string map that contains the following information for the service that you specify in ServiceId : * The attributes that apply to the records that are defined in the service. * For each attribute, the applicable value. Supported attribute keys include the following: AWS_ALIAS_DNS_NAME __ If you want Route 53 to create an alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer. For information about how to get the DNS name, see DNSName in the topic AliasTarget . Note the following: * The configuration for the service that is specified by ServiceId must include settings for an A record, an AAAA record, or both. * In the service that is specified by ServiceId , the value of RoutingPolicy must be WEIGHTED . * If the service that is specified by ServiceId includes HealthCheckConfig settings, Route 53 will create the health check, but it won't associate the health check with the alias record. * Auto naming currently doesn't support creating alias records that route traffic to AWS resources other than ELB load balancers. * If you specify a value for AWS_ALIAS_DNS_NAME , don't specify values for any of the AWS_INSTANCE attributes. AWS_INSTANCE_CNAME If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries, for example, example.com . This value is required if the service specified by ServiceId includes settings for an CNAME record. AWS_INSTANCE_IPV4 If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries, for example, 192.0.2.44 . This value is required if the service specified by ServiceId includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4 , AWS_INSTANCE_IPV6 , or both. AWS_INSTANCE_IPV6 If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries, for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345 . This value is required if the service specified by ServiceId includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for AWS_INSTANCE_IPV4 , AWS_INSTANCE_IPV6 , or both. AWS_INSTANCE_PORT__ If the service includes an SRV record, the value that you want Route 53 to return for the port. If the service includes HealthCheckConfig , the port on the endpoint that you want Route 53 to send requests to. This value is required if you specified settings for an SRV record when you created the service.

Destructuring the Response

registerInstanceResponse Source #

Creates a value of RegisterInstanceResponse with the minimum fields required to make a request.

Use one of the following lenses to modify other fields as desired:

  • rirsOperationId - A value that you can use to determine whether the request completed successfully. To get the status of the operation, see GetOperation .
  • rirsResponseStatus - -- | The response status code.

data RegisterInstanceResponse Source #

See: registerInstanceResponse smart constructor.

Instances
Eq RegisterInstanceResponse Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Data RegisterInstanceResponse Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RegisterInstanceResponse -> c RegisterInstanceResponse #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RegisterInstanceResponse #

toConstr :: RegisterInstanceResponse -> Constr #

dataTypeOf :: RegisterInstanceResponse -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RegisterInstanceResponse) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RegisterInstanceResponse) #

gmapT :: (forall b. Data b => b -> b) -> RegisterInstanceResponse -> RegisterInstanceResponse #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RegisterInstanceResponse -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RegisterInstanceResponse -> r #

gmapQ :: (forall d. Data d => d -> u) -> RegisterInstanceResponse -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> RegisterInstanceResponse -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> RegisterInstanceResponse -> m RegisterInstanceResponse #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RegisterInstanceResponse -> m RegisterInstanceResponse #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RegisterInstanceResponse -> m RegisterInstanceResponse #

Read RegisterInstanceResponse Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Show RegisterInstanceResponse Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Generic RegisterInstanceResponse Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

Associated Types

type Rep RegisterInstanceResponse :: Type -> Type #

NFData RegisterInstanceResponse Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

type Rep RegisterInstanceResponse Source # 
Instance details

Defined in Network.AWS.Route53AutoNaming.RegisterInstance

type Rep RegisterInstanceResponse = D1 (MetaData "RegisterInstanceResponse" "Network.AWS.Route53AutoNaming.RegisterInstance" "amazonka-route53-autonaming-1.6.1-6b8id7oIY1vC1CYd7O7Vs3" False) (C1 (MetaCons "RegisterInstanceResponse'" PrefixI True) (S1 (MetaSel (Just "_rirsOperationId") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (Maybe Text)) :*: S1 (MetaSel (Just "_rirsResponseStatus") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int)))

Response Lenses

rirsOperationId :: Lens' RegisterInstanceResponse (Maybe Text) Source #

A value that you can use to determine whether the request completed successfully. To get the status of the operation, see GetOperation .