export interface VpcInformation {
    /** The VPC IP address type. */
    IpAddressType?: 'IPV4' | 'DUALSTACK';
    /** The security groups used with the connector. You can use a maximum of 4 security groups with a connector. */
    SecurityGroupIds: string[];
}
export interface TemplateV2 {
    /** Certificate validity describes the validity and renewal periods of a certificate. */
    CertificateValidity: any;
    /** List of templates in Active Directory that are superseded by this template. */
    SupersededTemplates?: any[];
    /** Private key attributes allow you to specify the minimal key length, key spec, and cryptographic providers for the private key of a certificate for v2 templates. V2 templates allow you to use Legacy Cr */
    PrivateKeyAttributes: any;
    /** Private key flags for v2 templates specify the client compatibility, if the private key can be exported, and if user input is required when using a private key. */
    PrivateKeyFlags: any;
    /** Enrollment flags describe the enrollment settings for certificates such as using the existing private key and deleting expired or revoked certificates. */
    EnrollmentFlags: any;
    /** Subject name flags describe the subject name and subject alternate name that is included in a certificate. */
    SubjectNameFlags: any;
    /** General flags describe whether the template is used for computers or users and if the template can be used with autoenrollment. */
    GeneralFlags: any;
    /** Extensions describe the key usage extensions and application policies for a template. */
    Extensions: any;
}
export interface TemplateV3 {
    /** Certificate validity describes the validity and renewal periods of a certificate. */
    CertificateValidity: any;
    /** List of templates in Active Directory that are superseded by this template. */
    SupersededTemplates?: any[];
    /** Private key attributes allow you to specify the algorithm, minimal key length, key spec, key usage, and cryptographic providers for the private key of a certificate for v3 templates. V3 templates allo */
    PrivateKeyAttributes: any;
    /** Private key flags for v3 templates specify the client compatibility, if the private key can be exported, if user input is required when using a private key, and if an alternate signature algorithm sho */
    PrivateKeyFlags: any;
    /** Enrollment flags describe the enrollment settings for certificates such as using the existing private key and deleting expired or revoked certificates. */
    EnrollmentFlags: any;
    /** Subject name flags describe the subject name and subject alternate name that is included in a certificate. */
    SubjectNameFlags: any;
    /** General flags describe whether the template is used for computers or users and if the template can be used with autoenrollment. */
    GeneralFlags: any;
    /** Specifies the hash algorithm used to hash the private key. */
    HashAlgorithm: 'SHA256' | 'SHA384' | 'SHA512';
    /** Extensions describe the key usage extensions and application policies for a template. */
    Extensions: any;
}
export interface TemplateV4 {
    /** Certificate validity describes the validity and renewal periods of a certificate. */
    CertificateValidity: any;
    /** List of templates in Active Directory that are superseded by this template. */
    SupersededTemplates?: any[];
    /** 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 us */
    PrivateKeyAttributes: any;
    /** 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  */
    PrivateKeyFlags: any;
    /** Enrollment flags describe the enrollment settings for certificates using the existing private key and deleting expired or revoked certificates. */
    EnrollmentFlags: any;
    /** Subject name flags describe the subject name and subject alternate name that is included in a certificate. */
    SubjectNameFlags: any;
    /** General flags describe whether the template is used for computers or users and if the template can be used with autoenrollment. */
    GeneralFlags: any;
    /** Specifies the hash algorithm used to hash the private key. Hash algorithm can only be specified when using Key Storage Providers. */
    HashAlgorithm?: 'SHA256' | 'SHA384' | 'SHA512';
    /** Extensions describe the key usage extensions and application policies for a template. */
    Extensions: any;
}
export interface AccessRights {
    /** Allow or deny an Active Directory group from enrolling certificates issued against a template. */
    Enroll?: 'ALLOW' | 'DENY';
    /** Allow or deny an Active Directory group from autoenrolling certificates issued against a template. The Active Directory group must be allowed to enroll to allow autoenrollment */
    AutoEnroll?: 'ALLOW' | 'DENY';
}
export interface CreateConnectorInput {
    /** The Amazon Resource Name (ARN) of the certificate authority being used. */
    CertificateAuthorityArn: string;
    /** The identifier of the Active Directory. */
    DirectoryId: string;
    /** Information about your VPC and security groups used with the connector. */
    VpcInformation: VpcInformation;
    /** Idempotency token. */
    ClientToken?: string;
    /** Metadata assigned to a connector consisting of a key-value pair. */
    Tags?: Record<string, string>;
}
export interface CreateDirectoryRegistrationInput {
    /** The identifier of the Active Directory. */
    DirectoryId: string;
    /** Idempotency token. */
    ClientToken?: string;
    /** Metadata assigned to a directory registration consisting of a key-value pair. */
    Tags?: Record<string, string>;
}
export interface CreateTemplateInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateConnector. */
    ConnectorArn: string;
    /** Template configuration to define the information included in certificates. Define certificate validity and renewal periods, certificate request handling and enrollment options, key usage extensions, a */
    Definition: {
        TemplateV2?: TemplateV2;
    } | {
        TemplateV3?: TemplateV3;
    } | {
        TemplateV4?: TemplateV4;
    };
    /** Name of the template. The template name must be unique. */
    Name: string;
    /** Idempotency token. */
    ClientToken?: string;
    /** Metadata assigned to a template consisting of a key-value pair. */
    Tags?: Record<string, string>;
}
export interface DeleteConnectorInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateConnector. */
    ConnectorArn: string;
}
export interface DeleteDirectoryRegistrationInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateDirectoryRegistration. */
    DirectoryRegistrationArn: string;
}
export interface DeleteServicePrincipalNameInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateConnector. */
    ConnectorArn: string;
    /** The Amazon Resource Name (ARN) that was returned when you called CreateDirectoryRegistration. */
    DirectoryRegistrationArn: string;
}
export interface DeleteTemplateInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateTemplate. */
    TemplateArn: string;
}
export interface DeleteTemplateGroupAccessControlEntryInput {
    /** Security identifier (SID) of the group object from Active Directory. The SID starts with "S-". */
    GroupSecurityIdentifier: string;
    /** The Amazon Resource Name (ARN) that was returned when you called CreateTemplate. */
    TemplateArn: string;
}
export interface GetConnectorInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateConnector. */
    ConnectorArn: string;
}
export interface GetDirectoryRegistrationInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateDirectoryRegistration. */
    DirectoryRegistrationArn: string;
}
export interface GetServicePrincipalNameInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateConnector. */
    ConnectorArn: string;
    /** The Amazon Resource Name (ARN) that was returned when you called CreateDirectoryRegistration. */
    DirectoryRegistrationArn: string;
}
export interface GetTemplateInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateTemplate. */
    TemplateArn: string;
}
export interface GetTemplateGroupAccessControlEntryInput {
    /** Security identifier (SID) of the group object from Active Directory. The SID starts with "S-". */
    GroupSecurityIdentifier: string;
    /** The Amazon Resource Name (ARN) that was returned when you called CreateTemplate. */
    TemplateArn: string;
}
export interface ListConnectorsInput {
    /** Use this parameter when paginating results to specify the maximum number of items to return in the response on each page. If additional items exist beyond the number you specify, the NextToken element */
    MaxResults?: number;
    /** Use this parameter when paginating results in a subsequent request after you receive a response with truncated results. Set it to the value of the NextToken parameter from the response you just receiv */
    NextToken?: string;
}
export interface ListDirectoryRegistrationsInput {
    /** Use this parameter when paginating results to specify the maximum number of items to return in the response on each page. If additional items exist beyond the number you specify, the NextToken element */
    MaxResults?: number;
    /** Use this parameter when paginating results in a subsequent request after you receive a response with truncated results. Set it to the value of the NextToken parameter from the response you just receiv */
    NextToken?: string;
}
export interface ListServicePrincipalNamesInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateDirectoryRegistration. */
    DirectoryRegistrationArn: string;
    /** Use this parameter when paginating results to specify the maximum number of items to return in the response on each page. If additional items exist beyond the number you specify, the NextToken element */
    MaxResults?: number;
    /** Use this parameter when paginating results in a subsequent request after you receive a response with truncated results. Set it to the value of the NextToken parameter from the response you just receiv */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) that was returned when you created the resource. */
    ResourceArn: string;
}
export interface ListTemplateGroupAccessControlEntriesInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateTemplate. */
    TemplateArn: string;
    /** Use this parameter when paginating results to specify the maximum number of items to return in the response on each page. If additional items exist beyond the number you specify, the NextToken element */
    MaxResults?: number;
    /** Use this parameter when paginating results in a subsequent request after you receive a response with truncated results. Set it to the value of the NextToken parameter from the response you just receiv */
    NextToken?: string;
}
export interface ListTemplatesInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateConnector. */
    ConnectorArn: string;
    /** Use this parameter when paginating results to specify the maximum number of items to return in the response on each page. If additional items exist beyond the number you specify, the NextToken element */
    MaxResults?: number;
    /** Use this parameter when paginating results in a subsequent request after you receive a response with truncated results. Set it to the value of the NextToken parameter from the response you just receiv */
    NextToken?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) that was returned when you created the resource. */
    ResourceArn: string;
    /** Metadata assigned to a directory registration consisting of a key-value pair. */
    Tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) that was returned when you created the resource. */
    ResourceArn: string;
    /** Specifies a list of tag keys that you want to remove from the specified resources. */
    TagKeys: string[];
}
export interface UpdateTemplateInput {
    /** The Amazon Resource Name (ARN) that was returned when you called CreateTemplate. */
    TemplateArn: string;
    /** Template configuration to define the information included in certificates. Define certificate validity and renewal periods, certificate request handling and enrollment options, key usage extensions, a */
    Definition?: {
        TemplateV2?: TemplateV2;
    } | {
        TemplateV3?: TemplateV3;
    } | {
        TemplateV4?: TemplateV4;
    };
    /** This setting allows the major version of a template to be increased automatically. All members of Active Directory groups that are allowed to enroll with a template will receive a new certificate issu */
    ReenrollAllCertificateHolders?: boolean;
}
export interface UpdateTemplateGroupAccessControlEntryInput {
    /** Security identifier (SID) of the group object from Active Directory. The SID starts with "S-". */
    GroupSecurityIdentifier: string;
    /** The Amazon Resource Name (ARN) that was returned when you called CreateTemplate. */
    TemplateArn: string;
    /** Allow or deny permissions for an Active Directory group to enroll or autoenroll certificates for a template. */
    AccessRights?: AccessRights;
    /** Name of the Active Directory group. This name does not need to match the group name in Active Directory. */
    GroupDisplayName?: string;
}
/** Pca Connector Ad service binding for Step Functions SDK integrations. */
export declare class PcaConnectorAd {
    constructor();
    createConnector<T>(params: CreateConnectorInput): Promise<T>;
    createDirectoryRegistration<T>(params: CreateDirectoryRegistrationInput): Promise<T>;
    createTemplate<T>(params: CreateTemplateInput): Promise<T>;
    deleteConnector<T>(params: DeleteConnectorInput): Promise<T>;
    deleteDirectoryRegistration<T>(params: DeleteDirectoryRegistrationInput): Promise<T>;
    deleteServicePrincipalName<T>(params: DeleteServicePrincipalNameInput): Promise<T>;
    deleteTemplate<T>(params: DeleteTemplateInput): Promise<T>;
    deleteTemplateGroupAccessControlEntry<T>(params: DeleteTemplateGroupAccessControlEntryInput): Promise<T>;
    getConnector<T>(params: GetConnectorInput): Promise<T>;
    getDirectoryRegistration<T>(params: GetDirectoryRegistrationInput): Promise<T>;
    getServicePrincipalName<T>(params: GetServicePrincipalNameInput): Promise<T>;
    getTemplate<T>(params: GetTemplateInput): Promise<T>;
    getTemplateGroupAccessControlEntry<T>(params: GetTemplateGroupAccessControlEntryInput): Promise<T>;
    listConnectors<T>(params: ListConnectorsInput): Promise<T>;
    listDirectoryRegistrations<T>(params: ListDirectoryRegistrationsInput): Promise<T>;
    listServicePrincipalNames<T>(params: ListServicePrincipalNamesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTemplateGroupAccessControlEntries<T>(params: ListTemplateGroupAccessControlEntriesInput): Promise<T>;
    listTemplates<T>(params: ListTemplatesInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateTemplate<T>(params: UpdateTemplateInput): Promise<T>;
    updateTemplateGroupAccessControlEntry<T>(params: UpdateTemplateGroupAccessControlEntryInput): Promise<T>;
}
//# sourceMappingURL=PcaConnectorAd.d.ts.map