{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-connect-evaluationform.json",
  "title": "AWSConnectEvaluationFormProperties",
  "description": "Resource Type definition for AWS::Connect::EvaluationForm. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-connect-evaluationform.json",
    "sourceSha256": "6e3d8fbad83b092a7916bebe5c89f96eb085cdee5fd0f9017ae4cab4cc784898"
  },
  "type": "object",
  "properties": {
    "Title": {
      "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 title of the evaluation form."
    },
    "Description": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 1024
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The description of the evaluation form."
    },
    "InstanceArn": {
      "oneOf": [
        {
          "type": "string",
          "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$"
        },
        {
          "$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 instance."
    },
    "Items": {
      "description": "The list of evaluation form items.",
      "type": "array",
      "insertionOrder": true,
      "minItems": 1,
      "maxItems": 200,
      "items": {
        "$ref": "#/$defs/EvaluationFormBaseItem"
      }
    },
    "ScoringStrategy": {
      "description": "The scoring strategy.",
      "$ref": "#/$defs/ScoringStrategy"
    },
    "Status": {
      "oneOf": [
        {
          "type": "string",
          "default": "DRAFT",
          "enum": [
            "DRAFT",
            "ACTIVE"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The status of the evaluation form."
    },
    "Tags": {
      "description": "One or more tags.",
      "type": "array",
      "maxItems": 50,
      "uniqueItems": true,
      "insertionOrder": false,
      "items": {
        "$ref": "#/$defs/Tag"
      }
    }
  },
  "typeName": "AWS::Connect::EvaluationForm",
  "tagging": {
    "taggable": true,
    "tagOnCreate": false,
    "tagUpdatable": true,
    "cloudFormationSystemTags": true,
    "tagProperty": "/properties/Tags"
  },
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect",
  "additionalProperties": false,
  "primaryIdentifier": [
    "/properties/EvaluationFormArn"
  ],
  "$defs": {
    "RefId": {
      "oneOf": [
        {
          "type": "string",
          "pattern": "^[a-zA-Z0-9._-]{1,40}$"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "description": "The identifier to reference the item.",
      "title": "AWSConnectEvaluationFormRefIdDefinition"
    },
    "Weight": {
      "description": "The item weight used for scoring.",
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "title": "AWSConnectEvaluationFormWeightDefinition"
    },
    "Score": {
      "description": "The score of an answer option.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10,
      "title": "AWSConnectEvaluationFormScoreDefinition"
    },
    "EvaluationFormBaseItem": {
      "description": "The evaluation form base item.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormBaseItemDefinition",
      "properties": {
        "Section": {
          "description": "The evaluation form section item",
          "$ref": "#/$defs/EvaluationFormSection"
        }
      },
      "required": [
        "Section"
      ],
      "additionalProperties": false
    },
    "EvaluationFormItem": {
      "description": "The evaluation form item.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormItemDefinition",
      "properties": {
        "Section": {
          "description": "The evaluation form section item",
          "$ref": "#/$defs/EvaluationFormSection"
        },
        "Question": {
          "description": "The evaluation form question item",
          "$ref": "#/$defs/EvaluationFormQuestion"
        }
      },
      "additionalProperties": false
    },
    "EvaluationFormSection": {
      "description": "The evaluation form section.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormSectionDefinition",
      "properties": {
        "Title": {
          "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 title of the section."
        },
        "Instructions": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 1024
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The instructions for the section."
        },
        "RefId": {
          "description": "The identifier to reference the section.",
          "$ref": "#/$defs/RefId"
        },
        "Items": {
          "description": "The list of section items.",
          "type": "array",
          "insertionOrder": true,
          "minItems": 1,
          "maxItems": 200,
          "items": {
            "$ref": "#/$defs/EvaluationFormItem"
          }
        },
        "Weight": {
          "description": "The item weight used for scoring.",
          "$ref": "#/$defs/Weight"
        }
      },
      "required": [
        "RefId",
        "Title"
      ],
      "additionalProperties": false
    },
    "EvaluationFormNumericQuestionOption": {
      "description": "The option ranges used for scoring in numeric questions.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormNumericQuestionOptionDefinition",
      "properties": {
        "MinValue": {
          "description": "The minimum value of the option range.",
          "type": "integer"
        },
        "MaxValue": {
          "description": "The maximum value of the option range.",
          "type": "integer"
        },
        "Score": {
          "description": "The score of the option range.",
          "$ref": "#/$defs/Score"
        },
        "AutomaticFail": {
          "description": "The flag to mark the option as automatic fail.",
          "type": "boolean"
        }
      },
      "required": [
        "MinValue",
        "MaxValue"
      ],
      "additionalProperties": false
    },
    "NumericQuestionPropertyValueAutomation": {
      "description": "The automation property name of the question.",
      "type": "object",
      "title": "AWSConnectEvaluationFormNumericQuestionPropertyValueAutomationDefinition",
      "properties": {
        "Label": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "OVERALL_CUSTOMER_SENTIMENT_SCORE",
                "OVERALL_AGENT_SENTIMENT_SCORE",
                "NON_TALK_TIME",
                "NON_TALK_TIME_PERCENTAGE",
                "NUMBER_OF_INTERRUPTIONS",
                "CONTACT_DURATION",
                "AGENT_INTERACTION_DURATION",
                "CUSTOMER_HOLD_TIME"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The automation property label."
        }
      },
      "required": [
        "Label"
      ],
      "additionalProperties": false
    },
    "EvaluationFormNumericQuestionAutomation": {
      "description": "The automation properties for the numeric question.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormNumericQuestionAutomationDefinition",
      "properties": {
        "PropertyValue": {
          "description": "The automation property name of the question.",
          "$ref": "#/$defs/NumericQuestionPropertyValueAutomation"
        }
      },
      "required": [
        "PropertyValue"
      ],
      "additionalProperties": false
    },
    "EvaluationFormNumericQuestionProperties": {
      "description": "The properties of the numeric question.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormNumericQuestionPropertiesDefinition",
      "properties": {
        "MinValue": {
          "description": "The minimum value for answers of the question.",
          "type": "integer"
        },
        "MaxValue": {
          "description": "The maximum value for answers of the question.",
          "type": "integer"
        },
        "Options": {
          "description": "The list of option ranges used for scoring.",
          "type": "array",
          "insertionOrder": true,
          "minItems": 1,
          "maxItems": 10,
          "items": {
            "$ref": "#/$defs/EvaluationFormNumericQuestionOption"
          }
        },
        "Automation": {
          "description": "The automation properties for the numeric question.",
          "$ref": "#/$defs/EvaluationFormNumericQuestionAutomation"
        }
      },
      "required": [
        "MinValue",
        "MaxValue"
      ],
      "additionalProperties": false
    },
    "EvaluationFormSingleSelectQuestionAutomationOption": {
      "description": "The automation option for the single-select question.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormSingleSelectQuestionAutomationOptionDefinition",
      "properties": {
        "RuleCategory": {
          "description": "The automation option based on Rules categories.",
          "$ref": "#/$defs/SingleSelectQuestionRuleCategoryAutomation"
        }
      },
      "required": [
        "RuleCategory"
      ],
      "additionalProperties": false
    },
    "SingleSelectQuestionRuleCategoryAutomation": {
      "description": "The automation option based on Rules categories.",
      "type": "object",
      "title": "AWSConnectEvaluationFormSingleSelectQuestionRuleCategoryAutomationDefinition",
      "properties": {
        "Category": {
          "oneOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 50
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The category name as defined in Rules."
        },
        "Condition": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "PRESENT",
                "NOT_PRESENT"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The automation condition applied on contact categories."
        },
        "OptionRefId": {
          "description": "The option identifier referencing the option to be selected when the automation option is triggered.",
          "$ref": "#/$defs/RefId"
        }
      },
      "required": [
        "Category",
        "Condition",
        "OptionRefId"
      ],
      "additionalProperties": false
    },
    "EvaluationFormSingleSelectQuestionAutomation": {
      "description": "The automation properties for the single-select question.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormSingleSelectQuestionAutomationDefinition",
      "properties": {
        "Options": {
          "description": "The answer options for the automation.",
          "type": "array",
          "insertionOrder": true,
          "minItems": 1,
          "maxItems": 20,
          "items": {
            "$ref": "#/$defs/EvaluationFormSingleSelectQuestionAutomationOption"
          }
        },
        "DefaultOptionRefId": {
          "description": "The option reference identifier of the default answer.",
          "$ref": "#/$defs/RefId"
        }
      },
      "required": [
        "Options"
      ],
      "additionalProperties": false
    },
    "EvaluationFormSingleSelectQuestionOption": {
      "description": "The option for a question.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormSingleSelectQuestionOptionDefinition",
      "properties": {
        "RefId": {
          "description": "The identifier used to reference the option.",
          "$ref": "#/$defs/RefId"
        },
        "Text": {
          "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 title of the option."
        },
        "Score": {
          "description": "The score of the option.",
          "$ref": "#/$defs/Score"
        },
        "AutomaticFail": {
          "description": "The flag to mark the option as automatic fail.",
          "type": "boolean"
        }
      },
      "required": [
        "RefId",
        "Text"
      ],
      "additionalProperties": false
    },
    "EvaluationFormSingleSelectQuestionProperties": {
      "description": "The properties of the single-select question.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormSingleSelectQuestionPropertiesDefinition",
      "properties": {
        "Options": {
          "description": "The list of options for the question.",
          "type": "array",
          "insertionOrder": true,
          "minItems": 2,
          "maxItems": 256,
          "items": {
            "$ref": "#/$defs/EvaluationFormSingleSelectQuestionOption"
          }
        },
        "DisplayAs": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "DROPDOWN",
                "RADIO"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The display mode of the single-select question."
        },
        "Automation": {
          "description": "The automation properties for the single-select question.",
          "$ref": "#/$defs/EvaluationFormSingleSelectQuestionAutomation"
        }
      },
      "required": [
        "Options"
      ],
      "additionalProperties": false
    },
    "EvaluationFormQuestionTypeProperties": {
      "description": "The properties of the question.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormQuestionTypePropertiesDefinition",
      "properties": {
        "Numeric": {
          "description": "The properties of the numeric question.",
          "$ref": "#/$defs/EvaluationFormNumericQuestionProperties"
        },
        "SingleSelect": {
          "description": "The properties of the single-select question.",
          "$ref": "#/$defs/EvaluationFormSingleSelectQuestionProperties"
        }
      },
      "additionalProperties": false
    },
    "EvaluationFormQuestion": {
      "description": "The evaluation form question.",
      "type": "object",
      "title": "AWSConnectEvaluationFormEvaluationFormQuestionDefinition",
      "properties": {
        "Title": {
          "oneOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 350
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The title of the question."
        },
        "Instructions": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 1024
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The instructions for the question."
        },
        "RefId": {
          "description": "The identifier used to reference the question.",
          "$ref": "#/$defs/RefId"
        },
        "NotApplicableEnabled": {
          "description": "The flag to enable not applicable answers to the question.",
          "type": "boolean"
        },
        "QuestionType": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "NUMERIC",
                "SINGLESELECT",
                "TEXT"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The type of the question."
        },
        "QuestionTypeProperties": {
          "description": "The properties of the question",
          "$ref": "#/$defs/EvaluationFormQuestionTypeProperties"
        },
        "Weight": {
          "description": "The question weight used for scoring.",
          "$ref": "#/$defs/Weight"
        }
      },
      "required": [
        "RefId",
        "Title",
        "QuestionType"
      ],
      "additionalProperties": false
    },
    "ScoringStrategy": {
      "description": "The scoring strategy.",
      "type": "object",
      "title": "AWSConnectEvaluationFormScoringStrategyDefinition",
      "properties": {
        "Mode": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "QUESTION_ONLY",
                "SECTION_ONLY"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The scoring mode."
        },
        "Status": {
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "ENABLED",
                "DISABLED"
              ]
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ],
          "description": "The scoring status."
        }
      },
      "required": [
        "Mode",
        "Status"
      ],
      "additionalProperties": false
    },
    "Tag": {
      "description": "A key-value pair to associate with a resource.",
      "type": "object",
      "title": "AWSConnectEvaluationFormTagDefinition",
      "properties": {
        "Key": {
          "oneOf": [
            {
              "type": "string",
              "pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$",
              "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",
              "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's 1 to 256 characters in length."
        }
      },
      "required": [
        "Key",
        "Value"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "Title",
    "InstanceArn",
    "Items",
    "Status"
  ],
  "readOnlyProperties": [
    "/properties/EvaluationFormArn"
  ]
}
