{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-acmpca-certificateauthority.json",
  "title": "AWSACMPCACertificateAuthorityProperties",
  "description": "Private certificate authority.. Source:- <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-acmpca-certificateauthority.json",
    "sourceSha256": "4b631e7cfd323496caffe57c077bd1c90edb2c8a281e6c58a47add47722b4503"
  },
  "type": "object",
  "properties": {
    "Type": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The type of the certificate authority."
    },
    "KeyAlgorithm": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Public key algorithm and size, in bits, of the key pair that your CA creates when it issues a certificate."
    },
    "SigningAlgorithm": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Algorithm your CA uses to sign certificate requests."
    },
    "Subject": {
      "description": "Structure that contains X.500 distinguished name information for your CA.",
      "$ref": "#/$defs/Subject"
    },
    "RevocationConfiguration": {
      "description": "Certificate revocation information used by the CreateCertificateAuthority and UpdateCertificateAuthority actions.",
      "$ref": "#/$defs/RevocationConfiguration"
    },
    "Tags": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Tag"
      }
    },
    "CsrExtensions": {
      "description": "Structure that contains CSR pass through extension information used by the CreateCertificateAuthority action.",
      "$ref": "#/$defs/CsrExtensions"
    },
    "KeyStorageSecurityStandard": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "KeyStorageSecurityStadard defines a cryptographic key management compliance standard used for handling CA keys."
    },
    "UsageMode": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Usage mode of the ceritificate authority."
    }
  },
  "typeName": "AWS::ACMPCA::CertificateAuthority",
  "primaryIdentifier": [
    "/properties/Arn"
  ],
  "sourceUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ACMPCA.html",
  "additionalProperties": false,
  "createOnlyProperties": [
    "/properties/Type",
    "/properties/KeyAlgorithm",
    "/properties/SigningAlgorithm",
    "/properties/Subject",
    "/properties/CsrExtensions",
    "/properties/KeyStorageSecurityStandard",
    "/properties/UsageMode"
  ],
  "$defs": {
    "Arn": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSACMPCACertificateAuthorityArnDefinition"
    },
    "Tag": {
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityTagDefinition",
      "properties": {
        "Key": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "Subject": {
      "description": "Structure that contains X.500 distinguished name information for your CA.",
      "type": "object",
      "title": "AWSACMPCACertificateAuthoritySubjectDefinition",
      "properties": {
        "Country": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Organization": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "OrganizationalUnit": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "DistinguishedNameQualifier": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "State": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "CommonName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "SerialNumber": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Locality": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Title": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Surname": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "GivenName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Initials": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Pseudonym": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "GenerationQualifier": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "CustomAttributes": {
          "$ref": "#/$defs/CustomAttributeList"
        }
      },
      "additionalProperties": false
    },
    "CustomAttributeList": {
      "description": "Array of X.500 attribute type and value. CustomAttributes cannot be used along with pre-defined attributes.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/CustomAttribute"
      },
      "title": "AWSACMPCACertificateAuthorityCustomAttributeListDefinition"
    },
    "CustomAttribute": {
      "description": "Structure that contains X.500 attribute type and value.",
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityCustomAttributeDefinition",
      "properties": {
        "ObjectIdentifier": {
          "$ref": "#/$defs/CustomObjectIdentifier"
        },
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "ObjectIdentifier",
        "Value"
      ],
      "additionalProperties": false
    },
    "CrlConfiguration": {
      "description": "Your certificate authority can create and maintain a certificate revocation list (CRL). A CRL contains information about certificates that have been revoked.",
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityCrlConfigurationDefinition",
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "ExpirationInDays": {
          "type": "integer"
        },
        "CustomCname": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "S3BucketName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "S3ObjectAcl": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "OcspConfiguration": {
      "description": "Helps to configure online certificate status protocol (OCSP) responder for your certificate authority",
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityOcspConfigurationDefinition",
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "OcspCustomCname": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "RevocationConfiguration": {
      "description": "Certificate Authority revocation information.",
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityRevocationConfigurationDefinition",
      "properties": {
        "CrlConfiguration": {
          "$ref": "#/$defs/CrlConfiguration"
        },
        "OcspConfiguration": {
          "$ref": "#/$defs/OcspConfiguration"
        }
      },
      "additionalProperties": false
    },
    "KeyUsage": {
      "description": "Structure that contains X.509 KeyUsage information.",
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityKeyUsageDefinition",
      "properties": {
        "DigitalSignature": {
          "type": "boolean",
          "default": false
        },
        "NonRepudiation": {
          "type": "boolean",
          "default": false
        },
        "KeyEncipherment": {
          "type": "boolean",
          "default": false
        },
        "DataEncipherment": {
          "type": "boolean",
          "default": false
        },
        "KeyAgreement": {
          "type": "boolean",
          "default": false
        },
        "KeyCertSign": {
          "type": "boolean",
          "default": false
        },
        "CRLSign": {
          "type": "boolean",
          "default": false
        },
        "EncipherOnly": {
          "type": "boolean",
          "default": false
        },
        "DecipherOnly": {
          "type": "boolean",
          "default": false
        }
      },
      "additionalProperties": false
    },
    "CustomObjectIdentifier": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "String that contains X.509 ObjectIdentifier information.",
      "title": "AWSACMPCACertificateAuthorityCustomObjectIdentifierDefinition"
    },
    "AccessMethodType": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Pre-defined enum string for X.509 AccessMethod ObjectIdentifiers.",
      "title": "AWSACMPCACertificateAuthorityAccessMethodTypeDefinition"
    },
    "AccessMethod": {
      "description": "Structure that contains X.509 AccessMethod information. Assign one and ONLY one field.",
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityAccessMethodDefinition",
      "properties": {
        "CustomObjectIdentifier": {
          "$ref": "#/$defs/CustomObjectIdentifier"
        },
        "AccessMethodType": {
          "$ref": "#/$defs/AccessMethodType"
        }
      },
      "additionalProperties": false
    },
    "OtherName": {
      "description": "Structure that contains X.509 OtherName information.",
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityOtherNameDefinition",
      "properties": {
        "TypeId": {
          "$ref": "#/$defs/CustomObjectIdentifier"
        },
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "TypeId",
        "Value"
      ],
      "additionalProperties": false
    },
    "Rfc822Name": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "String that contains X.509 Rfc822Name information.",
      "title": "AWSACMPCACertificateAuthorityRfc822NameDefinition"
    },
    "DnsName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "String that contains X.509 DnsName information.",
      "title": "AWSACMPCACertificateAuthorityDnsNameDefinition"
    },
    "EdiPartyName": {
      "description": "Structure that contains X.509 EdiPartyName information.",
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityEdiPartyNameDefinition",
      "properties": {
        "PartyName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "NameAssigner": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "PartyName",
        "NameAssigner"
      ],
      "additionalProperties": false
    },
    "UniformResourceIdentifier": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "String that contains X.509 UniformResourceIdentifier information.",
      "title": "AWSACMPCACertificateAuthorityUniformResourceIdentifierDefinition"
    },
    "IpAddress": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "String that contains X.509 IpAddress information.",
      "title": "AWSACMPCACertificateAuthorityIpAddressDefinition"
    },
    "GeneralName": {
      "description": "Structure that contains X.509 GeneralName information. Assign one and ONLY one field.",
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityGeneralNameDefinition",
      "properties": {
        "OtherName": {
          "$ref": "#/$defs/OtherName"
        },
        "Rfc822Name": {
          "$ref": "#/$defs/Rfc822Name"
        },
        "DnsName": {
          "$ref": "#/$defs/DnsName"
        },
        "DirectoryName": {
          "$ref": "#/$defs/Subject"
        },
        "EdiPartyName": {
          "$ref": "#/$defs/EdiPartyName"
        },
        "UniformResourceIdentifier": {
          "$ref": "#/$defs/UniformResourceIdentifier"
        },
        "IpAddress": {
          "$ref": "#/$defs/IpAddress"
        },
        "RegisteredId": {
          "$ref": "#/$defs/CustomObjectIdentifier"
        }
      },
      "additionalProperties": false
    },
    "AccessDescription": {
      "description": "Structure that contains X.509 AccessDescription information.",
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityAccessDescriptionDefinition",
      "properties": {
        "AccessMethod": {
          "$ref": "#/$defs/AccessMethod"
        },
        "AccessLocation": {
          "$ref": "#/$defs/GeneralName"
        }
      },
      "required": [
        "AccessMethod",
        "AccessLocation"
      ],
      "additionalProperties": false
    },
    "SubjectInformationAccess": {
      "description": "Array of X.509 AccessDescription.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/AccessDescription"
      },
      "title": "AWSACMPCACertificateAuthoritySubjectInformationAccessDefinition"
    },
    "CsrExtensions": {
      "description": "Structure that contains CSR pass though extensions information.",
      "type": "object",
      "title": "AWSACMPCACertificateAuthorityCsrExtensionsDefinition",
      "properties": {
        "KeyUsage": {
          "$ref": "#/$defs/KeyUsage"
        },
        "SubjectInformationAccess": {
          "$ref": "#/$defs/SubjectInformationAccess"
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "Type",
    "KeyAlgorithm",
    "SigningAlgorithm",
    "Subject"
  ],
  "readOnlyProperties": [
    "/properties/Arn",
    "/properties/CertificateSigningRequest"
  ],
  "writeOnlyProperties": [
    "/properties/Subject"
  ]
}
