admin.channels.stop

valid {
    input.Body.address == STRING
    input.Body.expiration == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.params.STRING == STRING
    input.Body.payload == BOOLEAN
    input.Body.resourceId == STRING
    input.Body.resourceUri == STRING
    input.Body.token == STRING
    input.Body.type == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customer.devices.chromeos.batchChangeStatus

enum_BatchChangeChromeOsDeviceStatusRequestChangeChromeOsDeviceStatusAction := [ "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_UNSPECIFIED", "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_DEPROVISION", "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_DISABLE", "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_REENABLE" ]
enum_BatchChangeChromeOsDeviceStatusRequestDeprovisionReason := [ "DEPROVISION_REASON_UNSPECIFIED", "DEPROVISION_REASON_SAME_MODEL_REPLACEMENT", "DEPROVISION_REASON_UPGRADE", "DEPROVISION_REASON_DOMAIN_MOVE", "DEPROVISION_REASON_SERVICE_EXPIRATION", "DEPROVISION_REASON_OTHER", "DEPROVISION_REASON_DIFFERENT_MODEL_REPLACEMENT", "DEPROVISION_REASON_RETIRING_DEVICE", "DEPROVISION_REASON_UPGRADE_TRANSFER", "DEPROVISION_REASON_NOT_REQUIRED", "DEPROVISION_REASON_REPAIR_CENTER" ]

valid {
    input.Body.changeChromeOsDeviceStatusAction == enum_BatchChangeChromeOsDeviceStatusRequestChangeChromeOsDeviceStatusAction[_]
    input.Body.deprovisionReason == enum_BatchChangeChromeOsDeviceStatusRequestDeprovisionReason[_]
    input.Body.deviceIds[_] == STRING
    input.ReqMap.customerId == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customer.devices.chromeos.commands.get

valid {
    input.ReqMap.commandId == STRING
    input.ReqMap.customerId == STRING
    input.ReqMap.deviceId == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customer.devices.chromeos.issueCommand

enum_DirectoryChromeosdevicesIssueCommandRequestCommandType := [ "COMMAND_TYPE_UNSPECIFIED", "REBOOT", "TAKE_A_SCREENSHOT", "SET_VOLUME", "WIPE_USERS", "REMOTE_POWERWASH", "DEVICE_START_CRD_SESSION", "CAPTURE_LOGS", "FETCH_SUPPORT_PACKET" ]

valid {
    input.Body.commandType == enum_DirectoryChromeosdevicesIssueCommandRequestCommandType[_]
    input.Body.payload == STRING
    input.ReqMap.customerId == STRING
    input.ReqMap.deviceId == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customers.chrome.printServers.batchCreatePrintServers

valid {
    input.Body.requests[_].parent == STRING
    input.Body.requests[_].printServer.description == STRING
    input.Body.requests[_].printServer.displayName == STRING
    input.Body.requests[_].printServer.id == STRING
    input.Body.requests[_].printServer.name == STRING
    input.Body.requests[_].printServer.orgUnitId == STRING
    input.Body.requests[_].printServer.uri == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customers.chrome.printServers.batchDeletePrintServers

valid {
    input.Body.printServerIds[_] == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customers.chrome.printServers.create

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.id == STRING
    input.Body.name == STRING
    input.Body.orgUnitId == STRING
    input.Body.uri == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customers.chrome.printServers.delete

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

admin.customers.chrome.printServers.get

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

admin.customers.chrome.printServers.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.orgUnitId == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customers.chrome.printServers.patch

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.id == STRING
    input.Body.name == STRING
    input.Body.orgUnitId == STRING
    input.Body.uri == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customers.chrome.printers.batchCreatePrinters

valid {
    input.Body.requests[_].parent == STRING
    input.Body.requests[_].printer.description == STRING
    input.Body.requests[_].printer.displayName == STRING
    input.Body.requests[_].printer.id == STRING
    input.Body.requests[_].printer.makeAndModel == STRING
    input.Body.requests[_].printer.name == STRING
    input.Body.requests[_].printer.orgUnitId == STRING
    input.Body.requests[_].printer.uri == STRING
    input.Body.requests[_].printer.useDriverlessConfig == BOOLEAN
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customers.chrome.printers.batchDeletePrinters

valid {
    input.Body.printerIds[_] == STRING
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customers.chrome.printers.create

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.id == STRING
    input.Body.makeAndModel == STRING
    input.Body.name == STRING
    input.Body.orgUnitId == STRING
    input.Body.uri == STRING
    input.Body.useDriverlessConfig == BOOLEAN
    input.ReqMap.parent == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customers.chrome.printers.delete

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

admin.customers.chrome.printers.get

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

admin.customers.chrome.printers.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.orgUnitId == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

admin.customers.chrome.printers.listPrinterModels

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

admin.customers.chrome.printers.patch

valid {
    input.Body.description == STRING
    input.Body.displayName == STRING
    input.Body.id == STRING
    input.Body.makeAndModel == STRING
    input.Body.name == STRING
    input.Body.orgUnitId == STRING
    input.Body.uri == STRING
    input.Body.useDriverlessConfig == BOOLEAN
    input.ReqMap.name == STRING
    input.Qs.clearMask == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

datatransfer.applications.get

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

datatransfer.applications.list

valid {
    input.Qs.customerId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

datatransfer.transfers.get

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

datatransfer.transfers.insert

valid {
    input.Body.applicationDataTransfers[_].applicationId == STRING
    input.Body.applicationDataTransfers[_].applicationTransferParams[_].key == STRING
    input.Body.applicationDataTransfers[_].applicationTransferParams[_].value[_] == STRING
    input.Body.applicationDataTransfers[_].applicationTransferStatus == STRING
    input.Body.etag == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.newOwnerUserId == STRING
    input.Body.oldOwnerUserId == STRING
    input.Body.overallTransferStatusCode == STRING
    input.Body.requestTime == STRING
    input.ProviderMetadata.Region == STRING
}

datatransfer.transfers.list

valid {
    input.Qs.customerId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.newOwnerUserId == STRING
    input.Qs.oldOwnerUserId == STRING
    input.Qs.pageToken == STRING
    input.Qs.status == STRING
    input.ProviderMetadata.Region == STRING
}

directory.asps.delete

valid {
    input.ReqMap.codeId == INTEGER
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.asps.get

valid {
    input.ReqMap.codeId == INTEGER
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.asps.list

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

directory.chromeosdevices.action

valid {
    input.Body.action == STRING
    input.Body.deprovisionReason == STRING
    input.ReqMap.customerId == STRING
    input.ReqMap.resourceId == STRING
    input.ProviderMetadata.Region == STRING
}

directory.chromeosdevices.get

enum_ProjectionParameter := [ "BASIC", "FULL" ]

valid {
    input.ReqMap.customerId == STRING
    input.ReqMap.deviceId == STRING
    input.Qs.projection == enum_ProjectionParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.chromeosdevices.list

enum_OrderByParameter := [ "annotatedLocation", "annotatedUser", "lastSync", "notes", "serialNumber", "status" ]
enum_ProjectionParameter := [ "BASIC", "FULL" ]
enum_SortOrderParameter := [ "ASCENDING", "DESCENDING" ]

valid {
    input.ReqMap.customerId == STRING
    input.Qs.includeChildOrgunits == BOOLEAN
    input.Qs.maxResults == INTEGER
    input.Qs.orderBy == enum_OrderByParameter[_]
    input.Qs.orgUnitPath == STRING
    input.Qs.pageToken == STRING
    input.Qs.projection == enum_ProjectionParameter[_]
    input.Qs.query == STRING
    input.Qs.sortOrder == enum_SortOrderParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.chromeosdevices.moveDevicesToOu

valid {
    input.Body.deviceIds[_] == STRING
    input.ReqMap.customerId == STRING
    input.Qs.orgUnitPath == STRING
    input.ProviderMetadata.Region == STRING
}

directory.chromeosdevices.patch

enum_ChromeOsDeviceDeprovisionReason := [ "DEPROVISION_REASON_UNSPECIFIED", "DEPROVISION_REASON_SAME_MODEL_REPLACEMENT", "DEPROVISION_REASON_UPGRADE", "DEPROVISION_REASON_DOMAIN_MOVE", "DEPROVISION_REASON_SERVICE_EXPIRATION", "DEPROVISION_REASON_OTHER", "DEPROVISION_REASON_DIFFERENT_MODEL_REPLACEMENT", "DEPROVISION_REASON_RETIRING_DEVICE", "DEPROVISION_REASON_UPGRADE_TRANSFER", "DEPROVISION_REASON_NOT_REQUIRED", "DEPROVISION_REASON_REPAIR_CENTER" ]
enum_OsUpdateStatusState := [ "updateStateUnspecified", "updateStateNotStarted", "updateStateDownloadInProgress", "updateStateNeedReboot" ]
enum_ProjectionParameter := [ "BASIC", "FULL" ]

valid {
    input.Body.activeTimeRanges[_].activeTime == INTEGER
    input.Body.activeTimeRanges[_].date == STRING
    input.Body.annotatedAssetId == STRING
    input.Body.annotatedLocation == STRING
    input.Body.annotatedUser == STRING
    input.Body.autoUpdateExpiration == STRING
    input.Body.bootMode == STRING
    input.Body.cpuInfo[_].architecture == STRING
    input.Body.cpuInfo[_].logicalCpus[_].cStates[_].displayName == STRING
    input.Body.cpuInfo[_].logicalCpus[_].cStates[_].sessionDuration == STRING
    input.Body.cpuInfo[_].logicalCpus[_].currentScalingFrequencyKhz == INTEGER
    input.Body.cpuInfo[_].logicalCpus[_].idleDuration == STRING
    input.Body.cpuInfo[_].logicalCpus[_].maxScalingFrequencyKhz == INTEGER
    input.Body.cpuInfo[_].maxClockSpeedKhz == INTEGER
    input.Body.cpuInfo[_].model == STRING
    input.Body.cpuStatusReports[_].cpuTemperatureInfo[_].label == STRING
    input.Body.cpuStatusReports[_].cpuTemperatureInfo[_].temperature == INTEGER
    input.Body.cpuStatusReports[_].cpuUtilizationPercentageInfo[_] == INTEGER
    input.Body.cpuStatusReports[_].reportTime == STRING
    input.Body.deprovisionReason == enum_ChromeOsDeviceDeprovisionReason[_]
    input.Body.deviceFiles[_].createTime == STRING
    input.Body.deviceFiles[_].downloadUrl == STRING
    input.Body.deviceFiles[_].name == STRING
    input.Body.deviceFiles[_].type == STRING
    input.Body.deviceId == STRING
    input.Body.diskVolumeReports[_].volumeInfo[_].storageFree == STRING
    input.Body.diskVolumeReports[_].volumeInfo[_].storageTotal == STRING
    input.Body.diskVolumeReports[_].volumeInfo[_].volumeId == STRING
    input.Body.dockMacAddress == STRING
    input.Body.etag == STRING
    input.Body.ethernetMacAddress == STRING
    input.Body.ethernetMacAddress0 == STRING
    input.Body.firmwareVersion == STRING
    input.Body.firstEnrollmentTime == STRING
    input.Body.kind == STRING
    input.Body.lastDeprovisionTimestamp == STRING
    input.Body.lastEnrollmentTime == STRING
    input.Body.lastKnownNetwork[_].ipAddress == STRING
    input.Body.lastKnownNetwork[_].wanIpAddress == STRING
    input.Body.lastSync == STRING
    input.Body.macAddress == STRING
    input.Body.manufactureDate == STRING
    input.Body.meid == STRING
    input.Body.model == STRING
    input.Body.notes == STRING
    input.Body.orderNumber == STRING
    input.Body.orgUnitId == STRING
    input.Body.orgUnitPath == STRING
    input.Body.osUpdateStatus.rebootTime == STRING
    input.Body.osUpdateStatus.state == enum_OsUpdateStatusState[_]
    input.Body.osUpdateStatus.targetKioskAppVersion == STRING
    input.Body.osUpdateStatus.targetOsVersion == STRING
    input.Body.osUpdateStatus.updateCheckTime == STRING
    input.Body.osUpdateStatus.updateTime == STRING
    input.Body.osVersion == STRING
    input.Body.platformVersion == STRING
    input.Body.recentUsers[_].email == STRING
    input.Body.recentUsers[_].type == STRING
    input.Body.screenshotFiles[_].createTime == STRING
    input.Body.screenshotFiles[_].downloadUrl == STRING
    input.Body.screenshotFiles[_].name == STRING
    input.Body.screenshotFiles[_].type == STRING
    input.Body.serialNumber == STRING
    input.Body.status == STRING
    input.Body.supportEndDate == STRING
    input.Body.systemRamFreeReports[_].reportTime == STRING
    input.Body.systemRamFreeReports[_].systemRamFreeInfo[_] == STRING
    input.Body.systemRamTotal == STRING
    input.Body.tpmVersionInfo.family == STRING
    input.Body.tpmVersionInfo.firmwareVersion == STRING
    input.Body.tpmVersionInfo.manufacturer == STRING
    input.Body.tpmVersionInfo.specLevel == STRING
    input.Body.tpmVersionInfo.tpmModel == STRING
    input.Body.tpmVersionInfo.vendorSpecific == STRING
    input.Body.willAutoRenew == BOOLEAN
    input.ReqMap.customerId == STRING
    input.ReqMap.deviceId == STRING
    input.Qs.projection == enum_ProjectionParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.chromeosdevices.update

enum_ChromeOsDeviceDeprovisionReason := [ "DEPROVISION_REASON_UNSPECIFIED", "DEPROVISION_REASON_SAME_MODEL_REPLACEMENT", "DEPROVISION_REASON_UPGRADE", "DEPROVISION_REASON_DOMAIN_MOVE", "DEPROVISION_REASON_SERVICE_EXPIRATION", "DEPROVISION_REASON_OTHER", "DEPROVISION_REASON_DIFFERENT_MODEL_REPLACEMENT", "DEPROVISION_REASON_RETIRING_DEVICE", "DEPROVISION_REASON_UPGRADE_TRANSFER", "DEPROVISION_REASON_NOT_REQUIRED", "DEPROVISION_REASON_REPAIR_CENTER" ]
enum_OsUpdateStatusState := [ "updateStateUnspecified", "updateStateNotStarted", "updateStateDownloadInProgress", "updateStateNeedReboot" ]
enum_ProjectionParameter := [ "BASIC", "FULL" ]

valid {
    input.Body.activeTimeRanges[_].activeTime == INTEGER
    input.Body.activeTimeRanges[_].date == STRING
    input.Body.annotatedAssetId == STRING
    input.Body.annotatedLocation == STRING
    input.Body.annotatedUser == STRING
    input.Body.autoUpdateExpiration == STRING
    input.Body.bootMode == STRING
    input.Body.cpuInfo[_].architecture == STRING
    input.Body.cpuInfo[_].logicalCpus[_].cStates[_].displayName == STRING
    input.Body.cpuInfo[_].logicalCpus[_].cStates[_].sessionDuration == STRING
    input.Body.cpuInfo[_].logicalCpus[_].currentScalingFrequencyKhz == INTEGER
    input.Body.cpuInfo[_].logicalCpus[_].idleDuration == STRING
    input.Body.cpuInfo[_].logicalCpus[_].maxScalingFrequencyKhz == INTEGER
    input.Body.cpuInfo[_].maxClockSpeedKhz == INTEGER
    input.Body.cpuInfo[_].model == STRING
    input.Body.cpuStatusReports[_].cpuTemperatureInfo[_].label == STRING
    input.Body.cpuStatusReports[_].cpuTemperatureInfo[_].temperature == INTEGER
    input.Body.cpuStatusReports[_].cpuUtilizationPercentageInfo[_] == INTEGER
    input.Body.cpuStatusReports[_].reportTime == STRING
    input.Body.deprovisionReason == enum_ChromeOsDeviceDeprovisionReason[_]
    input.Body.deviceFiles[_].createTime == STRING
    input.Body.deviceFiles[_].downloadUrl == STRING
    input.Body.deviceFiles[_].name == STRING
    input.Body.deviceFiles[_].type == STRING
    input.Body.deviceId == STRING
    input.Body.diskVolumeReports[_].volumeInfo[_].storageFree == STRING
    input.Body.diskVolumeReports[_].volumeInfo[_].storageTotal == STRING
    input.Body.diskVolumeReports[_].volumeInfo[_].volumeId == STRING
    input.Body.dockMacAddress == STRING
    input.Body.etag == STRING
    input.Body.ethernetMacAddress == STRING
    input.Body.ethernetMacAddress0 == STRING
    input.Body.firmwareVersion == STRING
    input.Body.firstEnrollmentTime == STRING
    input.Body.kind == STRING
    input.Body.lastDeprovisionTimestamp == STRING
    input.Body.lastEnrollmentTime == STRING
    input.Body.lastKnownNetwork[_].ipAddress == STRING
    input.Body.lastKnownNetwork[_].wanIpAddress == STRING
    input.Body.lastSync == STRING
    input.Body.macAddress == STRING
    input.Body.manufactureDate == STRING
    input.Body.meid == STRING
    input.Body.model == STRING
    input.Body.notes == STRING
    input.Body.orderNumber == STRING
    input.Body.orgUnitId == STRING
    input.Body.orgUnitPath == STRING
    input.Body.osUpdateStatus.rebootTime == STRING
    input.Body.osUpdateStatus.state == enum_OsUpdateStatusState[_]
    input.Body.osUpdateStatus.targetKioskAppVersion == STRING
    input.Body.osUpdateStatus.targetOsVersion == STRING
    input.Body.osUpdateStatus.updateCheckTime == STRING
    input.Body.osUpdateStatus.updateTime == STRING
    input.Body.osVersion == STRING
    input.Body.platformVersion == STRING
    input.Body.recentUsers[_].email == STRING
    input.Body.recentUsers[_].type == STRING
    input.Body.screenshotFiles[_].createTime == STRING
    input.Body.screenshotFiles[_].downloadUrl == STRING
    input.Body.screenshotFiles[_].name == STRING
    input.Body.screenshotFiles[_].type == STRING
    input.Body.serialNumber == STRING
    input.Body.status == STRING
    input.Body.supportEndDate == STRING
    input.Body.systemRamFreeReports[_].reportTime == STRING
    input.Body.systemRamFreeReports[_].systemRamFreeInfo[_] == STRING
    input.Body.systemRamTotal == STRING
    input.Body.tpmVersionInfo.family == STRING
    input.Body.tpmVersionInfo.firmwareVersion == STRING
    input.Body.tpmVersionInfo.manufacturer == STRING
    input.Body.tpmVersionInfo.specLevel == STRING
    input.Body.tpmVersionInfo.tpmModel == STRING
    input.Body.tpmVersionInfo.vendorSpecific == STRING
    input.Body.willAutoRenew == BOOLEAN
    input.ReqMap.customerId == STRING
    input.ReqMap.deviceId == STRING
    input.Qs.projection == enum_ProjectionParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.customers.get

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

directory.customers.patch

valid {
    input.Body.alternateEmail == STRING
    input.Body.customerCreationTime == STRING
    input.Body.customerDomain == STRING
    input.Body.etag == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.language == STRING
    input.Body.phoneNumber == STRING
    input.Body.postalAddress.addressLine1 == STRING
    input.Body.postalAddress.addressLine2 == STRING
    input.Body.postalAddress.addressLine3 == STRING
    input.Body.postalAddress.contactName == STRING
    input.Body.postalAddress.countryCode == STRING
    input.Body.postalAddress.locality == STRING
    input.Body.postalAddress.organizationName == STRING
    input.Body.postalAddress.postalCode == STRING
    input.Body.postalAddress.region == STRING
    input.ReqMap.customerKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.customers.update

valid {
    input.Body.alternateEmail == STRING
    input.Body.customerCreationTime == STRING
    input.Body.customerDomain == STRING
    input.Body.etag == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.language == STRING
    input.Body.phoneNumber == STRING
    input.Body.postalAddress.addressLine1 == STRING
    input.Body.postalAddress.addressLine2 == STRING
    input.Body.postalAddress.addressLine3 == STRING
    input.Body.postalAddress.contactName == STRING
    input.Body.postalAddress.countryCode == STRING
    input.Body.postalAddress.locality == STRING
    input.Body.postalAddress.organizationName == STRING
    input.Body.postalAddress.postalCode == STRING
    input.Body.postalAddress.region == STRING
    input.ReqMap.customerKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.domainAliases.delete

valid {
    input.ReqMap.customer == STRING
    input.ReqMap.domainAliasName == STRING
    input.ProviderMetadata.Region == STRING
}

directory.domainAliases.get

valid {
    input.ReqMap.customer == STRING
    input.ReqMap.domainAliasName == STRING
    input.ProviderMetadata.Region == STRING
}

directory.domainAliases.insert

valid {
    input.Body.creationTime == STRING
    input.Body.domainAliasName == STRING
    input.Body.etag == STRING
    input.Body.kind == STRING
    input.Body.parentDomainName == STRING
    input.Body.verified == BOOLEAN
    input.ReqMap.customer == STRING
    input.ProviderMetadata.Region == STRING
}

directory.domainAliases.list

valid {
    input.ReqMap.customer == STRING
    input.Qs.parentDomainName == STRING
    input.ProviderMetadata.Region == STRING
}

directory.domains.delete

valid {
    input.ReqMap.customer == STRING
    input.ReqMap.domainName == STRING
    input.ProviderMetadata.Region == STRING
}

directory.domains.get

valid {
    input.ReqMap.customer == STRING
    input.ReqMap.domainName == STRING
    input.ProviderMetadata.Region == STRING
}

directory.domains.insert

valid {
    input.Body.creationTime == STRING
    input.Body.domainAliases[_].creationTime == STRING
    input.Body.domainAliases[_].domainAliasName == STRING
    input.Body.domainAliases[_].etag == STRING
    input.Body.domainAliases[_].kind == STRING
    input.Body.domainAliases[_].parentDomainName == STRING
    input.Body.domainAliases[_].verified == BOOLEAN
    input.Body.domainName == STRING
    input.Body.etag == STRING
    input.Body.isPrimary == BOOLEAN
    input.Body.kind == STRING
    input.Body.verified == BOOLEAN
    input.ReqMap.customer == STRING
    input.ProviderMetadata.Region == STRING
}

directory.domains.list

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

directory.groups.aliases.delete

valid {
    input.ReqMap.alias == STRING
    input.ReqMap.groupKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.groups.aliases.insert

valid {
    input.Body.alias == STRING
    input.Body.etag == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.primaryEmail == STRING
    input.ReqMap.groupKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.groups.aliases.list

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

directory.groups.delete

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

directory.groups.get

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

directory.groups.insert

valid {
    input.Body.adminCreated == BOOLEAN
    input.Body.aliases[_] == STRING
    input.Body.description == STRING
    input.Body.directMembersCount == STRING
    input.Body.email == STRING
    input.Body.etag == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.name == STRING
    input.Body.nonEditableAliases[_] == STRING
    input.ProviderMetadata.Region == STRING
}

directory.groups.list

enum_OrderByParameter := [ "email" ]
enum_SortOrderParameter := [ "ASCENDING", "DESCENDING" ]

valid {
    input.Qs.customer == STRING
    input.Qs.domain == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.orderBy == enum_OrderByParameter[_]
    input.Qs.pageToken == STRING
    input.Qs.query == STRING
    input.Qs.sortOrder == enum_SortOrderParameter[_]
    input.Qs.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.groups.patch

valid {
    input.Body.adminCreated == BOOLEAN
    input.Body.aliases[_] == STRING
    input.Body.description == STRING
    input.Body.directMembersCount == STRING
    input.Body.email == STRING
    input.Body.etag == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.name == STRING
    input.Body.nonEditableAliases[_] == STRING
    input.ReqMap.groupKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.groups.update

valid {
    input.Body.adminCreated == BOOLEAN
    input.Body.aliases[_] == STRING
    input.Body.description == STRING
    input.Body.directMembersCount == STRING
    input.Body.email == STRING
    input.Body.etag == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.name == STRING
    input.Body.nonEditableAliases[_] == STRING
    input.ReqMap.groupKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.members.delete

valid {
    input.ReqMap.groupKey == STRING
    input.ReqMap.memberKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.members.get

valid {
    input.ReqMap.groupKey == STRING
    input.ReqMap.memberKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.members.hasMember

valid {
    input.ReqMap.groupKey == STRING
    input.ReqMap.memberKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.members.insert

valid {
    input.Body.delivery_settings == STRING
    input.Body.email == STRING
    input.Body.etag == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.role == STRING
    input.Body.status == STRING
    input.Body.type == STRING
    input.ReqMap.groupKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.members.list

valid {
    input.ReqMap.groupKey == STRING
    input.Qs.includeDerivedMembership == BOOLEAN
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.roles == STRING
    input.ProviderMetadata.Region == STRING
}

directory.members.patch

valid {
    input.Body.delivery_settings == STRING
    input.Body.email == STRING
    input.Body.etag == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.role == STRING
    input.Body.status == STRING
    input.Body.type == STRING
    input.ReqMap.groupKey == STRING
    input.ReqMap.memberKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.members.update

valid {
    input.Body.delivery_settings == STRING
    input.Body.email == STRING
    input.Body.etag == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.role == STRING
    input.Body.status == STRING
    input.Body.type == STRING
    input.ReqMap.groupKey == STRING
    input.ReqMap.memberKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.mobiledevices.action

valid {
    input.Body.action == STRING
    input.ReqMap.customerId == STRING
    input.ReqMap.resourceId == STRING
    input.ProviderMetadata.Region == STRING
}

directory.mobiledevices.delete

valid {
    input.ReqMap.customerId == STRING
    input.ReqMap.resourceId == STRING
    input.ProviderMetadata.Region == STRING
}

directory.mobiledevices.get

enum_ProjectionParameter := [ "BASIC", "FULL" ]

valid {
    input.ReqMap.customerId == STRING
    input.ReqMap.resourceId == STRING
    input.Qs.projection == enum_ProjectionParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.mobiledevices.list

enum_OrderByParameter := [ "deviceId", "email", "lastSync", "model", "name", "os", "status", "type" ]
enum_ProjectionParameter := [ "BASIC", "FULL" ]
enum_SortOrderParameter := [ "ASCENDING", "DESCENDING" ]

valid {
    input.ReqMap.customerId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.orderBy == enum_OrderByParameter[_]
    input.Qs.pageToken == STRING
    input.Qs.projection == enum_ProjectionParameter[_]
    input.Qs.query == STRING
    input.Qs.sortOrder == enum_SortOrderParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.orgunits.delete

valid {
    input.ReqMap.customerId == STRING
    input.ReqMap.orgUnitPath == STRING
    input.ProviderMetadata.Region == STRING
}

directory.orgunits.get

valid {
    input.ReqMap.customerId == STRING
    input.ReqMap.orgUnitPath == STRING
    input.ProviderMetadata.Region == STRING
}

directory.orgunits.insert

valid {
    input.Body.blockInheritance == BOOLEAN
    input.Body.description == STRING
    input.Body.etag == STRING
    input.Body.kind == STRING
    input.Body.name == STRING
    input.Body.orgUnitId == STRING
    input.Body.orgUnitPath == STRING
    input.Body.parentOrgUnitId == STRING
    input.Body.parentOrgUnitPath == STRING
    input.ReqMap.customerId == STRING
    input.ProviderMetadata.Region == STRING
}

directory.orgunits.list

enum_TypeParameter := [ "all", "children", "allIncludingParent" ]

valid {
    input.ReqMap.customerId == STRING
    input.Qs.orgUnitPath == STRING
    input.Qs.type == enum_TypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.orgunits.patch

valid {
    input.Body.blockInheritance == BOOLEAN
    input.Body.description == STRING
    input.Body.etag == STRING
    input.Body.kind == STRING
    input.Body.name == STRING
    input.Body.orgUnitId == STRING
    input.Body.orgUnitPath == STRING
    input.Body.parentOrgUnitId == STRING
    input.Body.parentOrgUnitPath == STRING
    input.ReqMap.customerId == STRING
    input.ReqMap.orgUnitPath == STRING
    input.ProviderMetadata.Region == STRING
}

directory.orgunits.update

valid {
    input.Body.blockInheritance == BOOLEAN
    input.Body.description == STRING
    input.Body.etag == STRING
    input.Body.kind == STRING
    input.Body.name == STRING
    input.Body.orgUnitId == STRING
    input.Body.orgUnitPath == STRING
    input.Body.parentOrgUnitId == STRING
    input.Body.parentOrgUnitPath == STRING
    input.ReqMap.customerId == STRING
    input.ReqMap.orgUnitPath == STRING
    input.ProviderMetadata.Region == STRING
}

directory.privileges.list

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

directory.resources.buildings.delete

valid {
    input.ReqMap.buildingId == STRING
    input.ReqMap.customer == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.buildings.get

valid {
    input.ReqMap.buildingId == STRING
    input.ReqMap.customer == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.buildings.insert

enum_CoordinatesSourceParameter := [ "CLIENT_SPECIFIED", "RESOLVED_FROM_ADDRESS", "SOURCE_UNSPECIFIED" ]

valid {
    input.Body.address.addressLines[_] == STRING
    input.Body.address.administrativeArea == STRING
    input.Body.address.languageCode == STRING
    input.Body.address.locality == STRING
    input.Body.address.postalCode == STRING
    input.Body.address.regionCode == STRING
    input.Body.address.sublocality == STRING
    input.Body.buildingId == STRING
    input.Body.buildingName == STRING
    input.Body.coordinates.latitude == NUMBER
    input.Body.coordinates.longitude == NUMBER
    input.Body.description == STRING
    input.Body.etags == STRING
    input.Body.floorNames[_] == STRING
    input.Body.kind == STRING
    input.ReqMap.customer == STRING
    input.Qs.coordinatesSource == enum_CoordinatesSourceParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.resources.buildings.list

valid {
    input.ReqMap.customer == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.buildings.patch

enum_CoordinatesSourceParameter := [ "CLIENT_SPECIFIED", "RESOLVED_FROM_ADDRESS", "SOURCE_UNSPECIFIED" ]

valid {
    input.Body.address.addressLines[_] == STRING
    input.Body.address.administrativeArea == STRING
    input.Body.address.languageCode == STRING
    input.Body.address.locality == STRING
    input.Body.address.postalCode == STRING
    input.Body.address.regionCode == STRING
    input.Body.address.sublocality == STRING
    input.Body.buildingId == STRING
    input.Body.buildingName == STRING
    input.Body.coordinates.latitude == NUMBER
    input.Body.coordinates.longitude == NUMBER
    input.Body.description == STRING
    input.Body.etags == STRING
    input.Body.floorNames[_] == STRING
    input.Body.kind == STRING
    input.ReqMap.buildingId == STRING
    input.ReqMap.customer == STRING
    input.Qs.coordinatesSource == enum_CoordinatesSourceParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.resources.buildings.update

enum_CoordinatesSourceParameter := [ "CLIENT_SPECIFIED", "RESOLVED_FROM_ADDRESS", "SOURCE_UNSPECIFIED" ]

valid {
    input.Body.address.addressLines[_] == STRING
    input.Body.address.administrativeArea == STRING
    input.Body.address.languageCode == STRING
    input.Body.address.locality == STRING
    input.Body.address.postalCode == STRING
    input.Body.address.regionCode == STRING
    input.Body.address.sublocality == STRING
    input.Body.buildingId == STRING
    input.Body.buildingName == STRING
    input.Body.coordinates.latitude == NUMBER
    input.Body.coordinates.longitude == NUMBER
    input.Body.description == STRING
    input.Body.etags == STRING
    input.Body.floorNames[_] == STRING
    input.Body.kind == STRING
    input.ReqMap.buildingId == STRING
    input.ReqMap.customer == STRING
    input.Qs.coordinatesSource == enum_CoordinatesSourceParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.resources.calendars.delete

valid {
    input.ReqMap.calendarResourceId == STRING
    input.ReqMap.customer == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.calendars.get

valid {
    input.ReqMap.calendarResourceId == STRING
    input.ReqMap.customer == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.calendars.insert

valid {
    input.Body.buildingId == STRING
    input.Body.capacity == INTEGER
    input.Body.etags == STRING
    input.Body.featureInstances == ANY
    input.Body.floorName == STRING
    input.Body.floorSection == STRING
    input.Body.generatedResourceName == STRING
    input.Body.kind == STRING
    input.Body.resourceCategory == STRING
    input.Body.resourceDescription == STRING
    input.Body.resourceEmail == STRING
    input.Body.resourceId == STRING
    input.Body.resourceName == STRING
    input.Body.resourceType == STRING
    input.Body.userVisibleDescription == STRING
    input.ReqMap.customer == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.calendars.list

valid {
    input.ReqMap.customer == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.orderBy == STRING
    input.Qs.pageToken == STRING
    input.Qs.query == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.calendars.patch

valid {
    input.Body.buildingId == STRING
    input.Body.capacity == INTEGER
    input.Body.etags == STRING
    input.Body.featureInstances == ANY
    input.Body.floorName == STRING
    input.Body.floorSection == STRING
    input.Body.generatedResourceName == STRING
    input.Body.kind == STRING
    input.Body.resourceCategory == STRING
    input.Body.resourceDescription == STRING
    input.Body.resourceEmail == STRING
    input.Body.resourceId == STRING
    input.Body.resourceName == STRING
    input.Body.resourceType == STRING
    input.Body.userVisibleDescription == STRING
    input.ReqMap.calendarResourceId == STRING
    input.ReqMap.customer == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.calendars.update

valid {
    input.Body.buildingId == STRING
    input.Body.capacity == INTEGER
    input.Body.etags == STRING
    input.Body.featureInstances == ANY
    input.Body.floorName == STRING
    input.Body.floorSection == STRING
    input.Body.generatedResourceName == STRING
    input.Body.kind == STRING
    input.Body.resourceCategory == STRING
    input.Body.resourceDescription == STRING
    input.Body.resourceEmail == STRING
    input.Body.resourceId == STRING
    input.Body.resourceName == STRING
    input.Body.resourceType == STRING
    input.Body.userVisibleDescription == STRING
    input.ReqMap.calendarResourceId == STRING
    input.ReqMap.customer == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.features.delete

valid {
    input.ReqMap.customer == STRING
    input.ReqMap.featureKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.features.get

valid {
    input.ReqMap.customer == STRING
    input.ReqMap.featureKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.features.insert

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

directory.resources.features.list

valid {
    input.ReqMap.customer == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.features.patch

valid {
    input.Body.etags == STRING
    input.Body.kind == STRING
    input.Body.name == STRING
    input.ReqMap.customer == STRING
    input.ReqMap.featureKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.features.rename

valid {
    input.Body.newName == STRING
    input.ReqMap.customer == STRING
    input.ReqMap.oldName == STRING
    input.ProviderMetadata.Region == STRING
}

directory.resources.features.update

valid {
    input.Body.etags == STRING
    input.Body.kind == STRING
    input.Body.name == STRING
    input.ReqMap.customer == STRING
    input.ReqMap.featureKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.roleAssignments.delete

valid {
    input.ReqMap.customer == STRING
    input.ReqMap.roleAssignmentId == STRING
    input.ProviderMetadata.Region == STRING
}

directory.roleAssignments.get

valid {
    input.ReqMap.customer == STRING
    input.ReqMap.roleAssignmentId == STRING
    input.ProviderMetadata.Region == STRING
}

directory.roleAssignments.insert

valid {
    input.Body.assignedTo == STRING
    input.Body.condition == STRING
    input.Body.etag == STRING
    input.Body.kind == STRING
    input.Body.orgUnitId == STRING
    input.Body.roleAssignmentId == STRING
    input.Body.roleId == STRING
    input.Body.scopeType == STRING
    input.ReqMap.customer == STRING
    input.ProviderMetadata.Region == STRING
}

directory.roleAssignments.list

valid {
    input.ReqMap.customer == STRING
    input.Qs.includeIndirectRoleAssignments == BOOLEAN
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.roleId == STRING
    input.Qs.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.roles.delete

valid {
    input.ReqMap.customer == STRING
    input.ReqMap.roleId == STRING
    input.ProviderMetadata.Region == STRING
}

directory.roles.get

valid {
    input.ReqMap.customer == STRING
    input.ReqMap.roleId == STRING
    input.ProviderMetadata.Region == STRING
}

directory.roles.insert

valid {
    input.Body.etag == STRING
    input.Body.isSuperAdminRole == BOOLEAN
    input.Body.isSystemRole == BOOLEAN
    input.Body.kind == STRING
    input.Body.roleDescription == STRING
    input.Body.roleId == STRING
    input.Body.roleName == STRING
    input.Body.rolePrivileges[_].privilegeName == STRING
    input.Body.rolePrivileges[_].serviceId == STRING
    input.ReqMap.customer == STRING
    input.ProviderMetadata.Region == STRING
}

directory.roles.list

valid {
    input.ReqMap.customer == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

directory.roles.patch

valid {
    input.Body.etag == STRING
    input.Body.isSuperAdminRole == BOOLEAN
    input.Body.isSystemRole == BOOLEAN
    input.Body.kind == STRING
    input.Body.roleDescription == STRING
    input.Body.roleId == STRING
    input.Body.roleName == STRING
    input.Body.rolePrivileges[_].privilegeName == STRING
    input.Body.rolePrivileges[_].serviceId == STRING
    input.ReqMap.customer == STRING
    input.ReqMap.roleId == STRING
    input.ProviderMetadata.Region == STRING
}

directory.roles.update

valid {
    input.Body.etag == STRING
    input.Body.isSuperAdminRole == BOOLEAN
    input.Body.isSystemRole == BOOLEAN
    input.Body.kind == STRING
    input.Body.roleDescription == STRING
    input.Body.roleId == STRING
    input.Body.roleName == STRING
    input.Body.rolePrivileges[_].privilegeName == STRING
    input.Body.rolePrivileges[_].serviceId == STRING
    input.ReqMap.customer == STRING
    input.ReqMap.roleId == STRING
    input.ProviderMetadata.Region == STRING
}

directory.schemas.delete

valid {
    input.ReqMap.customerId == STRING
    input.ReqMap.schemaKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.schemas.get

valid {
    input.ReqMap.customerId == STRING
    input.ReqMap.schemaKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.schemas.insert

valid {
    input.Body.displayName == STRING
    input.Body.etag == STRING
    input.Body.fields[_].displayName == STRING
    input.Body.fields[_].etag == STRING
    input.Body.fields[_].fieldId == STRING
    input.Body.fields[_].fieldName == STRING
    input.Body.fields[_].fieldType == STRING
    input.Body.fields[_].indexed == BOOLEAN
    input.Body.fields[_].kind == STRING
    input.Body.fields[_].multiValued == BOOLEAN
    input.Body.fields[_].numericIndexingSpec.maxValue == NUMBER
    input.Body.fields[_].numericIndexingSpec.minValue == NUMBER
    input.Body.fields[_].readAccessType == STRING
    input.Body.kind == STRING
    input.Body.schemaId == STRING
    input.Body.schemaName == STRING
    input.ReqMap.customerId == STRING
    input.ProviderMetadata.Region == STRING
}

directory.schemas.list

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

directory.schemas.patch

valid {
    input.Body.displayName == STRING
    input.Body.etag == STRING
    input.Body.fields[_].displayName == STRING
    input.Body.fields[_].etag == STRING
    input.Body.fields[_].fieldId == STRING
    input.Body.fields[_].fieldName == STRING
    input.Body.fields[_].fieldType == STRING
    input.Body.fields[_].indexed == BOOLEAN
    input.Body.fields[_].kind == STRING
    input.Body.fields[_].multiValued == BOOLEAN
    input.Body.fields[_].numericIndexingSpec.maxValue == NUMBER
    input.Body.fields[_].numericIndexingSpec.minValue == NUMBER
    input.Body.fields[_].readAccessType == STRING
    input.Body.kind == STRING
    input.Body.schemaId == STRING
    input.Body.schemaName == STRING
    input.ReqMap.customerId == STRING
    input.ReqMap.schemaKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.schemas.update

valid {
    input.Body.displayName == STRING
    input.Body.etag == STRING
    input.Body.fields[_].displayName == STRING
    input.Body.fields[_].etag == STRING
    input.Body.fields[_].fieldId == STRING
    input.Body.fields[_].fieldName == STRING
    input.Body.fields[_].fieldType == STRING
    input.Body.fields[_].indexed == BOOLEAN
    input.Body.fields[_].kind == STRING
    input.Body.fields[_].multiValued == BOOLEAN
    input.Body.fields[_].numericIndexingSpec.maxValue == NUMBER
    input.Body.fields[_].numericIndexingSpec.minValue == NUMBER
    input.Body.fields[_].readAccessType == STRING
    input.Body.kind == STRING
    input.Body.schemaId == STRING
    input.Body.schemaName == STRING
    input.ReqMap.customerId == STRING
    input.ReqMap.schemaKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.tokens.delete

valid {
    input.ReqMap.clientId == STRING
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.tokens.get

valid {
    input.ReqMap.clientId == STRING
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.tokens.list

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

directory.twoStepVerification.turnOff

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

directory.users.aliases.delete

valid {
    input.ReqMap.alias == STRING
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.users.aliases.insert

valid {
    input.Body.alias == STRING
    input.Body.etag == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.primaryEmail == STRING
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.users.aliases.list

enum_EventParameter := [ "add", "delete" ]

valid {
    input.ReqMap.userKey == STRING
    input.Qs.event == enum_EventParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.users.aliases.watch

enum_EventParameter := [ "add", "delete" ]

valid {
    input.Body.address == STRING
    input.Body.expiration == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.params.STRING == STRING
    input.Body.payload == BOOLEAN
    input.Body.resourceId == STRING
    input.Body.resourceUri == STRING
    input.Body.token == STRING
    input.Body.type == STRING
    input.ReqMap.userKey == STRING
    input.Qs.event == enum_EventParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.users.delete

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

directory.users.get

enum_ProjectionParameter := [ "basic", "custom", "full" ]
enum_ViewTypeParameter := [ "admin_view", "domain_public" ]

valid {
    input.ReqMap.userKey == STRING
    input.Qs.customFieldMask == STRING
    input.Qs.projection == enum_ProjectionParameter[_]
    input.Qs.viewType == enum_ViewTypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.users.insert

valid {
    input.Body.addresses == ANY
    input.Body.archived == BOOLEAN
    input.Body.changePasswordAtNextLogin == BOOLEAN
    input.Body.customSchemas.STRING.STRING == ANY
    input.Body.emails == ANY
    input.Body.externalIds == ANY
    input.Body.gender == ANY
    input.Body.hashFunction == STRING
    input.Body.id == STRING
    input.Body.ims == ANY
    input.Body.includeInGlobalAddressList == BOOLEAN
    input.Body.ipWhitelisted == BOOLEAN
    input.Body.keywords == ANY
    input.Body.languages == ANY
    input.Body.locations == ANY
    input.Body.name.displayName == STRING
    input.Body.name.familyName == STRING
    input.Body.name.fullName == STRING
    input.Body.name.givenName == STRING
    input.Body.notes == ANY
    input.Body.orgUnitPath == STRING
    input.Body.organizations == ANY
    input.Body.password == STRING
    input.Body.phones == ANY
    input.Body.posixAccounts == ANY
    input.Body.primaryEmail == STRING
    input.Body.recoveryEmail == STRING
    input.Body.recoveryPhone == STRING
    input.Body.relations == ANY
    input.Body.sshPublicKeys == ANY
    input.Body.suspended == BOOLEAN
    input.Body.websites == ANY
    input.Qs.resolveConflictAccount == BOOLEAN
    input.ProviderMetadata.Region == STRING
}

directory.users.list

enum_EventParameter := [ "add", "delete", "makeAdmin", "undelete", "update" ]
enum_OrderByParameter := [ "email", "familyName", "givenName" ]
enum_ProjectionParameter := [ "basic", "custom", "full" ]
enum_SortOrderParameter := [ "ASCENDING", "DESCENDING" ]
enum_ViewTypeParameter := [ "admin_view", "domain_public" ]

valid {
    input.Qs.customFieldMask == STRING
    input.Qs.customer == STRING
    input.Qs.domain == STRING
    input.Qs.event == enum_EventParameter[_]
    input.Qs.maxResults == INTEGER
    input.Qs.orderBy == enum_OrderByParameter[_]
    input.Qs.pageToken == STRING
    input.Qs.projection == enum_ProjectionParameter[_]
    input.Qs.query == STRING
    input.Qs.showDeleted == STRING
    input.Qs.sortOrder == enum_SortOrderParameter[_]
    input.Qs.viewType == enum_ViewTypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.users.makeAdmin

valid {
    input.Body.status == BOOLEAN
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.users.patch

valid {
    input.Body.addresses == ANY
    input.Body.archived == BOOLEAN
    input.Body.changePasswordAtNextLogin == BOOLEAN
    input.Body.customSchemas.STRING.STRING == ANY
    input.Body.emails == ANY
    input.Body.externalIds == ANY
    input.Body.gender == ANY
    input.Body.hashFunction == STRING
    input.Body.id == STRING
    input.Body.ims == ANY
    input.Body.includeInGlobalAddressList == BOOLEAN
    input.Body.ipWhitelisted == BOOLEAN
    input.Body.keywords == ANY
    input.Body.languages == ANY
    input.Body.locations == ANY
    input.Body.name.displayName == STRING
    input.Body.name.familyName == STRING
    input.Body.name.fullName == STRING
    input.Body.name.givenName == STRING
    input.Body.notes == ANY
    input.Body.orgUnitPath == STRING
    input.Body.organizations == ANY
    input.Body.password == STRING
    input.Body.phones == ANY
    input.Body.posixAccounts == ANY
    input.Body.primaryEmail == STRING
    input.Body.recoveryEmail == STRING
    input.Body.recoveryPhone == STRING
    input.Body.relations == ANY
    input.Body.sshPublicKeys == ANY
    input.Body.suspended == BOOLEAN
    input.Body.websites == ANY
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.users.photos.delete

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

directory.users.photos.get

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

directory.users.photos.patch

valid {
    input.Body.etag == STRING
    input.Body.height == INTEGER
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.mimeType == STRING
    input.Body.photoData == STRING
    input.Body.primaryEmail == STRING
    input.Body.width == INTEGER
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.users.photos.update

valid {
    input.Body.etag == STRING
    input.Body.height == INTEGER
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.mimeType == STRING
    input.Body.photoData == STRING
    input.Body.primaryEmail == STRING
    input.Body.width == INTEGER
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.users.signOut

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

directory.users.undelete

valid {
    input.Body.orgUnitPath == STRING
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.users.update

valid {
    input.Body.addresses == ANY
    input.Body.archived == BOOLEAN
    input.Body.changePasswordAtNextLogin == BOOLEAN
    input.Body.customSchemas.STRING.STRING == ANY
    input.Body.emails == ANY
    input.Body.externalIds == ANY
    input.Body.gender == ANY
    input.Body.hashFunction == STRING
    input.Body.id == STRING
    input.Body.ims == ANY
    input.Body.includeInGlobalAddressList == BOOLEAN
    input.Body.ipWhitelisted == BOOLEAN
    input.Body.keywords == ANY
    input.Body.languages == ANY
    input.Body.locations == ANY
    input.Body.name.displayName == STRING
    input.Body.name.familyName == STRING
    input.Body.name.fullName == STRING
    input.Body.name.givenName == STRING
    input.Body.notes == ANY
    input.Body.orgUnitPath == STRING
    input.Body.organizations == ANY
    input.Body.password == STRING
    input.Body.phones == ANY
    input.Body.posixAccounts == ANY
    input.Body.primaryEmail == STRING
    input.Body.recoveryEmail == STRING
    input.Body.recoveryPhone == STRING
    input.Body.relations == ANY
    input.Body.sshPublicKeys == ANY
    input.Body.suspended == BOOLEAN
    input.Body.websites == ANY
    input.ReqMap.userKey == STRING
    input.ProviderMetadata.Region == STRING
}

directory.users.watch

enum_EventParameter := [ "add", "delete", "makeAdmin", "undelete", "update" ]
enum_OrderByParameter := [ "email", "familyName", "givenName" ]
enum_ProjectionParameter := [ "basic", "custom", "full" ]
enum_SortOrderParameter := [ "ASCENDING", "DESCENDING" ]
enum_ViewTypeParameter := [ "admin_view", "domain_public" ]

valid {
    input.Body.address == STRING
    input.Body.expiration == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.params.STRING == STRING
    input.Body.payload == BOOLEAN
    input.Body.resourceId == STRING
    input.Body.resourceUri == STRING
    input.Body.token == STRING
    input.Body.type == STRING
    input.Qs.customFieldMask == STRING
    input.Qs.customer == STRING
    input.Qs.domain == STRING
    input.Qs.event == enum_EventParameter[_]
    input.Qs.maxResults == INTEGER
    input.Qs.orderBy == enum_OrderByParameter[_]
    input.Qs.pageToken == STRING
    input.Qs.projection == enum_ProjectionParameter[_]
    input.Qs.query == STRING
    input.Qs.showDeleted == STRING
    input.Qs.sortOrder == enum_SortOrderParameter[_]
    input.Qs.viewType == enum_ViewTypeParameter[_]
    input.ProviderMetadata.Region == STRING
}

directory.verificationCodes.generate

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

directory.verificationCodes.invalidate

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

directory.verificationCodes.list

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

reports.activities.list

enum_ApplicationNameParameter := [ "access_transparency", "admin", "calendar", "chat", "drive", "gcp", "gplus", "groups", "groups_enterprise", "jamboard", "login", "meet", "mobile", "rules", "saml", "token", "user_accounts", "context_aware_access", "chrome", "data_studio", "keep", "vault" ]

valid {
    input.ReqMap.applicationName == enum_ApplicationNameParameter[_]
    input.ReqMap.userKey == STRING
    input.Qs.actorIpAddress == STRING
    input.Qs.customerId == STRING
    input.Qs.endTime == STRING
    input.Qs.eventName == STRING
    input.Qs.filters == STRING
    input.Qs.groupIdFilter == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.orgUnitID == STRING
    input.Qs.pageToken == STRING
    input.Qs.startTime == STRING
    input.ProviderMetadata.Region == STRING
}

reports.activities.watch

enum_ApplicationNameParameter := [ "access_transparency", "admin", "calendar", "chat", "drive", "gcp", "gplus", "groups", "groups_enterprise", "jamboard", "login", "meet", "mobile", "rules", "saml", "token", "user_accounts", "context_aware_access", "chrome", "data_studio", "keep" ]

valid {
    input.Body.address == STRING
    input.Body.expiration == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.params.STRING == STRING
    input.Body.payload == BOOLEAN
    input.Body.resourceId == STRING
    input.Body.resourceUri == STRING
    input.Body.token == STRING
    input.Body.type == STRING
    input.ReqMap.applicationName == enum_ApplicationNameParameter[_]
    input.ReqMap.userKey == STRING
    input.Qs.actorIpAddress == STRING
    input.Qs.customerId == STRING
    input.Qs.endTime == STRING
    input.Qs.eventName == STRING
    input.Qs.filters == STRING
    input.Qs.groupIdFilter == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.orgUnitID == STRING
    input.Qs.pageToken == STRING
    input.Qs.startTime == STRING
    input.ProviderMetadata.Region == STRING
}

reports.customerUsageReports.get

valid {
    input.ReqMap.date == STRING
    input.Qs.customerId == STRING
    input.Qs.pageToken == STRING
    input.Qs.parameters == STRING
    input.ProviderMetadata.Region == STRING
}

reports.entityUsageReports.get

enum_EntityTypeParameter := [ "gplus_communities" ]

valid {
    input.ReqMap.date == STRING
    input.ReqMap.entityKey == STRING
    input.ReqMap.entityType == enum_EntityTypeParameter[_]
    input.Qs.customerId == STRING
    input.Qs.filters == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.pageToken == STRING
    input.Qs.parameters == STRING
    input.ProviderMetadata.Region == STRING
}

reports.userUsageReport.get

valid {
    input.ReqMap.date == STRING
    input.ReqMap.userKey == STRING
    input.Qs.customerId == STRING
    input.Qs.filters == STRING
    input.Qs.groupIdFilter == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.orgUnitID == STRING
    input.Qs.pageToken == STRING
    input.Qs.parameters == STRING
    input.ProviderMetadata.Region == STRING
}