Skip to content
v2.274.0

TemplateDefinitionProperty Struct ​

Template configuration to define the information included in certificates.

Define certificate validity and renewal periods, certificate request handling and enrollment options, key usage extensions, application policies, and cryptography settings.

Example ​

ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_pcaconnectorad as pcaconnectorad } from 'aws-cdk-lib';
const templateDefinitionProperty: pcaconnectorad.CfnTemplate.TemplateDefinitionProperty = {
  templateV2: {
    certificateValidity: {
      renewalPeriod: {
        period: 123,
        periodType: 'periodType',
      },
      validityPeriod: {
        period: 123,
        periodType: 'periodType',
      },
    },
    enrollmentFlags: {
      enableKeyReuseOnNtTokenKeysetStorageFull: false,
      includeSymmetricAlgorithms: false,
      noSecurityExtension: false,
      removeInvalidCertificateFromPersonalStore: false,
      userInteractionRequired: false,
    },
    extensions: {
      keyUsage: {
        usageFlags: {
          dataEncipherment: false,
          digitalSignature: false,
          keyAgreement: false,
          keyEncipherment: false,
          nonRepudiation: false,
        },

        // the properties below are optional
        critical: false,
      },

      // the properties below are optional
      applicationPolicies: {
        policies: [{
          policyObjectIdentifier: 'policyObjectIdentifier',
          policyType: 'policyType',
        }],

        // the properties below are optional
        critical: false,
      },
    },
    generalFlags: {
      autoEnrollment: false,
      machineType: false,
    },
    privateKeyAttributes: {
      keySpec: 'keySpec',
      minimalKeyLength: 123,

      // the properties below are optional
      cryptoProviders: ['cryptoProviders'],
    },
    privateKeyFlags: {
      clientVersion: 'clientVersion',

      // the properties below are optional
      exportableKey: false,
      strongKeyProtectionRequired: false,
    },
    subjectNameFlags: {
      requireCommonName: false,
      requireDirectoryPath: false,
      requireDnsAsCn: false,
      requireEmail: false,
      sanRequireDirectoryGuid: false,
      sanRequireDns: false,
      sanRequireDomainDns: false,
      sanRequireEmail: false,
      sanRequireSpn: false,
      sanRequireUpn: false,
    },

    // the properties below are optional
    supersededTemplates: ['supersededTemplates'],
  },
  templateV3: {
    certificateValidity: {
      renewalPeriod: {
        period: 123,
        periodType: 'periodType',
      },
      validityPeriod: {
        period: 123,
        periodType: 'periodType',
      },
    },
    enrollmentFlags: {
      enableKeyReuseOnNtTokenKeysetStorageFull: false,
      includeSymmetricAlgorithms: false,
      noSecurityExtension: false,
      removeInvalidCertificateFromPersonalStore: false,
      userInteractionRequired: false,
    },
    extensions: {
      keyUsage: {
        usageFlags: {
          dataEncipherment: false,
          digitalSignature: false,
          keyAgreement: false,
          keyEncipherment: false,
          nonRepudiation: false,
        },

        // the properties below are optional
        critical: false,
      },

      // the properties below are optional
      applicationPolicies: {
        policies: [{
          policyObjectIdentifier: 'policyObjectIdentifier',
          policyType: 'policyType',
        }],

        // the properties below are optional
        critical: false,
      },
    },
    generalFlags: {
      autoEnrollment: false,
      machineType: false,
    },
    hashAlgorithm: 'hashAlgorithm',
    privateKeyAttributes: {
      algorithm: 'algorithm',
      keySpec: 'keySpec',
      keyUsageProperty: {
        propertyFlags: {
          decrypt: false,
          keyAgreement: false,
          sign: false,
        },
        propertyType: 'propertyType',
      },
      minimalKeyLength: 123,

      // the properties below are optional
      cryptoProviders: ['cryptoProviders'],
    },
    privateKeyFlags: {
      clientVersion: 'clientVersion',

      // the properties below are optional
      exportableKey: false,
      requireAlternateSignatureAlgorithm: false,
      strongKeyProtectionRequired: false,
    },
    subjectNameFlags: {
      requireCommonName: false,
      requireDirectoryPath: false,
      requireDnsAsCn: false,
      requireEmail: false,
      sanRequireDirectoryGuid: false,
      sanRequireDns: false,
      sanRequireDomainDns: false,
      sanRequireEmail: false,
      sanRequireSpn: false,
      sanRequireUpn: false,
    },

    // the properties below are optional
    supersededTemplates: ['supersededTemplates'],
  },
  templateV4: {
    certificateValidity: {
      renewalPeriod: {
        period: 123,
        periodType: 'periodType',
      },
      validityPeriod: {
        period: 123,
        periodType: 'periodType',
      },
    },
    enrollmentFlags: {
      enableKeyReuseOnNtTokenKeysetStorageFull: false,
      includeSymmetricAlgorithms: false,
      noSecurityExtension: false,
      removeInvalidCertificateFromPersonalStore: false,
      userInteractionRequired: false,
    },
    extensions: {
      keyUsage: {
        usageFlags: {
          dataEncipherment: false,
          digitalSignature: false,
          keyAgreement: false,
          keyEncipherment: false,
          nonRepudiation: false,
        },

        // the properties below are optional
        critical: false,
      },

      // the properties below are optional
      applicationPolicies: {
        policies: [{
          policyObjectIdentifier: 'policyObjectIdentifier',
          policyType: 'policyType',
        }],

        // the properties below are optional
        critical: false,
      },
    },
    generalFlags: {
      autoEnrollment: false,
      machineType: false,
    },
    privateKeyAttributes: {
      keySpec: 'keySpec',
      minimalKeyLength: 123,

      // the properties below are optional
      algorithm: 'algorithm',
      cryptoProviders: ['cryptoProviders'],
      keyUsageProperty: {
        propertyFlags: {
          decrypt: false,
          keyAgreement: false,
          sign: false,
        },
        propertyType: 'propertyType',
      },
    },
    privateKeyFlags: {
      clientVersion: 'clientVersion',

      // the properties below are optional
      exportableKey: false,
      requireAlternateSignatureAlgorithm: false,
      requireSameKeyRenewal: false,
      strongKeyProtectionRequired: false,
      useLegacyProvider: false,
    },
    subjectNameFlags: {
      requireCommonName: false,
      requireDirectoryPath: false,
      requireDnsAsCn: false,
      requireEmail: false,
      sanRequireDirectoryGuid: false,
      sanRequireDns: false,
      sanRequireDomainDns: false,
      sanRequireEmail: false,
      sanRequireSpn: false,
      sanRequireUpn: false,
    },

    // the properties below are optional
    hashAlgorithm: 'hashAlgorithm',
    supersededTemplates: ['supersededTemplates'],
  },
};

Properties ​

templateV2IResolvable | CfnTemplate.TemplateV2Propertytemplate_v2typing.Union[IResolvable, TemplateV2Property]templateV2IResolvableTemplateV2IResolvableTemplateV2interface{}#
Template configuration to define the information included in certificates.

Define certificate validity and renewal periods, certificate request handling and enrollment options, key usage extensions, application policies, and cryptography settings.

templateV3IResolvable | CfnTemplate.TemplateV3Propertytemplate_v3typing.Union[IResolvable, TemplateV3Property]templateV3IResolvableTemplateV3IResolvableTemplateV3interface{}#
Template configuration to define the information included in certificates.

Define certificate validity and renewal periods, certificate request handling and enrollment options, key usage extensions, application policies, and cryptography settings.

templateV4IResolvable | CfnTemplate.TemplateV4Propertytemplate_v4typing.Union[IResolvable, TemplateV4Property]templateV4IResolvableTemplateV4IResolvableTemplateV4interface{}#
Template configuration to define the information included in certificates.

Define certificate validity and renewal periods, certificate request handling and enrollment options, key usage extensions, application policies, and cryptography settings.