AssociateKmsKey

valid {
    input.Body.logGroupName == STRING
    input.Body.kmsKeyId == STRING
    input.Body.resourceIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelExportTask

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

CreateDelivery

valid {
    input.Body.deliverySourceName == STRING
    input.Body.deliveryDestinationArn == STRING
    input.Body.recordFields[_] == STRING
    input.Body.fieldDelimiter == STRING
    input.Body.s3DeliveryConfiguration.suffixPath == STRING
    input.Body.s3DeliveryConfiguration.enableHiveCompatiblePath == BOOLEAN
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateExportTask

valid {
    input.Body.taskName == STRING
    input.Body.logGroupName == STRING
    input.Body.logStreamNamePrefix == STRING
    input.Body.from == LONG
    input.Body.to == LONG
    input.Body.destination == STRING
    input.Body.destinationPrefix == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLogAnomalyDetector

enum_EvaluationFrequency := [ "ONE_MIN", "FIVE_MIN", "TEN_MIN", "FIFTEEN_MIN", "THIRTY_MIN", "ONE_HOUR" ]

valid {
    input.Body.logGroupArnList[_] == STRING
    input.Body.detectorName == STRING
    input.Body.evaluationFrequency == enum_EvaluationFrequency[_]
    input.Body.filterPattern == STRING
    input.Body.kmsKeyId == STRING
    input.Body.anomalyVisibilityTime == LONG
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLogGroup

enum_LogGroupClass := [ "STANDARD", "INFREQUENT_ACCESS" ]

valid {
    input.Body.logGroupName == STRING
    input.Body.kmsKeyId == STRING
    input.Body.tags.STRING == STRING
    input.Body.logGroupClass == enum_LogGroupClass[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLogStream

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

DeleteAccountPolicy

enum_PolicyType := [ "DATA_PROTECTION_POLICY", "SUBSCRIPTION_FILTER_POLICY" ]

valid {
    input.Body.policyName == STRING
    input.Body.policyType == enum_PolicyType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteDataProtectionPolicy

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

DeleteDelivery

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

DeleteDeliveryDestination

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

DeleteDeliveryDestinationPolicy

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

DeleteDeliverySource

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

DeleteDestination

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

DeleteLogAnomalyDetector

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

DeleteLogGroup

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

DeleteLogStream

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

DeleteMetricFilter

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

DeleteQueryDefinition

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

DeleteResourcePolicy

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

DeleteRetentionPolicy

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

DeleteSubscriptionFilter

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

DescribeAccountPolicies

enum_PolicyType := [ "DATA_PROTECTION_POLICY", "SUBSCRIPTION_FILTER_POLICY" ]

valid {
    input.Body.policyType == enum_PolicyType[_]
    input.Body.policyName == STRING
    input.Body.accountIdentifiers[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeConfigurationTemplates

enum_DeliveryDestinationType := [ "S3", "CWL", "FH" ]

valid {
    input.Body.service == STRING
    input.Body.logTypes[_] == STRING
    input.Body.resourceTypes[_] == STRING
    input.Body.deliveryDestinationTypes[_] == enum_DeliveryDestinationType[_]
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDeliveries

valid {
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDeliveryDestinations

valid {
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDeliverySources

valid {
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDestinations

valid {
    input.Body.DestinationNamePrefix == STRING
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeExportTasks

enum_ExportTaskStatusCode := [ "CANCELLED", "COMPLETED", "FAILED", "PENDING", "PENDING_CANCEL", "RUNNING" ]

valid {
    input.Body.taskId == STRING
    input.Body.statusCode == enum_ExportTaskStatusCode[_]
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLogGroups

enum_LogGroupClass := [ "STANDARD", "INFREQUENT_ACCESS" ]

valid {
    input.Body.accountIdentifiers[_] == STRING
    input.Body.logGroupNamePrefix == STRING
    input.Body.logGroupNamePattern == STRING
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.Body.includeLinkedAccounts == BOOLEAN
    input.Body.logGroupClass == enum_LogGroupClass[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeLogStreams

enum_OrderBy := [ "LogStreamName", "LastEventTime" ]

valid {
    input.Body.logGroupName == STRING
    input.Body.logGroupIdentifier == STRING
    input.Body.logStreamNamePrefix == STRING
    input.Body.orderBy == enum_OrderBy[_]
    input.Body.descending == BOOLEAN
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMetricFilters

valid {
    input.Body.logGroupName == STRING
    input.Body.filterNamePrefix == STRING
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.Body.metricName == STRING
    input.Body.metricNamespace == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeQueries

enum_QueryStatus := [ "Scheduled", "Running", "Complete", "Failed", "Cancelled", "Timeout", "Unknown" ]

valid {
    input.Body.logGroupName == STRING
    input.Body.status == enum_QueryStatus[_]
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeQueryDefinitions

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

DescribeResourcePolicies

valid {
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSubscriptionFilters

valid {
    input.Body.logGroupName == STRING
    input.Body.filterNamePrefix == STRING
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateKmsKey

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

FilterLogEvents

valid {
    input.Body.logGroupName == STRING
    input.Body.logGroupIdentifier == STRING
    input.Body.logStreamNames[_] == STRING
    input.Body.logStreamNamePrefix == STRING
    input.Body.startTime == LONG
    input.Body.endTime == LONG
    input.Body.filterPattern == STRING
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.Body.interleaved == BOOLEAN
    input.Body.unmask == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetDataProtectionPolicy

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

GetDelivery

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

GetDeliveryDestination

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

GetDeliveryDestinationPolicy

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

GetDeliverySource

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

GetLogAnomalyDetector

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

GetLogEvents

valid {
    input.Body.logGroupName == STRING
    input.Body.logGroupIdentifier == STRING
    input.Body.logStreamName == STRING
    input.Body.startTime == LONG
    input.Body.endTime == LONG
    input.Body.nextToken == STRING
    input.Body.limit == INTEGER
    input.Body.startFromHead == BOOLEAN
    input.Body.unmask == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetLogGroupFields

valid {
    input.Body.logGroupName == STRING
    input.Body.time == LONG
    input.Body.logGroupIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetLogRecord

valid {
    input.Body.logRecordPointer == STRING
    input.Body.unmask == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetQueryResults

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

ListAnomalies

enum_SuppressionState := [ "SUPPRESSED", "UNSUPPRESSED" ]

valid {
    input.Body.anomalyDetectorArn == STRING
    input.Body.suppressionState == enum_SuppressionState[_]
    input.Body.limit == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListLogAnomalyDetectors

valid {
    input.Body.filterLogGroupArn == STRING
    input.Body.limit == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

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

ListTagsLogGroup

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

PutAccountPolicy

enum_PolicyType := [ "DATA_PROTECTION_POLICY", "SUBSCRIPTION_FILTER_POLICY" ]
enum_Scope := [ "ALL" ]

valid {
    input.Body.policyName == STRING
    input.Body.policyDocument == STRING
    input.Body.policyType == enum_PolicyType[_]
    input.Body.scope == enum_Scope[_]
    input.Body.selectionCriteria == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutDataProtectionPolicy

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

PutDeliveryDestination

enum_OutputFormat := [ "json", "plain", "w3c", "raw", "parquet" ]

valid {
    input.Body.name == STRING
    input.Body.outputFormat == enum_OutputFormat[_]
    input.Body.deliveryDestinationConfiguration.destinationResourceArn == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutDeliveryDestinationPolicy

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

PutDeliverySource

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

PutDestination

valid {
    input.Body.destinationName == STRING
    input.Body.targetArn == STRING
    input.Body.roleArn == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutDestinationPolicy

valid {
    input.Body.destinationName == STRING
    input.Body.accessPolicy == STRING
    input.Body.forceUpdate == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutLogEvents

valid {
    input.Body.logGroupName == STRING
    input.Body.logStreamName == STRING
    input.Body.logEvents[_].timestamp == LONG
    input.Body.logEvents[_].message == STRING
    input.Body.sequenceToken == STRING
    input.Body.entity.keyAttributes.STRING == STRING
    input.Body.entity.attributes.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutMetricFilter

enum_StandardUnit := [ "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None" ]

valid {
    input.Body.logGroupName == STRING
    input.Body.filterName == STRING
    input.Body.filterPattern == STRING
    input.Body.metricTransformations[_].metricName == STRING
    input.Body.metricTransformations[_].metricNamespace == STRING
    input.Body.metricTransformations[_].metricValue == STRING
    input.Body.metricTransformations[_].defaultValue == DOUBLE
    input.Body.metricTransformations[_].dimensions.STRING == STRING
    input.Body.metricTransformations[_].unit == enum_StandardUnit[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutQueryDefinition

valid {
    input.Body.name == STRING
    input.Body.queryDefinitionId == STRING
    input.Body.logGroupNames[_] == STRING
    input.Body.queryString == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutResourcePolicy

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

PutRetentionPolicy

valid {
    input.Body.logGroupName == STRING
    input.Body.retentionInDays == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutSubscriptionFilter

enum_Distribution := [ "Random", "ByLogStream" ]

valid {
    input.Body.logGroupName == STRING
    input.Body.filterName == STRING
    input.Body.filterPattern == STRING
    input.Body.destinationArn == STRING
    input.Body.roleArn == STRING
    input.Body.distribution == enum_Distribution[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartLiveTail

valid {
    input.Body.logGroupIdentifiers[_] == STRING
    input.Body.logStreamNames[_] == STRING
    input.Body.logStreamNamePrefixes[_] == STRING
    input.Body.logEventFilterPattern == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartQuery

valid {
    input.Body.logGroupName == STRING
    input.Body.logGroupNames[_] == STRING
    input.Body.logGroupIdentifiers[_] == STRING
    input.Body.startTime == LONG
    input.Body.endTime == LONG
    input.Body.queryString == STRING
    input.Body.limit == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopQuery

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

TagLogGroup

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

TagResource

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

TestMetricFilter

valid {
    input.Body.filterPattern == STRING
    input.Body.logEventMessages[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagLogGroup

valid {
    input.Body.logGroupName == STRING
    input.Body.tags[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

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

UpdateAnomaly

enum_SuppressionType := [ "LIMITED", "INFINITE" ]
enum_SuppressionUnit := [ "SECONDS", "MINUTES", "HOURS" ]

valid {
    input.Body.anomalyId == STRING
    input.Body.patternId == STRING
    input.Body.anomalyDetectorArn == STRING
    input.Body.suppressionType == enum_SuppressionType[_]
    input.Body.suppressionPeriod.value == INTEGER
    input.Body.suppressionPeriod.suppressionUnit == enum_SuppressionUnit[_]
    input.Body.baseline == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDeliveryConfiguration

valid {
    input.Body.id == STRING
    input.Body.recordFields[_] == STRING
    input.Body.fieldDelimiter == STRING
    input.Body.s3DeliveryConfiguration.suffixPath == STRING
    input.Body.s3DeliveryConfiguration.enableHiveCompatiblePath == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateLogAnomalyDetector

enum_EvaluationFrequency := [ "ONE_MIN", "FIVE_MIN", "TEN_MIN", "FIFTEEN_MIN", "THIRTY_MIN", "ONE_HOUR" ]

valid {
    input.Body.anomalyDetectorArn == STRING
    input.Body.evaluationFrequency == enum_EvaluationFrequency[_]
    input.Body.filterPattern == STRING
    input.Body.anomalyVisibilityTime == LONG
    input.Body.enabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}