vault.matters.addPermissions

enum_MatterPermissionRole := [ "ROLE_UNSPECIFIED", "COLLABORATOR", "OWNER" ]

valid {
    input.Body.ccMe == BOOLEAN
    input.Body.matterPermission.accountId == STRING
    input.Body.matterPermission.role == enum_MatterPermissionRole[_]
    input.Body.sendEmails == BOOLEAN
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.close

valid {
    input.Body.STRING == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.count

enum_CalendarOptionsResponseStatuses := [ "ATTENDEE_RESPONSE_UNSPECIFIED", "ATTENDEE_RESPONSE_NEEDS_ACTION", "ATTENDEE_RESPONSE_ACCEPTED", "ATTENDEE_RESPONSE_DECLINED", "ATTENDEE_RESPONSE_TENTATIVE" ]
enum_CountArtifactsRequestView := [ "COUNT_RESULT_VIEW_UNSPECIFIED", "TOTAL_COUNT", "ALL" ]
enum_DriveOptionsClientSideEncryptedOption := [ "CLIENT_SIDE_ENCRYPTED_OPTION_UNSPECIFIED", "CLIENT_SIDE_ENCRYPTED_OPTION_ANY", "CLIENT_SIDE_ENCRYPTED_OPTION_ENCRYPTED", "CLIENT_SIDE_ENCRYPTED_OPTION_UNENCRYPTED" ]
enum_MailOptionsClientSideEncryptedOption := [ "CLIENT_SIDE_ENCRYPTED_OPTION_UNSPECIFIED", "CLIENT_SIDE_ENCRYPTED_OPTION_ANY", "CLIENT_SIDE_ENCRYPTED_OPTION_ENCRYPTED", "CLIENT_SIDE_ENCRYPTED_OPTION_UNENCRYPTED" ]
enum_QueryCorpus := [ "CORPUS_TYPE_UNSPECIFIED", "DRIVE", "MAIL", "GROUPS", "HANGOUTS_CHAT", "VOICE", "CALENDAR" ]
enum_QueryDataScope := [ "DATA_SCOPE_UNSPECIFIED", "ALL_DATA", "HELD_DATA", "UNPROCESSED_DATA" ]
enum_QueryMethod := [ "SEARCH_METHOD_UNSPECIFIED", "ACCOUNT", "ORG_UNIT", "TEAM_DRIVE", "ENTIRE_ORG", "ROOM", "SITES_URL", "SHARED_DRIVE" ]
enum_QuerySearchMethod := [ "SEARCH_METHOD_UNSPECIFIED", "ACCOUNT", "ORG_UNIT", "TEAM_DRIVE", "ENTIRE_ORG", "ROOM", "SITES_URL", "SHARED_DRIVE" ]
enum_VoiceOptionsCoveredData := [ "COVERED_DATA_UNSPECIFIED", "TEXT_MESSAGES", "VOICEMAILS", "CALL_LOGS" ]

valid {
    input.Body.query.accountInfo.emails[_] == STRING
    input.Body.query.calendarOptions.locationQuery[_] == STRING
    input.Body.query.calendarOptions.minusWords[_] == STRING
    input.Body.query.calendarOptions.peopleQuery[_] == STRING
    input.Body.query.calendarOptions.responseStatuses[_] == enum_CalendarOptionsResponseStatuses[_]
    input.Body.query.calendarOptions.versionDate == STRING
    input.Body.query.corpus == enum_QueryCorpus[_]
    input.Body.query.dataScope == enum_QueryDataScope[_]
    input.Body.query.driveOptions.clientSideEncryptedOption == enum_DriveOptionsClientSideEncryptedOption[_]
    input.Body.query.driveOptions.includeSharedDrives == BOOLEAN
    input.Body.query.driveOptions.includeTeamDrives == BOOLEAN
    input.Body.query.driveOptions.versionDate == STRING
    input.Body.query.endTime == STRING
    input.Body.query.hangoutsChatInfo.roomId[_] == STRING
    input.Body.query.hangoutsChatOptions.includeRooms == BOOLEAN
    input.Body.query.mailOptions.clientSideEncryptedOption == enum_MailOptionsClientSideEncryptedOption[_]
    input.Body.query.mailOptions.excludeDrafts == BOOLEAN
    input.Body.query.method == enum_QueryMethod[_]
    input.Body.query.orgUnitInfo.orgUnitId == STRING
    input.Body.query.searchMethod == enum_QuerySearchMethod[_]
    input.Body.query.sharedDriveInfo.sharedDriveIds[_] == STRING
    input.Body.query.sitesUrlInfo.urls[_] == STRING
    input.Body.query.startTime == STRING
    input.Body.query.teamDriveInfo.teamDriveIds[_] == STRING
    input.Body.query.terms == STRING
    input.Body.query.timeZone == STRING
    input.Body.query.voiceOptions.coveredData[_] == enum_VoiceOptionsCoveredData[_]
    input.Body.view == enum_CountArtifactsRequestView[_]
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.create

enum_MatterPermissionRole := [ "ROLE_UNSPECIFIED", "COLLABORATOR", "OWNER" ]
enum_MatterState := [ "STATE_UNSPECIFIED", "OPEN", "CLOSED", "DELETED" ]

valid {
    input.Body.description == STRING
    input.Body.matterId == STRING
    input.Body.matterPermissions[_].accountId == STRING
    input.Body.matterPermissions[_].role == enum_MatterPermissionRole[_]
    input.Body.name == STRING
    input.Body.state == enum_MatterState[_]
    input.ProviderMetadata.Region == STRING
}

vault.matters.delete

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

vault.matters.exports.create

enum_CalendarExportOptionsExportFormat := [ "EXPORT_FORMAT_UNSPECIFIED", "MBOX", "PST", "ICS" ]
enum_CalendarOptionsResponseStatuses := [ "ATTENDEE_RESPONSE_UNSPECIFIED", "ATTENDEE_RESPONSE_NEEDS_ACTION", "ATTENDEE_RESPONSE_ACCEPTED", "ATTENDEE_RESPONSE_DECLINED", "ATTENDEE_RESPONSE_TENTATIVE" ]
enum_DriveOptionsClientSideEncryptedOption := [ "CLIENT_SIDE_ENCRYPTED_OPTION_UNSPECIFIED", "CLIENT_SIDE_ENCRYPTED_OPTION_ANY", "CLIENT_SIDE_ENCRYPTED_OPTION_ENCRYPTED", "CLIENT_SIDE_ENCRYPTED_OPTION_UNENCRYPTED" ]
enum_ExportOptionsRegion := [ "EXPORT_REGION_UNSPECIFIED", "ANY", "US", "EUROPE" ]
enum_ExportStatus := [ "EXPORT_STATUS_UNSPECIFIED", "COMPLETED", "FAILED", "IN_PROGRESS" ]
enum_GroupsExportOptionsExportFormat := [ "EXPORT_FORMAT_UNSPECIFIED", "MBOX", "PST", "ICS" ]
enum_HangoutsChatExportOptionsExportFormat := [ "EXPORT_FORMAT_UNSPECIFIED", "MBOX", "PST", "ICS" ]
enum_MailExportOptionsExportFormat := [ "EXPORT_FORMAT_UNSPECIFIED", "MBOX", "PST", "ICS" ]
enum_MailOptionsClientSideEncryptedOption := [ "CLIENT_SIDE_ENCRYPTED_OPTION_UNSPECIFIED", "CLIENT_SIDE_ENCRYPTED_OPTION_ANY", "CLIENT_SIDE_ENCRYPTED_OPTION_ENCRYPTED", "CLIENT_SIDE_ENCRYPTED_OPTION_UNENCRYPTED" ]
enum_QueryCorpus := [ "CORPUS_TYPE_UNSPECIFIED", "DRIVE", "MAIL", "GROUPS", "HANGOUTS_CHAT", "VOICE", "CALENDAR" ]
enum_QueryDataScope := [ "DATA_SCOPE_UNSPECIFIED", "ALL_DATA", "HELD_DATA", "UNPROCESSED_DATA" ]
enum_QueryMethod := [ "SEARCH_METHOD_UNSPECIFIED", "ACCOUNT", "ORG_UNIT", "TEAM_DRIVE", "ENTIRE_ORG", "ROOM", "SITES_URL", "SHARED_DRIVE" ]
enum_QuerySearchMethod := [ "SEARCH_METHOD_UNSPECIFIED", "ACCOUNT", "ORG_UNIT", "TEAM_DRIVE", "ENTIRE_ORG", "ROOM", "SITES_URL", "SHARED_DRIVE" ]
enum_VoiceExportOptionsExportFormat := [ "EXPORT_FORMAT_UNSPECIFIED", "MBOX", "PST", "ICS" ]
enum_VoiceOptionsCoveredData := [ "COVERED_DATA_UNSPECIFIED", "TEXT_MESSAGES", "VOICEMAILS", "CALL_LOGS" ]

valid {
    input.Body.cloudStorageSink.files[_].bucketName == STRING
    input.Body.cloudStorageSink.files[_].md5Hash == STRING
    input.Body.cloudStorageSink.files[_].objectName == STRING
    input.Body.cloudStorageSink.files[_].size == STRING
    input.Body.createTime == STRING
    input.Body.exportOptions.calendarOptions.exportFormat == enum_CalendarExportOptionsExportFormat[_]
    input.Body.exportOptions.driveOptions.includeAccessInfo == BOOLEAN
    input.Body.exportOptions.groupsOptions.exportFormat == enum_GroupsExportOptionsExportFormat[_]
    input.Body.exportOptions.hangoutsChatOptions.exportFormat == enum_HangoutsChatExportOptionsExportFormat[_]
    input.Body.exportOptions.mailOptions.exportFormat == enum_MailExportOptionsExportFormat[_]
    input.Body.exportOptions.mailOptions.exportLinkedDriveFiles == BOOLEAN
    input.Body.exportOptions.mailOptions.showConfidentialModeContent == BOOLEAN
    input.Body.exportOptions.mailOptions.useNewExport == BOOLEAN
    input.Body.exportOptions.region == enum_ExportOptionsRegion[_]
    input.Body.exportOptions.voiceOptions.exportFormat == enum_VoiceExportOptionsExportFormat[_]
    input.Body.id == STRING
    input.Body.matterId == STRING
    input.Body.name == STRING
    input.Body.query.accountInfo.emails[_] == STRING
    input.Body.query.calendarOptions.locationQuery[_] == STRING
    input.Body.query.calendarOptions.minusWords[_] == STRING
    input.Body.query.calendarOptions.peopleQuery[_] == STRING
    input.Body.query.calendarOptions.responseStatuses[_] == enum_CalendarOptionsResponseStatuses[_]
    input.Body.query.calendarOptions.versionDate == STRING
    input.Body.query.corpus == enum_QueryCorpus[_]
    input.Body.query.dataScope == enum_QueryDataScope[_]
    input.Body.query.driveOptions.clientSideEncryptedOption == enum_DriveOptionsClientSideEncryptedOption[_]
    input.Body.query.driveOptions.includeSharedDrives == BOOLEAN
    input.Body.query.driveOptions.includeTeamDrives == BOOLEAN
    input.Body.query.driveOptions.versionDate == STRING
    input.Body.query.endTime == STRING
    input.Body.query.hangoutsChatInfo.roomId[_] == STRING
    input.Body.query.hangoutsChatOptions.includeRooms == BOOLEAN
    input.Body.query.mailOptions.clientSideEncryptedOption == enum_MailOptionsClientSideEncryptedOption[_]
    input.Body.query.mailOptions.excludeDrafts == BOOLEAN
    input.Body.query.method == enum_QueryMethod[_]
    input.Body.query.orgUnitInfo.orgUnitId == STRING
    input.Body.query.searchMethod == enum_QuerySearchMethod[_]
    input.Body.query.sharedDriveInfo.sharedDriveIds[_] == STRING
    input.Body.query.sitesUrlInfo.urls[_] == STRING
    input.Body.query.startTime == STRING
    input.Body.query.teamDriveInfo.teamDriveIds[_] == STRING
    input.Body.query.terms == STRING
    input.Body.query.timeZone == STRING
    input.Body.query.voiceOptions.coveredData[_] == enum_VoiceOptionsCoveredData[_]
    input.Body.requester.displayName == STRING
    input.Body.requester.email == STRING
    input.Body.stats.exportedArtifactCount == STRING
    input.Body.stats.sizeInBytes == STRING
    input.Body.stats.totalArtifactCount == STRING
    input.Body.status == enum_ExportStatus[_]
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.exports.delete

valid {
    input.ReqMap.exportId == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.exports.get

valid {
    input.ReqMap.exportId == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.exports.list

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

vault.matters.get

enum_ViewParameter := [ "VIEW_UNSPECIFIED", "BASIC", "FULL" ]

valid {
    input.ReqMap.matterId == STRING
    input.Qs.view == enum_ViewParameter[_]
    input.ProviderMetadata.Region == STRING
}

vault.matters.holds.accounts.create

valid {
    input.Body.accountId == STRING
    input.Body.email == STRING
    input.Body.firstName == STRING
    input.Body.holdTime == STRING
    input.Body.lastName == STRING
    input.ReqMap.holdId == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.holds.accounts.delete

valid {
    input.ReqMap.accountId == STRING
    input.ReqMap.holdId == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.holds.accounts.list

valid {
    input.ReqMap.holdId == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.holds.addHeldAccounts

valid {
    input.Body.accountIds[_] == STRING
    input.Body.emails[_] == STRING
    input.ReqMap.holdId == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.holds.create

enum_HeldVoiceQueryCoveredData := [ "COVERED_DATA_UNSPECIFIED", "TEXT_MESSAGES", "VOICEMAILS", "CALL_LOGS" ]
enum_HoldCorpus := [ "CORPUS_TYPE_UNSPECIFIED", "DRIVE", "MAIL", "GROUPS", "HANGOUTS_CHAT", "VOICE", "CALENDAR" ]

valid {
    input.Body.accounts[_].accountId == STRING
    input.Body.accounts[_].email == STRING
    input.Body.accounts[_].firstName == STRING
    input.Body.accounts[_].holdTime == STRING
    input.Body.accounts[_].lastName == STRING
    input.Body.corpus == enum_HoldCorpus[_]
    input.Body.holdId == STRING
    input.Body.name == STRING
    input.Body.orgUnit.holdTime == STRING
    input.Body.orgUnit.orgUnitId == STRING
    input.Body.query.driveQuery.includeSharedDriveFiles == BOOLEAN
    input.Body.query.driveQuery.includeTeamDriveFiles == BOOLEAN
    input.Body.query.groupsQuery.endTime == STRING
    input.Body.query.groupsQuery.startTime == STRING
    input.Body.query.groupsQuery.terms == STRING
    input.Body.query.hangoutsChatQuery.includeRooms == BOOLEAN
    input.Body.query.mailQuery.endTime == STRING
    input.Body.query.mailQuery.startTime == STRING
    input.Body.query.mailQuery.terms == STRING
    input.Body.query.voiceQuery.coveredData[_] == enum_HeldVoiceQueryCoveredData[_]
    input.Body.updateTime == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.holds.delete

valid {
    input.ReqMap.holdId == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.holds.get

enum_ViewParameter := [ "HOLD_VIEW_UNSPECIFIED", "BASIC_HOLD", "FULL_HOLD" ]

valid {
    input.ReqMap.holdId == STRING
    input.ReqMap.matterId == STRING
    input.Qs.view == enum_ViewParameter[_]
    input.ProviderMetadata.Region == STRING
}

vault.matters.holds.list

enum_ViewParameter := [ "HOLD_VIEW_UNSPECIFIED", "BASIC_HOLD", "FULL_HOLD" ]

valid {
    input.ReqMap.matterId == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.view == enum_ViewParameter[_]
    input.ProviderMetadata.Region == STRING
}

vault.matters.holds.removeHeldAccounts

valid {
    input.Body.accountIds[_] == STRING
    input.ReqMap.holdId == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.holds.update

enum_HeldVoiceQueryCoveredData := [ "COVERED_DATA_UNSPECIFIED", "TEXT_MESSAGES", "VOICEMAILS", "CALL_LOGS" ]
enum_HoldCorpus := [ "CORPUS_TYPE_UNSPECIFIED", "DRIVE", "MAIL", "GROUPS", "HANGOUTS_CHAT", "VOICE", "CALENDAR" ]

valid {
    input.Body.accounts[_].accountId == STRING
    input.Body.accounts[_].email == STRING
    input.Body.accounts[_].firstName == STRING
    input.Body.accounts[_].holdTime == STRING
    input.Body.accounts[_].lastName == STRING
    input.Body.corpus == enum_HoldCorpus[_]
    input.Body.holdId == STRING
    input.Body.name == STRING
    input.Body.orgUnit.holdTime == STRING
    input.Body.orgUnit.orgUnitId == STRING
    input.Body.query.driveQuery.includeSharedDriveFiles == BOOLEAN
    input.Body.query.driveQuery.includeTeamDriveFiles == BOOLEAN
    input.Body.query.groupsQuery.endTime == STRING
    input.Body.query.groupsQuery.startTime == STRING
    input.Body.query.groupsQuery.terms == STRING
    input.Body.query.hangoutsChatQuery.includeRooms == BOOLEAN
    input.Body.query.mailQuery.endTime == STRING
    input.Body.query.mailQuery.startTime == STRING
    input.Body.query.mailQuery.terms == STRING
    input.Body.query.voiceQuery.coveredData[_] == enum_HeldVoiceQueryCoveredData[_]
    input.Body.updateTime == STRING
    input.ReqMap.holdId == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.list

enum_StateParameter := [ "STATE_UNSPECIFIED", "OPEN", "CLOSED", "DELETED" ]
enum_ViewParameter := [ "VIEW_UNSPECIFIED", "BASIC", "FULL" ]

valid {
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.state == enum_StateParameter[_]
    input.Qs.view == enum_ViewParameter[_]
    input.ProviderMetadata.Region == STRING
}

vault.matters.removePermissions

valid {
    input.Body.accountId == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.reopen

valid {
    input.Body.STRING == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.savedQueries.create

enum_CalendarOptionsResponseStatuses := [ "ATTENDEE_RESPONSE_UNSPECIFIED", "ATTENDEE_RESPONSE_NEEDS_ACTION", "ATTENDEE_RESPONSE_ACCEPTED", "ATTENDEE_RESPONSE_DECLINED", "ATTENDEE_RESPONSE_TENTATIVE" ]
enum_DriveOptionsClientSideEncryptedOption := [ "CLIENT_SIDE_ENCRYPTED_OPTION_UNSPECIFIED", "CLIENT_SIDE_ENCRYPTED_OPTION_ANY", "CLIENT_SIDE_ENCRYPTED_OPTION_ENCRYPTED", "CLIENT_SIDE_ENCRYPTED_OPTION_UNENCRYPTED" ]
enum_MailOptionsClientSideEncryptedOption := [ "CLIENT_SIDE_ENCRYPTED_OPTION_UNSPECIFIED", "CLIENT_SIDE_ENCRYPTED_OPTION_ANY", "CLIENT_SIDE_ENCRYPTED_OPTION_ENCRYPTED", "CLIENT_SIDE_ENCRYPTED_OPTION_UNENCRYPTED" ]
enum_QueryCorpus := [ "CORPUS_TYPE_UNSPECIFIED", "DRIVE", "MAIL", "GROUPS", "HANGOUTS_CHAT", "VOICE", "CALENDAR" ]
enum_QueryDataScope := [ "DATA_SCOPE_UNSPECIFIED", "ALL_DATA", "HELD_DATA", "UNPROCESSED_DATA" ]
enum_QueryMethod := [ "SEARCH_METHOD_UNSPECIFIED", "ACCOUNT", "ORG_UNIT", "TEAM_DRIVE", "ENTIRE_ORG", "ROOM", "SITES_URL", "SHARED_DRIVE" ]
enum_QuerySearchMethod := [ "SEARCH_METHOD_UNSPECIFIED", "ACCOUNT", "ORG_UNIT", "TEAM_DRIVE", "ENTIRE_ORG", "ROOM", "SITES_URL", "SHARED_DRIVE" ]
enum_VoiceOptionsCoveredData := [ "COVERED_DATA_UNSPECIFIED", "TEXT_MESSAGES", "VOICEMAILS", "CALL_LOGS" ]

valid {
    input.Body.createTime == STRING
    input.Body.displayName == STRING
    input.Body.matterId == STRING
    input.Body.query.accountInfo.emails[_] == STRING
    input.Body.query.calendarOptions.locationQuery[_] == STRING
    input.Body.query.calendarOptions.minusWords[_] == STRING
    input.Body.query.calendarOptions.peopleQuery[_] == STRING
    input.Body.query.calendarOptions.responseStatuses[_] == enum_CalendarOptionsResponseStatuses[_]
    input.Body.query.calendarOptions.versionDate == STRING
    input.Body.query.corpus == enum_QueryCorpus[_]
    input.Body.query.dataScope == enum_QueryDataScope[_]
    input.Body.query.driveOptions.clientSideEncryptedOption == enum_DriveOptionsClientSideEncryptedOption[_]
    input.Body.query.driveOptions.includeSharedDrives == BOOLEAN
    input.Body.query.driveOptions.includeTeamDrives == BOOLEAN
    input.Body.query.driveOptions.versionDate == STRING
    input.Body.query.endTime == STRING
    input.Body.query.hangoutsChatInfo.roomId[_] == STRING
    input.Body.query.hangoutsChatOptions.includeRooms == BOOLEAN
    input.Body.query.mailOptions.clientSideEncryptedOption == enum_MailOptionsClientSideEncryptedOption[_]
    input.Body.query.mailOptions.excludeDrafts == BOOLEAN
    input.Body.query.method == enum_QueryMethod[_]
    input.Body.query.orgUnitInfo.orgUnitId == STRING
    input.Body.query.searchMethod == enum_QuerySearchMethod[_]
    input.Body.query.sharedDriveInfo.sharedDriveIds[_] == STRING
    input.Body.query.sitesUrlInfo.urls[_] == STRING
    input.Body.query.startTime == STRING
    input.Body.query.teamDriveInfo.teamDriveIds[_] == STRING
    input.Body.query.terms == STRING
    input.Body.query.timeZone == STRING
    input.Body.query.voiceOptions.coveredData[_] == enum_VoiceOptionsCoveredData[_]
    input.Body.savedQueryId == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.savedQueries.delete

valid {
    input.ReqMap.matterId == STRING
    input.ReqMap.savedQueryId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.savedQueries.get

valid {
    input.ReqMap.matterId == STRING
    input.ReqMap.savedQueryId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.savedQueries.list

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

vault.matters.undelete

valid {
    input.Body.STRING == STRING
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.matters.update

enum_MatterPermissionRole := [ "ROLE_UNSPECIFIED", "COLLABORATOR", "OWNER" ]
enum_MatterState := [ "STATE_UNSPECIFIED", "OPEN", "CLOSED", "DELETED" ]

valid {
    input.Body.description == STRING
    input.Body.matterId == STRING
    input.Body.matterPermissions[_].accountId == STRING
    input.Body.matterPermissions[_].role == enum_MatterPermissionRole[_]
    input.Body.name == STRING
    input.Body.state == enum_MatterState[_]
    input.ReqMap.matterId == STRING
    input.ProviderMetadata.Region == STRING
}

vault.operations.cancel

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

vault.operations.delete

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

vault.operations.get

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

vault.operations.list

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