amazonka-route53-autonaming-1.6.0: 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 # 
Data RegisterInstance Source # 

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 # 
Show RegisterInstance Source # 
Generic RegisterInstance Source # 
Hashable RegisterInstance Source # 
ToJSON RegisterInstance Source # 
NFData RegisterInstance Source # 

Methods

rnf :: RegisterInstance -> () #

AWSRequest RegisterInstance Source # 
ToHeaders RegisterInstance Source # 
ToPath RegisterInstance Source # 
ToQuery RegisterInstance Source # 
type Rep RegisterInstance Source # 
type Rep RegisterInstance = D1 * (MetaData "RegisterInstance" "Network.AWS.Route53AutoNaming.RegisterInstance" "amazonka-route53-autonaming-1.6.0-4f8jSBk5IlzKqnGwUJVunt" False) (C1 * (MetaCons "RegisterInstance'" PrefixI True) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "_riCreatorRequestId") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (Maybe Text))) (S1 * (MetaSel (Just Symbol "_riServiceId") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * Text))) ((:*:) * (S1 * (MetaSel (Just Symbol "_riInstanceId") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * Text)) (S1 * (MetaSel (Just Symbol "_riAttributes") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (Map Text Text))))))
type Rs RegisterInstance Source # 

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 # 
Data RegisterInstanceResponse Source # 

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 # 
Show RegisterInstanceResponse Source # 
Generic RegisterInstanceResponse Source # 
NFData RegisterInstanceResponse Source # 
type Rep RegisterInstanceResponse Source # 
type Rep RegisterInstanceResponse = D1 * (MetaData "RegisterInstanceResponse" "Network.AWS.Route53AutoNaming.RegisterInstance" "amazonka-route53-autonaming-1.6.0-4f8jSBk5IlzKqnGwUJVunt" False) (C1 * (MetaCons "RegisterInstanceResponse'" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "_rirsOperationId") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * (Maybe Text))) (S1 * (MetaSel (Just Symbol "_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 .