import { Value } from '../../cloudformation/Value';
import { HealthCheckCustomConfigProps } from './service/HealthCheckCustomConfigProps';
import { DnsConfigProps } from './service/DnsConfigProps';
import { HealthCheckConfigProps } from './service/HealthCheckConfigProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type ServiceAttributes = {
    Id: Attribute<string>;
    Arn: Attribute<string>;
    Name: Attribute<string>;
};
export type Service = AwsResource<'AWS::ServiceDiscovery::Service', ServiceProperties, ServiceAttributes>;
/**
  A complex type that contains information about a service, which defines the configuration of the following entities:
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html">the AWS Docs</a>
*/
export declare function service(serviceProps?: ServiceProperties): Service;
/**
  A complex type that contains information about a service, which defines the configuration of the following entities:
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicediscovery-service.html">the AWS Docs</a>
*/
export interface ServiceProperties {
    /** <code>Type</code>  <a name="cfn-servicediscovery-service-type"></a>
  If present, specifies that the service instances are only discoverable using the <code>DiscoverInstances</code> API operation. No DNS records is registered for the service instances. The only valid value is <code>HTTP</code>.<br />
  
  Required: No<br />
  
  Allowed values: <code>HTTP</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    type?: Value<'HTTP'>;
    /** <code>Description</code>  <a name="cfn-servicediscovery-service-description"></a>
  The description of the service.<br />
  
  Required: No<br />
  
  Maximum: <code>1024</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    description?: Value<string>;
    /** <code>HealthCheckCustomConfig</code>  <a name="cfn-servicediscovery-service-healthcheckcustomconfig"></a>
  A complex type that contains information about an optional custom health check.<br />
  If you specify a health check configuration, you can specify either <code>HealthCheckCustomConfig</code> or <code>HealthCheckConfig</code> but not both.
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    healthCheckCustomConfig?: HealthCheckCustomConfigProps;
    /** <code>DnsConfig</code>  <a name="cfn-servicediscovery-service-dnsconfig"></a>
  A complex type that contains information about the Route 53 DNS records that you want AWS Cloud Map to create when you register an instance.<br />
  The record types of a service can only be changed by deleting the service and recreating it with a new <code>Dnsconfig</code>.
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    dnsConfig?: DnsConfigProps;
    /** <code>NamespaceId</code>  <a name="cfn-servicediscovery-service-namespaceid"></a>
  The ID of the namespace that was used to create the service.<br />
  You must specify a value for <code>NamespaceId</code> either for the service properties or for <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicediscovery-service-dnsconfig.html">DnsConfig</a>. Don’t specify a value in both places.
  
  Required: No<br />
  
  Maximum: <code>64</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    namespaceId?: Value<string>;
    /** <code>HealthCheckConfig</code>  <a name="cfn-servicediscovery-service-healthcheckconfig"></a>
  
  Public DNS and HTTP namespaces only.:  complex type that contains settings for an optional health check. If you specify settings for a health check, AWS Cloud Map associates the health check with the records that you specify in <code>DnsConfig</code>.<br />
  For information about the charges for health checks, see <a href="http://aws.amazon.com/route53/pricing/">Amazon Route 53 Pricing</a>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    healthCheckConfig?: HealthCheckConfigProps;
    /** <code>Tags</code>  <a name="cfn-servicediscovery-service-tags"></a>
  The tags for the service. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.<br />
  
  Required: No<br />
  
  Maximum: <code>200</code><br />
  
  Update requires: Updates are not supported. */
    tags?: Tag[];
    /** <code>Name</code>  <a name="cfn-servicediscovery-service-name"></a>
  The name of the service.<br />
  
  Required: No<br />
  
  Pattern: <code>((?=^.{1,127}$)^([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9])(\.([a-zA-Z0-9_][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9_]|[a-zA-Z0-9]))*$)|(^\.$)</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    name?: Value<string>;
}
