deleteCertificateAuthority method
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,
},
);
}