{
 "additionalProperties": false,
 "createOnlyProperties": [
  "/properties/ApiPassthrough",
  "/properties/CertificateAuthorityArn",
  "/properties/CertificateSigningRequest",
  "/properties/SigningAlgorithm",
  "/properties/TemplateArn",
  "/properties/Validity",
  "/properties/ValidityNotBefore"
 ],
 "definitions": {
  "ApiPassthrough": {
   "additionalProperties": false,
   "properties": {
    "Extensions": {
     "$ref": "#/definitions/Extensions"
    },
    "Subject": {
     "$ref": "#/definitions/Subject"
    }
   },
   "type": "object"
  },
  "Arn": {
   "type": "string"
  },
  "CertificatePolicyList": {
   "items": {
    "$ref": "#/definitions/PolicyInformation"
   },
   "type": "array"
  },
  "CustomAttribute": {
   "additionalProperties": false,
   "properties": {
    "ObjectIdentifier": {
     "$ref": "#/definitions/CustomObjectIdentifier"
    },
    "Value": {
     "type": "string"
    }
   },
   "required": [
    "ObjectIdentifier",
    "Value"
   ],
   "type": "object"
  },
  "CustomAttributeList": {
   "items": {
    "$ref": "#/definitions/CustomAttribute"
   },
   "type": "array"
  },
  "CustomExtension": {
   "additionalProperties": false,
   "properties": {
    "Critical": {
     "type": "boolean"
    },
    "ObjectIdentifier": {
     "$ref": "#/definitions/CustomObjectIdentifier"
    },
    "Value": {
     "type": "string"
    }
   },
   "required": [
    "ObjectIdentifier",
    "Value"
   ],
   "type": "object"
  },
  "CustomExtensionList": {
   "items": {
    "$ref": "#/definitions/CustomExtension"
   },
   "type": "array"
  },
  "CustomObjectIdentifier": {
   "type": "string"
  },
  "DnsName": {
   "type": "string"
  },
  "EdiPartyName": {
   "additionalProperties": false,
   "properties": {
    "NameAssigner": {
     "type": "string"
    },
    "PartyName": {
     "type": "string"
    }
   },
   "required": [
    "PartyName",
    "NameAssigner"
   ],
   "type": "object"
  },
  "ExtendedKeyUsage": {
   "additionalProperties": false,
   "properties": {
    "ExtendedKeyUsageObjectIdentifier": {
     "$ref": "#/definitions/CustomObjectIdentifier"
    },
    "ExtendedKeyUsageType": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "ExtendedKeyUsageList": {
   "items": {
    "$ref": "#/definitions/ExtendedKeyUsage"
   },
   "type": "array"
  },
  "Extensions": {
   "additionalProperties": false,
   "properties": {
    "CertificatePolicies": {
     "$ref": "#/definitions/CertificatePolicyList"
    },
    "CustomExtensions": {
     "$ref": "#/definitions/CustomExtensionList"
    },
    "ExtendedKeyUsage": {
     "$ref": "#/definitions/ExtendedKeyUsageList"
    },
    "KeyUsage": {
     "$ref": "#/definitions/KeyUsage"
    },
    "SubjectAlternativeNames": {
     "$ref": "#/definitions/GeneralNameList"
    }
   },
   "type": "object"
  },
  "GeneralName": {
   "additionalProperties": false,
   "properties": {
    "DirectoryName": {
     "$ref": "#/definitions/Subject"
    },
    "DnsName": {
     "$ref": "#/definitions/DnsName"
    },
    "EdiPartyName": {
     "$ref": "#/definitions/EdiPartyName"
    },
    "IpAddress": {
     "$ref": "#/definitions/IpAddress"
    },
    "OtherName": {
     "$ref": "#/definitions/OtherName"
    },
    "RegisteredId": {
     "$ref": "#/definitions/CustomObjectIdentifier"
    },
    "Rfc822Name": {
     "$ref": "#/definitions/Rfc822Name"
    },
    "UniformResourceIdentifier": {
     "$ref": "#/definitions/UniformResourceIdentifier"
    }
   },
   "type": "object"
  },
  "GeneralNameList": {
   "items": {
    "$ref": "#/definitions/GeneralName"
   },
   "type": "array"
  },
  "IpAddress": {
   "type": "string"
  },
  "KeyUsage": {
   "additionalProperties": false,
   "properties": {
    "CRLSign": {
     "default": false,
     "type": "boolean"
    },
    "DataEncipherment": {
     "default": false,
     "type": "boolean"
    },
    "DecipherOnly": {
     "default": false,
     "type": "boolean"
    },
    "DigitalSignature": {
     "default": false,
     "type": "boolean"
    },
    "EncipherOnly": {
     "default": false,
     "type": "boolean"
    },
    "KeyAgreement": {
     "default": false,
     "type": "boolean"
    },
    "KeyCertSign": {
     "default": false,
     "type": "boolean"
    },
    "KeyEncipherment": {
     "default": false,
     "type": "boolean"
    },
    "NonRepudiation": {
     "default": false,
     "type": "boolean"
    }
   },
   "type": "object"
  },
  "OtherName": {
   "additionalProperties": false,
   "properties": {
    "TypeId": {
     "$ref": "#/definitions/CustomObjectIdentifier"
    },
    "Value": {
     "type": "string"
    }
   },
   "required": [
    "TypeId",
    "Value"
   ],
   "type": "object"
  },
  "PolicyInformation": {
   "additionalProperties": false,
   "properties": {
    "CertPolicyId": {
     "$ref": "#/definitions/CustomObjectIdentifier"
    },
    "PolicyQualifiers": {
     "$ref": "#/definitions/PolicyQualifierInfoList"
    }
   },
   "required": [
    "CertPolicyId"
   ],
   "type": "object"
  },
  "PolicyQualifierInfo": {
   "additionalProperties": false,
   "properties": {
    "PolicyQualifierId": {
     "type": "string"
    },
    "Qualifier": {
     "$ref": "#/definitions/Qualifier"
    }
   },
   "required": [
    "PolicyQualifierId",
    "Qualifier"
   ],
   "type": "object"
  },
  "PolicyQualifierInfoList": {
   "items": {
    "$ref": "#/definitions/PolicyQualifierInfo"
   },
   "type": "array"
  },
  "Qualifier": {
   "additionalProperties": false,
   "properties": {
    "CpsUri": {
     "type": "string"
    }
   },
   "required": [
    "CpsUri"
   ],
   "type": "object"
  },
  "Rfc822Name": {
   "type": "string"
  },
  "Subject": {
   "additionalProperties": false,
   "properties": {
    "CommonName": {
     "type": "string"
    },
    "Country": {
     "type": "string"
    },
    "CustomAttributes": {
     "$ref": "#/definitions/CustomAttributeList"
    },
    "DistinguishedNameQualifier": {
     "type": "string"
    },
    "GenerationQualifier": {
     "type": "string"
    },
    "GivenName": {
     "type": "string"
    },
    "Initials": {
     "type": "string"
    },
    "Locality": {
     "type": "string"
    },
    "Organization": {
     "type": "string"
    },
    "OrganizationalUnit": {
     "type": "string"
    },
    "Pseudonym": {
     "type": "string"
    },
    "SerialNumber": {
     "type": "string"
    },
    "State": {
     "type": "string"
    },
    "Surname": {
     "type": "string"
    },
    "Title": {
     "type": "string"
    }
   },
   "type": "object"
  },
  "UniformResourceIdentifier": {
   "type": "string"
  },
  "Validity": {
   "additionalProperties": false,
   "properties": {
    "Type": {
     "type": "string"
    },
    "Value": {
     "type": "number"
    }
   },
   "required": [
    "Value",
    "Type"
   ],
   "type": "object"
  }
 },
 "primaryIdentifier": [
  "/properties/Arn",
  "/properties/CertificateAuthorityArn"
 ],
 "properties": {
  "ApiPassthrough": {
   "$ref": "#/definitions/ApiPassthrough"
  },
  "Arn": {
   "$ref": "#/definitions/Arn"
  },
  "Certificate": {
   "type": "string"
  },
  "CertificateAuthorityArn": {
   "$ref": "#/definitions/Arn"
  },
  "CertificateSigningRequest": {
   "minLength": 1,
   "type": "string"
  },
  "SigningAlgorithm": {
   "type": "string"
  },
  "TemplateArn": {
   "$ref": "#/definitions/Arn"
  },
  "Validity": {
   "$ref": "#/definitions/Validity"
  },
  "ValidityNotBefore": {
   "$ref": "#/definitions/Validity"
  }
 },
 "readOnlyProperties": [
  "/properties/Arn",
  "/properties/Certificate"
 ],
 "required": [
  "CertificateAuthorityArn",
  "CertificateSigningRequest",
  "SigningAlgorithm",
  "Validity"
 ],
 "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html",
 "tagging": {
  "cloudFormationSystemTags": false,
  "tagOnCreate": false,
  "tagUpdatable": false,
  "taggable": false
 },
 "typeName": "AWS::ACMPCA::Certificate",
 "writeOnlyProperties": [
  "/properties/ApiPassthrough",
  "/properties/CertificateSigningRequest",
  "/properties/SigningAlgorithm",
  "/properties/TemplateArn",
  "/properties/Validity",
  "/properties/ValidityNotBefore"
 ]
}
