protected override void ProcessRecord()
{
if (ShouldProcess(string.Empty, Properties.Resources.CreateCertificatePolicy))
{
// Validate input parameters
ValidateSubjectName();
ValidateDnsNames();
ValidateKeyUsage();
ValidateEkus();
ValidateRenewAtNumberOfDaysBeforeExpiry();
ValidateRenewAtPercentageLifetime();
// Validate combinations of parameters
ValidateBothPercentageAndNumberOfDaysAreNotPresent();
ValidateAtLeastOneOfSubjectNameAndDnsNamesIsPresent();
var policy = new KeyVaultCertificatePolicy
{
DnsNames = DnsNames,
Ekus = Ekus,
Enabled = !Disabled.IsPresent,
IssuerName = IssuerName,
CertificateType = CertificateType,
RenewAtNumberOfDaysBeforeExpiry = RenewAtNumberOfDaysBeforeExpiry,
RenewAtPercentageLifetime = RenewAtPercentageLifetime,
EmailAtNumberOfDaysBeforeExpiry = EmailAtNumberOfDaysBeforeExpiry,
EmailAtPercentageLifetime = EmailAtPercentageLifetime,
ReuseKeyOnRenewal = ReuseKeyOnRenewal.IsPresent,
SecretContentType = SecretContentType,
SubjectName = SubjectName,
ValidityInMonths = ValidityInMonths,
Kty = KeyType,
Exportable = KeyNotExportable.IsPresent ? !KeyNotExportable.IsPresent : (bool?)null
};
this.WriteObject(policy);
}
}