mirror.accounts.insert

valid {
    input.Body.authTokens[_].authToken == STRING
    input.Body.authTokens[_].type == STRING
    input.Body.features[_] == STRING
    input.Body.password == STRING
    input.Body.userData[_].key == STRING
    input.Body.userData[_].value == STRING
    input.ReqMap.accountName == STRING
    input.ReqMap.accountType == STRING
    input.ReqMap.userToken == STRING
    input.ProviderMetadata.Region == STRING
}

mirror.contacts.delete

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

mirror.contacts.get

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

mirror.contacts.insert

valid {
    input.Body.acceptCommands[_].type == STRING
    input.Body.acceptTypes[_] == STRING
    input.Body.displayName == STRING
    input.Body.id == STRING
    input.Body.imageUrls[_] == STRING
    input.Body.kind == STRING
    input.Body.phoneNumber == STRING
    input.Body.priority == INTEGER
    input.Body.sharingFeatures[_] == STRING
    input.Body.source == STRING
    input.Body.speakableName == STRING
    input.Body.type == STRING
    input.ProviderMetadata.Region == STRING
}

mirror.contacts.list

valid {
    input.ProviderMetadata.Region == STRING
}

mirror.contacts.patch

valid {
    input.Body.acceptCommands[_].type == STRING
    input.Body.acceptTypes[_] == STRING
    input.Body.displayName == STRING
    input.Body.id == STRING
    input.Body.imageUrls[_] == STRING
    input.Body.kind == STRING
    input.Body.phoneNumber == STRING
    input.Body.priority == INTEGER
    input.Body.sharingFeatures[_] == STRING
    input.Body.source == STRING
    input.Body.speakableName == STRING
    input.Body.type == STRING
    input.ReqMap.id == STRING
    input.ProviderMetadata.Region == STRING
}

mirror.contacts.update

valid {
    input.Body.acceptCommands[_].type == STRING
    input.Body.acceptTypes[_] == STRING
    input.Body.displayName == STRING
    input.Body.id == STRING
    input.Body.imageUrls[_] == STRING
    input.Body.kind == STRING
    input.Body.phoneNumber == STRING
    input.Body.priority == INTEGER
    input.Body.sharingFeatures[_] == STRING
    input.Body.source == STRING
    input.Body.speakableName == STRING
    input.Body.type == STRING
    input.ReqMap.id == STRING
    input.ProviderMetadata.Region == STRING
}

mirror.locations.get

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

mirror.locations.list

valid {
    input.ProviderMetadata.Region == STRING
}

mirror.settings.get

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

mirror.subscriptions.delete

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

mirror.subscriptions.insert

valid {
    input.Body.callbackUrl == STRING
    input.Body.collection == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.notification.collection == STRING
    input.Body.notification.itemId == STRING
    input.Body.notification.operation == STRING
    input.Body.notification.userActions[_].payload == STRING
    input.Body.notification.userActions[_].type == STRING
    input.Body.notification.userToken == STRING
    input.Body.notification.verifyToken == STRING
    input.Body.operation[_] == STRING
    input.Body.updated == STRING
    input.Body.userToken == STRING
    input.Body.verifyToken == STRING
    input.ProviderMetadata.Region == STRING
}

mirror.subscriptions.list

valid {
    input.ProviderMetadata.Region == STRING
}

mirror.subscriptions.update

valid {
    input.Body.callbackUrl == STRING
    input.Body.collection == STRING
    input.Body.id == STRING
    input.Body.kind == STRING
    input.Body.notification.collection == STRING
    input.Body.notification.itemId == STRING
    input.Body.notification.operation == STRING
    input.Body.notification.userActions[_].payload == STRING
    input.Body.notification.userActions[_].type == STRING
    input.Body.notification.userToken == STRING
    input.Body.notification.verifyToken == STRING
    input.Body.operation[_] == STRING
    input.Body.updated == STRING
    input.Body.userToken == STRING
    input.Body.verifyToken == STRING
    input.ReqMap.id == STRING
    input.ProviderMetadata.Region == STRING
}

mirror.timeline.attachments.delete

valid {
    input.ReqMap.attachmentId == STRING
    input.ReqMap.itemId == STRING
    input.ProviderMetadata.Region == STRING
}

mirror.timeline.attachments.get

valid {
    input.ReqMap.attachmentId == STRING
    input.ReqMap.itemId == STRING
    input.ProviderMetadata.Region == STRING
}

mirror.timeline.attachments.insert

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

mirror.timeline.attachments.list

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

mirror.timeline.delete

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

mirror.timeline.get

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

mirror.timeline.insert

valid {
    input.Body.attachments[_].contentType == STRING
    input.Body.attachments[_].contentUrl == STRING
    input.Body.attachments[_].id == STRING
    input.Body.attachments[_].isProcessingContent == BOOLEAN
    input.Body.bundleId == STRING
    input.Body.canonicalUrl == STRING
    input.Body.created == STRING
    input.Body.creator.acceptCommands[_].type == STRING
    input.Body.creator.acceptTypes[_] == STRING
    input.Body.creator.displayName == STRING
    input.Body.creator.id == STRING
    input.Body.creator.imageUrls[_] == STRING
    input.Body.creator.kind == STRING
    input.Body.creator.phoneNumber == STRING
    input.Body.creator.priority == INTEGER
    input.Body.creator.sharingFeatures[_] == STRING
    input.Body.creator.source == STRING
    input.Body.creator.speakableName == STRING
    input.Body.creator.type == STRING
    input.Body.displayTime == STRING
    input.Body.etag == STRING
    input.Body.html == STRING
    input.Body.id == STRING
    input.Body.inReplyTo == STRING
    input.Body.isBundleCover == BOOLEAN
    input.Body.isDeleted == BOOLEAN
    input.Body.isPinned == BOOLEAN
    input.Body.kind == STRING
    input.Body.location.accuracy == NUMBER
    input.Body.location.address == STRING
    input.Body.location.displayName == STRING
    input.Body.location.id == STRING
    input.Body.location.kind == STRING
    input.Body.location.latitude == NUMBER
    input.Body.location.longitude == NUMBER
    input.Body.location.timestamp == STRING
    input.Body.menuItems[_].action == STRING
    input.Body.menuItems[_].contextual_command == STRING
    input.Body.menuItems[_].id == STRING
    input.Body.menuItems[_].payload == STRING
    input.Body.menuItems[_].removeWhenSelected == BOOLEAN
    input.Body.menuItems[_].values[_].displayName == STRING
    input.Body.menuItems[_].values[_].iconUrl == STRING
    input.Body.menuItems[_].values[_].state == STRING
    input.Body.notification.deliveryTime == STRING
    input.Body.notification.level == STRING
    input.Body.pinScore == INTEGER
    input.Body.recipients[_].acceptCommands[_].type == STRING
    input.Body.recipients[_].acceptTypes[_] == STRING
    input.Body.recipients[_].displayName == STRING
    input.Body.recipients[_].id == STRING
    input.Body.recipients[_].imageUrls[_] == STRING
    input.Body.recipients[_].kind == STRING
    input.Body.recipients[_].phoneNumber == STRING
    input.Body.recipients[_].priority == INTEGER
    input.Body.recipients[_].sharingFeatures[_] == STRING
    input.Body.recipients[_].source == STRING
    input.Body.recipients[_].speakableName == STRING
    input.Body.recipients[_].type == STRING
    input.Body.selfLink == STRING
    input.Body.sourceItemId == STRING
    input.Body.speakableText == STRING
    input.Body.speakableType == STRING
    input.Body.text == STRING
    input.Body.title == STRING
    input.Body.updated == STRING
    input.ProviderMetadata.Region == STRING
}

mirror.timeline.list

enum_OrderByParameter := [ "displayTime", "writeTime" ]

valid {
    input.Qs.bundleId == STRING
    input.Qs.includeDeleted == BOOLEAN
    input.Qs.maxResults == INTEGER
    input.Qs.orderBy == enum_OrderByParameter[_]
    input.Qs.pageToken == STRING
    input.Qs.pinnedOnly == BOOLEAN
    input.Qs.sourceItemId == STRING
    input.ProviderMetadata.Region == STRING
}

mirror.timeline.patch

valid {
    input.Body.attachments[_].contentType == STRING
    input.Body.attachments[_].contentUrl == STRING
    input.Body.attachments[_].id == STRING
    input.Body.attachments[_].isProcessingContent == BOOLEAN
    input.Body.bundleId == STRING
    input.Body.canonicalUrl == STRING
    input.Body.created == STRING
    input.Body.creator.acceptCommands[_].type == STRING
    input.Body.creator.acceptTypes[_] == STRING
    input.Body.creator.displayName == STRING
    input.Body.creator.id == STRING
    input.Body.creator.imageUrls[_] == STRING
    input.Body.creator.kind == STRING
    input.Body.creator.phoneNumber == STRING
    input.Body.creator.priority == INTEGER
    input.Body.creator.sharingFeatures[_] == STRING
    input.Body.creator.source == STRING
    input.Body.creator.speakableName == STRING
    input.Body.creator.type == STRING
    input.Body.displayTime == STRING
    input.Body.etag == STRING
    input.Body.html == STRING
    input.Body.id == STRING
    input.Body.inReplyTo == STRING
    input.Body.isBundleCover == BOOLEAN
    input.Body.isDeleted == BOOLEAN
    input.Body.isPinned == BOOLEAN
    input.Body.kind == STRING
    input.Body.location.accuracy == NUMBER
    input.Body.location.address == STRING
    input.Body.location.displayName == STRING
    input.Body.location.id == STRING
    input.Body.location.kind == STRING
    input.Body.location.latitude == NUMBER
    input.Body.location.longitude == NUMBER
    input.Body.location.timestamp == STRING
    input.Body.menuItems[_].action == STRING
    input.Body.menuItems[_].contextual_command == STRING
    input.Body.menuItems[_].id == STRING
    input.Body.menuItems[_].payload == STRING
    input.Body.menuItems[_].removeWhenSelected == BOOLEAN
    input.Body.menuItems[_].values[_].displayName == STRING
    input.Body.menuItems[_].values[_].iconUrl == STRING
    input.Body.menuItems[_].values[_].state == STRING
    input.Body.notification.deliveryTime == STRING
    input.Body.notification.level == STRING
    input.Body.pinScore == INTEGER
    input.Body.recipients[_].acceptCommands[_].type == STRING
    input.Body.recipients[_].acceptTypes[_] == STRING
    input.Body.recipients[_].displayName == STRING
    input.Body.recipients[_].id == STRING
    input.Body.recipients[_].imageUrls[_] == STRING
    input.Body.recipients[_].kind == STRING
    input.Body.recipients[_].phoneNumber == STRING
    input.Body.recipients[_].priority == INTEGER
    input.Body.recipients[_].sharingFeatures[_] == STRING
    input.Body.recipients[_].source == STRING
    input.Body.recipients[_].speakableName == STRING
    input.Body.recipients[_].type == STRING
    input.Body.selfLink == STRING
    input.Body.sourceItemId == STRING
    input.Body.speakableText == STRING
    input.Body.speakableType == STRING
    input.Body.text == STRING
    input.Body.title == STRING
    input.Body.updated == STRING
    input.ReqMap.id == STRING
    input.ProviderMetadata.Region == STRING
}

mirror.timeline.update

valid {
    input.Body.attachments[_].contentType == STRING
    input.Body.attachments[_].contentUrl == STRING
    input.Body.attachments[_].id == STRING
    input.Body.attachments[_].isProcessingContent == BOOLEAN
    input.Body.bundleId == STRING
    input.Body.canonicalUrl == STRING
    input.Body.created == STRING
    input.Body.creator.acceptCommands[_].type == STRING
    input.Body.creator.acceptTypes[_] == STRING
    input.Body.creator.displayName == STRING
    input.Body.creator.id == STRING
    input.Body.creator.imageUrls[_] == STRING
    input.Body.creator.kind == STRING
    input.Body.creator.phoneNumber == STRING
    input.Body.creator.priority == INTEGER
    input.Body.creator.sharingFeatures[_] == STRING
    input.Body.creator.source == STRING
    input.Body.creator.speakableName == STRING
    input.Body.creator.type == STRING
    input.Body.displayTime == STRING
    input.Body.etag == STRING
    input.Body.html == STRING
    input.Body.id == STRING
    input.Body.inReplyTo == STRING
    input.Body.isBundleCover == BOOLEAN
    input.Body.isDeleted == BOOLEAN
    input.Body.isPinned == BOOLEAN
    input.Body.kind == STRING
    input.Body.location.accuracy == NUMBER
    input.Body.location.address == STRING
    input.Body.location.displayName == STRING
    input.Body.location.id == STRING
    input.Body.location.kind == STRING
    input.Body.location.latitude == NUMBER
    input.Body.location.longitude == NUMBER
    input.Body.location.timestamp == STRING
    input.Body.menuItems[_].action == STRING
    input.Body.menuItems[_].contextual_command == STRING
    input.Body.menuItems[_].id == STRING
    input.Body.menuItems[_].payload == STRING
    input.Body.menuItems[_].removeWhenSelected == BOOLEAN
    input.Body.menuItems[_].values[_].displayName == STRING
    input.Body.menuItems[_].values[_].iconUrl == STRING
    input.Body.menuItems[_].values[_].state == STRING
    input.Body.notification.deliveryTime == STRING
    input.Body.notification.level == STRING
    input.Body.pinScore == INTEGER
    input.Body.recipients[_].acceptCommands[_].type == STRING
    input.Body.recipients[_].acceptTypes[_] == STRING
    input.Body.recipients[_].displayName == STRING
    input.Body.recipients[_].id == STRING
    input.Body.recipients[_].imageUrls[_] == STRING
    input.Body.recipients[_].kind == STRING
    input.Body.recipients[_].phoneNumber == STRING
    input.Body.recipients[_].priority == INTEGER
    input.Body.recipients[_].sharingFeatures[_] == STRING
    input.Body.recipients[_].source == STRING
    input.Body.recipients[_].speakableName == STRING
    input.Body.recipients[_].type == STRING
    input.Body.selfLink == STRING
    input.Body.sourceItemId == STRING
    input.Body.speakableText == STRING
    input.Body.speakableType == STRING
    input.Body.text == STRING
    input.Body.title == STRING
    input.Body.updated == STRING
    input.ReqMap.id == STRING
    input.ProviderMetadata.Region == STRING
}