{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/amazon-iot-core/json-schema/amazon-iot-core-register-cacertificate-request-schema.json",
  "title": "RegisterCACertificateRequest",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amazon-iot-core-cacertificate-api-openapi.yml#/components/schemas/RegisterCACertificateRequest",
  "type": "object",
  "properties": {
    "caCertificate": {
      "type": "string",
      "description": "The CA certificate."
    },
    "verificationCertificate": {
      "type": "string",
      "description": "The private key verification certificate. If certificateMode is SNI_ONLY, the verificationCertificate field must be empty. If certificateMode is DEFAULT or not provided, the verificationCertificate field must not be empty."
    },
    "setAsActive": {
      "type": "boolean",
      "description": "A boolean value that specifies if the CA certificate is set to active. Valid values: ACTIVE | INACTIVE"
    },
    "allowAutoRegistration": {
      "type": "boolean",
      "description": "Allows this CA certificate to be used for auto registration of device certificates."
    },
    "registrationConfig": {
      "$ref": "#/$defs/RegistrationConfig"
    },
    "tags": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Tag"
      },
      "description": "Metadata which can be used to manage the CA certificate. For URI Request parameters use format: ...key1=value1&key2=value2... 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...\""
    },
    "certificateMode": {
      "type": "string",
      "enum": [
        "DEFAULT",
        "SNI_ONLY"
      ],
      "description": "Describes the certificate mode in which the Certificate Authority (CA) will be registered. If the verificationCertificate field is not provided, set certificateMode to be SNI_ONLY. If the verificationCertificate field is provided, set certificateMode to be DEFAULT. When certificateMode is not provided, it defaults to DEFAULT. All the device certificates that are registered using this CA will be registered in the same certificate mode as the CA. For more information about certificate mode for device certificates, see certificate mode."
    }
  },
  "required": [
    "caCertificate"
  ],
  "$defs": {
    "RegistrationConfig": {
      "type": "object",
      "properties": {
        "templateBody": {
          "type": "string",
          "description": "The template body."
        },
        "roleArn": {
          "type": "string",
          "description": "The ARN of the role."
        },
        "templateName": {
          "type": "string",
          "description": "The name of the provisioning template."
        }
      }
    },
    "Tag": {
      "type": "object",
      "properties": {
        "Key": {
          "type": "string",
          "description": "The tag's key."
        },
        "Value": {
          "type": "string",
          "description": "The tag's value."
        }
      },
      "required": [
        "Key"
      ]
    }
  }
}