class Aws::ServiceDiscovery::Types::CreateServiceRequest

@note When making an API call, you may pass CreateServiceRequest

data as a hash:

    {
      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
    }

@!attribute [rw] name

The name that you want to assign to the service.

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][1], 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`).

<note markdown="1"> 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.

 </note>

[1]: http://www.haproxy.org/
@return [String]

@!attribute [rw] namespace_id

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.
@return [String]

@!attribute [rw] creator_request_id

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.
@return [String]

@!attribute [rw] description

A description for the service.
@return [String]

@!attribute [rw] dns_config

A complex type that contains information about the Amazon Route 53
records that you want Cloud Map to create when you register an
instance.
@return [Types::DnsConfig]

@!attribute [rw] health_check_config

*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][1].

[1]: http://aws.amazon.com/cloud-map/pricing/
@return [Types::HealthCheckConfig]

@!attribute [rw] health_check_custom_config

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.
@return [Types::HealthCheckCustomConfig]

@!attribute [rw] tags

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.
@return [Array<Types::Tag>]

@!attribute [rw] type

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`.
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreateServiceRequest AWS API Documentation

Constants

SENSITIVE