{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-fis-experimenttemplate.json",
  "title": "AWSFISExperimentTemplateProperties",
  "description": "Resource schema for AWS::FIS::ExperimentTemplate. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fis.git>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-fis-experimenttemplate.json",
    "sourceSha256": "9ba98464d7e783ee59bfa1635c6f72eb2e5e371dd6b625eda742e7b68aaa854e"
  },
  "type": "object",
  "properties": {
    "Description": {
      "$ref": "#/$defs/ExperimentTemplateDescription"
    },
    "Targets": {
      "$ref": "#/$defs/ExperimentTemplateTargetMap"
    },
    "Actions": {
      "$ref": "#/$defs/ExperimentTemplateActionMap"
    },
    "StopConditions": {
      "$ref": "#/$defs/ExperimentTemplateStopConditionList"
    },
    "LogConfiguration": {
      "$ref": "#/$defs/ExperimentTemplateLogConfiguration"
    },
    "RoleArn": {
      "$ref": "#/$defs/RoleArn"
    },
    "Tags": {
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        ".{1,128}": {
          "type": "string",
          "maxLength": 256
        }
      }
    }
  },
  "typeName": "AWS::FIS::ExperimentTemplate",
  "primaryIdentifier": [
    "/properties/Id"
  ],
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fis.git",
  "additionalProperties": false,
  "createOnlyProperties": [
    "/properties/Tags"
  ],
  "$defs": {
    "ExperimentTemplateId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSFISExperimentTemplateExperimentTemplateIdDefinition"
    },
    "ExperimentTemplateDescription": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "A description for the experiment template.",
      "title": "AWSFISExperimentTemplateExperimentTemplateDescriptionDefinition"
    },
    "StopConditionSource": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSFISExperimentTemplateStopConditionSourceDefinition"
    },
    "StopConditionValue": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 20,
          "maxLength": 2048
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSFISExperimentTemplateStopConditionValueDefinition"
    },
    "ExperimentTemplateStopCondition": {
      "type": "object",
      "title": "AWSFISExperimentTemplateExperimentTemplateStopConditionDefinition",
      "properties": {
        "Source": {
          "$ref": "#/$defs/StopConditionSource"
        },
        "Value": {
          "$ref": "#/$defs/StopConditionValue"
        }
      },
      "required": [
        "Source"
      ],
      "additionalProperties": false
    },
    "ExperimentTemplateStopConditionList": {
      "type": "array",
      "description": "One or more stop conditions.",
      "items": {
        "$ref": "#/$defs/ExperimentTemplateStopCondition"
      },
      "title": "AWSFISExperimentTemplateExperimentTemplateStopConditionListDefinition"
    },
    "ResourceType": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The AWS resource type. The resource type must be supported for the specified action.",
      "title": "AWSFISExperimentTemplateResourceTypeDefinition"
    },
    "ResourceArn": {
      "oneOf": [
        {
          "type": "string",
          "minLength": 20,
          "maxLength": 2048
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSFISExperimentTemplateResourceArnDefinition"
    },
    "ResourceArnList": {
      "type": "array",
      "description": "The Amazon Resource Names (ARNs) of the target resources.",
      "items": {
        "$ref": "#/$defs/ResourceArn"
      },
      "title": "AWSFISExperimentTemplateResourceArnListDefinition"
    },
    "ExperimentTemplateTargetSelectionMode": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "Scopes the identified resources to a specific number of the resources at random, or a percentage of the resources.",
      "title": "AWSFISExperimentTemplateExperimentTemplateTargetSelectionModeDefinition"
    },
    "ExperimentTemplateTargetFilterPath": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 256
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The attribute path for the filter.",
      "title": "AWSFISExperimentTemplateExperimentTemplateTargetFilterPathDefinition"
    },
    "ExperimentTemplateTargetFilterValue": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 128
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSFISExperimentTemplateExperimentTemplateTargetFilterValueDefinition"
    },
    "ExperimentTemplateTargetFilterValues": {
      "type": "array",
      "description": "The attribute values for the filter.",
      "items": {
        "$ref": "#/$defs/ExperimentTemplateTargetFilterValue"
      },
      "title": "AWSFISExperimentTemplateExperimentTemplateTargetFilterValuesDefinition"
    },
    "ExperimentTemplateTargetFilter": {
      "type": "object",
      "description": "Describes a filter used for the target resource input in an experiment template.",
      "title": "AWSFISExperimentTemplateExperimentTemplateTargetFilterDefinition",
      "properties": {
        "Path": {
          "$ref": "#/$defs/ExperimentTemplateTargetFilterPath"
        },
        "Values": {
          "$ref": "#/$defs/ExperimentTemplateTargetFilterValues"
        }
      },
      "required": [
        "Path",
        "Values"
      ],
      "additionalProperties": false
    },
    "ExperimentTemplateTargetFilterList": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ExperimentTemplateTargetFilter"
      },
      "title": "AWSFISExperimentTemplateExperimentTemplateTargetFilterListDefinition"
    },
    "ExperimentTemplateTarget": {
      "type": "object",
      "description": "Specifies a target for an experiment.",
      "title": "AWSFISExperimentTemplateExperimentTemplateTargetDefinition",
      "properties": {
        "ResourceType": {
          "$ref": "#/$defs/ResourceType"
        },
        "ResourceArns": {
          "$ref": "#/$defs/ResourceArnList"
        },
        "ResourceTags": {
          "type": "object",
          "additionalProperties": false,
          "patternProperties": {
            ".{1,128}": {
              "type": "string",
              "maxLength": 256
            }
          }
        },
        "Parameters": {
          "type": "object",
          "additionalProperties": false,
          "patternProperties": {
            ".{1,64}": {
              "type": "string",
              "maxLength": 1024
            }
          }
        },
        "Filters": {
          "$ref": "#/$defs/ExperimentTemplateTargetFilterList"
        },
        "SelectionMode": {
          "$ref": "#/$defs/ExperimentTemplateTargetSelectionMode"
        }
      },
      "required": [
        "ResourceType",
        "SelectionMode"
      ],
      "additionalProperties": false
    },
    "ExperimentTemplateTargetMap": {
      "type": "object",
      "description": "The targets for the experiment.",
      "additionalProperties": false,
      "title": "AWSFISExperimentTemplateExperimentTemplateTargetMapDefinition",
      "patternProperties": {
        ".{1,64}": {
          "$ref": "#/$defs/ExperimentTemplateTarget"
        }
      }
    },
    "ActionId": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The ID of the action.",
      "title": "AWSFISExperimentTemplateActionIdDefinition"
    },
    "ExperimentTemplateActionItemDescription": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "A description for the action.",
      "title": "AWSFISExperimentTemplateExperimentTemplateActionItemDescriptionDefinition"
    },
    "ExperimentTemplateActionItemParameter": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 1024
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSFISExperimentTemplateExperimentTemplateActionItemParameterDefinition"
    },
    "ExperimentTemplateActionItemTarget": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSFISExperimentTemplateExperimentTemplateActionItemTargetDefinition"
    },
    "ExperimentTemplateActionItemStartAfter": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSFISExperimentTemplateExperimentTemplateActionItemStartAfterDefinition"
    },
    "ExperimentTemplateActionItemStartAfterList": {
      "type": "array",
      "description": "The names of the actions that must be completed before the current action starts.",
      "items": {
        "$ref": "#/$defs/ExperimentTemplateActionItemStartAfter"
      },
      "title": "AWSFISExperimentTemplateExperimentTemplateActionItemStartAfterListDefinition"
    },
    "ExperimentTemplateAction": {
      "type": "object",
      "description": "Specifies an action for the experiment template.",
      "title": "AWSFISExperimentTemplateExperimentTemplateActionDefinition",
      "properties": {
        "ActionId": {
          "$ref": "#/$defs/ActionId"
        },
        "Description": {
          "$ref": "#/$defs/ExperimentTemplateActionItemDescription"
        },
        "Parameters": {
          "type": "object",
          "description": "The parameters for the action, if applicable.",
          "additionalProperties": false,
          "patternProperties": {
            ".{1,64}": {
              "$ref": "#/$defs/ExperimentTemplateActionItemParameter"
            }
          }
        },
        "Targets": {
          "type": "object",
          "description": "One or more targets for the action.",
          "additionalProperties": false,
          "patternProperties": {
            ".{1,64}": {
              "$ref": "#/$defs/ExperimentTemplateActionItemTarget"
            }
          }
        },
        "StartAfter": {
          "$ref": "#/$defs/ExperimentTemplateActionItemStartAfterList"
        }
      },
      "required": [
        "ActionId"
      ],
      "additionalProperties": false
    },
    "ExperimentTemplateActionMap": {
      "type": "object",
      "description": "The actions for the experiment.",
      "additionalProperties": false,
      "title": "AWSFISExperimentTemplateExperimentTemplateActionMapDefinition",
      "patternProperties": {
        "[\\S]{1,64}": {
          "$ref": "#/$defs/ExperimentTemplateAction"
        }
      }
    },
    "ExperimentTemplateLogConfiguration": {
      "type": "object",
      "title": "AWSFISExperimentTemplateExperimentTemplateLogConfigurationDefinition",
      "properties": {
        "CloudWatchLogsConfiguration": {
          "type": "object",
          "required": [
            "LogGroupArn"
          ],
          "properties": {
            "LogGroupArn": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 20,
                  "maxLength": 2048
                },
                {
                  "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "S3Configuration": {
          "type": "object",
          "required": [
            "BucketName"
          ],
          "properties": {
            "BucketName": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 3,
                  "maxLength": 63
                },
                {
                  "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
                }
              ]
            },
            "Prefix": {
              "oneOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 1024
                },
                {
                  "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "LogSchemaVersion": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": [
        "LogSchemaVersion"
      ],
      "additionalProperties": false
    },
    "RoleArn": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 1224
        },
        {
          "$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 an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.",
      "title": "AWSFISExperimentTemplateRoleArnDefinition"
    }
  },
  "required": [
    "Description",
    "StopConditions",
    "Targets",
    "RoleArn",
    "Tags"
  ],
  "readOnlyProperties": [
    "/properties/Id"
  ]
}
