import { SaslProps } from './SaslProps';
import { UnauthenticatedProps } from './UnauthenticatedProps';
import { TlsProps } from './TlsProps';
/**
  Includes all client authentication information.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-msk-cluster-clientauthentication.html">the AWS Docs</a>
*/
export interface ClientAuthenticationProps {
    /** <code>Sasl</code>  <a name="cfn-msk-cluster-clientauthentication-sasl"></a>
  Details for client authentication using SASL. To turn on SASL, you must also turn on <code>EncryptionInTransit</code> by setting <code>inCluster</code> to true. You must set <code>clientBroker</code> to either <code>TLS</code> or <code>TLS_PLAINTEXT</code>. If you choose <code>TLS_PLAINTEXT</code>, then you must also set <code>unauthenticated</code> to true.<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> */
    sasl?: SaslProps;
    /** <code>Unauthenticated</code>  <a name="cfn-msk-cluster-clientauthentication-unauthenticated"></a>
  Details for ClientAuthentication using no authentication.<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> */
    unauthenticated?: UnauthenticatedProps;
    /** <code>Tls</code>  <a name="cfn-msk-cluster-clientauthentication-tls"></a>
  Details for ClientAuthentication using TLS. To turn on TLS access control, you must also turn on <code>EncryptionInTransit</code> by setting <code>inCluster</code> to true and <code>clientBroker</code> to <code>TLS</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> */
    tls?: TlsProps;
}
