{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-rds-dbproxy.json",
  "title": "AWSRDSDBProxyProperties",
  "description": "Resource schema for AWS::RDS::DBProxy. 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/aws-rds-dbproxy.json",
    "sourceSha256": "14f481522bad3417bc8ded033bb383ddfea8bc7ac91b922741f88dc7fa489361"
  },
  "type": "object",
  "properties": {
    "Auth": {
      "description": "The authorization mechanism that the proxy uses.",
      "type": "array",
      "insertionOrder": false,
      "minItems": 1,
      "items": {
        "$ref": "#/$defs/AuthFormat"
      }
    },
    "DBProxyName": {
      "oneOf": [
        {
          "type": "string",
          "pattern": "[0-z]*",
          "maxLength": 64
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The identifier for the proxy. This name must be unique for all proxies owned by your AWS account in the specified AWS Region."
    },
    "DebugLogging": {
      "description": "Whether the proxy includes detailed information about SQL statements in its logs.",
      "type": "boolean"
    },
    "EngineFamily": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "MYSQL",
            "POSTGRESQL",
            "SQLSERVER"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The kinds of databases that the proxy can connect to."
    },
    "IdleClientTimeout": {
      "description": "The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it.",
      "type": "integer"
    },
    "RequireTLS": {
      "description": "A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy.",
      "type": "boolean"
    },
    "RoleArn": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager."
    },
    "Tags": {
      "description": "An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy.",
      "type": "array",
      "insertionOrder": false,
      "items": {
        "$ref": "#/$defs/TagFormat"
      }
    },
    "VpcSecurityGroupIds": {
      "description": "VPC security group IDs to associate with the new proxy.",
      "type": "array",
      "insertionOrder": false,
      "minItems": 1,
      "items": {
        "type": "string"
      }
    },
    "VpcSubnetIds": {
      "description": "VPC subnet IDs to associate with the new proxy.",
      "type": "array",
      "insertionOrder": false,
      "minItems": 2,
      "items": {
        "type": "string"
      }
    }
  },
  "typeName": "AWS::RDS::DBProxy",
  "primaryIdentifier": [
    "/properties/DBProxyName"
  ],
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git",
  "additionalProperties": false,
  "createOnlyProperties": [
    "/properties/DBProxyName",
    "/properties/EngineFamily",
    "/properties/VpcSubnetIds"
  ],
  "$defs": {
    "AuthFormat": {
      "type": "object",
      "properties": {
        "AuthScheme": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "SECRETS"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The type of authentication that the proxy uses for connections from the proxy to the underlying database. "
        },
        "Description": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "A user-specified description about the authentication used by a proxy to log in as a specific database user. "
        },
        "IAMAuth": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "DISABLED",
                "REQUIRED",
                "ENABLED"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "Whether to require or disallow Amazon Web Services Identity and Access Management (IAM) authentication for connections to the proxy. The ENABLED value is valid only for proxies with RDS for Microsoft SQL Server."
        },
        "SecretArn": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The Amazon Resource Name (ARN) representing the secret that the proxy uses to authenticate to the RDS DB instance or Aurora DB cluster. These secrets are stored within Amazon Secrets Manager. "
        },
        "ClientPasswordAuthType": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "MYSQL_NATIVE_PASSWORD",
                "POSTGRES_SCRAM_SHA_256",
                "POSTGRES_MD5",
                "SQL_SERVER_AUTHENTICATION"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The type of authentication the proxy uses for connections from clients."
        }
      },
      "title": "AWSRDSDBProxyAuthFormatDefinition",
      "additionalProperties": false
    },
    "TagFormat": {
      "type": "object",
      "properties": {
        "Key": {
          "oneOf": [
            {
              "type": "string",
              "pattern": "(\\w|\\d|\\s|\\\\|-|\\.:=+-)*",
              "maxLength": 128
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Value": {
          "oneOf": [
            {
              "type": "string",
              "pattern": "(\\w|\\d|\\s|\\\\|-|\\.:=+-)*",
              "maxLength": 128
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "title": "AWSRDSDBProxyTagFormatDefinition",
      "additionalProperties": false
    }
  },
  "required": [
    "Auth",
    "DBProxyName",
    "EngineFamily",
    "RoleArn",
    "VpcSubnetIds"
  ],
  "readOnlyProperties": [
    "/properties/DBProxyArn",
    "/properties/Endpoint",
    "/properties/VpcId"
  ]
}
