{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-elasticbeanstalk-configurationtemplate.json",
  "title": "AWSElasticBeanstalkConfigurationTemplateProperties",
  "description": "Resource Type definition for AWS::ElasticBeanstalk::ConfigurationTemplate. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticbeanstalk.git>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-elasticbeanstalk-configurationtemplate.json",
    "sourceSha256": "64ae35da722350747dffdcede05f7d06c7780613513663feedf57748b7f484c7"
  },
  "type": "object",
  "properties": {
    "ApplicationName": {
      "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 Elastic Beanstalk application to associate with this configuration template. "
    },
    "Description": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "An optional description for this configuration."
    },
    "EnvironmentId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The ID of an environment whose settings you want to use to create the configuration template. You must specify EnvironmentId if you don't specify PlatformArn, SolutionStackName, or SourceConfiguration. "
    },
    "OptionSettings": {
      "description": "Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see [Option Values](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) in the AWS Elastic Beanstalk Developer Guide. ",
      "type": "array",
      "arrayType": "AttributeList",
      "uniqueItems": false,
      "insertionOrder": false,
      "items": {
        "$ref": "#/$defs/ConfigurationOptionSetting"
      }
    },
    "PlatformArn": {
      "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 custom platform. For more information, see [Custom Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html) in the AWS Elastic Beanstalk Developer Guide. "
    },
    "SolutionStackName": {
      "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 an Elastic Beanstalk solution stack (platform version) that this configuration uses. For example, 64bit Amazon Linux 2013.09 running Tomcat 7 Java 7. A solution stack specifies the operating system, runtime, and application server for a configuration template. It also determines the set of configuration options as well as the possible and default values. For more information, see [Supported Platforms](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html) in the AWS Elastic Beanstalk Developer Guide.\n\n You must specify SolutionStackName if you don't specify PlatformArn, EnvironmentId, or SourceConfiguration.\n\n Use the ListAvailableSolutionStacks API to obtain a list of available solution stacks. "
    },
    "SourceConfiguration": {
      "description": "An Elastic Beanstalk configuration template to base this one on. If specified, Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration.\n\nValues specified in OptionSettings override any values obtained from the SourceConfiguration.\n\nYou must specify SourceConfiguration if you don't specify PlatformArn, EnvironmentId, or SolutionStackName.\n\nConstraint: If both solution stack name and source configuration are specified, the solution stack of the source configuration template must match the specified solution stack name. ",
      "$ref": "#/$defs/SourceConfiguration"
    }
  },
  "typeName": "AWS::ElasticBeanstalk::ConfigurationTemplate",
  "readOnlyProperties": [
    "/properties/TemplateName"
  ],
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticbeanstalk.git",
  "writeOnlyProperties": [
    "/properties/EnvironmentId",
    "/properties/SourceConfiguration/ApplicationName",
    "/properties/SourceConfiguration/TemplateName"
  ],
  "$defs": {
    "SourceConfiguration": {
      "type": "object",
      "title": "AWSElasticBeanstalkConfigurationTemplateSourceConfigurationDefinition",
      "properties": {
        "ApplicationName": {
          "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 application associated with the configuration."
        },
        "TemplateName": {
          "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 configuration template."
        }
      },
      "required": [
        "TemplateName",
        "ApplicationName"
      ],
      "additionalProperties": false
    },
    "ConfigurationOptionSetting": {
      "type": "object",
      "title": "AWSElasticBeanstalkConfigurationTemplateConfigurationOptionSettingDefinition",
      "properties": {
        "Namespace": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "A unique namespace that identifies the option's associated AWS resource."
        },
        "OptionName": {
          "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 configuration option."
        },
        "ResourceName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "A unique resource name for the option setting. Use it for a time–based scaling configuration option. "
        },
        "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 for the configuration option."
        }
      },
      "required": [
        "Namespace",
        "OptionName"
      ],
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "primaryIdentifier": [
    "/properties/ApplicationName",
    "/properties/TemplateName"
  ],
  "required": [
    "ApplicationName"
  ],
  "tagging": {
    "taggable": false
  },
  "createOnlyProperties": [
    "/properties/ApplicationName",
    "/properties/EnvironmentId",
    "/properties/PlatformArn",
    "/properties/SolutionStackName",
    "/properties/SourceConfiguration"
  ]
}
