AddTagsToStream

valid {
    input.Body.StreamName == STRING
    input.Body.Tags.STRING == STRING
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateStream

enum_StreamMode := [ "PROVISIONED", "ON_DEMAND" ]

valid {
    input.Body.StreamName == STRING
    input.Body.ShardCount == INTEGER
    input.Body.StreamModeDetails.StreamMode == enum_StreamMode[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DecreaseStreamRetentionPeriod

valid {
    input.Body.StreamName == STRING
    input.Body.RetentionPeriodHours == INTEGER
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteResourcePolicy

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

DeleteStream

valid {
    input.Body.StreamName == STRING
    input.Body.EnforceConsumerDeletion == BOOLEAN
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeregisterStreamConsumer

valid {
    input.Body.StreamARN == STRING
    input.Body.ConsumerName == STRING
    input.Body.ConsumerARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLimits

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

DescribeStream

valid {
    input.Body.StreamName == STRING
    input.Body.Limit == INTEGER
    input.Body.ExclusiveStartShardId == STRING
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeStreamConsumer

valid {
    input.Body.StreamARN == STRING
    input.Body.ConsumerName == STRING
    input.Body.ConsumerARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeStreamSummary

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

DisableEnhancedMonitoring

enum_MetricsName := [ "IncomingBytes", "IncomingRecords", "OutgoingBytes", "OutgoingRecords", "WriteProvisionedThroughputExceeded", "ReadProvisionedThroughputExceeded", "IteratorAgeMilliseconds", "ALL" ]

valid {
    input.Body.StreamName == STRING
    input.Body.ShardLevelMetrics[_] == enum_MetricsName[_]
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EnableEnhancedMonitoring

enum_MetricsName := [ "IncomingBytes", "IncomingRecords", "OutgoingBytes", "OutgoingRecords", "WriteProvisionedThroughputExceeded", "ReadProvisionedThroughputExceeded", "IteratorAgeMilliseconds", "ALL" ]

valid {
    input.Body.StreamName == STRING
    input.Body.ShardLevelMetrics[_] == enum_MetricsName[_]
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetRecords

valid {
    input.Body.ShardIterator == STRING
    input.Body.Limit == INTEGER
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetResourcePolicy

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

GetShardIterator

enum_ShardIteratorType := [ "AT_SEQUENCE_NUMBER", "AFTER_SEQUENCE_NUMBER", "TRIM_HORIZON", "LATEST", "AT_TIMESTAMP" ]

valid {
    input.Body.StreamName == STRING
    input.Body.ShardId == STRING
    input.Body.ShardIteratorType == enum_ShardIteratorType[_]
    input.Body.StartingSequenceNumber == STRING
    input.Body.Timestamp == TIMESTAMP
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

IncreaseStreamRetentionPeriod

valid {
    input.Body.StreamName == STRING
    input.Body.RetentionPeriodHours == INTEGER
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListShards

enum_ShardFilterType := [ "AFTER_SHARD_ID", "AT_TRIM_HORIZON", "FROM_TRIM_HORIZON", "AT_LATEST", "AT_TIMESTAMP", "FROM_TIMESTAMP" ]

valid {
    input.Body.StreamName == STRING
    input.Body.NextToken == STRING
    input.Body.ExclusiveStartShardId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.StreamCreationTimestamp == TIMESTAMP
    input.Body.ShardFilter.Type == enum_ShardFilterType[_]
    input.Body.ShardFilter.ShardId == STRING
    input.Body.ShardFilter.Timestamp == TIMESTAMP
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListStreamConsumers

valid {
    input.Body.StreamARN == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.StreamCreationTimestamp == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListStreams

valid {
    input.Body.Limit == INTEGER
    input.Body.ExclusiveStartStreamName == STRING
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForStream

valid {
    input.Body.StreamName == STRING
    input.Body.ExclusiveStartTagKey == STRING
    input.Body.Limit == INTEGER
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

MergeShards

valid {
    input.Body.StreamName == STRING
    input.Body.ShardToMerge == STRING
    input.Body.AdjacentShardToMerge == STRING
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutRecord

valid {
    input.Body.StreamName == STRING
    input.Body.Data == BLOB
    input.Body.PartitionKey == STRING
    input.Body.ExplicitHashKey == STRING
    input.Body.SequenceNumberForOrdering == STRING
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutRecords

valid {
    input.Body.Records[_].Data == BLOB
    input.Body.Records[_].ExplicitHashKey == STRING
    input.Body.Records[_].PartitionKey == STRING
    input.Body.StreamName == STRING
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutResourcePolicy

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

RegisterStreamConsumer

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

RemoveTagsFromStream

valid {
    input.Body.StreamName == STRING
    input.Body.TagKeys[_] == STRING
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SplitShard

valid {
    input.Body.StreamName == STRING
    input.Body.ShardToSplit == STRING
    input.Body.NewStartingHashKey == STRING
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartStreamEncryption

enum_EncryptionType := [ "NONE", "KMS" ]

valid {
    input.Body.StreamName == STRING
    input.Body.EncryptionType == enum_EncryptionType[_]
    input.Body.KeyId == STRING
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopStreamEncryption

enum_EncryptionType := [ "NONE", "KMS" ]

valid {
    input.Body.StreamName == STRING
    input.Body.EncryptionType == enum_EncryptionType[_]
    input.Body.KeyId == STRING
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SubscribeToShard

enum_ShardIteratorType := [ "AT_SEQUENCE_NUMBER", "AFTER_SEQUENCE_NUMBER", "TRIM_HORIZON", "LATEST", "AT_TIMESTAMP" ]

valid {
    input.Body.ConsumerARN == STRING
    input.Body.ShardId == STRING
    input.Body.StartingPosition.Type == enum_ShardIteratorType[_]
    input.Body.StartingPosition.SequenceNumber == STRING
    input.Body.StartingPosition.Timestamp == TIMESTAMP
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateShardCount

enum_ScalingType := [ "UNIFORM_SCALING" ]

valid {
    input.Body.StreamName == STRING
    input.Body.TargetShardCount == INTEGER
    input.Body.ScalingType == enum_ScalingType[_]
    input.Body.StreamARN == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateStreamMode

enum_StreamMode := [ "PROVISIONED", "ON_DEMAND" ]

valid {
    input.Body.StreamARN == STRING
    input.Body.StreamModeDetails.StreamMode == enum_StreamMode[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}