{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-amplifyuibuilder-form.json",
  "title": "AWSAmplifyUIBuilderFormProperties",
  "description": "Definition of AWS::AmplifyUIBuilder::Form Resource Type. Source:- <https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-amplifyuibuilder>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-amplifyuibuilder-form.json",
    "sourceSha256": "43c8126706463860c79052031ab2ee66a22e71e90dec5468eb6f7b418d454469"
  },
  "type": "object",
  "properties": {
    "AppId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "Cta": {
      "$ref": "#/$defs/FormCTA"
    },
    "DataType": {
      "$ref": "#/$defs/FormDataTypeConfig"
    },
    "EnvironmentName": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "Fields": {
      "$ref": "#/$defs/FieldsMap"
    },
    "FormActionType": {
      "$ref": "#/$defs/FormActionType"
    },
    "LabelDecorator": {
      "$ref": "#/$defs/LabelDecorator"
    },
    "Name": {
      "oneOf": [
        {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "SchemaVersion": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ]
    },
    "SectionalElements": {
      "$ref": "#/$defs/SectionalElementMap"
    },
    "Style": {
      "$ref": "#/$defs/FormStyle"
    },
    "Tags": {
      "$ref": "#/$defs/Tags"
    }
  },
  "typeName": "AWS::AmplifyUIBuilder::Form",
  "$defs": {
    "FieldConfig": {
      "type": "object",
      "properties": {
        "Label": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Position": {
          "$ref": "#/$defs/FieldPosition"
        },
        "Excluded": {
          "type": "boolean"
        },
        "InputType": {
          "$ref": "#/$defs/FieldInputConfig"
        },
        "Validations": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/FieldValidationConfiguration"
          }
        }
      },
      "title": "AWSAmplifyUIBuilderFormFieldConfigDefinition",
      "additionalProperties": false
    },
    "FieldInputConfig": {
      "type": "object",
      "properties": {
        "Type": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Required": {
          "type": "boolean"
        },
        "ReadOnly": {
          "type": "boolean"
        },
        "Placeholder": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "DefaultValue": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "DescriptiveText": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "DefaultChecked": {
          "type": "boolean"
        },
        "DefaultCountryCode": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "ValueMappings": {
          "$ref": "#/$defs/ValueMappings"
        },
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "MinValue": {
          "type": "number"
        },
        "MaxValue": {
          "type": "number"
        },
        "Step": {
          "type": "number"
        },
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "IsArray": {
          "type": "boolean"
        },
        "FileUploaderConfig": {
          "$ref": "#/$defs/FileUploaderFieldConfig"
        }
      },
      "required": [
        "Type"
      ],
      "title": "AWSAmplifyUIBuilderFormFieldInputConfigDefinition",
      "additionalProperties": false
    },
    "FieldPosition": {
      "oneOf": [
        {
          "type": "object",
          "title": "Fixed",
          "properties": {
            "Fixed": {
              "$ref": "#/$defs/FixedPosition"
            }
          },
          "required": [
            "Fixed"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "title": "RightOf",
          "properties": {
            "RightOf": {
              "type": "string"
            }
          },
          "required": [
            "RightOf"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "title": "Below",
          "properties": {
            "Below": {
              "type": "string"
            }
          },
          "required": [
            "Below"
          ],
          "additionalProperties": false
        }
      ],
      "title": "AWSAmplifyUIBuilderFormFieldPositionDefinition"
    },
    "FieldValidationConfiguration": {
      "type": "object",
      "properties": {
        "Type": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "StrValues": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "NumValues": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "ValidationMessage": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Type"
      ],
      "title": "AWSAmplifyUIBuilderFormFieldValidationConfigurationDefinition",
      "additionalProperties": false
    },
    "FieldsMap": {
      "type": "object",
      "additionalProperties": false,
      "title": "AWSAmplifyUIBuilderFormFieldsMapDefinition",
      "patternProperties": {
        ".+": {
          "$ref": "#/$defs/FieldConfig"
        }
      }
    },
    "FileUploaderFieldConfig": {
      "type": "object",
      "properties": {
        "AccessLevel": {
          "$ref": "#/$defs/StorageAccessLevel"
        },
        "AcceptedFileTypes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ShowThumbnails": {
          "type": "boolean"
        },
        "IsResumable": {
          "type": "boolean"
        },
        "MaxFileCount": {
          "type": "number"
        },
        "MaxSize": {
          "type": "number"
        }
      },
      "required": [
        "AcceptedFileTypes",
        "AccessLevel"
      ],
      "title": "AWSAmplifyUIBuilderFormFileUploaderFieldConfigDefinition",
      "additionalProperties": false
    },
    "FixedPosition": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "first"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSAmplifyUIBuilderFormFixedPositionDefinition"
    },
    "FormActionType": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "create",
            "update"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSAmplifyUIBuilderFormFormActionTypeDefinition"
    },
    "FormButton": {
      "type": "object",
      "properties": {
        "Excluded": {
          "type": "boolean"
        },
        "Children": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Position": {
          "$ref": "#/$defs/FieldPosition"
        }
      },
      "title": "AWSAmplifyUIBuilderFormFormButtonDefinition",
      "additionalProperties": false
    },
    "FormButtonsPosition": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "top",
            "bottom",
            "top_and_bottom"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSAmplifyUIBuilderFormFormButtonsPositionDefinition"
    },
    "FormCTA": {
      "type": "object",
      "properties": {
        "Position": {
          "$ref": "#/$defs/FormButtonsPosition"
        },
        "Clear": {
          "$ref": "#/$defs/FormButton"
        },
        "Cancel": {
          "$ref": "#/$defs/FormButton"
        },
        "Submit": {
          "$ref": "#/$defs/FormButton"
        }
      },
      "title": "AWSAmplifyUIBuilderFormFormCTADefinition",
      "additionalProperties": false
    },
    "FormDataSourceType": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "DataStore",
            "Custom"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSAmplifyUIBuilderFormFormDataSourceTypeDefinition"
    },
    "FormDataTypeConfig": {
      "type": "object",
      "properties": {
        "DataSourceType": {
          "$ref": "#/$defs/FormDataSourceType"
        },
        "DataTypeName": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "DataSourceType",
        "DataTypeName"
      ],
      "title": "AWSAmplifyUIBuilderFormFormDataTypeConfigDefinition",
      "additionalProperties": false
    },
    "FormInputValueProperty": {
      "type": "object",
      "properties": {
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "title": "AWSAmplifyUIBuilderFormFormInputValuePropertyDefinition",
      "additionalProperties": false
    },
    "FormStyle": {
      "type": "object",
      "properties": {
        "HorizontalGap": {
          "$ref": "#/$defs/FormStyleConfig"
        },
        "VerticalGap": {
          "$ref": "#/$defs/FormStyleConfig"
        },
        "OuterPadding": {
          "$ref": "#/$defs/FormStyleConfig"
        }
      },
      "title": "AWSAmplifyUIBuilderFormFormStyleDefinition",
      "additionalProperties": false
    },
    "FormStyleConfig": {
      "oneOf": [
        {
          "type": "object",
          "title": "TokenReference",
          "properties": {
            "TokenReference": {
              "type": "string"
            }
          },
          "required": [
            "TokenReference"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "title": "Value",
          "properties": {
            "Value": {
              "type": "string"
            }
          },
          "required": [
            "Value"
          ],
          "additionalProperties": false
        }
      ],
      "title": "AWSAmplifyUIBuilderFormFormStyleConfigDefinition"
    },
    "LabelDecorator": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "required",
            "optional",
            "none"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSAmplifyUIBuilderFormLabelDecoratorDefinition"
    },
    "SectionalElement": {
      "type": "object",
      "properties": {
        "Type": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Position": {
          "$ref": "#/$defs/FieldPosition"
        },
        "Text": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Level": {
          "type": "number"
        },
        "Orientation": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Excluded": {
          "type": "boolean"
        }
      },
      "required": [
        "Type"
      ],
      "title": "AWSAmplifyUIBuilderFormSectionalElementDefinition",
      "additionalProperties": false
    },
    "SectionalElementMap": {
      "type": "object",
      "additionalProperties": false,
      "title": "AWSAmplifyUIBuilderFormSectionalElementMapDefinition",
      "patternProperties": {
        ".+": {
          "$ref": "#/$defs/SectionalElement"
        }
      }
    },
    "StorageAccessLevel": {
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "public",
            "protected",
            "private"
          ]
        },
        {
          "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
        }
      ],
      "title": "AWSAmplifyUIBuilderFormStorageAccessLevelDefinition"
    },
    "Tags": {
      "type": "object",
      "additionalProperties": false,
      "title": "AWSAmplifyUIBuilderFormTagsDefinition",
      "patternProperties": {
        "^(?!aws:)[a-zA-Z+-=._:/]+$": {
          "type": "string",
          "maxLength": 256,
          "minLength": 1
        }
      }
    },
    "ValueMapping": {
      "type": "object",
      "properties": {
        "DisplayValue": {
          "$ref": "#/$defs/FormInputValueProperty"
        },
        "Value": {
          "$ref": "#/$defs/FormInputValueProperty"
        }
      },
      "required": [
        "Value"
      ],
      "title": "AWSAmplifyUIBuilderFormValueMappingDefinition",
      "additionalProperties": false
    },
    "ValueMappings": {
      "type": "object",
      "properties": {
        "Values": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ValueMapping"
          }
        }
      },
      "required": [
        "Values"
      ],
      "title": "AWSAmplifyUIBuilderFormValueMappingsDefinition",
      "additionalProperties": false
    }
  },
  "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-amplifyuibuilder",
  "additionalProperties": false,
  "tagging": {
    "taggable": true,
    "tagOnCreate": true,
    "tagUpdatable": false,
    "cloudFormationSystemTags": false,
    "tagProperty": "#/properties/Tags"
  },
  "required": [
    "DataType",
    "Fields",
    "FormActionType",
    "Name",
    "SchemaVersion",
    "SectionalElements",
    "Style"
  ],
  "readOnlyProperties": [
    "/properties/Id"
  ],
  "createOnlyProperties": [
    "/properties/Tags"
  ],
  "primaryIdentifier": [
    "/properties/AppId",
    "/properties/EnvironmentName",
    "/properties/Id"
  ]
}
