forms.forms.batchUpdate

enum_ChoiceQuestionType := [ "CHOICE_TYPE_UNSPECIFIED", "RADIO", "CHECKBOX", "DROP_DOWN" ]
enum_FileUploadQuestionTypes := [ "FILE_TYPE_UNSPECIFIED", "ANY", "DOCUMENT", "PRESENTATION", "SPREADSHEET", "DRAWING", "PDF", "IMAGE", "VIDEO", "AUDIO" ]
enum_MediaPropertiesAlignment := [ "ALIGNMENT_UNSPECIFIED", "LEFT", "RIGHT", "CENTER" ]
enum_OptionGoToAction := [ "GO_TO_ACTION_UNSPECIFIED", "NEXT_SECTION", "RESTART_FORM", "SUBMIT_FORM" ]

valid {
    input.Body.includeFormInResponse == BOOLEAN
    input.Body.requests[_].createItem.item.description == STRING
    input.Body.requests[_].createItem.item.imageItem.image.altText == STRING
    input.Body.requests[_].createItem.item.imageItem.image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].createItem.item.imageItem.image.properties.width == INTEGER
    input.Body.requests[_].createItem.item.imageItem.image.sourceUri == STRING
    input.Body.requests[_].createItem.item.itemId == STRING
    input.Body.requests[_].createItem.item.pageBreakItem.STRING == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.grid.columns.options[_].goToAction == enum_OptionGoToAction[_]
    input.Body.requests[_].createItem.item.questionGroupItem.grid.columns.options[_].goToSectionId == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.grid.columns.options[_].image.altText == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.grid.columns.options[_].image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].createItem.item.questionGroupItem.grid.columns.options[_].image.properties.width == INTEGER
    input.Body.requests[_].createItem.item.questionGroupItem.grid.columns.options[_].image.sourceUri == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.grid.columns.options[_].isOther == BOOLEAN
    input.Body.requests[_].createItem.item.questionGroupItem.grid.columns.options[_].value == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.grid.columns.shuffle == BOOLEAN
    input.Body.requests[_].createItem.item.questionGroupItem.grid.columns.type == enum_ChoiceQuestionType[_]
    input.Body.requests[_].createItem.item.questionGroupItem.grid.shuffleQuestions == BOOLEAN
    input.Body.requests[_].createItem.item.questionGroupItem.image.altText == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].createItem.item.questionGroupItem.image.properties.width == INTEGER
    input.Body.requests[_].createItem.item.questionGroupItem.image.sourceUri == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].goToAction == enum_OptionGoToAction[_]
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].goToSectionId == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].image.altText == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].image.properties.width == INTEGER
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].image.sourceUri == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].isOther == BOOLEAN
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].value == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].choiceQuestion.shuffle == BOOLEAN
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].choiceQuestion.type == enum_ChoiceQuestionType[_]
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].dateQuestion.includeTime == BOOLEAN
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].dateQuestion.includeYear == BOOLEAN
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].fileUploadQuestion.folderId == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].fileUploadQuestion.maxFileSize == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].fileUploadQuestion.maxFiles == INTEGER
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].fileUploadQuestion.types[_] == enum_FileUploadQuestionTypes[_]
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.correctAnswers.answers[_].value == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.generalFeedback.material[_].link.displayText == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.generalFeedback.material[_].link.uri == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.generalFeedback.material[_].video.displayText == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.generalFeedback.material[_].video.youtubeUri == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.generalFeedback.text == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.pointValue == INTEGER
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.whenRight.material[_].link.displayText == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.whenRight.material[_].link.uri == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.whenRight.material[_].video.displayText == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.whenRight.material[_].video.youtubeUri == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.whenRight.text == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.whenWrong.material[_].link.displayText == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.whenWrong.material[_].link.uri == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.whenWrong.material[_].video.displayText == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.whenWrong.material[_].video.youtubeUri == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].grading.whenWrong.text == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].questionId == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].required == BOOLEAN
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].rowQuestion.title == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].scaleQuestion.high == INTEGER
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].scaleQuestion.highLabel == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].scaleQuestion.low == INTEGER
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].scaleQuestion.lowLabel == STRING
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].textQuestion.paragraph == BOOLEAN
    input.Body.requests[_].createItem.item.questionGroupItem.questions[_].timeQuestion.duration == BOOLEAN
    input.Body.requests[_].createItem.item.questionItem.image.altText == STRING
    input.Body.requests[_].createItem.item.questionItem.image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].createItem.item.questionItem.image.properties.width == INTEGER
    input.Body.requests[_].createItem.item.questionItem.image.sourceUri == STRING
    input.Body.requests[_].createItem.item.questionItem.question.choiceQuestion.options[_].goToAction == enum_OptionGoToAction[_]
    input.Body.requests[_].createItem.item.questionItem.question.choiceQuestion.options[_].goToSectionId == STRING
    input.Body.requests[_].createItem.item.questionItem.question.choiceQuestion.options[_].image.altText == STRING
    input.Body.requests[_].createItem.item.questionItem.question.choiceQuestion.options[_].image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].createItem.item.questionItem.question.choiceQuestion.options[_].image.properties.width == INTEGER
    input.Body.requests[_].createItem.item.questionItem.question.choiceQuestion.options[_].image.sourceUri == STRING
    input.Body.requests[_].createItem.item.questionItem.question.choiceQuestion.options[_].isOther == BOOLEAN
    input.Body.requests[_].createItem.item.questionItem.question.choiceQuestion.options[_].value == STRING
    input.Body.requests[_].createItem.item.questionItem.question.choiceQuestion.shuffle == BOOLEAN
    input.Body.requests[_].createItem.item.questionItem.question.choiceQuestion.type == enum_ChoiceQuestionType[_]
    input.Body.requests[_].createItem.item.questionItem.question.dateQuestion.includeTime == BOOLEAN
    input.Body.requests[_].createItem.item.questionItem.question.dateQuestion.includeYear == BOOLEAN
    input.Body.requests[_].createItem.item.questionItem.question.fileUploadQuestion.folderId == STRING
    input.Body.requests[_].createItem.item.questionItem.question.fileUploadQuestion.maxFileSize == STRING
    input.Body.requests[_].createItem.item.questionItem.question.fileUploadQuestion.maxFiles == INTEGER
    input.Body.requests[_].createItem.item.questionItem.question.fileUploadQuestion.types[_] == enum_FileUploadQuestionTypes[_]
    input.Body.requests[_].createItem.item.questionItem.question.grading.correctAnswers.answers[_].value == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.generalFeedback.material[_].link.displayText == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.generalFeedback.material[_].link.uri == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.generalFeedback.material[_].video.displayText == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.generalFeedback.material[_].video.youtubeUri == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.generalFeedback.text == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.pointValue == INTEGER
    input.Body.requests[_].createItem.item.questionItem.question.grading.whenRight.material[_].link.displayText == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.whenRight.material[_].link.uri == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.whenRight.material[_].video.displayText == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.whenRight.material[_].video.youtubeUri == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.whenRight.text == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.whenWrong.material[_].link.displayText == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.whenWrong.material[_].link.uri == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.whenWrong.material[_].video.displayText == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.whenWrong.material[_].video.youtubeUri == STRING
    input.Body.requests[_].createItem.item.questionItem.question.grading.whenWrong.text == STRING
    input.Body.requests[_].createItem.item.questionItem.question.questionId == STRING
    input.Body.requests[_].createItem.item.questionItem.question.required == BOOLEAN
    input.Body.requests[_].createItem.item.questionItem.question.rowQuestion.title == STRING
    input.Body.requests[_].createItem.item.questionItem.question.scaleQuestion.high == INTEGER
    input.Body.requests[_].createItem.item.questionItem.question.scaleQuestion.highLabel == STRING
    input.Body.requests[_].createItem.item.questionItem.question.scaleQuestion.low == INTEGER
    input.Body.requests[_].createItem.item.questionItem.question.scaleQuestion.lowLabel == STRING
    input.Body.requests[_].createItem.item.questionItem.question.textQuestion.paragraph == BOOLEAN
    input.Body.requests[_].createItem.item.questionItem.question.timeQuestion.duration == BOOLEAN
    input.Body.requests[_].createItem.item.textItem.STRING == STRING
    input.Body.requests[_].createItem.item.title == STRING
    input.Body.requests[_].createItem.item.videoItem.caption == STRING
    input.Body.requests[_].createItem.item.videoItem.video.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].createItem.item.videoItem.video.properties.width == INTEGER
    input.Body.requests[_].createItem.item.videoItem.video.youtubeUri == STRING
    input.Body.requests[_].createItem.location.index == INTEGER
    input.Body.requests[_].deleteItem.location.index == INTEGER
    input.Body.requests[_].moveItem.newLocation.index == INTEGER
    input.Body.requests[_].moveItem.originalLocation.index == INTEGER
    input.Body.requests[_].updateFormInfo.info.description == STRING
    input.Body.requests[_].updateFormInfo.info.title == STRING
    input.Body.requests[_].updateFormInfo.updateMask == STRING
    input.Body.requests[_].updateItem.item.description == STRING
    input.Body.requests[_].updateItem.item.imageItem.image.altText == STRING
    input.Body.requests[_].updateItem.item.imageItem.image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].updateItem.item.imageItem.image.properties.width == INTEGER
    input.Body.requests[_].updateItem.item.imageItem.image.sourceUri == STRING
    input.Body.requests[_].updateItem.item.itemId == STRING
    input.Body.requests[_].updateItem.item.pageBreakItem.STRING == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.grid.columns.options[_].goToAction == enum_OptionGoToAction[_]
    input.Body.requests[_].updateItem.item.questionGroupItem.grid.columns.options[_].goToSectionId == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.grid.columns.options[_].image.altText == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.grid.columns.options[_].image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].updateItem.item.questionGroupItem.grid.columns.options[_].image.properties.width == INTEGER
    input.Body.requests[_].updateItem.item.questionGroupItem.grid.columns.options[_].image.sourceUri == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.grid.columns.options[_].isOther == BOOLEAN
    input.Body.requests[_].updateItem.item.questionGroupItem.grid.columns.options[_].value == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.grid.columns.shuffle == BOOLEAN
    input.Body.requests[_].updateItem.item.questionGroupItem.grid.columns.type == enum_ChoiceQuestionType[_]
    input.Body.requests[_].updateItem.item.questionGroupItem.grid.shuffleQuestions == BOOLEAN
    input.Body.requests[_].updateItem.item.questionGroupItem.image.altText == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].updateItem.item.questionGroupItem.image.properties.width == INTEGER
    input.Body.requests[_].updateItem.item.questionGroupItem.image.sourceUri == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].goToAction == enum_OptionGoToAction[_]
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].goToSectionId == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].image.altText == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].image.properties.width == INTEGER
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].image.sourceUri == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].isOther == BOOLEAN
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].choiceQuestion.options[_].value == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].choiceQuestion.shuffle == BOOLEAN
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].choiceQuestion.type == enum_ChoiceQuestionType[_]
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].dateQuestion.includeTime == BOOLEAN
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].dateQuestion.includeYear == BOOLEAN
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].fileUploadQuestion.folderId == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].fileUploadQuestion.maxFileSize == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].fileUploadQuestion.maxFiles == INTEGER
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].fileUploadQuestion.types[_] == enum_FileUploadQuestionTypes[_]
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.correctAnswers.answers[_].value == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.generalFeedback.material[_].link.displayText == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.generalFeedback.material[_].link.uri == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.generalFeedback.material[_].video.displayText == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.generalFeedback.material[_].video.youtubeUri == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.generalFeedback.text == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.pointValue == INTEGER
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.whenRight.material[_].link.displayText == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.whenRight.material[_].link.uri == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.whenRight.material[_].video.displayText == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.whenRight.material[_].video.youtubeUri == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.whenRight.text == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.whenWrong.material[_].link.displayText == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.whenWrong.material[_].link.uri == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.whenWrong.material[_].video.displayText == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.whenWrong.material[_].video.youtubeUri == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].grading.whenWrong.text == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].questionId == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].required == BOOLEAN
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].rowQuestion.title == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].scaleQuestion.high == INTEGER
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].scaleQuestion.highLabel == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].scaleQuestion.low == INTEGER
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].scaleQuestion.lowLabel == STRING
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].textQuestion.paragraph == BOOLEAN
    input.Body.requests[_].updateItem.item.questionGroupItem.questions[_].timeQuestion.duration == BOOLEAN
    input.Body.requests[_].updateItem.item.questionItem.image.altText == STRING
    input.Body.requests[_].updateItem.item.questionItem.image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].updateItem.item.questionItem.image.properties.width == INTEGER
    input.Body.requests[_].updateItem.item.questionItem.image.sourceUri == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.choiceQuestion.options[_].goToAction == enum_OptionGoToAction[_]
    input.Body.requests[_].updateItem.item.questionItem.question.choiceQuestion.options[_].goToSectionId == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.choiceQuestion.options[_].image.altText == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.choiceQuestion.options[_].image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].updateItem.item.questionItem.question.choiceQuestion.options[_].image.properties.width == INTEGER
    input.Body.requests[_].updateItem.item.questionItem.question.choiceQuestion.options[_].image.sourceUri == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.choiceQuestion.options[_].isOther == BOOLEAN
    input.Body.requests[_].updateItem.item.questionItem.question.choiceQuestion.options[_].value == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.choiceQuestion.shuffle == BOOLEAN
    input.Body.requests[_].updateItem.item.questionItem.question.choiceQuestion.type == enum_ChoiceQuestionType[_]
    input.Body.requests[_].updateItem.item.questionItem.question.dateQuestion.includeTime == BOOLEAN
    input.Body.requests[_].updateItem.item.questionItem.question.dateQuestion.includeYear == BOOLEAN
    input.Body.requests[_].updateItem.item.questionItem.question.fileUploadQuestion.folderId == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.fileUploadQuestion.maxFileSize == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.fileUploadQuestion.maxFiles == INTEGER
    input.Body.requests[_].updateItem.item.questionItem.question.fileUploadQuestion.types[_] == enum_FileUploadQuestionTypes[_]
    input.Body.requests[_].updateItem.item.questionItem.question.grading.correctAnswers.answers[_].value == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.generalFeedback.material[_].link.displayText == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.generalFeedback.material[_].link.uri == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.generalFeedback.material[_].video.displayText == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.generalFeedback.material[_].video.youtubeUri == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.generalFeedback.text == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.pointValue == INTEGER
    input.Body.requests[_].updateItem.item.questionItem.question.grading.whenRight.material[_].link.displayText == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.whenRight.material[_].link.uri == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.whenRight.material[_].video.displayText == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.whenRight.material[_].video.youtubeUri == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.whenRight.text == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.whenWrong.material[_].link.displayText == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.whenWrong.material[_].link.uri == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.whenWrong.material[_].video.displayText == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.whenWrong.material[_].video.youtubeUri == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.grading.whenWrong.text == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.questionId == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.required == BOOLEAN
    input.Body.requests[_].updateItem.item.questionItem.question.rowQuestion.title == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.scaleQuestion.high == INTEGER
    input.Body.requests[_].updateItem.item.questionItem.question.scaleQuestion.highLabel == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.scaleQuestion.low == INTEGER
    input.Body.requests[_].updateItem.item.questionItem.question.scaleQuestion.lowLabel == STRING
    input.Body.requests[_].updateItem.item.questionItem.question.textQuestion.paragraph == BOOLEAN
    input.Body.requests[_].updateItem.item.questionItem.question.timeQuestion.duration == BOOLEAN
    input.Body.requests[_].updateItem.item.textItem.STRING == STRING
    input.Body.requests[_].updateItem.item.title == STRING
    input.Body.requests[_].updateItem.item.videoItem.caption == STRING
    input.Body.requests[_].updateItem.item.videoItem.video.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.requests[_].updateItem.item.videoItem.video.properties.width == INTEGER
    input.Body.requests[_].updateItem.item.videoItem.video.youtubeUri == STRING
    input.Body.requests[_].updateItem.location.index == INTEGER
    input.Body.requests[_].updateItem.updateMask == STRING
    input.Body.requests[_].updateSettings.settings.quizSettings.isQuiz == BOOLEAN
    input.Body.requests[_].updateSettings.updateMask == STRING
    input.Body.writeControl.requiredRevisionId == STRING
    input.Body.writeControl.targetRevisionId == STRING
    input.ReqMap.formId == STRING
    input.ProviderMetadata.Region == STRING
}

forms.forms.create

enum_ChoiceQuestionType := [ "CHOICE_TYPE_UNSPECIFIED", "RADIO", "CHECKBOX", "DROP_DOWN" ]
enum_FileUploadQuestionTypes := [ "FILE_TYPE_UNSPECIFIED", "ANY", "DOCUMENT", "PRESENTATION", "SPREADSHEET", "DRAWING", "PDF", "IMAGE", "VIDEO", "AUDIO" ]
enum_MediaPropertiesAlignment := [ "ALIGNMENT_UNSPECIFIED", "LEFT", "RIGHT", "CENTER" ]
enum_OptionGoToAction := [ "GO_TO_ACTION_UNSPECIFIED", "NEXT_SECTION", "RESTART_FORM", "SUBMIT_FORM" ]

valid {
    input.Body.info.description == STRING
    input.Body.info.title == STRING
    input.Body.items[_].description == STRING
    input.Body.items[_].imageItem.image.altText == STRING
    input.Body.items[_].imageItem.image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.items[_].imageItem.image.properties.width == INTEGER
    input.Body.items[_].imageItem.image.sourceUri == STRING
    input.Body.items[_].itemId == STRING
    input.Body.items[_].pageBreakItem.STRING == STRING
    input.Body.items[_].questionGroupItem.grid.columns.options[_].goToAction == enum_OptionGoToAction[_]
    input.Body.items[_].questionGroupItem.grid.columns.options[_].goToSectionId == STRING
    input.Body.items[_].questionGroupItem.grid.columns.options[_].image.altText == STRING
    input.Body.items[_].questionGroupItem.grid.columns.options[_].image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.items[_].questionGroupItem.grid.columns.options[_].image.properties.width == INTEGER
    input.Body.items[_].questionGroupItem.grid.columns.options[_].image.sourceUri == STRING
    input.Body.items[_].questionGroupItem.grid.columns.options[_].isOther == BOOLEAN
    input.Body.items[_].questionGroupItem.grid.columns.options[_].value == STRING
    input.Body.items[_].questionGroupItem.grid.columns.shuffle == BOOLEAN
    input.Body.items[_].questionGroupItem.grid.columns.type == enum_ChoiceQuestionType[_]
    input.Body.items[_].questionGroupItem.grid.shuffleQuestions == BOOLEAN
    input.Body.items[_].questionGroupItem.image.altText == STRING
    input.Body.items[_].questionGroupItem.image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.items[_].questionGroupItem.image.properties.width == INTEGER
    input.Body.items[_].questionGroupItem.image.sourceUri == STRING
    input.Body.items[_].questionGroupItem.questions[_].choiceQuestion.options[_].goToAction == enum_OptionGoToAction[_]
    input.Body.items[_].questionGroupItem.questions[_].choiceQuestion.options[_].goToSectionId == STRING
    input.Body.items[_].questionGroupItem.questions[_].choiceQuestion.options[_].image.altText == STRING
    input.Body.items[_].questionGroupItem.questions[_].choiceQuestion.options[_].image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.items[_].questionGroupItem.questions[_].choiceQuestion.options[_].image.properties.width == INTEGER
    input.Body.items[_].questionGroupItem.questions[_].choiceQuestion.options[_].image.sourceUri == STRING
    input.Body.items[_].questionGroupItem.questions[_].choiceQuestion.options[_].isOther == BOOLEAN
    input.Body.items[_].questionGroupItem.questions[_].choiceQuestion.options[_].value == STRING
    input.Body.items[_].questionGroupItem.questions[_].choiceQuestion.shuffle == BOOLEAN
    input.Body.items[_].questionGroupItem.questions[_].choiceQuestion.type == enum_ChoiceQuestionType[_]
    input.Body.items[_].questionGroupItem.questions[_].dateQuestion.includeTime == BOOLEAN
    input.Body.items[_].questionGroupItem.questions[_].dateQuestion.includeYear == BOOLEAN
    input.Body.items[_].questionGroupItem.questions[_].fileUploadQuestion.folderId == STRING
    input.Body.items[_].questionGroupItem.questions[_].fileUploadQuestion.maxFileSize == STRING
    input.Body.items[_].questionGroupItem.questions[_].fileUploadQuestion.maxFiles == INTEGER
    input.Body.items[_].questionGroupItem.questions[_].fileUploadQuestion.types[_] == enum_FileUploadQuestionTypes[_]
    input.Body.items[_].questionGroupItem.questions[_].grading.correctAnswers.answers[_].value == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.generalFeedback.material[_].link.displayText == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.generalFeedback.material[_].link.uri == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.generalFeedback.material[_].video.displayText == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.generalFeedback.material[_].video.youtubeUri == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.generalFeedback.text == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.pointValue == INTEGER
    input.Body.items[_].questionGroupItem.questions[_].grading.whenRight.material[_].link.displayText == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.whenRight.material[_].link.uri == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.whenRight.material[_].video.displayText == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.whenRight.material[_].video.youtubeUri == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.whenRight.text == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.whenWrong.material[_].link.displayText == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.whenWrong.material[_].link.uri == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.whenWrong.material[_].video.displayText == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.whenWrong.material[_].video.youtubeUri == STRING
    input.Body.items[_].questionGroupItem.questions[_].grading.whenWrong.text == STRING
    input.Body.items[_].questionGroupItem.questions[_].questionId == STRING
    input.Body.items[_].questionGroupItem.questions[_].required == BOOLEAN
    input.Body.items[_].questionGroupItem.questions[_].rowQuestion.title == STRING
    input.Body.items[_].questionGroupItem.questions[_].scaleQuestion.high == INTEGER
    input.Body.items[_].questionGroupItem.questions[_].scaleQuestion.highLabel == STRING
    input.Body.items[_].questionGroupItem.questions[_].scaleQuestion.low == INTEGER
    input.Body.items[_].questionGroupItem.questions[_].scaleQuestion.lowLabel == STRING
    input.Body.items[_].questionGroupItem.questions[_].textQuestion.paragraph == BOOLEAN
    input.Body.items[_].questionGroupItem.questions[_].timeQuestion.duration == BOOLEAN
    input.Body.items[_].questionItem.image.altText == STRING
    input.Body.items[_].questionItem.image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.items[_].questionItem.image.properties.width == INTEGER
    input.Body.items[_].questionItem.image.sourceUri == STRING
    input.Body.items[_].questionItem.question.choiceQuestion.options[_].goToAction == enum_OptionGoToAction[_]
    input.Body.items[_].questionItem.question.choiceQuestion.options[_].goToSectionId == STRING
    input.Body.items[_].questionItem.question.choiceQuestion.options[_].image.altText == STRING
    input.Body.items[_].questionItem.question.choiceQuestion.options[_].image.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.items[_].questionItem.question.choiceQuestion.options[_].image.properties.width == INTEGER
    input.Body.items[_].questionItem.question.choiceQuestion.options[_].image.sourceUri == STRING
    input.Body.items[_].questionItem.question.choiceQuestion.options[_].isOther == BOOLEAN
    input.Body.items[_].questionItem.question.choiceQuestion.options[_].value == STRING
    input.Body.items[_].questionItem.question.choiceQuestion.shuffle == BOOLEAN
    input.Body.items[_].questionItem.question.choiceQuestion.type == enum_ChoiceQuestionType[_]
    input.Body.items[_].questionItem.question.dateQuestion.includeTime == BOOLEAN
    input.Body.items[_].questionItem.question.dateQuestion.includeYear == BOOLEAN
    input.Body.items[_].questionItem.question.fileUploadQuestion.folderId == STRING
    input.Body.items[_].questionItem.question.fileUploadQuestion.maxFileSize == STRING
    input.Body.items[_].questionItem.question.fileUploadQuestion.maxFiles == INTEGER
    input.Body.items[_].questionItem.question.fileUploadQuestion.types[_] == enum_FileUploadQuestionTypes[_]
    input.Body.items[_].questionItem.question.grading.correctAnswers.answers[_].value == STRING
    input.Body.items[_].questionItem.question.grading.generalFeedback.material[_].link.displayText == STRING
    input.Body.items[_].questionItem.question.grading.generalFeedback.material[_].link.uri == STRING
    input.Body.items[_].questionItem.question.grading.generalFeedback.material[_].video.displayText == STRING
    input.Body.items[_].questionItem.question.grading.generalFeedback.material[_].video.youtubeUri == STRING
    input.Body.items[_].questionItem.question.grading.generalFeedback.text == STRING
    input.Body.items[_].questionItem.question.grading.pointValue == INTEGER
    input.Body.items[_].questionItem.question.grading.whenRight.material[_].link.displayText == STRING
    input.Body.items[_].questionItem.question.grading.whenRight.material[_].link.uri == STRING
    input.Body.items[_].questionItem.question.grading.whenRight.material[_].video.displayText == STRING
    input.Body.items[_].questionItem.question.grading.whenRight.material[_].video.youtubeUri == STRING
    input.Body.items[_].questionItem.question.grading.whenRight.text == STRING
    input.Body.items[_].questionItem.question.grading.whenWrong.material[_].link.displayText == STRING
    input.Body.items[_].questionItem.question.grading.whenWrong.material[_].link.uri == STRING
    input.Body.items[_].questionItem.question.grading.whenWrong.material[_].video.displayText == STRING
    input.Body.items[_].questionItem.question.grading.whenWrong.material[_].video.youtubeUri == STRING
    input.Body.items[_].questionItem.question.grading.whenWrong.text == STRING
    input.Body.items[_].questionItem.question.questionId == STRING
    input.Body.items[_].questionItem.question.required == BOOLEAN
    input.Body.items[_].questionItem.question.rowQuestion.title == STRING
    input.Body.items[_].questionItem.question.scaleQuestion.high == INTEGER
    input.Body.items[_].questionItem.question.scaleQuestion.highLabel == STRING
    input.Body.items[_].questionItem.question.scaleQuestion.low == INTEGER
    input.Body.items[_].questionItem.question.scaleQuestion.lowLabel == STRING
    input.Body.items[_].questionItem.question.textQuestion.paragraph == BOOLEAN
    input.Body.items[_].questionItem.question.timeQuestion.duration == BOOLEAN
    input.Body.items[_].textItem.STRING == STRING
    input.Body.items[_].title == STRING
    input.Body.items[_].videoItem.caption == STRING
    input.Body.items[_].videoItem.video.properties.alignment == enum_MediaPropertiesAlignment[_]
    input.Body.items[_].videoItem.video.properties.width == INTEGER
    input.Body.items[_].videoItem.video.youtubeUri == STRING
    input.Body.settings.quizSettings.isQuiz == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

forms.forms.get

valid {
    input.ReqMap.formId == STRING
    input.ProviderMetadata.Region == STRING
}

forms.forms.responses.get

valid {
    input.ReqMap.formId == STRING
    input.ReqMap.responseId == STRING
    input.ProviderMetadata.Region == STRING
}

forms.forms.responses.list

valid {
    input.ReqMap.formId == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

forms.forms.watches.create

enum_WatchEventType := [ "EVENT_TYPE_UNSPECIFIED", "SCHEMA", "RESPONSES" ]

valid {
    input.Body.watch.eventType == enum_WatchEventType[_]
    input.Body.watch.target.topic.topicName == STRING
    input.Body.watchId == STRING
    input.ReqMap.formId == STRING
    input.ProviderMetadata.Region == STRING
}

forms.forms.watches.delete

valid {
    input.ReqMap.formId == STRING
    input.ReqMap.watchId == STRING
    input.ProviderMetadata.Region == STRING
}

forms.forms.watches.list

valid {
    input.ReqMap.formId == STRING
    input.ProviderMetadata.Region == STRING
}

forms.forms.watches.renew

valid {
    input.Body.STRING == STRING
    input.ReqMap.formId == STRING
    input.ReqMap.watchId == STRING
    input.ProviderMetadata.Region == STRING
}