{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-rds-optiongroup.json",
  "title": "AWSRDSOptionGroupProperties",
  "description": "The AWS::RDS::OptionGroup resource creates an option group, to enable and configure features that are specific to a particular DB engine.. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-rds-optiongroup.json",
    "sourceSha256": "cf5beeba2ca3b1416e04439cac8a67a6e1ec3e76b103593290e938124c1125d0"
  },
  "type": "object",
  "properties": {
    "OptionGroupName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Specifies the name of the option group."
    },
    "OptionGroupDescription": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Provides a description of the option group."
    },
    "EngineName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Indicates the name of the engine that this option group can be applied to."
    },
    "MajorEngineVersion": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Indicates the major engine version associated with this option group."
    },
    "OptionConfigurations": {
      "description": "Indicates what options are available in the option group.",
      "type": "array",
      "insertionOrder": false,
      "items": {
        "$ref": "#/$defs/OptionConfiguration"
      }
    },
    "Tags": {
      "type": "array",
      "description": "An array of key-value pairs to apply to this resource.",
      "insertionOrder": false,
      "items": {
        "$ref": "#/$defs/Tag"
      }
    }
  },
  "typeName": "AWS::RDS::OptionGroup",
  "primaryIdentifier": [
    "/properties/OptionGroupName"
  ],
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds",
  "additionalProperties": false,
  "createOnlyProperties": [
    "/properties/EngineName",
    "/properties/MajorEngineVersion",
    "/properties/OptionGroupDescription",
    "/properties/OptionGroupName"
  ],
  "$defs": {
    "OptionConfiguration": {
      "description": "The OptionConfiguration property type specifies an individual option, and its settings, within an AWS::RDS::OptionGroup resource.",
      "type": "object",
      "properties": {
        "DBSecurityGroupMemberships": {
          "description": "A list of DBSecurityGroupMembership name strings used for this option.",
          "type": "array",
          "uniqueItems": true,
          "insertionOrder": false,
          "items": {
            "type": "string"
          }
        },
        "OptionName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The configuration of options to include in a group."
        },
        "OptionSettings": {
          "description": "The option settings to include in an option group.",
          "type": "array",
          "insertionOrder": false,
          "items": {
            "$ref": "#/$defs/OptionSetting"
          }
        },
        "OptionVersion": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The version for the option."
        },
        "Port": {
          "description": "The optional port for the option.",
          "type": "integer"
        },
        "VpcSecurityGroupMemberships": {
          "description": "A list of VpcSecurityGroupMembership name strings used for this option.",
          "type": "array",
          "uniqueItems": true,
          "insertionOrder": false,
          "items": {
            "type": "string"
          }
        }
      },
      "title": "AWSRDSOptionGroupOptionConfigurationDefinition",
      "required": [
        "OptionName"
      ],
      "additionalProperties": false
    },
    "OptionSetting": {
      "description": "The OptionSetting property type specifies the value for an option within an OptionSetting property.",
      "type": "object",
      "properties": {
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The name of the option that has settings that you can set."
        },
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The current value of the option setting."
        }
      },
      "title": "AWSRDSOptionGroupOptionSettingDefinition",
      "additionalProperties": false
    },
    "Tag": {
      "description": "A key-value pair to associate with a resource.",
      "type": "object",
      "title": "AWSRDSOptionGroupTagDefinition",
      "properties": {
        "Key": {
          "oneOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. "
        },
        "Value": {
          "oneOf": [
            {
              "type": "string",
              "minLength": 0,
              "maxLength": 256
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. "
        }
      },
      "required": [
        "Key"
      ],
      "additionalProperties": false
    }
  },
  "propertyTransform": {
    "/properties/OptionGroupName": "$lowercase(OptionGroupName)"
  },
  "required": [
    "EngineName",
    "MajorEngineVersion",
    "OptionGroupDescription"
  ]
}
