You are viewing documentation for version 3 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: Aws::ServiceDiscovery::Client

Inherits:
Seahorse::Client::Base show all
Includes:
ClientStubs
Defined in:
gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Base

#config, #handlers

API Operations collapse

Instance Method Summary collapse

Methods included from ClientStubs

#stub_data, #stub_responses

Methods inherited from Seahorse::Client::Base

add_plugin, api, clear_plugins, define, new, #operation_names, plugins, remove_plugin, set_api, set_plugins

Methods included from Seahorse::Client::HandlerBuilder

#handle, #handle_request, #handle_response

Constructor Details

#initialize(*args) ⇒ Client

Returns a new instance of Client

Parameters:

  • options (Hash)

    a customizable set of options



152
153
154
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 152

def initialize(*args)
  super
end

Instance Method Details

#create_private_dns_namespace(params = {}) ⇒ Types::CreatePrivateDnsNamespaceResponse

Creates a private namespace based on DNS, which will be visible only inside a specified Amazon VPC. The namespace defines your service naming scheme. For example, if you name your namespace example.com and name your service backend, the resulting DNS name for the service will be backend.example.com. You can associate more than one service with the same namespace.

Examples:

Request syntax with placeholder values


resp = client.create_private_dns_namespace({
  name: "NamespaceName", # required
  creator_request_id: "ResourceId",
  description: "ResourceDescription",
  vpc: "ResourceId", # required
})

Response structure


resp.operation_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name that you want to assign to this namespace. When you create a namespace, Amazon Route 53 automatically creates a hosted zone that has the same name as the namespace.

  • :creator_request_id (String)

    A unique string that identifies the request and that allows failed CreatePrivateDnsNamespace requests to be retried without the risk of executing the operation twice. CreatorRequestId can be any unique string, for example, a date/time stamp.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

  • :description (String)

    A description for the namespace.

  • :vpc (required, String)

    The ID of the Amazon VPC that you want to associate the namespace with.

Returns:

See Also:



207
208
209
210
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 207

def create_private_dns_namespace(params = {}, options = {})
  req = build_request(:create_private_dns_namespace, params)
  req.send_request(options)
end

#create_public_dns_namespace(params = {}) ⇒ Types::CreatePublicDnsNamespaceResponse

Creates a public namespace based on DNS, which will be visible on the internet. The namespace defines your service naming scheme. For example, if you name your namespace example.com and name your service backend, the resulting DNS name for the service will be backend.example.com. You can associate more than one service with the same namespace.

Examples:

Request syntax with placeholder values


resp = client.create_public_dns_namespace({
  name: "NamespaceName", # required
  creator_request_id: "ResourceId",
  description: "ResourceDescription",
})

Response structure


resp.operation_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name that you want to assign to this namespace.

  • :creator_request_id (String)

    A unique string that identifies the request and that allows failed CreatePublicDnsNamespace requests to be retried without the risk of executing the operation twice. CreatorRequestId can be any unique string, for example, a date/time stamp.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

  • :description (String)

    A description for the namespace.

Returns:

See Also:



254
255
256
257
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 254

def create_public_dns_namespace(params = {}, options = {})
  req = build_request(:create_public_dns_namespace, params)
  req.send_request(options)
end

#create_service(params = {}) ⇒ Types::CreateServiceResponse

Creates a service, which defines the configuration for the following entities:

  • Up to three records (A, AAAA, and SRV) or one CNAME record

  • Optionally, a health check

After you create the service, you can submit a RegisterInstance request, and Amazon Route 53 uses the values in the configuration to create the specified entities.

Examples:

Request syntax with placeholder values


resp = client.create_service({
  name: "ServiceName", # required
  creator_request_id: "ResourceId",
  description: "ResourceDescription",
  dns_config: { # required
    namespace_id: "ResourceId", # required
    routing_policy: "MULTIVALUE", # accepts MULTIVALUE, WEIGHTED
    dns_records: [ # required
      {
        type: "SRV", # required, accepts SRV, A, AAAA, CNAME
        ttl: 1, # required
      },
    ],
  },
  health_check_config: {
    type: "HTTP", # required, accepts HTTP, HTTPS, TCP
    resource_path: "ResourcePath",
    failure_threshold: 1,
  },
})

Response structure


resp.service.id #=> String
resp.service.arn #=> String
resp.service.name #=> String
resp.service.description #=> String
resp.service.instance_count #=> Integer
resp.service.dns_config.namespace_id #=> String
resp.service.dns_config.routing_policy #=> String, one of "MULTIVALUE", "WEIGHTED"
resp.service.dns_config.dns_records #=> Array
resp.service.dns_config.dns_records[0].type #=> String, one of "SRV", "A", "AAAA", "CNAME"
resp.service.dns_config.dns_records[0].ttl #=> Integer
resp.service.health_check_config.type #=> String, one of "HTTP", "HTTPS", "TCP"
resp.service.health_check_config.resource_path #=> String
resp.service.health_check_config.failure_threshold #=> Integer
resp.service.create_date #=> Time
resp.service.creator_request_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name that you want to assign to the service.

  • :creator_request_id (String)

    A unique string that identifies the request and that allows failed CreateService requests to be retried without the risk of executing the operation twice. CreatorRequestId can be any unique string, for example, a date/time stamp.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

  • :description (String)

    A description for the service.

  • :dns_config (required, Types::DnsConfig)

    A complex type that contains information about the records that you want Route 53 to create when you register an instance.

  • :health_check_config (Types::HealthCheckConfig)

    Public DNS namespaces only. A complex type that contains settings for an optional health check. If you specify settings for a health check, Route 53 associates the health check with all the records that you specify in DnsConfig.

    For information about the charges for health checks, see Route 53 Pricing.

Returns:

See Also:



351
352
353
354
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 351

def create_service(params = {}, options = {})
  req = build_request(:create_service, params)
  req.send_request(options)
end

#delete_namespace(params = {}) ⇒ Types::DeleteNamespaceResponse

Deletes a namespace from the current account. If the namespace still contains one or more services, the request fails.

Examples:

Request syntax with placeholder values


resp = client.delete_namespace({
  id: "ResourceId", # required
})

Response structure


resp.operation_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :id (required, String)

    The ID of the namespace that you want to delete.

Returns:

See Also:



380
381
382
383
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 380

def delete_namespace(params = {}, options = {})
  req = build_request(:delete_namespace, params)
  req.send_request(options)
end

#delete_service(params = {}) ⇒ Struct

Deletes a specified service. If the service still contains one or more registered instances, the request fails.

Examples:

Request syntax with placeholder values


resp = client.delete_service({
  id: "ResourceId", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :id (required, String)

    The ID of the service that you want to delete.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



403
404
405
406
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 403

def delete_service(params = {}, options = {})
  req = build_request(:delete_service, params)
  req.send_request(options)
end

#deregister_instance(params = {}) ⇒ Types::DeregisterInstanceResponse

Deletes the records and the health check, if any, that Amazon Route 53 created for the specified instance.

Examples:

Request syntax with placeholder values


resp = client.deregister_instance({
  service_id: "ResourceId", # required
  instance_id: "ResourceId", # required
})

Response structure


resp.operation_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :service_id (required, String)

    The ID of the service that the instance is associated with.

  • :instance_id (required, String)

    The value that you specified for Id in the RegisterInstance request.

Returns:

See Also:



436
437
438
439
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 436

def deregister_instance(params = {}, options = {})
  req = build_request(:deregister_instance, params)
  req.send_request(options)
end

#get_instance(params = {}) ⇒ Types::GetInstanceResponse

Gets information about a specified instance.

Examples:

Request syntax with placeholder values


resp = client.get_instance({
  service_id: "ResourceId", # required
  instance_id: "ResourceId", # required
})

Response structure


resp.instance.id #=> String
resp.instance.creator_request_id #=> String
resp.instance.attributes #=> Hash
resp.instance.attributes["AttrKey"] #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :service_id (required, String)

    The ID of the service that the instance is associated with.

  • :instance_id (required, String)

    The ID of the instance that you want to get information about.

Returns:

See Also:



471
472
473
474
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 471

def get_instance(params = {}, options = {})
  req = build_request(:get_instance, params)
  req.send_request(options)
end

#get_instances_health_status(params = {}) ⇒ Types::GetInstancesHealthStatusResponse

Gets the current health status (Healthy, Unhealthy, or Unknown) of one or more instances that are associated with a specified service.

There is a brief delay between when you register an instance and when the health status for the instance is available.

Examples:

Request syntax with placeholder values


resp = client.get_instances_health_status({
  service_id: "ResourceId", # required
  instances: ["ResourceId"],
  max_results: 1,
  next_token: "NextToken",
})

Response structure


resp.status #=> Hash
resp.status["ResourceId"] #=> String, one of "HEALTHY", "UNHEALTHY", "UNKNOWN"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :service_id (required, String)

    The ID of the service that the instance is associated with.

  • :instances (Array<String>)

    An array that contains the IDs of all the instances that you want to get the health status for.

    If you omit Instances, Amazon Route 53 returns the health status for all the instances that are associated with the specified service.

    To get the IDs for the instances that you've registered by using a specified service, submit a ListInstances request.

  • :max_results (Integer)

    The maximum number of instances that you want Route 53 to return in the response to a GetInstancesHealthStatus request. If you don't specify a value for MaxResults, Route 53 returns up to 100 instances.

  • :next_token (String)

    For the first GetInstancesHealthStatus request, omit this value.

    If more than MaxResults instances match the specified criteria, you can submit another GetInstancesHealthStatus request to get the next group of results. Specify the value of NextToken from the previous response in the next request.

Returns:

See Also:



537
538
539
540
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 537

def get_instances_health_status(params = {}, options = {})
  req = build_request(:get_instances_health_status, params)
  req.send_request(options)
end

#get_namespace(params = {}) ⇒ Types::GetNamespaceResponse

Gets information about a namespace.

Examples:

Request syntax with placeholder values


resp = client.get_namespace({
  id: "ResourceId", # required
})

Response structure


resp.namespace.id #=> String
resp.namespace.arn #=> String
resp.namespace.name #=> String
resp.namespace.type #=> String, one of "DNS_PUBLIC", "DNS_PRIVATE"
resp.namespace.description #=> String
resp.namespace.service_count #=> Integer
resp.namespace.properties.dns_properties.hosted_zone_id #=> String
resp.namespace.create_date #=> Time
resp.namespace.creator_request_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :id (required, String)

    The ID of the namespace that you want to get information about.

Returns:

See Also:



573
574
575
576
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 573

def get_namespace(params = {}, options = {})
  req = build_request(:get_namespace, params)
  req.send_request(options)
end

#get_operation(params = {}) ⇒ Types::GetOperationResponse

Gets information about any operation that returns an operation ID in the response, such as a CreateService request.

To get a list of operations that match specified criteria, see ListOperations.

Examples:

Request syntax with placeholder values


resp = client.get_operation({
  operation_id: "ResourceId", # required
})

Response structure


resp.operation.id #=> String
resp.operation.type #=> String, one of "CREATE_NAMESPACE", "DELETE_NAMESPACE", "UPDATE_SERVICE", "REGISTER_INSTANCE", "DEREGISTER_INSTANCE"
resp.operation.status #=> String, one of "SUBMITTED", "PENDING", "SUCCESS", "FAIL"
resp.operation.error_message #=> String
resp.operation.error_code #=> String
resp.operation.create_date #=> Time
resp.operation.update_date #=> Time
resp.operation.targets #=> Hash
resp.operation.targets["OperationTargetType"] #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :operation_id (required, String)

    The ID of the operation that you want to get more information about.

Returns:

See Also:



615
616
617
618
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 615

def get_operation(params = {}, options = {})
  req = build_request(:get_operation, params)
  req.send_request(options)
end

#get_service(params = {}) ⇒ Types::GetServiceResponse

Gets the settings for a specified service.

Examples:

Request syntax with placeholder values


resp = client.get_service({
  id: "ResourceId", # required
})

Response structure


resp.service.id #=> String
resp.service.arn #=> String
resp.service.name #=> String
resp.service.description #=> String
resp.service.instance_count #=> Integer
resp.service.dns_config.namespace_id #=> String
resp.service.dns_config.routing_policy #=> String, one of "MULTIVALUE", "WEIGHTED"
resp.service.dns_config.dns_records #=> Array
resp.service.dns_config.dns_records[0].type #=> String, one of "SRV", "A", "AAAA", "CNAME"
resp.service.dns_config.dns_records[0].ttl #=> Integer
resp.service.health_check_config.type #=> String, one of "HTTP", "HTTPS", "TCP"
resp.service.health_check_config.resource_path #=> String
resp.service.health_check_config.failure_threshold #=> Integer
resp.service.create_date #=> Time
resp.service.creator_request_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :id (required, String)

    The ID of the service that you want to get settings for.

Returns:

See Also:



657
658
659
660
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 657

def get_service(params = {}, options = {})
  req = build_request(:get_service, params)
  req.send_request(options)
end

#list_instances(params = {}) ⇒ Types::ListInstancesResponse

Lists summary information about the instances that you registered by using a specified service.

Examples:

Request syntax with placeholder values


resp = client.list_instances({
  service_id: "ResourceId", # required
  next_token: "NextToken",
  max_results: 1,
})

Response structure


resp.instances #=> Array
resp.instances[0].id #=> String
resp.instances[0].attributes #=> Hash
resp.instances[0].attributes["AttrKey"] #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :service_id (required, String)

    The ID of the service that you want to list instances for.

  • :next_token (String)

    For the first ListInstances request, omit this value.

    If more than MaxResults instances match the specified criteria, you can submit another ListInstances request to get the next group of results. Specify the value of NextToken from the previous response in the next request.

  • :max_results (Integer)

    The maximum number of instances that you want Amazon Route 53 to return in the response to a ListInstances request. If you don't specify a value for MaxResults, Route 53 returns up to 100 instances.

Returns:

See Also:



707
708
709
710
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 707

def list_instances(params = {}, options = {})
  req = build_request(:list_instances, params)
  req.send_request(options)
end

#list_namespaces(params = {}) ⇒ Types::ListNamespacesResponse

Lists summary information about the namespaces that were created by the current AWS account.

Examples:

Request syntax with placeholder values


resp = client.list_namespaces({
  next_token: "NextToken",
  max_results: 1,
  filters: [
    {
      name: "TYPE", # required, accepts TYPE
      values: ["FilterValue"], # required
      condition: "EQ", # accepts EQ, IN, BETWEEN
    },
  ],
})

Response structure


resp.namespaces #=> Array
resp.namespaces[0].id #=> String
resp.namespaces[0].arn #=> String
resp.namespaces[0].name #=> String
resp.namespaces[0].type #=> String, one of "DNS_PUBLIC", "DNS_PRIVATE"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :next_token (String)

    For the first ListNamespaces request, omit this value.

    If the response contains NextToken, submit another ListNamespaces request to get the next group of results. Specify the value of NextToken from the previous response in the next request.

    Route 53 gets MaxResults namespaces and then filters them based on the specified criteria. It's possible that no namespaces in the first MaxResults namespaces matched the specified criteria but that subsequent groups of MaxResults namespaces do contain namespaces that match the criteria.

  • :max_results (Integer)

    The maximum number of namespaces that you want Amazon Route 53 to return in the response to a ListNamespaces request. If you don't specify a value for MaxResults, Route 53 returns up to 100 namespaces.

  • :filters (Array<Types::NamespaceFilter>)

    A complex type that contains specifications for the namespaces that you want to list.

    If you specify more than one filter, a namespace must match all filters to be returned by ListNamespaces.

Returns:

See Also:



775
776
777
778
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 775

def list_namespaces(params = {}, options = {})
  req = build_request(:list_namespaces, params)
  req.send_request(options)
end

#list_operations(params = {}) ⇒ Types::ListOperationsResponse

Lists operations that match the criteria that you specify.

Examples:

Request syntax with placeholder values


resp = client.list_operations({
  next_token: "NextToken",
  max_results: 1,
  filters: [
    {
      name: "NAMESPACE_ID", # required, accepts NAMESPACE_ID, SERVICE_ID, STATUS, TYPE, UPDATE_DATE
      values: ["FilterValue"], # required
      condition: "EQ", # accepts EQ, IN, BETWEEN
    },
  ],
})

Response structure


resp.operations #=> Array
resp.operations[0].id #=> String
resp.operations[0].status #=> String, one of "SUBMITTED", "PENDING", "SUCCESS", "FAIL"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :next_token (String)

    For the first ListOperations request, omit this value.

    If the response contains NextToken, submit another ListOperations request to get the next group of results. Specify the value of NextToken from the previous response in the next request.

    Route 53 gets MaxResults operations and then filters them based on the specified criteria. It's possible that no operations in the first MaxResults operations matched the specified criteria but that subsequent groups of MaxResults operations do contain operations that match the criteria.

  • :max_results (Integer)

    The maximum number of items that you want Amazon Route 53 to return in the response to a ListOperations request. If you don't specify a value for MaxResults, Route 53 returns up to 100 operations.

  • :filters (Array<Types::OperationFilter>)

    A complex type that contains specifications for the operations that you want to list, for example, operations that you started between a specified start date and end date.

    If you specify more than one filter, an operation must match all filters to be returned by ListOperations.

Returns:

See Also:



840
841
842
843
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 840

def list_operations(params = {}, options = {})
  req = build_request(:list_operations, params)
  req.send_request(options)
end

#list_services(params = {}) ⇒ Types::ListServicesResponse

Lists summary information for all the services that are associated with one or more specified namespaces.

Examples:

Request syntax with placeholder values


resp = client.list_services({
  next_token: "NextToken",
  max_results: 1,
  filters: [
    {
      name: "NAMESPACE_ID", # required, accepts NAMESPACE_ID
      values: ["FilterValue"], # required
      condition: "EQ", # accepts EQ, IN, BETWEEN
    },
  ],
})

Response structure


resp.services #=> Array
resp.services[0].id #=> String
resp.services[0].arn #=> String
resp.services[0].name #=> String
resp.services[0].description #=> String
resp.services[0].instance_count #=> Integer
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :next_token (String)

    For the first ListServices request, omit this value.

    If the response contains NextToken, submit another ListServices request to get the next group of results. Specify the value of NextToken from the previous response in the next request.

    Route 53 gets MaxResults services and then filters them based on the specified criteria. It's possible that no services in the first MaxResults services matched the specified criteria but that subsequent groups of MaxResults services do contain services that match the criteria.

  • :max_results (Integer)

    The maximum number of services that you want Amazon Route 53 to return in the response to a ListServices request. If you don't specify a value for MaxResults, Route 53 returns up to 100 services.

  • :filters (Array<Types::ServiceFilter>)

    A complex type that contains specifications for the namespaces that you want to list services for.

    If you specify more than one filter, an operation must match all filters to be returned by ListServices.

Returns:

See Also:



908
909
910
911
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 908

def list_services(params = {}, options = {})
  req = build_request(:list_services, params)
  req.send_request(options)
end

#register_instance(params = {}) ⇒ Types::RegisterInstanceResponse

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

  • Creates or updates a health check based on the settings in the health check configuration, if any, for the service

  • Associates the health check, if any, with each of the records

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 IP address of the last healthy instance

  • If you didn't specify a health check configuration: returns all the records

Examples:

Request syntax with placeholder values


resp = client.register_instance({
  service_id: "ResourceId", # required
  instance_id: "ResourceId", # required
  creator_request_id: "ResourceId",
  attributes: { # required
    "AttrKey" => "AttrValue",
  },
})

Response structure


resp.operation_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :service_id (required, String)

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

  • :instance_id (required, String)

    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.

      The health check isn't deleted immediately, so it will still appear for a while if you submit a ListHealthChecks request, for example.

  • :creator_request_id (String)

    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.

    A suitable default value is auto-generated. You should normally not need to pass this option.**

  • :attributes (required, Hash<String,String>)

    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. Either AWS_INSTANCE_IPV4 or AWS_INSTANCE_IPV6 is required if the service includes settings for an SRV record.

    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. Either AWS_INSTANCE_IPV4 or AWS_INSTANCE_IPV6 is required if the service includes settings for an SRV record.

    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.

Returns:

See Also:



1088
1089
1090
1091
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1088

def register_instance(params = {}, options = {})
  req = build_request(:register_instance, params)
  req.send_request(options)
end

#update_service(params = {}) ⇒ Types::UpdateServiceResponse

Submits a request to perform the following operations:

  • Add or delete DnsRecords configurations

  • Update the TTL setting for existing DnsRecords configurations

  • Add, update, or delete HealthCheckConfig for a specified service

*

You must specify all DnsRecords configurations (and, optionally, HealthCheckConfig) that you want to appear in the updated service. Any current configurations that don't appear in an UpdateService request are deleted.

When you update the TTL setting for a service, Amazon Route 53 also updates the corresponding settings in all the records and health checks that were created by using the specified service.

Examples:

Request syntax with placeholder values


resp = client.update_service({
  id: "ResourceId", # required
  service: { # required
    description: "ResourceDescription",
    dns_config: { # required
      dns_records: [ # required
        {
          type: "SRV", # required, accepts SRV, A, AAAA, CNAME
          ttl: 1, # required
        },
      ],
    },
    health_check_config: {
      type: "HTTP", # required, accepts HTTP, HTTPS, TCP
      resource_path: "ResourcePath",
      failure_threshold: 1,
    },
  },
})

Response structure


resp.operation_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :id (required, String)

    The ID of the service that you want to update.

  • :service (required, Types::ServiceChange)

    A complex type that contains the new settings for the service.

Returns:

See Also:



1152
1153
1154
1155
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1152

def update_service(params = {}, options = {})
  req = build_request(:update_service, params)
  req.send_request(options)
end