Class: Aws::ServiceDiscovery::Client

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

Overview

An API client for ServiceDiscovery. To construct a client, you need to configure a :region and :credentials.

client = Aws::ServiceDiscovery::Client.new(
  region: region_name,
  credentials: credentials,
  # ...
)

For details on configuring region and credentials see the developer guide.

See #initialize for a full list of supported configuration options.

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Base

#config, #handlers

API Operations collapse

Instance Method Summary collapse

Methods included from ClientStubs

#api_requests, #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(options) ⇒ Client

Returns a new instance of Client.

Parameters:

  • options (Hash)

Options Hash (options):

  • :plugins (Array<Seahorse::Client::Plugin>) — default: []]

    A list of plugins to apply to the client. Each plugin is either a class name or an instance of a plugin class.

  • :credentials (required, Aws::CredentialProvider)

    Your AWS credentials. This can be an instance of any one of the following classes:

    • Aws::Credentials - Used for configuring static, non-refreshing credentials.

    • Aws::SharedCredentials - Used for loading static credentials from a shared file, such as ~/.aws/config.

    • Aws::AssumeRoleCredentials - Used when you need to assume a role.

    • Aws::AssumeRoleWebIdentityCredentials - Used when you need to assume a role after providing credentials via the web.

    • Aws::SSOCredentials - Used for loading credentials from AWS SSO using an access token generated from aws login.

    • Aws::ProcessCredentials - Used for loading credentials from a process that outputs to stdout.

    • Aws::InstanceProfileCredentials - Used for loading credentials from an EC2 IMDS on an EC2 instance.

    • Aws::ECSCredentials - Used for loading credentials from instances running in ECS.

    • Aws::CognitoIdentityCredentials - Used for loading credentials from the Cognito Identity service.

    When :credentials are not configured directly, the following locations will be searched for credentials:

    • Aws.config[:credentials]
    • The :access_key_id, :secret_access_key, :session_token, and :account_id options.
    • ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'], ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
    • ~/.aws/credentials
    • ~/.aws/config
    • EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive. Construct and pass an instance of Aws::InstanceProfileCredentials or Aws::ECSCredentials to enable retries and extended timeouts. Instance profile credential fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED'] to true.
  • :region (required, String)

    The AWS region to connect to. The configured :region is used to determine the service :endpoint. When not passed, a default :region is searched for in the following locations:

    • Aws.config[:region]
    • ENV['AWS_REGION']
    • ENV['AMAZON_REGION']
    • ENV['AWS_DEFAULT_REGION']
    • ~/.aws/credentials
    • ~/.aws/config
  • :access_key_id (String)
  • :account_id (String)
  • :active_endpoint_cache (Boolean) — default: false

    When set to true, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults to false.

  • :adaptive_retry_wait_to_fill (Boolean) — default: true

    Used only in adaptive retry mode. When true, the request will sleep until there is sufficent client side capacity to retry the request. When false, the request will raise a RetryCapacityNotAvailableError and will not retry instead of sleeping.

  • :client_side_monitoring (Boolean) — default: false

    When true, client-side metrics will be collected for all API requests from this client.

  • :client_side_monitoring_client_id (String) — default: ""

    Allows you to provide an identifier for this client which will be attached to all generated client side metrics. Defaults to an empty string.

  • :client_side_monitoring_host (String) — default: "127.0.0.1"

    Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_port (Integer) — default: 31000

    Required for publishing client metrics. The port that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) — default: Aws::ClientSideMonitoring::Publisher

    Allows you to provide a custom client-side monitoring publisher class. By default, will use the Client Side Monitoring Agent Publisher.

  • :convert_params (Boolean) — default: true

    When true, an attempt is made to coerce request parameters into the required types.

  • :correct_clock_skew (Boolean) — default: true

    Used only in standard and adaptive retry modes. Specifies whether to apply a clock skew correction and retry requests with skewed client clocks.

  • :defaults_mode (String) — default: "legacy"

    See DefaultsModeConfiguration for a list of the accepted modes and the configuration defaults that are included.

  • :disable_host_prefix_injection (Boolean) — default: false

    Set to true to disable SDK automatically adding host prefix to default service endpoint when available.

  • :disable_request_compression (Boolean) — default: false

    When set to 'true' the request body will not be compressed for supported operations.

  • :endpoint (String, URI::HTTPS, URI::HTTP)

    Normally you should not configure the :endpoint option directly. This is normally constructed from the :region option. Configuring :endpoint is normally reserved for connecting to test or custom endpoints. The endpoint should be a URI formatted like:

    'http://example.com'
    'https://example.com'
    'http://example.com:123'
    
  • :endpoint_cache_max_entries (Integer) — default: 1000

    Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000.

  • :endpoint_cache_max_threads (Integer) — default: 10

    Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.

  • :endpoint_cache_poll_interval (Integer) — default: 60

    When :endpoint_discovery and :active_endpoint_cache is enabled, Use this option to config the time interval in seconds for making requests fetching endpoints information. Defaults to 60 sec.

  • :endpoint_discovery (Boolean) — default: false

    When set to true, endpoint discovery will be enabled for operations when available.

  • :ignore_configured_endpoint_urls (Boolean)

    Setting to true disables use of endpoint URLs provided via environment variables and the shared configuration file.

  • :log_formatter (Aws::Log::Formatter) — default: Aws::Log::Formatter.default

    The log formatter.

  • :log_level (Symbol) — default: :info

    The log level to send messages to the :logger at.

  • :logger (Logger)

    The Logger instance to send log messages to. If this option is not set, logging will be disabled.

  • :max_attempts (Integer) — default: 3

    An integer representing the maximum number attempts that will be made for a single request, including the initial attempt. For example, setting this value to 5 will result in a request being retried up to 4 times. Used in standard and adaptive retry modes.

  • :profile (String) — default: "default"

    Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, 'default' is used.

  • :request_min_compression_size_bytes (Integer) — default: 10240

    The minimum size in bytes that triggers compression for request bodies. The value must be non-negative integer value between 0 and 10485780 bytes inclusive.

  • :retry_backoff (Proc)

    A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay. This option is only used in the legacy retry mode.

  • :retry_base_delay (Float) — default: 0.3

    The base delay in seconds used by the default backoff function. This option is only used in the legacy retry mode.

  • :retry_jitter (Symbol) — default: :none

    A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number. This option is only used in the legacy retry mode.

    @see https://www.awsarchitectureblog.com/2015/03/backoff.html

  • :retry_limit (Integer) — default: 3

    The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors, auth errors, endpoint discovery, and errors from expired credentials. This option is only used in the legacy retry mode.

  • :retry_max_delay (Integer) — default: 0

    The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function. This option is only used in the legacy retry mode.

  • :retry_mode (String) — default: "legacy"

    Specifies which retry algorithm to use. Values are:

    • legacy - The pre-existing retry behavior. This is default value if no retry mode is provided.

    • standard - A standardized set of retry rules across the AWS SDKs. This includes support for retry quotas, which limit the number of unsuccessful retries a client can make.

    • adaptive - An experimental retry mode that includes all the functionality of standard mode along with automatic client side throttling. This is a provisional mode that may change behavior in the future.

  • :sdk_ua_app_id (String)

    A unique and opaque application ID that is appended to the User-Agent header as app/sdk_ua_app_id. It should have a maximum length of 50. This variable is sourced from environment variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.

  • :secret_access_key (String)
  • :session_token (String)
  • :sigv4a_signing_region_set (Array)

    A list of regions that should be signed with SigV4a signing. When not passed, a default :sigv4a_signing_region_set is searched for in the following locations:

    • Aws.config[:sigv4a_signing_region_set]
    • ENV['AWS_SIGV4A_SIGNING_REGION_SET']
    • ~/.aws/config
  • :simple_json (Boolean) — default: false

    Disables request parameter conversion, validation, and formatting. Also disables response data type conversions. The request parameters hash must be formatted exactly as the API expects.This option is useful when you want to ensure the highest level of performance by avoiding overhead of walking request parameters and response data structures.

  • :stub_responses (Boolean) — default: false

    Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling ClientStubs#stub_responses. See ClientStubs for more information.

    Please note When response stubbing is enabled, no HTTP requests are made, and retries are disabled.

  • :telemetry_provider (Aws::Telemetry::TelemetryProviderBase) — default: Aws::Telemetry::NoOpTelemetryProvider

    Allows you to provide a telemetry provider, which is used to emit telemetry data. By default, uses NoOpTelemetryProvider which will not record or emit any telemetry data. The SDK supports the following telemetry providers:

    • OpenTelemetry (OTel) - To use the OTel provider, install and require the opentelemetry-sdk gem and then, pass in an instance of a Aws::Telemetry::OTelProvider for telemetry provider.
  • :token_provider (Aws::TokenProvider)

    A Bearer Token Provider. This can be an instance of any one of the following classes:

    • Aws::StaticTokenProvider - Used for configuring static, non-refreshing tokens.

    • Aws::SSOTokenProvider - Used for loading tokens from AWS SSO using an access token generated from aws login.

    When :token_provider is not configured directly, the Aws::TokenProviderChain will be used to search for tokens configured for your profile in shared configuration files.

  • :use_dualstack_endpoint (Boolean)

    When set to true, dualstack enabled endpoints (with .aws TLD) will be used if available.

  • :use_fips_endpoint (Boolean)

    When set to true, fips compatible endpoints will be used if available. When a fips region is used, the region is normalized and this config is set to true.

  • :validate_params (Boolean) — default: true

    When true, request parameters are validated before sending the request.

  • :endpoint_provider (Aws::ServiceDiscovery::EndpointProvider)

    The endpoint provider used to resolve endpoints. Any object that responds to #resolve_endpoint(parameters) where parameters is a Struct similar to Aws::ServiceDiscovery::EndpointParameters.

  • :http_continue_timeout (Float) — default: 1

    The number of seconds to wait for a 100-continue response before sending the request body. This option has no effect unless the request has "Expect" header set to "100-continue". Defaults to nil which disables this behaviour. This value can safely be set per request on the session.

  • :http_idle_timeout (Float) — default: 5

    The number of seconds a connection is allowed to sit idle before it is considered stale. Stale connections are closed and removed from the pool before making a request.

  • :http_open_timeout (Float) — default: 15

    The default number of seconds to wait for response data. This value can safely be set per-request on the session.

  • :http_proxy (URI::HTTP, String)

    A proxy to send requests through. Formatted like 'http://proxy.com:123'.

  • :http_read_timeout (Float) — default: 60

    The default number of seconds to wait for response data. This value can safely be set per-request on the session.

  • :http_wire_trace (Boolean) — default: false

    When true, HTTP debug output will be sent to the :logger.

  • :on_chunk_received (Proc)

    When a Proc object is provided, it will be used as callback when each chunk of the response body is received. It provides three arguments: the chunk, the number of bytes received, and the total number of bytes in the response (or nil if the server did not send a content-length).

  • :on_chunk_sent (Proc)

    When a Proc object is provided, it will be used as callback when each chunk of the request body is sent. It provides three arguments: the chunk, the number of bytes read from the body, and the total number of bytes in the body.

  • :raise_response_errors (Boolean) — default: true

    When true, response errors are raised.

  • :ssl_ca_bundle (String)

    Full path to the SSL certificate authority bundle file that should be used when verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.

  • :ssl_ca_directory (String)

    Full path of the directory that contains the unbundled SSL certificate authority files for verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.

  • :ssl_ca_store (String)

    Sets the X509::Store to verify peer certificate.

  • :ssl_cert (OpenSSL::X509::Certificate)

    Sets a client certificate when creating http connections.

  • :ssl_key (OpenSSL::PKey)

    Sets a client key when creating http connections.

  • :ssl_timeout (Float)

    Sets the SSL timeout in seconds

  • :ssl_verify_peer (Boolean) — default: true

    When true, SSL peer certificates are verified when establishing a connection.



451
452
453
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 451

def initialize(*args)
  super
end

Instance Method Details

#create_http_namespace(params = {}) ⇒ Types::CreateHttpNamespaceResponse

Creates an HTTP namespace. Service instances registered using an HTTP namespace can be discovered using a DiscoverInstances request but can't be discovered using DNS.

For the current quota on the number of namespaces that you can create using the same Amazon Web Services account, see Cloud Map quotas in the Cloud Map Developer Guide.

Examples:

Example: CreateHttpNamespace example


# This example creates an HTTP namespace.

resp = client.create_http_namespace({
  creator_request_id: "example-creator-request-id-0001", 
  description: "Example.com AWS Cloud Map HTTP Namespace", 
  name: "example-http.com", 
})

resp.to_h outputs the following:
{
  operation_id: "httpvoqozuhfet5kzxoxg-a-response-example", 
}

Request syntax with placeholder values


resp = client.create_http_namespace({
  name: "NamespaceNameHttp", # required
  creator_request_id: "ResourceId",
  description: "ResourceDescription",
  tags: [
    {
      key: "TagKey", # required
      value: "TagValue", # 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.

  • :creator_request_id (String)

    A unique string that identifies the request and that allows failed CreateHttpNamespace requests to be retried without the risk of running 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.

  • :tags (Array<Types::Tag>)

    The tags to add to the namespace. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in length.

Returns:

See Also:



531
532
533
534
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 531

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

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

Creates a private namespace based on DNS, which is 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 is backend.example.com. Service instances that are registered using a private DNS namespace can be discovered using either a DiscoverInstances request or using DNS. For the current quota on the number of namespaces that you can create using the same Amazon Web Services account, see Cloud Map quotas in the Cloud Map Developer Guide.

Examples:

Example: Example: Create private DNS namespace


# Example: Create private DNS namespace

resp = client.create_private_dns_namespace({
  creator_request_id: "eedd6892-50f3-41b2-8af9-611d6e1d1a8c", 
  name: "example.com", 
  vpc: "vpc-1c56417b", 
})

resp.to_h outputs the following:
{
  operation_id: "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd", 
}

Request syntax with placeholder values


resp = client.create_private_dns_namespace({
  name: "NamespaceNamePrivate", # required
  creator_request_id: "ResourceId",
  description: "ResourceDescription",
  vpc: "ResourceId", # required
  tags: [
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
  properties: {
    dns_properties: { # required
      soa: { # required
        ttl: 1, # 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 private DNS namespace, Cloud Map automatically creates an Amazon RouteĀ 53 private 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 running the operation twice. CreatorRequestId can be any unique string (for example, a date/timestamp).

    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.

  • :tags (Array<Types::Tag>)

    The tags to add to the namespace. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in length.

  • :properties (Types::PrivateDnsNamespaceProperties)

    Properties for the private DNS namespace.

Returns:

See Also:



630
631
632
633
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 630

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 is 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 is backend.example.com. You can discover instances that were registered with a public DNS namespace by using either a DiscoverInstances request or using DNS. For the current quota on the number of namespaces that you can create using the same Amazon Web Services account, see Cloud Map quotas in the Cloud Map Developer Guide.

The CreatePublicDnsNamespace API operation is not supported in the Amazon Web Services GovCloud (US) Regions.

Examples:

Example: CreatePublicDnsNamespace example


# This example creates a public namespace based on DNS.

resp = client.create_public_dns_namespace({
  creator_request_id: "example-creator-request-id-0003", 
  description: "Example.com AWS Cloud Map Public DNS Namespace", 
  name: "example-public-dns.com", 
})

resp.to_h outputs the following:
{
  operation_id: "dns2voqozuhfet5kzxoxg-a-response-example", 
}

Request syntax with placeholder values


resp = client.create_public_dns_namespace({
  name: "NamespaceNamePublic", # required
  creator_request_id: "ResourceId",
  description: "ResourceDescription",
  tags: [
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
  properties: {
    dns_properties: { # required
      soa: { # required
        ttl: 1, # 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.

    Do not include sensitive information in the name. The name is publicly available using DNS queries.

  • :creator_request_id (String)

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

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

  • :description (String)

    A description for the namespace.

  • :tags (Array<Types::Tag>)

    The tags to add to the namespace. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in length.

  • :properties (Types::PublicDnsNamespaceProperties)

    Properties for the public DNS namespace.

Returns:

See Also:



729
730
731
732
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 729

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. This action defines the configuration for the following entities:

  • For public and private DNS namespaces, one of the following combinations of DNS records in Amazon RouteĀ 53:

    • A

    • AAAA

    • A and AAAA

    • SRV

    • CNAME

  • Optionally, a health check

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

For the current quota on the number of instances that you can register using the same namespace and using the same service, see Cloud Map quotas in the Cloud Map Developer Guide.

Examples:

Example: Example: Create service


# Example: Create service

resp = client.create_service({
  creator_request_id: "567c1193-6b00-4308-bd57-ad38a8822d25", 
  dns_config: {
    dns_records: [
      {
        ttl: 60, 
        type: "A", 
      }, 
    ], 
    namespace_id: "ns-ylexjili4cdxy3xm", 
    routing_policy: "MULTIVALUE", 
  }, 
  name: "myservice", 
  namespace_id: "ns-ylexjili4cdxy3xm", 
})

resp.to_h outputs the following:
{
  service: {
    arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita", 
    create_date: Time.parse(1587081768.334), 
    creator_request_id: "567c1193-6b00-4308-bd57-ad38a8822d25", 
    dns_config: {
      dns_records: [
        {
          ttl: 60, 
          type: "A", 
        }, 
      ], 
      namespace_id: "ns-ylexjili4cdxy3xm", 
      routing_policy: "MULTIVALUE", 
    }, 
    id: "srv-p5zdwlg5uvvzjita", 
    name: "myservice", 
    namespace_id: "ns-ylexjili4cdxy3xm", 
  }, 
}

Request syntax with placeholder values


resp = client.create_service({
  name: "ServiceName", # required
  namespace_id: "ResourceId",
  creator_request_id: "ResourceId",
  description: "ResourceDescription",
  dns_config: {
    namespace_id: "ResourceId",
    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,
  },
  health_check_custom_config: {
    failure_threshold: 1,
  },
  tags: [
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
  type: "HTTP", # accepts HTTP
})

Response structure


resp.service.id #=> String
resp.service.arn #=> String
resp.service.name #=> String
resp.service.namespace_id #=> 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.type #=> String, one of "HTTP", "DNS_HTTP", "DNS"
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.health_check_custom_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.

    Do not include sensitive information in the name if the namespace is discoverable by public DNS queries.

    If you want Cloud Map to create an SRV record when you register an instance and you're using a system that requires a specific SRV format, such as HAProxy, specify the following for Name:

    • Start the name with an underscore (_), such as _exampleservice.

    • End the name with ._protocol, such as ._tcp.

    When you register an instance, Cloud Map creates an SRV record and assigns a name to the record by concatenating the service name and the namespace name (for example,

    _exampleservice._tcp.example.com).

    For services that are accessible by DNS queries, you can't create multiple services with names that differ only by case (such as EXAMPLE and example). Otherwise, these services have the same DNS name and can't be distinguished. However, if you use a namespace that's only accessible by API calls, then you can create services that with names that differ only by case.

  • :namespace_id (String)

    The ID of the namespace that you want to use to create the service. The namespace ID must be specified, but it can be specified either here or in the DnsConfig object.

  • :creator_request_id (String)

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

    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 (Types::DnsConfig)

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

  • :health_check_config (Types::HealthCheckConfig)

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

    If you specify a health check configuration, you can specify either HealthCheckCustomConfig or HealthCheckConfig but not both.

    For information about the charges for health checks, see Cloud Map Pricing.

  • :health_check_custom_config (Types::HealthCheckCustomConfig)

    A complex type that contains information about an optional custom health check.

    If you specify a health check configuration, you can specify either HealthCheckCustomConfig or HealthCheckConfig but not both.

    You can't add, update, or delete a HealthCheckCustomConfig configuration from an existing service.

  • :tags (Array<Types::Tag>)

    The tags to add to the service. Each tag consists of a key and an optional value that you define. Tags keys can be up to 128 characters in length, and tag values can be up to 256 characters in length.

  • :type (String)

    If present, specifies that the service instances are only discoverable using the DiscoverInstances API operation. No DNS records is registered for the service instances. The only valid value is HTTP.

Returns:

See Also:



963
964
965
966
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 963

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:

Example: Example: Delete namespace


# Example: Delete namespace

resp = client.delete_namespace({
  id: "ns-ylexjili4cdxy3xm", 
})

resp.to_h outputs the following:
{
  operation_id: "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k98y6drk", 
}

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:



1006
1007
1008
1009
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1006

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

#delete_service(params = {}) ⇒ Struct

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

Examples:

Example: Example: Delete service


# Example: Delete service

resp = client.delete_service({
  id: "srv-p5zdwlg5uvvzjita", 
})

resp.to_h outputs the following:
{
}

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:



1043
1044
1045
1046
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1043

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

#delete_service_attributes(params = {}) ⇒ Struct

Deletes specific attributes associated with a service.

Examples:

Example: DeleteServiceAttributes example


# Example: Delete service attribute by providing attribute key and service ID

resp = client.delete_service_attributes({
  attributes: [
    "port", 
  ], 
  service_id: "srv-e4anhexample0004", 
})

resp.to_h outputs the following:
{
}

Request syntax with placeholder values


resp = client.delete_service_attributes({
  service_id: "ResourceId", # required
  attributes: ["ServiceAttributeKey"], # required
})

Parameters:

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

    ({})

Options Hash (params):

  • :service_id (required, String)

    The ID of the service from which the attributes will be deleted.

  • :attributes (required, Array<String>)

    A list of keys corresponding to each attribute that you want to delete.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



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

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

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

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

Examples:

Example: Example: Deregister a service instance


# Example: Deregister a service instance

resp = client.deregister_instance({
  instance_id: "myservice-53", 
  service_id: "srv-p5zdwlg5uvvzjita", 
})

resp.to_h outputs the following:
{
  operation_id: "4yejorelbukcjzpnr6tlmrghsjwpngf4-k98rnaiq", 
}

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:



1139
1140
1141
1142
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1139

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

#discover_instances(params = {}) ⇒ Types::DiscoverInstancesResponse

Discovers registered instances for a specified namespace and service. You can use DiscoverInstances to discover instances for any type of namespace. DiscoverInstances returns a randomized list of instances allowing customers to distribute traffic evenly across instances. For public and private DNS namespaces, you can also use DNS queries to discover instances.

Examples:

Example: Example: Discover registered instances


# Example: Discover registered instances

resp = client.discover_instances({
  health_status: "ALL", 
  max_results: 10, 
  namespace_name: "example.com", 
  service_name: "myservice", 
})

resp.to_h outputs the following:
{
  instances: [
    {
      attributes: {
        "AWS_INSTANCE_IPV4" => "172.2.1.3", 
        "AWS_INSTANCE_PORT" => "808", 
      }, 
      health_status: "UNKNOWN", 
      instance_id: "myservice-53", 
      namespace_name: "example.com", 
      service_name: "myservice", 
    }, 
  ], 
}

Request syntax with placeholder values


resp = client.discover_instances({
  namespace_name: "NamespaceName", # required
  service_name: "ServiceName", # required
  max_results: 1,
  query_parameters: {
    "AttrKey" => "AttrValue",
  },
  optional_parameters: {
    "AttrKey" => "AttrValue",
  },
  health_status: "HEALTHY", # accepts HEALTHY, UNHEALTHY, ALL, HEALTHY_OR_ELSE_ALL
})

Response structure


resp.instances #=> Array
resp.instances[0].instance_id #=> String
resp.instances[0].namespace_name #=> String
resp.instances[0].service_name #=> String
resp.instances[0].health_status #=> String, one of "HEALTHY", "UNHEALTHY", "UNKNOWN"
resp.instances[0].attributes #=> Hash
resp.instances[0].attributes["AttrKey"] #=> String
resp.instances_revision #=> Integer

Parameters:

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

    ({})

Options Hash (params):

  • :namespace_name (required, String)

    The HttpName name of the namespace. It's found in the HttpProperties member of the Properties member of the namespace. In most cases, Name and HttpName match. However, if you reuse Name for namespace creation, a generated hash is added to HttpName to distinguish the two.

  • :service_name (required, String)

    The name of the service that you specified when you registered the instance.

  • :max_results (Integer)

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

  • :query_parameters (Hash<String,String>)

    Filters to scope the results based on custom attributes for the instance (for example, {version=v1, az=1a}). Only instances that match all the specified key-value pairs are returned.

  • :optional_parameters (Hash<String,String>)

    Opportunistic filters to scope the results based on custom attributes. If there are instances that match both the filters specified in both the QueryParameters parameter and this parameter, all of these instances are returned. Otherwise, the filters are ignored, and only instances that match the filters that are specified in the QueryParameters parameter are returned.

  • :health_status (String)

    The health status of the instances that you want to discover. This parameter is ignored for services that don't have a health check configured, and all instances are returned.

    HEALTHY

    Returns healthy instances.

    UNHEALTHY

    Returns unhealthy instances.

    ALL

    Returns all instances.

    HEALTHY_OR_ELSE_ALL

    Returns healthy instances, unless none are reporting a healthy state. In that case, return all instances. This is also called failing open.

Returns:

See Also:



1266
1267
1268
1269
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1266

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

#discover_instances_revision(params = {}) ⇒ Types::DiscoverInstancesRevisionResponse

Discovers the increasing revision associated with an instance.

Examples:

Example: To discover the revision for a registered instance


# The following example discovers the revision ID for a registered instance.

resp = client.discover_instances_revision({
  namespace_name: "example-namespace", 
  service_name: "example-service", 
})

resp.to_h outputs the following:
{
  instances_revision: 123456, 
}

Request syntax with placeholder values


resp = client.discover_instances_revision({
  namespace_name: "NamespaceName", # required
  service_name: "ServiceName", # required
})

Response structure


resp.instances_revision #=> Integer

Parameters:

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

    ({})

Options Hash (params):

  • :namespace_name (required, String)

    The HttpName name of the namespace. It's found in the HttpProperties member of the Properties member of the namespace.

  • :service_name (required, String)

    The name of the service that you specified when you registered the instance.

Returns:

See Also:



1315
1316
1317
1318
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1315

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

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

Gets information about a specified instance.

Examples:

Example: GetInstance example


# This example gets information about a specified instance.

resp = client.get_instance({
  instance_id: "i-abcd1234", 
  service_id: "srv-e4anhexample0004", 
})

resp.to_h outputs the following:
{
  instance: {
    attributes: {
      "AWS_INSTANCE_IPV4" => "192.0.2.44", 
      "AWS_INSTANCE_PORT" => "80", 
      "color" => "green", 
      "region" => "us-west-2", 
      "stage" => "beta", 
    }, 
    id: "i-abcd1234", 
  }, 
}

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:



1374
1375
1376
1377
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1374

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's a brief delay between when you register an instance and when the health status for the instance is available.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Example: GetInstancesHealthStatus example


# This example gets the current health status of one or more instances that are associate with a specified service.

resp = client.get_instances_health_status({
  service_id: "srv-e4anhexample0004", 
})

resp.to_h outputs the following:
{
  status: {
    "i-abcd1234" => "HEALTHY", 
    "i-abcd1235" => "UNHEALTHY", 
  }, 
}

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, Cloud Map 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 Cloud Map to return in the response to a GetInstancesHealthStatus request. If you don't specify a value for MaxResults, Cloud Map 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:



1463
1464
1465
1466
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1463

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:

Example: GetNamespace example


# This example gets information about a specified namespace.

resp = client.get_namespace({
  id: "ns-e4anhexample0004", 
})

resp.to_h outputs the following:
{
  namespace: {
    arn: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-e1tpmexample0001", 
    create_date: Time.parse("20181118T211712Z"), 
    creator_request_id: "example-creator-request-id-0001", 
    description: "Example.com AWS Cloud Map HTTP Namespace", 
    id: "ns-e1tpmexample0001", 
    name: "example-http.com", 
    properties: {
      dns_properties: {
      }, 
      http_properties: {
        http_name: "example-http.com", 
      }, 
    }, 
    type: "HTTP", 
  }, 
}

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", "HTTP"
resp.namespace.description #=> String
resp.namespace.service_count #=> Integer
resp.namespace.properties.dns_properties.hosted_zone_id #=> String
resp.namespace.properties.dns_properties.soa.ttl #=> Integer
resp.namespace.properties.http_properties.http_name #=> 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:



1530
1531
1532
1533
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1530

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 CreateHttpNamespace request.

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

Examples:

Example: Example: Get operation result


# Example: Get operation result

resp = client.get_operation({
  operation_id: "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd", 
})

resp.to_h outputs the following:
{
  operation: {
    create_date: Time.parse(1587055860.121), 
    id: "gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd", 
    status: "SUCCESS", 
    targets: {
      "NAMESPACE" => "ns-ylexjili4cdxy3xm", 
    }, 
    type: "CREATE_NAMESPACE", 
    update_date: Time.parse(1587055900.469), 
  }, 
}

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_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:



1599
1600
1601
1602
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1599

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:

Example: GetService Example


# This example gets the settings for a specified service.

resp = client.get_service({
  id: "srv-e4anhexample0004", 
})

resp.to_h outputs the following:
{
  service: {
    arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-e4anhexample0004", 
    create_date: Time.parse("20181118T211707Z"), 
    creator_request_id: "example-creator-request-id-0004", 
    description: "Example.com AWS Cloud Map HTTP Service", 
    health_check_config: {
      failure_threshold: 3, 
      resource_path: "/", 
      type: "HTTPS", 
    }, 
    id: "srv-e4anhexample0004", 
    name: "example-http-service", 
    namespace_id: "ns-e4anhexample0004", 
  }, 
}

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.namespace_id #=> 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.type #=> String, one of "HTTP", "DNS_HTTP", "DNS"
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.health_check_custom_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:



1671
1672
1673
1674
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1671

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

#get_service_attributes(params = {}) ⇒ Types::GetServiceAttributesResponse

Returns the attributes associated with a specified service.

Examples:

Example: GetServiceAttributes Example


# This example gets the attributes for a specified service.

resp = client.get_service_attributes({
  service_id: "srv-e4anhexample0004", 
})

resp.to_h outputs the following:
{
  service_attributes: {
    attributes: {
      "port" => "80", 
    }, 
    service_arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-e4anhexample0004", 
  }, 
}

Request syntax with placeholder values


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

Response structure


resp.service_attributes.service_arn #=> String
resp.service_attributes.attributes #=> Hash
resp.service_attributes.attributes["ServiceAttributeKey"] #=> String

Parameters:

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

    ({})

Options Hash (params):

  • :service_id (required, String)

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

Returns:

See Also:



1720
1721
1722
1723
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1720

def get_service_attributes(params = {}, options = {})
  req = build_request(:get_service_attributes, 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.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Example: Example: List service instances


# Example: List service instances

resp = client.list_instances({
  service_id: "srv-qzpwvt2tfqcegapy", 
})

resp.to_h outputs the following:
{
  instances: [
    {
      attributes: {
        "AWS_INSTANCE_IPV4" => "172.2.1.3", 
        "AWS_INSTANCE_PORT" => "808", 
      }, 
      id: "i-06bdabbae60f65a4e", 
    }, 
  ], 
}

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 Cloud Map to return in the response to a ListInstances request. If you don't specify a value for MaxResults, Cloud Map returns up to 100 instances.

Returns:

See Also:



1793
1794
1795
1796
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1793

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 Amazon Web Services account.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Example: Example: List namespaces


# Example: List namespaces

resp = client.list_namespaces({
})

resp.to_h outputs the following:
{
  namespaces: [
    {
      arn: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-a3ccy2e7e3a7rile", 
      create_date: Time.parse(1585354387.357), 
      id: "ns-a3ccy2e7e3a7rile", 
      name: "local", 
      properties: {
        dns_properties: {
          hosted_zone_id: "Z06752353VBUDTC32S84S", 
        }, 
        http_properties: {
          http_name: "local", 
        }, 
      }, 
      type: "DNS_PRIVATE", 
    }, 
    {
      arn: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-pocfyjtrsmwtvcxx", 
      create_date: Time.parse(1586468974.698), 
      description: "My second namespace", 
      id: "ns-pocfyjtrsmwtvcxx", 
      name: "My-second-namespace", 
      properties: {
        dns_properties: {
        }, 
        http_properties: {
          http_name: "My-second-namespace", 
        }, 
      }, 
      type: "HTTP", 
    }, 
    {
      arn: "arn:aws:servicediscovery:us-west-2:123456789012:namespace/ns-ylexjili4cdxy3xm", 
      create_date: Time.parse(1587055896.798), 
      id: "ns-ylexjili4cdxy3xm", 
      name: "example.com", 
      properties: {
        dns_properties: {
          hosted_zone_id: "Z09983722P0QME1B3KC8I", 
        }, 
        http_properties: {
          http_name: "example.com", 
        }, 
      }, 
      type: "DNS_PRIVATE", 
    }, 
  ], 
}

Request syntax with placeholder values


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

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", "HTTP"
resp.namespaces[0].description #=> String
resp.namespaces[0].service_count #=> Integer
resp.namespaces[0].properties.dns_properties.hosted_zone_id #=> String
resp.namespaces[0].properties.dns_properties.soa.ttl #=> Integer
resp.namespaces[0].properties.http_properties.http_name #=> String
resp.namespaces[0].create_date #=> Time
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.

    Cloud Map 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 Cloud Map to return in the response to a ListNamespaces request. If you don't specify a value for MaxResults, Cloud Map 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:



1927
1928
1929
1930
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 1927

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.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Example: ListOperations Example


# This example gets the operations that have a STATUS of either PENDING or SUCCESS.

resp = client.list_operations({
  filters: [
    {
      condition: "IN", 
      name: "STATUS", 
      values: [
        "PENDING", 
        "SUCCESS", 
      ], 
    }, 
  ], 
})

resp.to_h outputs the following:
{
  operations: [
    {
      id: "76yy8ovhpdz0plmjzbsnqgnrqvpv2qdt-kexample", 
      status: "SUCCESS", 
    }, 
    {
      id: "prysnyzpji3u2ciy45nke83x2zanl7yk-dexample", 
      status: "SUCCESS", 
    }, 
    {
      id: "ko4ekftir7kzlbechsh7xvcdgcpk66gh-7example", 
      status: "PENDING", 
    }, 
  ], 
}

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, BEGINS_WITH
    },
  ],
})

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.

    Cloud Map 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 Cloud Map to return in the response to a ListOperations request. If you don't specify a value for MaxResults, Cloud Map 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:



2030
2031
2032
2033
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2030

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 namespaces.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Example: Example: List services


# Example: List services

resp = client.list_services({
})

resp.to_h outputs the following:
{
  services: [
    {
      arn: "arn:aws:servicediscovery:us-west-2:123456789012:service/srv-p5zdwlg5uvvzjita", 
      create_date: Time.parse(1587081768.334), 
      dns_config: {
        dns_records: [
          {
            ttl: 60, 
            type: "A", 
          }, 
        ], 
        routing_policy: "MULTIVALUE", 
      }, 
      id: "srv-p5zdwlg5uvvzjita", 
      name: "myservice", 
    }, 
  ], 
}

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, BEGINS_WITH
    },
  ],
})

Response structure


resp.services #=> Array
resp.services[0].id #=> String
resp.services[0].arn #=> String
resp.services[0].name #=> String
resp.services[0].type #=> String, one of "HTTP", "DNS_HTTP", "DNS"
resp.services[0].description #=> String
resp.services[0].instance_count #=> Integer
resp.services[0].dns_config.namespace_id #=> String
resp.services[0].dns_config.routing_policy #=> String, one of "MULTIVALUE", "WEIGHTED"
resp.services[0].dns_config.dns_records #=> Array
resp.services[0].dns_config.dns_records[0].type #=> String, one of "SRV", "A", "AAAA", "CNAME"
resp.services[0].dns_config.dns_records[0].ttl #=> Integer
resp.services[0].health_check_config.type #=> String, one of "HTTP", "HTTPS", "TCP"
resp.services[0].health_check_config.resource_path #=> String
resp.services[0].health_check_config.failure_threshold #=> Integer
resp.services[0].health_check_custom_config.failure_threshold #=> Integer
resp.services[0].create_date #=> Time
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.

    Cloud Map 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 Cloud Map to return in the response to a ListServices request. If you don't specify a value for MaxResults, Cloud Map 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:



2140
2141
2142
2143
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2140

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

#list_tags_for_resource(params = {}) ⇒ Types::ListTagsForResourceResponse

Lists tags for the specified resource.

Examples:

Example: ListTagsForResource example


# This example lists the tags of a resource.

resp = client.list_tags_for_resource({
  resource_arn: "arn:aws:servicediscovery:us-east-1:123456789012:namespace/ns-ylexjili4cdxy3xm", 
})

resp.to_h outputs the following:
{
  tags: [
    {
      key: "Project", 
      value: "Zeta", 
    }, 
    {
      key: "Department", 
      value: "Engineering", 
    }, 
  ], 
}

Request syntax with placeholder values


resp = client.list_tags_for_resource({
  resource_arn: "AmazonResourceName", # required
})

Response structure


resp.tags #=> Array
resp.tags[0].key #=> String
resp.tags[0].value #=> String

Parameters:

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

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the resource that you want to retrieve tags for.

Returns:

See Also:



2194
2195
2196
2197
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2194

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

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

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

  • For each DNS record that you define in the service that's specified by ServiceId, a record is created or updated in the hosted zone that's associated with the corresponding namespace.

  • If the service includes HealthCheckConfig, a health check is created based on the settings in the health check configuration.

  • The health check, if any, is associated with each of the new or updated 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 Cloud Map 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 quota on the number of instances that you can register using the same namespace and using the same service, see Cloud Map quotas in the Cloud Map Developer Guide.

Examples:

Example: Example: Register Instance


# Example: Register Instance

resp = client.register_instance({
  attributes: {
    "AWS_INSTANCE_IPV4" => "172.2.1.3", 
    "AWS_INSTANCE_PORT" => "808", 
  }, 
  creator_request_id: "7a48a98a-72e6-4849-bfa7-1a458e030d7b", 
  instance_id: "myservice-53", 
  service_id: "srv-p5zdwlg5uvvzjita", 
})

resp.to_h outputs the following:
{
  operation_id: "4yejorelbukcjzpnr6tlmrghsjwpngf4-k95yg2u7", 
}

Request syntax with placeholder values


resp = client.register_instance({
  service_id: "ResourceId", # required
  instance_id: "InstanceId", # 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 instance.

  • :instance_id (required, String)

    An identifier that you want to associate with the instance. Note the following:

    • If the service that's 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's unique among instances that you register by using the same service.

    • If you specify an existing InstanceId and ServiceId, Cloud Map updates the existing DNS records, if any. If there's also an existing health check, Cloud Map 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.

    Do not include sensitive information in InstanceId if the namespace is discoverable by public DNS queries and any Type member of DnsRecord for the service contains SRV because the InstanceId is discoverable by public DNS queries.

  • :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.

    Do not include sensitive information in the attributes if the namespace is discoverable by public DNS queries.

    The following are the supported attribute keys.

    AWS_ALIAS_DNS_NAME

    If you want Cloud Map to create an Amazon RouteĀ 53 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that's associated with the load balancer. For information about how to get the DNS name, see "DNSName" in the topic AliasTarget in the RouteĀ 53 API Reference.

    Note the following:

    • The configuration for the service that's specified by ServiceId must include settings for an A record, an AAAA record, or both.

    • In the service that's specified by ServiceId, the value of RoutingPolicy must be WEIGHTED.

    • If the service that's specified by ServiceId includes HealthCheckConfig settings, Cloud Map will create the RouteĀ 53 health check, but it doesn't associate the health check with the alias record.

    • Cloud Map currently doesn't support creating alias records that route traffic to Amazon Web Services resources other than Elastic Load Balancing load balancers.

    • If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for any of the AWS_INSTANCE attributes.

    • The AWS_ALIAS_DNS_NAME is not supported in the GovCloud (US) Regions.

    AWS_EC2_INSTANCE_ID

    HTTP namespaces only. The Amazon EC2 instance ID for the instance. If the AWS_EC2_INSTANCE_ID attribute is specified, then the only other attribute that can be specified is AWS_INIT_HEALTH_STATUS. When the AWS_EC2_INSTANCE_ID attribute is specified, then the AWS_INSTANCE_IPV4 attribute will be filled out with the primary private IPv4 address.

    AWS_INIT_HEALTH_STATUS

    If the service configuration includes HealthCheckCustomConfig, you can optionally use AWS_INIT_HEALTH_STATUS to specify the initial status of the custom health check, HEALTHY or UNHEALTHY. If you don't specify a value for AWS_INIT_HEALTH_STATUS, the initial status is HEALTHY.

    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 or a RouteĀ 53 health check when you created the service.

    Custom attributes

    You can add up to 30 custom attributes. For each key-value pair, the maximum length of the attribute name is 255 characters, and the maximum length of the attribute value is 1,024 characters. The total size of all provided attributes (sum of all keys and values) must not exceed 5,000 characters.

Returns:

See Also:



2449
2450
2451
2452
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2449

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

#tag_resource(params = {}) ⇒ Struct

Adds one or more tags to the specified resource.

Examples:

Example: TagResource example


# This example adds "Department" and "Project" tags to a resource.

resp = client.tag_resource({
  resource_arn: "arn:aws:servicediscovery:us-east-1:123456789012:namespace/ns-ylexjili4cdxy3xm", 
  tags: [
    {
      key: "Department", 
      value: "Engineering", 
    }, 
    {
      key: "Project", 
      value: "Zeta", 
    }, 
  ], 
})

resp.to_h outputs the following:
{
}

Request syntax with placeholder values


resp = client.tag_resource({
  resource_arn: "AmazonResourceName", # required
  tags: [ # required
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
})

Parameters:

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

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the resource that you want to retrieve tags for.

  • :tags (required, Array<Types::Tag>)

    The tags to add to the specified resource. Specifying the tag key is required. You can set the value of a tag to an empty string, but you can't set the value of a tag to null.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2506
2507
2508
2509
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2506

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

#untag_resource(params = {}) ⇒ Struct

Removes one or more tags from the specified resource.

Examples:

Example: UntagResource example


# This example removes the "Department" and "Project" tags from a resource.

resp = client.untag_resource({
  resource_arn: "arn:aws:servicediscovery:us-east-1:123456789012:namespace/ns-ylexjili4cdxy3xm", 
  tag_keys: [
    "Project", 
    "Department", 
  ], 
})

resp.to_h outputs the following:
{
}

Request syntax with placeholder values


resp = client.untag_resource({
  resource_arn: "AmazonResourceName", # required
  tag_keys: ["TagKey"], # required
})

Parameters:

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

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the resource that you want to retrieve tags for.

  • :tag_keys (required, Array<String>)

    The tag keys to remove from the specified resource.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2550
2551
2552
2553
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2550

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

#update_http_namespace(params = {}) ⇒ Types::UpdateHttpNamespaceResponse

Updates an HTTP namespace.

Examples:

Example: To update a HTTP namespace


# The following example updates the description of a HTTP namespace.

resp = client.update_http_namespace({
  id: "ns-vh4nbmEXAMPLE", 
  namespace: {
    description: "The updated namespace description.", 
  }, 
})

resp.to_h outputs the following:
{
  operation_id: "ft52xe2koxhoeormaceymagglsdjyvEXAMPLE", 
}

Request syntax with placeholder values


resp = client.update_http_namespace({
  id: "ResourceId", # required
  updater_request_id: "ResourceId",
  namespace: { # required
    description: "ResourceDescription", # 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 update.

  • :updater_request_id (String)

    A unique string that identifies the request and that allows failed UpdateHttpNamespace requests to be retried without the risk of running the operation twice. UpdaterRequestId can be any unique string (for example, a date/timestamp).

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

  • :namespace (required, Types::HttpNamespaceChange)

    Updated properties for the the HTTP namespace.

Returns:

See Also:



2611
2612
2613
2614
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2611

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

#update_instance_custom_health_status(params = {}) ⇒ Struct

Submits a request to change the health status of a custom health check to healthy or unhealthy.

You can use UpdateInstanceCustomHealthStatus to change the status only for custom health checks, which you define using HealthCheckCustomConfig when you create a service. You can't use it to change the status for RouteĀ 53 health checks, which you define using HealthCheckConfig.

For more information, see HealthCheckCustomConfig.

Examples:

Example: UpdateInstanceCustomHealthStatus Example


# This example submits a request to change the health status of an instance associated with a service with a custom health
# check to HEALTHY.

resp = client.update_instance_custom_health_status({
  instance_id: "i-abcd1234", 
  service_id: "srv-e4anhexample0004", 
  status: "HEALTHY", 
})

Request syntax with placeholder values


resp = client.update_instance_custom_health_status({
  service_id: "ResourceId", # required
  instance_id: "ResourceId", # required
  status: "HEALTHY", # required, accepts HEALTHY, UNHEALTHY
})

Parameters:

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

    ({})

Options Hash (params):

  • :service_id (required, String)

    The ID of the service that includes the configuration for the custom health check that you want to change the status for.

  • :instance_id (required, String)

    The ID of the instance that you want to change the health status for.

  • :status (required, String)

    The new status of the instance, HEALTHY or UNHEALTHY.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2667
2668
2669
2670
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2667

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

#update_private_dns_namespace(params = {}) ⇒ Types::UpdatePrivateDnsNamespaceResponse

Updates a private DNS namespace.

Examples:

Example: To update a public DNS namespace


# The following example updates the description of a public DNS namespace.

resp = client.update_private_dns_namespace({
  id: "ns-bk3aEXAMPLE", 
  namespace: {
    description: "The updated namespace description.", 
  }, 
  updater_request_id: "", 
})

resp.to_h outputs the following:
{
  operation_id: "ft52xe2koxhoeormaceymagglsdjEXAMPLE", 
}

Example: To update a private DNS namespace


# The following example updates the description of a private DNS namespace.

resp = client.update_private_dns_namespace({
  id: "ns-bk3aEXAMPLE", 
  namespace: {
    description: "The updated namespace description.", 
  }, 
  updater_request_id: "", 
})

resp.to_h outputs the following:
{
  operation_id: "ft52xe2koxhoeormaceymagglsdjyvEXAMPLE", 
}

Request syntax with placeholder values


resp = client.update_private_dns_namespace({
  id: "ResourceId", # required
  updater_request_id: "ResourceId",
  namespace: { # required
    description: "ResourceDescription",
    properties: {
      dns_properties: { # required
        soa: { # required
          ttl: 1, # 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 update.

  • :updater_request_id (String)

    A unique string that identifies the request and that allows failed UpdatePrivateDnsNamespace requests to be retried without the risk of running the operation twice. UpdaterRequestId can be any unique string (for example, a date/timestamp).

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

  • :namespace (required, Types::PrivateDnsNamespaceChange)

    Updated properties for the private DNS namespace.

Returns:

See Also:



2753
2754
2755
2756
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2753

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

#update_public_dns_namespace(params = {}) ⇒ Types::UpdatePublicDnsNamespaceResponse

Updates a public DNS namespace.

Examples:

Request syntax with placeholder values


resp = client.update_public_dns_namespace({
  id: "ResourceId", # required
  updater_request_id: "ResourceId",
  namespace: { # required
    description: "ResourceDescription",
    properties: {
      dns_properties: { # required
        soa: { # required
          ttl: 1, # required
        },
      },
    },
  },
})

Response structure


resp.operation_id #=> String

Parameters:

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

    ({})

Options Hash (params):

  • :id (required, String)

    The ID of the namespace being updated.

  • :updater_request_id (String)

    A unique string that identifies the request and that allows failed UpdatePublicDnsNamespace requests to be retried without the risk of running the operation twice. UpdaterRequestId can be any unique string (for example, a date/timestamp).

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

  • :namespace (required, Types::PublicDnsNamespaceChange)

    Updated properties for the public DNS namespace.

Returns:

See Also:



2804
2805
2806
2807
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2804

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

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

Submits a request to perform the following operations:

  • Update the TTL setting for existing DnsRecords configurations

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

    You can't add, update, or delete a HealthCheckCustomConfig configuration.

For public and private DNS namespaces, note the following:

  • If you omit any existing DnsRecords or HealthCheckConfig configurations from an UpdateService request, the configurations are deleted from the service.

  • If you omit an existing HealthCheckCustomConfig configuration from an UpdateService request, the configuration isn't deleted from the service.

When you update settings for a service, Cloud Map also updates the corresponding settings in all the records and health checks that were created by using the specified service.

Examples:

Example: UpdateService Example


# This example submits a request to replace the DnsConfig and HealthCheckConfig settings of a specified service.

resp = client.update_service({
  id: "srv-e4anhexample0004", 
  service: {
    dns_config: {
      dns_records: [
        {
          ttl: 60, 
          type: "A", 
        }, 
      ], 
    }, 
    health_check_config: {
      failure_threshold: 2, 
      resource_path: "/", 
      type: "HTTP", 
    }, 
  }, 
})

resp.to_h outputs the following:
{
  operation_id: "m35hsdrkxwjffm3xef4bxyy6vc3ewakx-jdn3y5g5", 
}

Request syntax with placeholder values


resp = client.update_service({
  id: "ResourceId", # required
  service: { # required
    description: "ResourceDescription",
    dns_config: {
      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. You can specify a maximum of 30 attributes (key-value pairs).

Returns:

See Also:



2904
2905
2906
2907
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2904

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

#update_service_attributes(params = {}) ⇒ Struct

Submits a request to update a specified service to add service-level attributes.

Examples:

Example: UpdateServiceAttributes Example


# This example submits a request to update the specified service to add a port attribute with the value 80.

resp = client.update_service_attributes({
  attributes: {
    "port" => "80", 
  }, 
  service_id: "srv-e4anhexample0004", 
})

resp.to_h outputs the following:
{
}

Request syntax with placeholder values


resp = client.update_service_attributes({
  service_id: "ResourceId", # required
  attributes: { # required
    "ServiceAttributeKey" => "ServiceAttributeValue",
  },
})

Parameters:

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

    ({})

Options Hash (params):

  • :service_id (required, String)

    The ID of the service that you want to update.

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

    A string map that contains attribute key-value pairs.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2949
2950
2951
2952
# File 'gems/aws-sdk-servicediscovery/lib/aws-sdk-servicediscovery/client.rb', line 2949

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