deleteCertificateAuthority method

Future<void> deleteCertificateAuthority({
  1. required String certificateAuthorityArn,
  2. int? permanentDeletionTimeInDays,
})

Deletes a private certificate authority (CA). You must provide the Amazon Resource Name (ARN) of the private CA that you want to delete. You can find the ARN by calling the ListCertificateAuthorities action. Before you can delete a CA that you have created and activated, you must disable it. To do this, call the UpdateCertificateAuthority action and set the CertificateAuthorityStatus parameter to DISABLED.

Additionally, you can delete a CA if you are waiting for it to be created (that is, the status of the CA is CREATING). You can also delete it if the CA has been created but you haven't yet imported the signed certificate into ACM Private CA (that is, the status of the CA is PENDING_CERTIFICATE).

When you successfully call DeleteCertificateAuthority, the CA's status changes to DELETED. However, the CA won't be permanently deleted until the restoration period has passed. By default, if you do not set the PermanentDeletionTimeInDays parameter, the CA remains restorable for 30 days. You can set the parameter from 7 to 30 days. The DescribeCertificateAuthority action returns the time remaining in the restoration window of a private CA in the DELETED state. To restore an eligible CA, call the RestoreCertificateAuthority action.

May throw ConcurrentModificationException. May throw ResourceNotFoundException. May throw InvalidArnException. May throw InvalidStateException.

Parameter certificateAuthorityArn : The Amazon Resource Name (ARN) that was returned when you called CreateCertificateAuthority. This must have the following form:

arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012 .

Parameter permanentDeletionTimeInDays : The number of days to make a CA restorable after it has been deleted. This can be anywhere from 7 to 30 days, with 30 being the default.

Implementation

Future<void> deleteCertificateAuthority({
  required String certificateAuthorityArn,
  int? permanentDeletionTimeInDays,
}) async {
  ArgumentError.checkNotNull(
      certificateAuthorityArn, 'certificateAuthorityArn');
  _s.validateStringLength(
    'certificateAuthorityArn',
    certificateAuthorityArn,
    5,
    200,
    isRequired: true,
  );
  _s.validateNumRange(
    'permanentDeletionTimeInDays',
    permanentDeletionTimeInDays,
    7,
    30,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'ACMPrivateCA.DeleteCertificateAuthority'
  };
  await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'CertificateAuthorityArn': certificateAuthorityArn,
      if (permanentDeletionTimeInDays != null)
        'PermanentDeletionTimeInDays': permanentDeletionTimeInDays,
    },
  );
}