CreateRule

enum_ResourceType := [ "EBS_SNAPSHOT", "EC2_IMAGE" ]
enum_RetentionPeriodUnit := [ "DAYS" ]
enum_UnlockDelayUnit := [ "DAYS" ]

valid {
    input.Body.RetentionPeriod.RetentionPeriodValue == INTEGER
    input.Body.RetentionPeriod.RetentionPeriodUnit == enum_RetentionPeriodUnit[_]
    input.Body.Description == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.ResourceType == enum_ResourceType[_]
    input.Body.ResourceTags[_].ResourceTagKey == STRING
    input.Body.ResourceTags[_].ResourceTagValue == STRING
    input.Body.LockConfiguration.UnlockDelay.UnlockDelayValue == INTEGER
    input.Body.LockConfiguration.UnlockDelay.UnlockDelayUnit == enum_UnlockDelayUnit[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteRule

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

GetRule

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

ListRules

enum_LockState := [ "locked", "pending_unlock", "unlocked" ]
enum_ResourceType := [ "EBS_SNAPSHOT", "EC2_IMAGE" ]

valid {
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.ResourceType == enum_ResourceType[_]
    input.Body.ResourceTags[_].ResourceTagKey == STRING
    input.Body.ResourceTags[_].ResourceTagValue == STRING
    input.Body.LockState == enum_LockState[_]
    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
}

LockRule

enum_UnlockDelayUnit := [ "DAYS" ]

valid {
    input.Body.LockConfiguration.UnlockDelay.UnlockDelayValue == INTEGER
    input.Body.LockConfiguration.UnlockDelay.UnlockDelayUnit == enum_UnlockDelayUnit[_]
    input.ReqMap.identifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

valid {
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ReqMap.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UnlockRule

valid {
    input.ReqMap.identifier == 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
}

UpdateRule

enum_ResourceType := [ "EBS_SNAPSHOT", "EC2_IMAGE" ]
enum_RetentionPeriodUnit := [ "DAYS" ]

valid {
    input.Body.RetentionPeriod.RetentionPeriodValue == INTEGER
    input.Body.RetentionPeriod.RetentionPeriodUnit == enum_RetentionPeriodUnit[_]
    input.Body.Description == STRING
    input.Body.ResourceType == enum_ResourceType[_]
    input.Body.ResourceTags[_].ResourceTagKey == STRING
    input.Body.ResourceTags[_].ResourceTagValue == STRING
    input.ReqMap.identifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}