AssociateUserToPermissionGroup

valid {
    input.Body.clientToken == STRING
    input.ReqMap.permissionGroupId == STRING
    input.ReqMap.userId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateChangeset

enum_ChangeType := [ "REPLACE", "APPEND", "MODIFY" ]

valid {
    input.Body.clientToken == STRING
    input.Body.changeType == enum_ChangeType[_]
    input.Body.sourceParams.STRING == STRING
    input.Body.formatParams.STRING == STRING
    input.ReqMap.datasetId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDataView

enum_ExportFileFormat := [ "PARQUET", "DELIMITED_TEXT" ]

valid {
    input.Body.clientToken == STRING
    input.Body.autoUpdate == BOOLEAN
    input.Body.sortColumns[_] == STRING
    input.Body.partitionColumns[_] == STRING
    input.Body.asOfTimestamp == LONG
    input.Body.destinationTypeParams.destinationType == STRING
    input.Body.destinationTypeParams.s3DestinationExportFileFormat == enum_ExportFileFormat[_]
    input.Body.destinationTypeParams.s3DestinationExportFileFormatOptions.STRING == STRING
    input.ReqMap.datasetId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDataset

enum_ColumnDataType := [ "STRING", "CHAR", "INTEGER", "TINYINT", "SMALLINT", "BIGINT", "FLOAT", "DOUBLE", "DATE", "DATETIME", "BOOLEAN", "BINARY" ]
enum_DatasetKind := [ "TABULAR", "NON_TABULAR" ]

valid {
    input.Body.clientToken == STRING
    input.Body.datasetTitle == STRING
    input.Body.kind == enum_DatasetKind[_]
    input.Body.datasetDescription == STRING
    input.Body.ownerInfo.name == STRING
    input.Body.ownerInfo.phoneNumber == STRING
    input.Body.ownerInfo.email == STRING
    input.Body.permissionGroupParams.permissionGroupId == STRING
    input.Body.permissionGroupParams.datasetPermissions[_].permission == STRING
    input.Body.alias == STRING
    input.Body.schemaDefinition.tabularSchemaConfig.columns[_].dataType == enum_ColumnDataType[_]
    input.Body.schemaDefinition.tabularSchemaConfig.columns[_].columnName == STRING
    input.Body.schemaDefinition.tabularSchemaConfig.columns[_].columnDescription == STRING
    input.Body.schemaDefinition.tabularSchemaConfig.primaryKeyColumns[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateEnvironment

enum_FederationMode := [ "FEDERATED", "LOCAL" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.kmsKeyId == STRING
    input.Body.tags.STRING == STRING
    input.Body.federationMode == enum_FederationMode[_]
    input.Body.federationParameters.samlMetadataDocument == STRING
    input.Body.federationParameters.samlMetadataURL == STRING
    input.Body.federationParameters.applicationCallBackURL == STRING
    input.Body.federationParameters.federationURN == STRING
    input.Body.federationParameters.federationProviderName == STRING
    input.Body.federationParameters.attributeMap.STRING == STRING
    input.Body.superuserParameters.emailAddress == STRING
    input.Body.superuserParameters.firstName == STRING
    input.Body.superuserParameters.lastName == STRING
    input.Body.dataBundles[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateKxChangeset

enum_ChangeType := [ "PUT", "DELETE" ]

valid {
    input.Body.changeRequests[_].changeType == enum_ChangeType[_]
    input.Body.changeRequests[_].s3Path == STRING
    input.Body.changeRequests[_].dbPath == STRING
    input.Body.clientToken == STRING
    input.ReqMap.environmentId == STRING
    input.ReqMap.databaseName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateKxCluster

enum_AutoScalingMetric := [ "CPU_UTILIZATION_PERCENTAGE" ]
enum_IPAddressType := [ "IP_V4" ]
enum_KxAzMode := [ "SINGLE", "MULTI" ]
enum_KxClusterType := [ "HDB", "RDB", "GATEWAY", "GP", "TICKERPLANT" ]
enum_KxSavedownStorageType := [ "SDS01" ]

valid {
    input.Body.clientToken == STRING
    input.Body.clusterName == STRING
    input.Body.clusterType == enum_KxClusterType[_]
    input.Body.tickerplantLogConfiguration.tickerplantLogVolumes[_] == STRING
    input.Body.databases[_].databaseName == STRING
    input.Body.databases[_].cacheConfigurations[_].cacheType == STRING
    input.Body.databases[_].cacheConfigurations[_].dbPaths[_] == STRING
    input.Body.databases[_].cacheConfigurations[_].dataviewName == STRING
    input.Body.databases[_].changesetId == STRING
    input.Body.databases[_].dataviewName == STRING
    input.Body.databases[_].dataviewConfiguration.dataviewName == STRING
    input.Body.databases[_].dataviewConfiguration.dataviewVersionId == STRING
    input.Body.databases[_].dataviewConfiguration.changesetId == STRING
    input.Body.databases[_].dataviewConfiguration.segmentConfigurations[_].dbPaths[_] == STRING
    input.Body.databases[_].dataviewConfiguration.segmentConfigurations[_].volumeName == STRING
    input.Body.databases[_].dataviewConfiguration.segmentConfigurations[_].onDemand == BOOLEAN
    input.Body.cacheStorageConfigurations[_].type == STRING
    input.Body.cacheStorageConfigurations[_].size == INTEGER
    input.Body.autoScalingConfiguration.minNodeCount == INTEGER
    input.Body.autoScalingConfiguration.maxNodeCount == INTEGER
    input.Body.autoScalingConfiguration.autoScalingMetric == enum_AutoScalingMetric[_]
    input.Body.autoScalingConfiguration.metricTarget == DOUBLE
    input.Body.autoScalingConfiguration.scaleInCooldownSeconds == DOUBLE
    input.Body.autoScalingConfiguration.scaleOutCooldownSeconds == DOUBLE
    input.Body.clusterDescription == STRING
    input.Body.capacityConfiguration.nodeType == STRING
    input.Body.capacityConfiguration.nodeCount == INTEGER
    input.Body.releaseLabel == STRING
    input.Body.vpcConfiguration.vpcId == STRING
    input.Body.vpcConfiguration.securityGroupIds[_] == STRING
    input.Body.vpcConfiguration.subnetIds[_] == STRING
    input.Body.vpcConfiguration.ipAddressType == enum_IPAddressType[_]
    input.Body.initializationScript == STRING
    input.Body.commandLineArguments[_].key == STRING
    input.Body.commandLineArguments[_].value == STRING
    input.Body.code.s3Bucket == STRING
    input.Body.code.s3Key == STRING
    input.Body.code.s3ObjectVersion == STRING
    input.Body.executionRole == STRING
    input.Body.savedownStorageConfiguration.type == enum_KxSavedownStorageType[_]
    input.Body.savedownStorageConfiguration.size == INTEGER
    input.Body.savedownStorageConfiguration.volumeName == STRING
    input.Body.azMode == enum_KxAzMode[_]
    input.Body.availabilityZoneId == STRING
    input.Body.tags.STRING == STRING
    input.Body.scalingGroupConfiguration.scalingGroupName == STRING
    input.Body.scalingGroupConfiguration.memoryLimit == INTEGER
    input.Body.scalingGroupConfiguration.memoryReservation == INTEGER
    input.Body.scalingGroupConfiguration.nodeCount == INTEGER
    input.Body.scalingGroupConfiguration.cpu == DOUBLE
    input.ReqMap.environmentId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateKxDatabase

valid {
    input.Body.databaseName == STRING
    input.Body.description == STRING
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.ReqMap.environmentId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateKxDataview

enum_KxAzMode := [ "SINGLE", "MULTI" ]

valid {
    input.Body.dataviewName == STRING
    input.Body.azMode == enum_KxAzMode[_]
    input.Body.availabilityZoneId == STRING
    input.Body.changesetId == STRING
    input.Body.segmentConfigurations[_].dbPaths[_] == STRING
    input.Body.segmentConfigurations[_].volumeName == STRING
    input.Body.segmentConfigurations[_].onDemand == BOOLEAN
    input.Body.autoUpdate == BOOLEAN
    input.Body.readWrite == BOOLEAN
    input.Body.description == STRING
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.ReqMap.environmentId == STRING
    input.ReqMap.databaseName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateKxEnvironment

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.kmsKeyId == STRING
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateKxScalingGroup

valid {
    input.Body.clientToken == STRING
    input.Body.scalingGroupName == STRING
    input.Body.hostType == STRING
    input.Body.availabilityZoneId == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.environmentId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateKxUser

valid {
    input.Body.userName == STRING
    input.Body.iamRole == STRING
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.ReqMap.environmentId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateKxVolume

enum_KxAzMode := [ "SINGLE", "MULTI" ]
enum_KxNAS1Type := [ "SSD_1000", "SSD_250", "HDD_12" ]
enum_KxVolumeType := [ "NAS_1" ]

valid {
    input.Body.clientToken == STRING
    input.Body.volumeType == enum_KxVolumeType[_]
    input.Body.volumeName == STRING
    input.Body.description == STRING
    input.Body.nas1Configuration.type == enum_KxNAS1Type[_]
    input.Body.nas1Configuration.size == INTEGER
    input.Body.azMode == enum_KxAzMode[_]
    input.Body.availabilityZoneIds[_] == STRING
    input.Body.tags.STRING == STRING
    input.ReqMap.environmentId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreatePermissionGroup

enum_ApplicationPermission := [ "CreateDataset", "ManageClusters", "ManageUsersAndGroups", "ManageAttributeSets", "ViewAuditData", "AccessNotebooks", "GetTemporaryCredentials" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.applicationPermissions[_] == enum_ApplicationPermission[_]
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateUser

enum_ApiAccess := [ "ENABLED", "DISABLED" ]
enum_UserType := [ "SUPER_USER", "APP_USER" ]

valid {
    input.Body.emailAddress == STRING
    input.Body.type == enum_UserType[_]
    input.Body.firstName == STRING
    input.Body.lastName == STRING
    input.Body.apiAccess == enum_ApiAccess[_]
    input.Body.apiAccessPrincipalArn == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteDataset

valid {
    input.ReqMap.datasetId == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteEnvironment

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

DeleteKxCluster

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.clusterName == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteKxClusterNode

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.clusterName == STRING
    input.ReqMap.nodeId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteKxDatabase

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.databaseName == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteKxDataview

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.databaseName == STRING
    input.ReqMap.dataviewName == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteKxEnvironment

valid {
    input.ReqMap.environmentId == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteKxScalingGroup

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.scalingGroupName == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteKxUser

valid {
    input.ReqMap.userName == STRING
    input.ReqMap.environmentId == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteKxVolume

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.volumeName == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeletePermissionGroup

valid {
    input.ReqMap.permissionGroupId == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisableUser

valid {
    input.Body.clientToken == STRING
    input.ReqMap.userId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateUserFromPermissionGroup

valid {
    input.ReqMap.permissionGroupId == STRING
    input.ReqMap.userId == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableUser

valid {
    input.Body.clientToken == STRING
    input.ReqMap.userId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetChangeset

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

GetDataView

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

GetDataset

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

GetEnvironment

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

GetExternalDataViewAccessDetails

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

GetKxChangeset

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.databaseName == STRING
    input.ReqMap.changesetId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetKxCluster

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

GetKxConnectionString

valid {
    input.ReqMap.environmentId == STRING
    input.Qs.userArn == STRING
    input.Qs.clusterName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetKxDatabase

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

GetKxDataview

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.databaseName == STRING
    input.ReqMap.dataviewName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetKxEnvironment

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

GetKxScalingGroup

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

GetKxUser

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

GetKxVolume

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

GetPermissionGroup

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

GetProgrammaticAccessCredentials

valid {
    input.Qs.durationInMinutes == LONG
    input.Qs.environmentId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetUser

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

GetWorkingLocation

enum_locationType := [ "INGESTION", "SAGEMAKER" ]

valid {
    input.Body.locationType == enum_locationType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChangesets

valid {
    input.ReqMap.datasetId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDataViews

valid {
    input.ReqMap.datasetId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDatasets

valid {
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListEnvironments

valid {
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListKxChangesets

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.databaseName == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListKxClusterNodes

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.clusterName == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListKxClusters

enum_KxClusterType := [ "HDB", "RDB", "GATEWAY", "GP", "TICKERPLANT" ]

valid {
    input.ReqMap.environmentId == STRING
    input.Qs.clusterType == enum_KxClusterType[_]
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListKxDatabases

valid {
    input.ReqMap.environmentId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListKxDataviews

valid {
    input.ReqMap.environmentId == STRING
    input.ReqMap.databaseName == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListKxEnvironments

valid {
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListKxScalingGroups

valid {
    input.ReqMap.environmentId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListKxUsers

valid {
    input.ReqMap.environmentId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListKxVolumes

enum_KxVolumeType := [ "NAS_1" ]

valid {
    input.ReqMap.environmentId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.volumeType == enum_KxVolumeType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPermissionGroups

valid {
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListPermissionGroupsByUser

valid {
    input.ReqMap.userId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

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

ListUsers

valid {
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListUsersByPermissionGroup

valid {
    input.ReqMap.permissionGroupId == STRING
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResetUserPassword

valid {
    input.Body.clientToken == STRING
    input.ReqMap.userId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.tags.STRING == STRING
    input.ReqMap.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.ReqMap.resourceArn == STRING
    input.Qs.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateChangeset

valid {
    input.Body.clientToken == STRING
    input.Body.sourceParams.STRING == STRING
    input.Body.formatParams.STRING == STRING
    input.ReqMap.datasetId == STRING
    input.ReqMap.changesetId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDataset

enum_ColumnDataType := [ "STRING", "CHAR", "INTEGER", "TINYINT", "SMALLINT", "BIGINT", "FLOAT", "DOUBLE", "DATE", "DATETIME", "BOOLEAN", "BINARY" ]
enum_DatasetKind := [ "TABULAR", "NON_TABULAR" ]

valid {
    input.Body.clientToken == STRING
    input.Body.datasetTitle == STRING
    input.Body.kind == enum_DatasetKind[_]
    input.Body.datasetDescription == STRING
    input.Body.alias == STRING
    input.Body.schemaDefinition.tabularSchemaConfig.columns[_].dataType == enum_ColumnDataType[_]
    input.Body.schemaDefinition.tabularSchemaConfig.columns[_].columnName == STRING
    input.Body.schemaDefinition.tabularSchemaConfig.columns[_].columnDescription == STRING
    input.Body.schemaDefinition.tabularSchemaConfig.primaryKeyColumns[_] == STRING
    input.ReqMap.datasetId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateEnvironment

enum_FederationMode := [ "FEDERATED", "LOCAL" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.federationMode == enum_FederationMode[_]
    input.Body.federationParameters.samlMetadataDocument == STRING
    input.Body.federationParameters.samlMetadataURL == STRING
    input.Body.federationParameters.applicationCallBackURL == STRING
    input.Body.federationParameters.federationURN == STRING
    input.Body.federationParameters.federationProviderName == STRING
    input.Body.federationParameters.attributeMap.STRING == STRING
    input.ReqMap.environmentId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateKxClusterCodeConfiguration

enum_KxClusterCodeDeploymentStrategy := [ "NO_RESTART", "ROLLING", "FORCE" ]

valid {
    input.Body.clientToken == STRING
    input.Body.code.s3Bucket == STRING
    input.Body.code.s3Key == STRING
    input.Body.code.s3ObjectVersion == STRING
    input.Body.initializationScript == STRING
    input.Body.commandLineArguments[_].key == STRING
    input.Body.commandLineArguments[_].value == STRING
    input.Body.deploymentConfiguration.deploymentStrategy == enum_KxClusterCodeDeploymentStrategy[_]
    input.ReqMap.environmentId == STRING
    input.ReqMap.clusterName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateKxClusterDatabases

enum_KxDeploymentStrategy := [ "NO_RESTART", "ROLLING" ]

valid {
    input.Body.clientToken == STRING
    input.Body.databases[_].databaseName == STRING
    input.Body.databases[_].cacheConfigurations[_].cacheType == STRING
    input.Body.databases[_].cacheConfigurations[_].dbPaths[_] == STRING
    input.Body.databases[_].cacheConfigurations[_].dataviewName == STRING
    input.Body.databases[_].changesetId == STRING
    input.Body.databases[_].dataviewName == STRING
    input.Body.databases[_].dataviewConfiguration.dataviewName == STRING
    input.Body.databases[_].dataviewConfiguration.dataviewVersionId == STRING
    input.Body.databases[_].dataviewConfiguration.changesetId == STRING
    input.Body.databases[_].dataviewConfiguration.segmentConfigurations[_].dbPaths[_] == STRING
    input.Body.databases[_].dataviewConfiguration.segmentConfigurations[_].volumeName == STRING
    input.Body.databases[_].dataviewConfiguration.segmentConfigurations[_].onDemand == BOOLEAN
    input.Body.deploymentConfiguration.deploymentStrategy == enum_KxDeploymentStrategy[_]
    input.ReqMap.environmentId == STRING
    input.ReqMap.clusterName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateKxDatabase

valid {
    input.Body.description == STRING
    input.Body.clientToken == STRING
    input.ReqMap.environmentId == STRING
    input.ReqMap.databaseName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateKxDataview

valid {
    input.Body.description == STRING
    input.Body.changesetId == STRING
    input.Body.segmentConfigurations[_].dbPaths[_] == STRING
    input.Body.segmentConfigurations[_].volumeName == STRING
    input.Body.segmentConfigurations[_].onDemand == BOOLEAN
    input.Body.clientToken == STRING
    input.ReqMap.environmentId == STRING
    input.ReqMap.databaseName == STRING
    input.ReqMap.dataviewName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateKxEnvironment

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.clientToken == STRING
    input.ReqMap.environmentId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateKxEnvironmentNetwork

enum_RuleAction := [ "allow", "deny" ]

valid {
    input.Body.transitGatewayConfiguration.transitGatewayID == STRING
    input.Body.transitGatewayConfiguration.routableCIDRSpace == STRING
    input.Body.transitGatewayConfiguration.attachmentNetworkAclConfiguration[_].ruleNumber == INTEGER
    input.Body.transitGatewayConfiguration.attachmentNetworkAclConfiguration[_].protocol == STRING
    input.Body.transitGatewayConfiguration.attachmentNetworkAclConfiguration[_].ruleAction == enum_RuleAction[_]
    input.Body.transitGatewayConfiguration.attachmentNetworkAclConfiguration[_].portRange.from == INTEGER
    input.Body.transitGatewayConfiguration.attachmentNetworkAclConfiguration[_].portRange.to == INTEGER
    input.Body.transitGatewayConfiguration.attachmentNetworkAclConfiguration[_].icmpTypeCode.type == INTEGER
    input.Body.transitGatewayConfiguration.attachmentNetworkAclConfiguration[_].icmpTypeCode.code == INTEGER
    input.Body.transitGatewayConfiguration.attachmentNetworkAclConfiguration[_].cidrBlock == STRING
    input.Body.customDNSConfiguration[_].customDNSServerName == STRING
    input.Body.customDNSConfiguration[_].customDNSServerIP == STRING
    input.Body.clientToken == STRING
    input.ReqMap.environmentId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateKxUser

valid {
    input.Body.iamRole == STRING
    input.Body.clientToken == STRING
    input.ReqMap.environmentId == STRING
    input.ReqMap.userName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateKxVolume

enum_KxNAS1Type := [ "SSD_1000", "SSD_250", "HDD_12" ]

valid {
    input.Body.description == STRING
    input.Body.clientToken == STRING
    input.Body.nas1Configuration.type == enum_KxNAS1Type[_]
    input.Body.nas1Configuration.size == INTEGER
    input.ReqMap.environmentId == STRING
    input.ReqMap.volumeName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePermissionGroup

enum_ApplicationPermission := [ "CreateDataset", "ManageClusters", "ManageUsersAndGroups", "ManageAttributeSets", "ViewAuditData", "AccessNotebooks", "GetTemporaryCredentials" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.applicationPermissions[_] == enum_ApplicationPermission[_]
    input.Body.clientToken == STRING
    input.ReqMap.permissionGroupId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateUser

enum_ApiAccess := [ "ENABLED", "DISABLED" ]
enum_UserType := [ "SUPER_USER", "APP_USER" ]

valid {
    input.Body.type == enum_UserType[_]
    input.Body.firstName == STRING
    input.Body.lastName == STRING
    input.Body.apiAccess == enum_ApiAccess[_]
    input.Body.apiAccessPrincipalArn == STRING
    input.Body.clientToken == STRING
    input.ReqMap.userId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}