registerCACertificate method

Future<RegisterCACertificateResponse> registerCACertificate({
  1. required String caCertificate,
  2. required String verificationCertificate,
  3. bool? allowAutoRegistration,
  4. RegistrationConfig? registrationConfig,
  5. bool? setAsActive,
  6. List<Tag>? tags,
})

Registers a CA certificate with AWS IoT. This CA certificate can then be used to sign device certificates, which can be then registered with AWS IoT. You can register up to 10 CA certificates per AWS account that have the same subject field. This enables you to have up to 10 certificate authorities sign your device certificates. If you have more than one CA certificate registered, make sure you pass the CA certificate when you register your device certificates with the RegisterCertificate API.

May throw ResourceAlreadyExistsException. May throw RegistrationCodeValidationException. May throw InvalidRequestException. May throw CertificateValidationException. May throw ThrottlingException. May throw LimitExceededException. May throw UnauthorizedException. May throw ServiceUnavailableException. May throw InternalFailureException.

Parameter caCertificate : The CA certificate.

Parameter verificationCertificate : The private key verification certificate.

Parameter allowAutoRegistration : Allows this CA certificate to be used for auto registration of device certificates.

Parameter registrationConfig : Information about the registration configuration.

Parameter setAsActive : A boolean value that specifies if the CA certificate is set to active.

Parameter tags : Metadata which can be used to manage the CA certificate.

For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."

For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."

Implementation

Future<RegisterCACertificateResponse> registerCACertificate({
  required String caCertificate,
  required String verificationCertificate,
  bool? allowAutoRegistration,
  RegistrationConfig? registrationConfig,
  bool? setAsActive,
  List<Tag>? tags,
}) async {
  ArgumentError.checkNotNull(caCertificate, 'caCertificate');
  _s.validateStringLength(
    'caCertificate',
    caCertificate,
    1,
    65536,
    isRequired: true,
  );
  ArgumentError.checkNotNull(
      verificationCertificate, 'verificationCertificate');
  _s.validateStringLength(
    'verificationCertificate',
    verificationCertificate,
    1,
    65536,
    isRequired: true,
  );
  final $query = <String, List<String>>{
    if (allowAutoRegistration != null)
      'allowAutoRegistration': [allowAutoRegistration.toString()],
    if (setAsActive != null) 'setAsActive': [setAsActive.toString()],
  };
  final $payload = <String, dynamic>{
    'caCertificate': caCertificate,
    'verificationCertificate': verificationCertificate,
    if (registrationConfig != null) 'registrationConfig': registrationConfig,
    if (tags != null) 'tags': tags,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/cacertificate',
    queryParams: $query,
    exceptionFnMap: _exceptionFns,
  );
  return RegisterCACertificateResponse.fromJson(response);
}