CreateNamespace

valid {
    input.Body.namespace[_] == STRING
    input.ReqMap.tableBucketARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTable

enum_OpenTableFormat := [ "ICEBERG" ]

valid {
    input.Body.name == STRING
    input.Body.format == enum_OpenTableFormat[_]
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTableBucket

valid {
    input.Body.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteNamespace

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTable

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ReqMap.name == STRING
    input.Qs.versionToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTableBucket

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTableBucketPolicy

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteTablePolicy

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetNamespace

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTable

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTableBucket

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTableBucketMaintenanceConfiguration

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTableBucketPolicy

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTableMaintenanceConfiguration

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTableMaintenanceJobStatus

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTableMetadataLocation

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTablePolicy

valid {
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListNamespaces

valid {
    input.ReqMap.tableBucketARN == STRING
    input.Qs.prefix == STRING
    input.Qs.continuationToken == STRING
    input.Qs.maxNamespaces == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTableBuckets

valid {
    input.Qs.prefix == STRING
    input.Qs.continuationToken == STRING
    input.Qs.maxBuckets == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTables

valid {
    input.ReqMap.tableBucketARN == STRING
    input.Qs.namespace == STRING
    input.Qs.prefix == STRING
    input.Qs.continuationToken == STRING
    input.Qs.maxTables == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutTableBucketMaintenanceConfiguration

enum_MaintenanceStatus := [ "enabled", "disabled" ]
enum_TableBucketMaintenanceType := [ "icebergUnreferencedFileRemoval" ]

valid {
    input.Body.value.status == enum_MaintenanceStatus[_]
    input.Body.value.settings.icebergUnreferencedFileRemoval.unreferencedDays == INTEGER
    input.Body.value.settings.icebergUnreferencedFileRemoval.nonCurrentDays == INTEGER
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.type == enum_TableBucketMaintenanceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutTableBucketPolicy

valid {
    input.Body.resourcePolicy == STRING
    input.ReqMap.tableBucketARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutTableMaintenanceConfiguration

enum_MaintenanceStatus := [ "enabled", "disabled" ]
enum_TableMaintenanceType := [ "icebergCompaction", "icebergSnapshotManagement" ]

valid {
    input.Body.value.status == enum_MaintenanceStatus[_]
    input.Body.value.settings.icebergCompaction.targetFileSizeMB == INTEGER
    input.Body.value.settings.icebergSnapshotManagement.minSnapshotsToKeep == INTEGER
    input.Body.value.settings.icebergSnapshotManagement.maxSnapshotAgeHours == INTEGER
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ReqMap.name == STRING
    input.ReqMap.type == enum_TableMaintenanceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutTablePolicy

valid {
    input.Body.resourcePolicy == STRING
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RenameTable

valid {
    input.Body.newNamespaceName == STRING
    input.Body.newName == STRING
    input.Body.versionToken == STRING
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTableMetadataLocation

valid {
    input.Body.versionToken == STRING
    input.Body.metadataLocation == STRING
    input.ReqMap.tableBucketARN == STRING
    input.ReqMap.namespace == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}