import { Value } from '../../../cloudformation/Value';
import { KeyUsagePropertyProps } from './KeyUsagePropertyProps';
/**
  Defines the attributes of the private key.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcaconnectorad-template-privatekeyattributesv3.html">the AWS Docs</a>
*/
export interface PrivateKeyAttributesV3Props {
    /** <code>MinimalKeyLength</code>  <a name="cfn-pcaconnectorad-template-privatekeyattributesv3-minimalkeylength"></a>
  Set the minimum key length of the private key.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</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> */
    minimalKeyLength: Value<number>;
    /** <code>KeySpec</code>  <a name="cfn-pcaconnectorad-template-privatekeyattributesv3-keyspec"></a>
  Defines the purpose of the private key. Set it to “KEY_EXCHANGE” or “SIGNATURE” value.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>KEY_EXCHANGE | SIGNATURE</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> */
    keySpec: Value<'KEY_EXCHANGE' | 'SIGNATURE'>;
    /** <code>KeyUsageProperty</code>  <a name="cfn-pcaconnectorad-template-privatekeyattributesv3-keyusageproperty"></a>
  The key usage property defines the purpose of the private key contained in the certificate. You can specify specific purposes using property flags or all by using property type ALL.<br />
  
  Required: Yes<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> */
    keyUsageProperty: KeyUsagePropertyProps;
    /** <code>Algorithm</code>  <a name="cfn-pcaconnectorad-template-privatekeyattributesv3-algorithm"></a>
  Defines the algorithm used to generate the private key.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>ECDH_P256 | ECDH_P384 | ECDH_P521 | RSA</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> */
    algorithm: Value<'ECDH_P256' | 'ECDH_P384' | 'ECDH_P521' | 'RSA'>;
    /** <code>CryptoProviders</code>  <a name="cfn-pcaconnectorad-template-privatekeyattributesv3-cryptoproviders"></a>
  Defines the cryptographic providers used to generate the private key.<br />
  
  Required: No<br />
  
  Maximum: <code>100</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> */
    cryptoProviders?: Value<Value<string>[]>;
}
