import { Value } from '../../cloudformation/Value';
import { TlsConfigProps } from './domainconfiguration/TlsConfigProps';
import { AuthorizerConfigProps } from './domainconfiguration/AuthorizerConfigProps';
import { Tag } from '../Tag';
import { ServerCertificateSummaryProps } from './domainconfiguration/ServerCertificateSummaryProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type DomainConfigurationAttributes = {
    DomainType: Attribute<string>;
    ServerCertificates: Attribute<ServerCertificateSummaryProps[]>;
    Arn: Attribute<string>;
};
export type DomainConfiguration = AwsResource<'AWS::IoT::DomainConfiguration', DomainConfigurationProperties, DomainConfigurationAttributes>;
/**
  Specifies a domain configuration.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html">the AWS Docs</a>
*/
export declare function domainConfiguration(domainConfigurationProps?: DomainConfigurationProperties): DomainConfiguration;
/**
  Specifies a domain configuration.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html">the AWS Docs</a>
*/
export interface DomainConfigurationProperties {
    /** <code>DomainConfigurationName</code>  <a name="cfn-iot-domainconfiguration-domainconfigurationname"></a>
  The name of the domain configuration. This value must be unique to a region.<br />
  
  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> */
    domainConfigurationName?: Value<string>;
    /** <code>DomainName</code>  <a name="cfn-iot-domainconfiguration-domainname"></a>
  The name of the domain.<br />
  
  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> */
    domainName?: Value<string>;
    /** <code>ServiceType</code>  <a name="cfn-iot-domainconfiguration-servicetype"></a>
  The type of service delivered by the endpoint.<br />
  AWS IoT Core currently supports only the <code>DATA</code> service type.
  
  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> */
    serviceType?: Value<string>;
    /** <code>DomainConfigurationStatus</code>  <a name="cfn-iot-domainconfiguration-domainconfigurationstatus"></a>
  The status to which the domain configuration should be updated.<br />
  Valid values: <code>ENABLED</code> | <code>DISABLED</code><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> */
    domainConfigurationStatus?: Value<string>;
    /** <code>ValidationCertificateArn</code>  <a name="cfn-iot-domainconfiguration-validationcertificatearn"></a>
  The certificate used to validate the server certificate and prove domain name ownership. This certificate must be signed by a public certificate authority. This value is not required for AWS-managed domains.<br />
  
  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> */
    validationCertificateArn?: Value<string>;
    /** <code>TlsConfig</code>  <a name="cfn-iot-domainconfiguration-tlsconfig"></a>
  An object that specifies the TLS configuration for a domain.<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> */
    tlsConfig?: TlsConfigProps;
    /** <code>ServerCertificateArns</code>  <a name="cfn-iot-domainconfiguration-servercertificatearns"></a>
  The ARNs of the certificates that AWS IoT passes to the device during the TLS handshake. Currently you can specify only one certificate ARN. This value is not required for AWS-managed domains.<br />
  
  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> */
    serverCertificateArns?: Value<Value<string>[]>;
    /** <code>AuthorizerConfig</code>  <a name="cfn-iot-domainconfiguration-authorizerconfig"></a>
  An object that specifies the authorization service for a domain.<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> */
    authorizerConfig?: AuthorizerConfigProps;
    /** <code>Tags</code>  <a name="cfn-iot-domainconfiguration-tags"></a>
  Metadata which can be used to manage the domain configuration.<br />
  For URI Request parameters use format: ...key1=value1&amp;key2=value2...<br />
  For the CLI command-line parameter use format: &amp;&amp;tags “key1=value1&amp;key2=value2...”<br />
  For the cli-input-json file use format: “tags”: “key1=value1&amp;key2=value2...”
  
  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> */
    tags?: Tag[];
}
