{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-applicationautoscaling-scalabletarget.json",
  "title": "AWSApplicationAutoScalingScalableTargetProperties",
  "description": "Resource Type definition for AWS::ApplicationAutoScaling::ScalableTarget. 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-applicationautoscaling-scalabletarget.json",
    "sourceSha256": "772967deb0e27771a66ea0cad76550add7ed499e280ae32fc57a85d8868d501a"
  },
  "type": "object",
  "properties": {
    "MaxCapacity": {
      "description": "The maximum value that you plan to scale in to. When a scaling policy is in effect, Application Auto Scaling can scale in (contract) as needed to the minimum capacity limit in response to changing demand",
      "type": "integer"
    },
    "MinCapacity": {
      "description": "The minimum value that you plan to scale in to. When a scaling policy is in effect, Application Auto Scaling can scale in (contract) as needed to the minimum capacity limit in response to changing demand",
      "type": "integer"
    },
    "ResourceId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The identifier of the resource associated with the scalable target"
    },
    "RoleARN": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Specify the Amazon Resource Name (ARN) of an Identity and Access Management (IAM) role that allows Application Auto Scaling to modify the scalable target on your behalf. "
    },
    "ScalableDimension": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property"
    },
    "ScheduledActions": {
      "description": "The scheduled actions for the scalable target. Duplicates aren't allowed.",
      "type": "array",
      "uniqueItems": true,
      "insertionOrder": false,
      "items": {
        "$ref": "#/$defs/ScheduledAction"
      }
    },
    "ServiceNamespace": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The namespace of the AWS service that provides the resource, or a custom-resource"
    },
    "SuspendedState": {
      "description": "An embedded object that contains attributes and attribute values that are used to suspend and resume automatic scaling. Setting the value of an attribute to true suspends the specified scaling activities. Setting it to false (default) resumes the specified scaling activities.",
      "$ref": "#/$defs/SuspendedState"
    }
  },
  "typeName": "AWS::ApplicationAutoScaling::ScalableTarget",
  "tagging": {
    "taggable": false,
    "tagOnCreate": false,
    "tagUpdatable": false,
    "cloudFormationSystemTags": false
  },
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git",
  "$defs": {
    "SuspendedState": {
      "type": "object",
      "title": "AWSApplicationAutoScalingScalableTargetSuspendedStateDefinition",
      "description": "specifies whether the scaling activities for a scalable target are in a suspended state",
      "properties": {
        "ScheduledScalingSuspended": {
          "type": "boolean"
        },
        "DynamicScalingOutSuspended": {
          "type": "boolean"
        },
        "DynamicScalingInSuspended": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "ScheduledAction": {
      "type": "object",
      "title": "AWSApplicationAutoScalingScalableTargetScheduledActionDefinition",
      "description": "specifies a scheduled action for a scalable target",
      "properties": {
        "Timezone": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ScheduledActionName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "EndTime": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Schedule": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "StartTime": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ScalableTargetAction": {
          "$ref": "#/$defs/ScalableTargetAction"
        }
      },
      "required": [
        "ScheduledActionName",
        "Schedule"
      ],
      "additionalProperties": false
    },
    "ScalableTargetAction": {
      "type": "object",
      "title": "AWSApplicationAutoScalingScalableTargetScalableTargetActionDefinition",
      "description": "specifies the minimum and maximum capacity",
      "properties": {
        "MinCapacity": {
          "type": "integer"
        },
        "MaxCapacity": {
          "type": "integer"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "writeOnlyProperties": [
    "/properties/RoleARN"
  ],
  "required": [
    "ResourceId",
    "ServiceNamespace",
    "ScalableDimension",
    "MinCapacity",
    "MaxCapacity"
  ],
  "createOnlyProperties": [
    "/properties/ResourceId",
    "/properties/ScalableDimension",
    "/properties/ServiceNamespace"
  ],
  "primaryIdentifier": [
    "/properties/ResourceId",
    "/properties/ScalableDimension",
    "/properties/ServiceNamespace"
  ],
  "readOnlyProperties": [
    "/properties/Id"
  ]
}
