{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--mongodb-atlas-ldapverify.json",
  "title": "MongoDBAtlasLDAPVerifyProperties",
  "description": "Requests a verification of an LDAP configuration over TLS for an Atlas project. Pass the requestId in the response object to the Verify |ldap| Configuration endpoint to get the status of a verification request. Atlas retains only the most recent request for each project.. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/mongodb-atlas-ldapverify.json",
    "sourceSha256": "9029eac9ba048e3a2dfa4502de33c3b3d6a8cad435e5a20bdc2264c235370cdb"
  },
  "type": "object",
  "properties": {
    "Profile": {
      "oneOf": [
        {
          "type": "string",
          "default": "default"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Profile used to provide credentials information, (a secret with the cfn/atlas/profile/{Profile}, is required), if not provided default is used"
    },
    "Validations": {
      "type": "array",
      "description": "List of validation messages related to the verification of the provided LDAP over TLS configuration details. The array contains a document for each test that Atlas runs. Atlas stops running tests after the first failure.",
      "items": {
        "$ref": "#/$defs/Validation",
        "type": "object"
      },
      "insertionOrder": false
    },
    "BindUsername": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Full Distinguished Name (DN) of the Lightweight Directory Access Protocol (LDAP) user that MongoDB Cloud uses to connect to the LDAP host. LDAP distinguished names must be formatted according to RFC 2253."
    },
    "HostName": {
      "oneOf": [
        {
          "type": "string",
          "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}|([0-9a-f]{1,4}\\:){7}([0-9a-f]{1,4})|(([a-z0-9]+\\.){1,10}[a-z]+)?$"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Human-readable label that identifies the hostname or Internet Protocol (IP) address of the Lightweight Directory Access Protocol (LDAP) host. This host must have access to the internet or have a Virtual Private Cloud (VPC) peering connection to your cluster."
    },
    "CaCertificate": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Certificate Authority (CA) certificate that MongoDB Cloud uses to verify the identity of the Lightweight Directory Access Protocol (LDAP) host. MongoDB Cloud allows self-signed certificates. To delete an assigned value, pass an empty string: `\"caCertificate\": \"\"`"
    },
    "AuthzQueryTemplate": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Lightweight Directory Access Protocol (LDAP) query template that MongoDB Cloud runs to obtain the LDAP groups associated with the authenticated user. MongoDB Cloud uses this parameter only for user authorization. Use the `{USER}` placeholder in the Uniform Resource Locator (URL) to substitute the authenticated username. The query relates to the host specified with the hostname. Format this query according to [RFC 4515](https://tools.ietf.org/search/rfc4515) and [RFC 4516](https://datatracker.ietf.org/doc/html/rfc4516)."
    },
    "BindPassword": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Password that MongoDB Cloud uses to authenticate the **bindUsername**."
    },
    "ProjectId": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 24,
          "minLength": 24,
          "pattern": "^([a-f0-9]{24})$"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Unique 24-hexadecimal digit string that identifies your project."
    },
    "Port": {
      "type": "integer",
      "description": "Port to which the Lightweight Directory Access Protocol (LDAP) host listens for client connections."
    }
  },
  "typeName": "MongoDB::Atlas::LDAPVerify",
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git",
  "required": [
    "ProjectId",
    "BindUsername",
    "BindPassword",
    "HostName",
    "Port"
  ],
  "$defs": {
    "Validation": {
      "type": "object",
      "properties": {
        "Status": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ValidationType": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "title": "MongoDBAtlasLDAPVerifyValidationDefinition",
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "createOnlyProperties": [
    "/properties/ProjectId",
    "/properties/Profile"
  ],
  "primaryIdentifier": [
    "/properties/RequestId",
    "/properties/ProjectId",
    "/properties/Profile"
  ],
  "readOnlyProperties": [
    "/properties/RequestId",
    "/properties/Status"
  ]
}
