import { SubjectNameFlagsV4Props } from './SubjectNameFlagsV4Props';
import { Value } from '../../../cloudformation/Value';
import { PrivateKeyFlagsV4Props } from './PrivateKeyFlagsV4Props';
import { PrivateKeyAttributesV4Props } from './PrivateKeyAttributesV4Props';
import { GeneralFlagsV4Props } from './GeneralFlagsV4Props';
import { CertificateValidityProps } from './CertificateValidityProps';
import { ExtensionsV4Props } from './ExtensionsV4Props';
import { EnrollmentFlagsV4Props } from './EnrollmentFlagsV4Props';
/**
  v4 template schema that can use either Legacy Cryptographic Providers or Key Storage Providers.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pcaconnectorad-template-templatev4.html">the AWS Docs</a>
*/
export interface TemplateV4Props {
    /** <code>SubjectNameFlags</code>  <a name="cfn-pcaconnectorad-template-templatev4-subjectnameflags"></a>
  Subject name flags describe the subject name and subject alternate name that is included in a certificate.<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> */
    subjectNameFlags: SubjectNameFlagsV4Props;
    /** <code>SupersededTemplates</code>  <a name="cfn-pcaconnectorad-template-templatev4-supersededtemplates"></a>
  List of templates in Active Directory that are superseded by this template.<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> */
    supersededTemplates?: Value<Value<string>[]>;
    /** <code>PrivateKeyFlags</code>  <a name="cfn-pcaconnectorad-template-templatev4-privatekeyflags"></a>
  Private key flags for v4 templates specify the client compatibility, if the private key can be exported, if user input is required when using a private key, if an alternate signature algorithm should be used, and if certificates are renewed using the same private key.<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> */
    privateKeyFlags: PrivateKeyFlagsV4Props;
    /** <code>PrivateKeyAttributes</code>  <a name="cfn-pcaconnectorad-template-templatev4-privatekeyattributes"></a>
  Private key attributes allow you to specify the minimal key length, key spec, key usage, and cryptographic providers for the private key of a certificate for v4 templates. V4 templates allow you to use either Key Storage Providers or Legacy Cryptographic Service Providers. You specify the cryptography provider category in private key flags.<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> */
    privateKeyAttributes: PrivateKeyAttributesV4Props;
    /** <code>GeneralFlags</code>  <a name="cfn-pcaconnectorad-template-templatev4-generalflags"></a>
  General flags describe whether the template is used for computers or users and if the template can be used with autoenrollment.<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> */
    generalFlags: GeneralFlagsV4Props;
    /** <code>CertificateValidity</code>  <a name="cfn-pcaconnectorad-template-templatev4-certificatevalidity"></a>
  Certificate validity describes the validity and renewal periods of a certificate.<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> */
    certificateValidity: CertificateValidityProps;
    /** <code>Extensions</code>  <a name="cfn-pcaconnectorad-template-templatev4-extensions"></a>
  Extensions describe the key usage extensions and application policies for a template.<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> */
    extensions: ExtensionsV4Props;
    /** <code>EnrollmentFlags</code>  <a name="cfn-pcaconnectorad-template-templatev4-enrollmentflags"></a>
  Enrollment flags describe the enrollment settings for certificates using the existing private key and deleting expired or revoked certificates.<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> */
    enrollmentFlags: EnrollmentFlagsV4Props;
    /** <code>HashAlgorithm</code>  <a name="cfn-pcaconnectorad-template-templatev4-hashalgorithm"></a>
  Specifies the hash algorithm used to hash the private key. Hash algorithm can only be specified when using Key Storage Providers.<br />
  
  Required: No<br />
  
  Allowed values: <code>SHA256 | SHA384 | SHA512</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> */
    hashAlgorithm?: Value<'SHA256' | 'SHA384' | 'SHA512'>;
}
