{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--mongodb-atlas-serverlessinstance.json",
  "title": "MongoDBAtlasServerlessInstanceProperties",
  "description": "Returns, adds, edits, and removes serverless instances.. 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-serverlessinstance.json",
    "sourceSha256": "e7fb7b66f36e989af199990a394516b23f0ce7f12eeee1a37474c2c0aeb1e7a3"
  },
  "type": "object",
  "properties": {
    "ContinuousBackupEnabled": {
      "type": "boolean",
      "description": "Flag that indicates whether the serverless instances uses Serverless Continuous Backup. If this parameter is false, the serverless instance uses Basic Backup. | Option | Description | |---|---| | Serverless Continuous Backup | Atlas takes incremental snapshots of the data in your serverless instance every six hours and lets you restore the data from a selected point in time within the last 72 hours. Atlas also takes daily snapshots and retains these daily snapshots for 35 days. To learn more, see Serverless Instance Costs. | | Basic Backup | Atlas takes incremental snapshots of the data in your serverless instance every six hours and retains only the two most recent snapshots. You can use this option for free. "
    },
    "IncludeCount": {
      "type": "boolean",
      "description": "Flag that indicates whether the response returns the total number of items (**totalCount**) in the response."
    },
    "ItemsPerPage": {
      "type": "integer",
      "description": "Number of items that the response returns per page."
    },
    "Name": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]*$"
        },
        {
          "$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 serverless instance."
    },
    "PageNum": {
      "type": "integer",
      "description": "Number of the page that displays the current set of the total objects that the response returns."
    },
    "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."
    },
    "ProviderSettings": {
      "type": "object",
      "description": "Group of settings that configure the provisioned MongoDB serverless instance. The options available relate to the cloud service provider.",
      "$ref": "#/$defs/ServerlessInstanceProviderSettings"
    },
    "TerminationProtectionEnabled": {
      "type": "boolean",
      "description": "Flag that indicates whether termination protection is enabled on the serverless instance. If set to true, MongoDB Cloud won't delete the serverless instance. If set to false, MongoDB cloud will delete the serverless instance.\""
    },
    "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"
    }
  },
  "typeName": "MongoDB::Atlas::ServerlessInstance",
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git",
  "$defs": {
    "ServerlessInstanceConnectionStrings": {
      "type": "object",
      "properties": {
        "PrivateEndpoint": {
          "type": "array",
          "description": "List of private endpoint connection strings that you can use to connect to this serverless instance through a private endpoint. This parameter returns only if you created a private endpoint for this serverless instance and it is AVAILABLE.",
          "items": {
            "$ref": "#/$defs/ServerlessInstancePrivateEndpoint",
            "type": "object"
          }
        },
        "StandardSrv": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Public connection string that you can use to connect to this serverless instance. This connection string uses the `mongodb+srv://` protocol."
        }
      },
      "title": "MongoDBAtlasServerlessInstanceServerlessInstanceConnectionStringsDefinition",
      "additionalProperties": false
    },
    "ServerlessInstancePrivateEndpoint": {
      "type": "object",
      "properties": {
        "Endpoints": {
          "type": "array",
          "description": "List that contains the private endpoints through which you connect to MongoDB Cloud when you use **connectionStrings.privateEndpoint[n].srvConnectionString**.",
          "items": {
            "$ref": "#/$defs/ServerlessInstancePrivateEndpointEndpoint",
            "type": "object"
          }
        },
        "SrvConnectionString": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Private endpoint-aware connection string that uses the `mongodb+srv://` protocol to connect to MongoDB Cloud through a private endpoint. The `mongodb+srv` protocol tells the driver to look up the seed list of hosts in the Domain Name System (DNS)."
        },
        "Type": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "MONGOS"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "MongoDB process type to which your application connects.\n"
        }
      },
      "title": "MongoDBAtlasServerlessInstanceServerlessInstancePrivateEndpointDefinition",
      "additionalProperties": false
    },
    "ServerlessInstancePrivateEndpointEndpoint": {
      "type": "object",
      "properties": {
        "EndpointId": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Unique provider identifier of the private endpoint.\n"
        },
        "ProviderName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Cloud provider where the private endpoint is deployed.\n"
        },
        "Region": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Region where the private endpoint is deployed.\n"
        }
      },
      "title": "MongoDBAtlasServerlessInstanceServerlessInstancePrivateEndpointEndpointDefinition",
      "additionalProperties": false
    },
    "ServerlessInstanceProviderSettings": {
      "type": "object",
      "properties": {
        "ProviderName": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "SERVERLESS"
              ]
            },
            {
              "$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 cloud service provider."
        },
        "RegionName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$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 geographic location of your MongoDB serverless instance. The region you choose can affect network latency for clients accessing your databases. For a complete list of region names, see [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/#std-label-amazon-aws), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), and [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/)."
        }
      },
      "title": "MongoDBAtlasServerlessInstanceServerlessInstanceProviderSettingsDefinition",
      "additionalProperties": false
    }
  },
  "createOnlyProperties": [
    "/properties/Name",
    "/properties/ProjectID",
    "/properties/Profile"
  ],
  "additionalProperties": false,
  "primaryIdentifier": [
    "/properties/Name",
    "/properties/ProjectID",
    "/properties/Profile"
  ],
  "readOnlyProperties": [
    "/properties/CreateDate",
    "/properties/Id",
    "/properties/TotalCount",
    "/properties/ConnectionStrings",
    "/properties/StateName",
    "/properties/MongoDBVersion",
    "/properties/ConnectionStrings/StandardSrv",
    "/properties/ConnectionStrings/PrivateEndpoint",
    "/properties/ConnectionStrings/PrivateEndpoint/SrvConnectionString",
    "/properties/ConnectionStrings/PrivateEndpoint/Type",
    "/properties/ConnectionStrings/PrivateEndpoint/Endpoints/EndpointId",
    "/properties/ConnectionStrings/PrivateEndpoint/Endpoints/ProviderName",
    "/properties/ConnectionStrings/PrivateEndpoint/Endpoints/Region"
  ]
}
