AddTagsToResource

enum_ResourceTypeForTagging := [ "Document", "ManagedInstance", "MaintenanceWindow", "Parameter", "PatchBaseline", "OpsItem", "OpsMetadata", "Automation", "Association" ]

valid {
    input.Body.ResourceType == enum_ResourceTypeForTagging[_]
    input.Body.ResourceId == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateOpsItemRelatedItem

valid {
    input.Body.OpsItemId == STRING
    input.Body.AssociationType == STRING
    input.Body.ResourceType == STRING
    input.Body.ResourceUri == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelCommand

valid {
    input.Body.CommandId == STRING
    input.Body.InstanceIds[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelMaintenanceWindowExecution

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

CreateActivation

valid {
    input.Body.Description == STRING
    input.Body.DefaultInstanceName == STRING
    input.Body.IamRole == STRING
    input.Body.RegistrationLimit == INTEGER
    input.Body.ExpirationDate == TIMESTAMP
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.RegistrationMetadata[_].Key == STRING
    input.Body.RegistrationMetadata[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateAssociation

enum_AssociationComplianceSeverity := [ "CRITICAL", "HIGH", "MEDIUM", "LOW", "UNSPECIFIED" ]
enum_AssociationSyncCompliance := [ "AUTO", "MANUAL" ]

valid {
    input.Body.Name == STRING
    input.Body.DocumentVersion == STRING
    input.Body.InstanceId == STRING
    input.Body.Parameters.STRING[_] == STRING
    input.Body.Targets[_].Key == STRING
    input.Body.Targets[_].Values[_] == STRING
    input.Body.ScheduleExpression == STRING
    input.Body.OutputLocation.S3Location.OutputS3Region == STRING
    input.Body.OutputLocation.S3Location.OutputS3BucketName == STRING
    input.Body.OutputLocation.S3Location.OutputS3KeyPrefix == STRING
    input.Body.AssociationName == STRING
    input.Body.AutomationTargetParameterName == STRING
    input.Body.MaxErrors == STRING
    input.Body.MaxConcurrency == STRING
    input.Body.ComplianceSeverity == enum_AssociationComplianceSeverity[_]
    input.Body.SyncCompliance == enum_AssociationSyncCompliance[_]
    input.Body.ApplyOnlyAtCronInterval == BOOLEAN
    input.Body.CalendarNames[_] == STRING
    input.Body.TargetLocations[_].Accounts[_] == STRING
    input.Body.TargetLocations[_].Regions[_] == STRING
    input.Body.TargetLocations[_].TargetLocationMaxConcurrency == STRING
    input.Body.TargetLocations[_].TargetLocationMaxErrors == STRING
    input.Body.TargetLocations[_].ExecutionRoleName == STRING
    input.Body.TargetLocations[_].TargetLocationAlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.TargetLocations[_].TargetLocationAlarmConfiguration.Alarms[_].Name == STRING
    input.Body.TargetLocations[_].IncludeChildOrganizationUnits == BOOLEAN
    input.Body.TargetLocations[_].ExcludeAccounts[_] == STRING
    input.Body.TargetLocations[_].Targets[_].Key == STRING
    input.Body.TargetLocations[_].Targets[_].Values[_] == STRING
    input.Body.TargetLocations[_].TargetsMaxConcurrency == STRING
    input.Body.TargetLocations[_].TargetsMaxErrors == STRING
    input.Body.ScheduleOffset == INTEGER
    input.Body.Duration == INTEGER
    input.Body.TargetMaps[_].STRING[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.AlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.AlarmConfiguration.Alarms[_].Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateAssociationBatch

enum_AssociationComplianceSeverity := [ "CRITICAL", "HIGH", "MEDIUM", "LOW", "UNSPECIFIED" ]
enum_AssociationSyncCompliance := [ "AUTO", "MANUAL" ]

valid {
    input.Body.Entries[_].Name == STRING
    input.Body.Entries[_].InstanceId == STRING
    input.Body.Entries[_].Parameters.STRING[_] == STRING
    input.Body.Entries[_].AutomationTargetParameterName == STRING
    input.Body.Entries[_].DocumentVersion == STRING
    input.Body.Entries[_].Targets[_].Key == STRING
    input.Body.Entries[_].Targets[_].Values[_] == STRING
    input.Body.Entries[_].ScheduleExpression == STRING
    input.Body.Entries[_].OutputLocation.S3Location.OutputS3Region == STRING
    input.Body.Entries[_].OutputLocation.S3Location.OutputS3BucketName == STRING
    input.Body.Entries[_].OutputLocation.S3Location.OutputS3KeyPrefix == STRING
    input.Body.Entries[_].AssociationName == STRING
    input.Body.Entries[_].MaxErrors == STRING
    input.Body.Entries[_].MaxConcurrency == STRING
    input.Body.Entries[_].ComplianceSeverity == enum_AssociationComplianceSeverity[_]
    input.Body.Entries[_].SyncCompliance == enum_AssociationSyncCompliance[_]
    input.Body.Entries[_].ApplyOnlyAtCronInterval == BOOLEAN
    input.Body.Entries[_].CalendarNames[_] == STRING
    input.Body.Entries[_].TargetLocations[_].Accounts[_] == STRING
    input.Body.Entries[_].TargetLocations[_].Regions[_] == STRING
    input.Body.Entries[_].TargetLocations[_].TargetLocationMaxConcurrency == STRING
    input.Body.Entries[_].TargetLocations[_].TargetLocationMaxErrors == STRING
    input.Body.Entries[_].TargetLocations[_].ExecutionRoleName == STRING
    input.Body.Entries[_].TargetLocations[_].TargetLocationAlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.Entries[_].TargetLocations[_].TargetLocationAlarmConfiguration.Alarms[_].Name == STRING
    input.Body.Entries[_].TargetLocations[_].IncludeChildOrganizationUnits == BOOLEAN
    input.Body.Entries[_].TargetLocations[_].ExcludeAccounts[_] == STRING
    input.Body.Entries[_].TargetLocations[_].Targets[_].Key == STRING
    input.Body.Entries[_].TargetLocations[_].Targets[_].Values[_] == STRING
    input.Body.Entries[_].TargetLocations[_].TargetsMaxConcurrency == STRING
    input.Body.Entries[_].TargetLocations[_].TargetsMaxErrors == STRING
    input.Body.Entries[_].ScheduleOffset == INTEGER
    input.Body.Entries[_].Duration == INTEGER
    input.Body.Entries[_].TargetMaps[_].STRING[_] == STRING
    input.Body.Entries[_].AlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.Entries[_].AlarmConfiguration.Alarms[_].Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDocument

enum_AttachmentsSourceKey := [ "SourceUrl", "S3FileUrl", "AttachmentReference" ]
enum_DocumentFormat := [ "YAML", "JSON", "TEXT" ]
enum_DocumentType := [ "Command", "Policy", "Automation", "Session", "Package", "ApplicationConfiguration", "ApplicationConfigurationSchema", "DeploymentStrategy", "ChangeCalendar", "Automation.ChangeTemplate", "ProblemAnalysis", "ProblemAnalysisTemplate", "CloudFormation", "ConformancePackTemplate", "QuickSetup" ]

valid {
    input.Body.Content == STRING
    input.Body.Requires[_].Name == STRING
    input.Body.Requires[_].Version == STRING
    input.Body.Requires[_].RequireType == STRING
    input.Body.Requires[_].VersionName == STRING
    input.Body.Attachments[_].Key == enum_AttachmentsSourceKey[_]
    input.Body.Attachments[_].Values[_] == STRING
    input.Body.Attachments[_].Name == STRING
    input.Body.Name == STRING
    input.Body.DisplayName == STRING
    input.Body.VersionName == STRING
    input.Body.DocumentType == enum_DocumentType[_]
    input.Body.DocumentFormat == enum_DocumentFormat[_]
    input.Body.TargetType == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateMaintenanceWindow

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.StartDate == STRING
    input.Body.EndDate == STRING
    input.Body.Schedule == STRING
    input.Body.ScheduleTimezone == STRING
    input.Body.ScheduleOffset == INTEGER
    input.Body.Duration == INTEGER
    input.Body.Cutoff == INTEGER
    input.Body.AllowUnassociatedTargets == BOOLEAN
    input.Body.ClientToken == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateOpsItem

enum_OpsItemDataType := [ "SearchableString", "String" ]

valid {
    input.Body.Description == STRING
    input.Body.OpsItemType == STRING
    input.Body.OperationalData.STRING.Value == STRING
    input.Body.OperationalData.STRING.Type == enum_OpsItemDataType[_]
    input.Body.Notifications[_].Arn == STRING
    input.Body.Priority == INTEGER
    input.Body.RelatedOpsItems[_].OpsItemId == STRING
    input.Body.Source == STRING
    input.Body.Title == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Category == STRING
    input.Body.Severity == STRING
    input.Body.ActualStartTime == TIMESTAMP
    input.Body.ActualEndTime == TIMESTAMP
    input.Body.PlannedStartTime == TIMESTAMP
    input.Body.PlannedEndTime == TIMESTAMP
    input.Body.AccountId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateOpsMetadata

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

CreatePatchBaseline

enum_OperatingSystem := [ "WINDOWS", "AMAZON_LINUX", "AMAZON_LINUX_2", "AMAZON_LINUX_2022", "UBUNTU", "REDHAT_ENTERPRISE_LINUX", "SUSE", "CENTOS", "ORACLE_LINUX", "DEBIAN", "MACOS", "RASPBIAN", "ROCKY_LINUX", "ALMA_LINUX", "AMAZON_LINUX_2023" ]
enum_PatchAction := [ "ALLOW_AS_DEPENDENCY", "BLOCK" ]
enum_PatchComplianceLevel := [ "CRITICAL", "HIGH", "MEDIUM", "LOW", "INFORMATIONAL", "UNSPECIFIED" ]
enum_PatchFilterKey := [ "ARCH", "ADVISORY_ID", "BUGZILLA_ID", "PATCH_SET", "PRODUCT", "PRODUCT_FAMILY", "CLASSIFICATION", "CVE_ID", "EPOCH", "MSRC_SEVERITY", "NAME", "PATCH_ID", "SECTION", "PRIORITY", "REPOSITORY", "RELEASE", "SEVERITY", "SECURITY", "VERSION" ]

valid {
    input.Body.OperatingSystem == enum_OperatingSystem[_]
    input.Body.Name == STRING
    input.Body.GlobalFilters.PatchFilters[_].Key == enum_PatchFilterKey[_]
    input.Body.GlobalFilters.PatchFilters[_].Values[_] == STRING
    input.Body.ApprovalRules.PatchRules[_].PatchFilterGroup.PatchFilters[_].Key == enum_PatchFilterKey[_]
    input.Body.ApprovalRules.PatchRules[_].PatchFilterGroup.PatchFilters[_].Values[_] == STRING
    input.Body.ApprovalRules.PatchRules[_].ComplianceLevel == enum_PatchComplianceLevel[_]
    input.Body.ApprovalRules.PatchRules[_].ApproveAfterDays == INTEGER
    input.Body.ApprovalRules.PatchRules[_].ApproveUntilDate == STRING
    input.Body.ApprovalRules.PatchRules[_].EnableNonSecurity == BOOLEAN
    input.Body.ApprovedPatches[_] == STRING
    input.Body.ApprovedPatchesComplianceLevel == enum_PatchComplianceLevel[_]
    input.Body.ApprovedPatchesEnableNonSecurity == BOOLEAN
    input.Body.RejectedPatches[_] == STRING
    input.Body.RejectedPatchesAction == enum_PatchAction[_]
    input.Body.Description == STRING
    input.Body.Sources[_].Name == STRING
    input.Body.Sources[_].Products[_] == STRING
    input.Body.Sources[_].Configuration == STRING
    input.Body.ClientToken == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateResourceDataSync

enum_ResourceDataSyncS3Format := [ "JsonSerDe" ]

valid {
    input.Body.SyncName == STRING
    input.Body.S3Destination.BucketName == STRING
    input.Body.S3Destination.Prefix == STRING
    input.Body.S3Destination.SyncFormat == enum_ResourceDataSyncS3Format[_]
    input.Body.S3Destination.Region == STRING
    input.Body.S3Destination.AWSKMSKeyARN == STRING
    input.Body.S3Destination.DestinationDataSharing.DestinationDataSharingType == STRING
    input.Body.SyncType == STRING
    input.Body.SyncSource.SourceType == STRING
    input.Body.SyncSource.AwsOrganizationsSource.OrganizationSourceType == STRING
    input.Body.SyncSource.AwsOrganizationsSource.OrganizationalUnits[_].OrganizationalUnitId == STRING
    input.Body.SyncSource.SourceRegions[_] == STRING
    input.Body.SyncSource.IncludeFutureRegions == BOOLEAN
    input.Body.SyncSource.EnableAllOpsDataSources == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteActivation

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

DeleteAssociation

valid {
    input.Body.Name == STRING
    input.Body.InstanceId == STRING
    input.Body.AssociationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteDocument

valid {
    input.Body.Name == STRING
    input.Body.DocumentVersion == STRING
    input.Body.VersionName == STRING
    input.Body.Force == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteInventory

enum_InventorySchemaDeleteOption := [ "DisableSchema", "DeleteSchema" ]

valid {
    input.Body.TypeName == STRING
    input.Body.SchemaDeleteOption == enum_InventorySchemaDeleteOption[_]
    input.Body.DryRun == BOOLEAN
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteMaintenanceWindow

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

DeleteOpsItem

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

DeleteOpsMetadata

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

DeleteParameter

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

DeleteParameters

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

DeletePatchBaseline

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

DeleteResourceDataSync

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

DeleteResourcePolicy

valid {
    input.Body.ResourceArn == STRING
    input.Body.PolicyId == STRING
    input.Body.PolicyHash == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeregisterManagedInstance

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

DeregisterPatchBaselineForPatchGroup

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

DeregisterTargetFromMaintenanceWindow

valid {
    input.Body.WindowId == STRING
    input.Body.WindowTargetId == STRING
    input.Body.Safe == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeregisterTaskFromMaintenanceWindow

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

DescribeActivations

enum_DescribeActivationsFilterKeys := [ "ActivationIds", "DefaultInstanceName", "IamRole" ]

valid {
    input.Body.Filters[_].FilterKey == enum_DescribeActivationsFilterKeys[_]
    input.Body.Filters[_].FilterValues[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAssociation

valid {
    input.Body.Name == STRING
    input.Body.InstanceId == STRING
    input.Body.AssociationId == STRING
    input.Body.AssociationVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAssociationExecutionTargets

enum_AssociationExecutionTargetsFilterKey := [ "Status", "ResourceId", "ResourceType" ]

valid {
    input.Body.AssociationId == STRING
    input.Body.ExecutionId == STRING
    input.Body.Filters[_].Key == enum_AssociationExecutionTargetsFilterKey[_]
    input.Body.Filters[_].Value == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAssociationExecutions

enum_AssociationExecutionFilterKey := [ "ExecutionId", "Status", "CreatedTime" ]
enum_AssociationFilterOperatorType := [ "EQUAL", "LESS_THAN", "GREATER_THAN" ]

valid {
    input.Body.AssociationId == STRING
    input.Body.Filters[_].Key == enum_AssociationExecutionFilterKey[_]
    input.Body.Filters[_].Value == STRING
    input.Body.Filters[_].Type == enum_AssociationFilterOperatorType[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAutomationExecutions

enum_AutomationExecutionFilterKey := [ "DocumentNamePrefix", "ExecutionStatus", "ExecutionId", "ParentExecutionId", "CurrentAction", "StartTimeBefore", "StartTimeAfter", "AutomationType", "TagKey", "TargetResourceGroup", "AutomationSubtype", "OpsItemId" ]

valid {
    input.Body.Filters[_].Key == enum_AutomationExecutionFilterKey[_]
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAutomationStepExecutions

enum_StepExecutionFilterKey := [ "StartTimeBefore", "StartTimeAfter", "StepExecutionStatus", "StepExecutionId", "StepName", "Action", "ParentStepExecutionId", "ParentStepIteration", "ParentStepIteratorValue" ]

valid {
    input.Body.AutomationExecutionId == STRING
    input.Body.Filters[_].Key == enum_StepExecutionFilterKey[_]
    input.Body.Filters[_].Values[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.ReverseOrder == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAvailablePatches

valid {
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDocument

valid {
    input.Body.Name == STRING
    input.Body.DocumentVersion == STRING
    input.Body.VersionName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeDocumentPermission

enum_DocumentPermissionType := [ "Share" ]

valid {
    input.Body.Name == STRING
    input.Body.PermissionType == enum_DocumentPermissionType[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEffectiveInstanceAssociations

valid {
    input.Body.InstanceId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeEffectivePatchesForPatchBaseline

valid {
    input.Body.BaselineId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceAssociationsStatus

valid {
    input.Body.InstanceId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceInformation

enum_InstanceInformationFilterKey := [ "InstanceIds", "AgentVersion", "PingStatus", "PlatformTypes", "ActivationIds", "IamRole", "ResourceType", "AssociationStatus" ]

valid {
    input.Body.InstanceInformationFilterList[_].key == enum_InstanceInformationFilterKey[_]
    input.Body.InstanceInformationFilterList[_].valueSet[_] == STRING
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstancePatchStates

valid {
    input.Body.InstanceIds[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstancePatchStatesForPatchGroup

enum_InstancePatchStateOperatorType := [ "Equal", "NotEqual", "LessThan", "GreaterThan" ]

valid {
    input.Body.PatchGroup == STRING
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Type == enum_InstancePatchStateOperatorType[_]
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstancePatches

valid {
    input.Body.InstanceId == STRING
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInstanceProperties

enum_InstancePropertyFilterKey := [ "InstanceIds", "AgentVersion", "PingStatus", "PlatformTypes", "DocumentName", "ActivationIds", "IamRole", "ResourceType", "AssociationStatus" ]
enum_InstancePropertyFilterOperator := [ "Equal", "NotEqual", "BeginWith", "LessThan", "GreaterThan" ]

valid {
    input.Body.InstancePropertyFilterList[_].key == enum_InstancePropertyFilterKey[_]
    input.Body.InstancePropertyFilterList[_].valueSet[_] == STRING
    input.Body.FiltersWithOperator[_].Key == STRING
    input.Body.FiltersWithOperator[_].Values[_] == STRING
    input.Body.FiltersWithOperator[_].Operator == enum_InstancePropertyFilterOperator[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeInventoryDeletions

valid {
    input.Body.DeletionId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMaintenanceWindowExecutionTaskInvocations

valid {
    input.Body.WindowExecutionId == STRING
    input.Body.TaskId == STRING
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMaintenanceWindowExecutionTasks

valid {
    input.Body.WindowExecutionId == STRING
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMaintenanceWindowExecutions

valid {
    input.Body.WindowId == STRING
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMaintenanceWindowSchedule

enum_MaintenanceWindowResourceType := [ "INSTANCE", "RESOURCE_GROUP" ]

valid {
    input.Body.WindowId == STRING
    input.Body.Targets[_].Key == STRING
    input.Body.Targets[_].Values[_] == STRING
    input.Body.ResourceType == enum_MaintenanceWindowResourceType[_]
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMaintenanceWindowTargets

valid {
    input.Body.WindowId == STRING
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMaintenanceWindowTasks

valid {
    input.Body.WindowId == STRING
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMaintenanceWindows

valid {
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeMaintenanceWindowsForTarget

enum_MaintenanceWindowResourceType := [ "INSTANCE", "RESOURCE_GROUP" ]

valid {
    input.Body.Targets[_].Key == STRING
    input.Body.Targets[_].Values[_] == STRING
    input.Body.ResourceType == enum_MaintenanceWindowResourceType[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeOpsItems

enum_OpsItemFilterKey := [ "Status", "CreatedBy", "Source", "Priority", "Title", "OpsItemId", "CreatedTime", "LastModifiedTime", "ActualStartTime", "ActualEndTime", "PlannedStartTime", "PlannedEndTime", "OperationalData", "OperationalDataKey", "OperationalDataValue", "ResourceId", "AutomationId", "Category", "Severity", "OpsItemType", "ChangeRequestByRequesterArn", "ChangeRequestByRequesterName", "ChangeRequestByApproverArn", "ChangeRequestByApproverName", "ChangeRequestByTemplate", "ChangeRequestByTargetsResourceGroup", "InsightByType", "AccountId" ]
enum_OpsItemFilterOperator := [ "Equal", "Contains", "GreaterThan", "LessThan" ]

valid {
    input.Body.OpsItemFilters[_].Key == enum_OpsItemFilterKey[_]
    input.Body.OpsItemFilters[_].Values[_] == STRING
    input.Body.OpsItemFilters[_].Operator == enum_OpsItemFilterOperator[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeParameters

enum_ParametersFilterKey := [ "Name", "Type", "KeyId" ]

valid {
    input.Body.Filters[_].Key == enum_ParametersFilterKey[_]
    input.Body.Filters[_].Values[_] == STRING
    input.Body.ParameterFilters[_].Key == STRING
    input.Body.ParameterFilters[_].Option == STRING
    input.Body.ParameterFilters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Shared == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePatchBaselines

valid {
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePatchGroupState

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

DescribePatchGroups

valid {
    input.Body.MaxResults == INTEGER
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribePatchProperties

enum_OperatingSystem := [ "WINDOWS", "AMAZON_LINUX", "AMAZON_LINUX_2", "AMAZON_LINUX_2022", "UBUNTU", "REDHAT_ENTERPRISE_LINUX", "SUSE", "CENTOS", "ORACLE_LINUX", "DEBIAN", "MACOS", "RASPBIAN", "ROCKY_LINUX", "ALMA_LINUX", "AMAZON_LINUX_2023" ]
enum_PatchProperty := [ "PRODUCT", "PRODUCT_FAMILY", "CLASSIFICATION", "MSRC_SEVERITY", "PRIORITY", "SEVERITY" ]
enum_PatchSet := [ "OS", "APPLICATION" ]

valid {
    input.Body.OperatingSystem == enum_OperatingSystem[_]
    input.Body.Property == enum_PatchProperty[_]
    input.Body.PatchSet == enum_PatchSet[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeSessions

enum_SessionFilterKey := [ "InvokedAfter", "InvokedBefore", "Target", "Owner", "Status", "SessionId" ]
enum_SessionState := [ "Active", "History" ]

valid {
    input.Body.State == enum_SessionState[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filters[_].key == enum_SessionFilterKey[_]
    input.Body.Filters[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DisassociateOpsItemRelatedItem

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

GetAutomationExecution

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

GetCalendarState

valid {
    input.Body.CalendarNames[_] == STRING
    input.Body.AtTime == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCommandInvocation

valid {
    input.Body.CommandId == STRING
    input.Body.InstanceId == STRING
    input.Body.PluginName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetConnectionStatus

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

GetDefaultPatchBaseline

enum_OperatingSystem := [ "WINDOWS", "AMAZON_LINUX", "AMAZON_LINUX_2", "AMAZON_LINUX_2022", "UBUNTU", "REDHAT_ENTERPRISE_LINUX", "SUSE", "CENTOS", "ORACLE_LINUX", "DEBIAN", "MACOS", "RASPBIAN", "ROCKY_LINUX", "ALMA_LINUX", "AMAZON_LINUX_2023" ]

valid {
    input.Body.OperatingSystem == enum_OperatingSystem[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetDeployablePatchSnapshotForInstance

enum_OperatingSystem := [ "WINDOWS", "AMAZON_LINUX", "AMAZON_LINUX_2", "AMAZON_LINUX_2022", "UBUNTU", "REDHAT_ENTERPRISE_LINUX", "SUSE", "CENTOS", "ORACLE_LINUX", "DEBIAN", "MACOS", "RASPBIAN", "ROCKY_LINUX", "ALMA_LINUX", "AMAZON_LINUX_2023" ]
enum_PatchAction := [ "ALLOW_AS_DEPENDENCY", "BLOCK" ]
enum_PatchComplianceLevel := [ "CRITICAL", "HIGH", "MEDIUM", "LOW", "INFORMATIONAL", "UNSPECIFIED" ]
enum_PatchFilterKey := [ "ARCH", "ADVISORY_ID", "BUGZILLA_ID", "PATCH_SET", "PRODUCT", "PRODUCT_FAMILY", "CLASSIFICATION", "CVE_ID", "EPOCH", "MSRC_SEVERITY", "NAME", "PATCH_ID", "SECTION", "PRIORITY", "REPOSITORY", "RELEASE", "SEVERITY", "SECURITY", "VERSION" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.SnapshotId == STRING
    input.Body.BaselineOverride.OperatingSystem == enum_OperatingSystem[_]
    input.Body.BaselineOverride.GlobalFilters.PatchFilters[_].Key == enum_PatchFilterKey[_]
    input.Body.BaselineOverride.GlobalFilters.PatchFilters[_].Values[_] == STRING
    input.Body.BaselineOverride.ApprovalRules.PatchRules[_].PatchFilterGroup.PatchFilters[_].Key == enum_PatchFilterKey[_]
    input.Body.BaselineOverride.ApprovalRules.PatchRules[_].PatchFilterGroup.PatchFilters[_].Values[_] == STRING
    input.Body.BaselineOverride.ApprovalRules.PatchRules[_].ComplianceLevel == enum_PatchComplianceLevel[_]
    input.Body.BaselineOverride.ApprovalRules.PatchRules[_].ApproveAfterDays == INTEGER
    input.Body.BaselineOverride.ApprovalRules.PatchRules[_].ApproveUntilDate == STRING
    input.Body.BaselineOverride.ApprovalRules.PatchRules[_].EnableNonSecurity == BOOLEAN
    input.Body.BaselineOverride.ApprovedPatches[_] == STRING
    input.Body.BaselineOverride.ApprovedPatchesComplianceLevel == enum_PatchComplianceLevel[_]
    input.Body.BaselineOverride.RejectedPatches[_] == STRING
    input.Body.BaselineOverride.RejectedPatchesAction == enum_PatchAction[_]
    input.Body.BaselineOverride.ApprovedPatchesEnableNonSecurity == BOOLEAN
    input.Body.BaselineOverride.Sources[_].Name == STRING
    input.Body.BaselineOverride.Sources[_].Products[_] == STRING
    input.Body.BaselineOverride.Sources[_].Configuration == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetDocument

enum_DocumentFormat := [ "YAML", "JSON", "TEXT" ]

valid {
    input.Body.Name == STRING
    input.Body.VersionName == STRING
    input.Body.DocumentVersion == STRING
    input.Body.DocumentFormat == enum_DocumentFormat[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetExecutionPreview

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

GetInventory

enum_InventoryQueryOperatorType := [ "Equal", "NotEqual", "BeginWith", "LessThan", "GreaterThan", "Exists" ]

valid {
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Type == enum_InventoryQueryOperatorType[_]
    input.Body.Aggregators[_].Expression == STRING
    input.Body.Aggregators[_].Aggregators == NESTED
    input.Body.Aggregators[_].Groups[_].Name == STRING
    input.Body.Aggregators[_].Groups[_].Filters[_].Key == STRING
    input.Body.Aggregators[_].Groups[_].Filters[_].Values[_] == STRING
    input.Body.Aggregators[_].Groups[_].Filters[_].Type == enum_InventoryQueryOperatorType[_]
    input.Body.ResultAttributes[_].TypeName == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetInventorySchema

valid {
    input.Body.TypeName == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.Aggregator == BOOLEAN
    input.Body.SubType == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMaintenanceWindow

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

GetMaintenanceWindowExecution

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

GetMaintenanceWindowExecutionTask

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

GetMaintenanceWindowExecutionTaskInvocation

valid {
    input.Body.WindowExecutionId == STRING
    input.Body.TaskId == STRING
    input.Body.InvocationId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMaintenanceWindowTask

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

GetOpsItem

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

GetOpsMetadata

valid {
    input.Body.OpsMetadataArn == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetOpsSummary

enum_OpsFilterOperatorType := [ "Equal", "NotEqual", "BeginWith", "LessThan", "GreaterThan", "Exists" ]

valid {
    input.Body.SyncName == STRING
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Type == enum_OpsFilterOperatorType[_]
    input.Body.Aggregators[_].AggregatorType == STRING
    input.Body.Aggregators[_].TypeName == STRING
    input.Body.Aggregators[_].AttributeName == STRING
    input.Body.Aggregators[_].Values.STRING == STRING
    input.Body.Aggregators[_].Filters[_].Key == STRING
    input.Body.Aggregators[_].Filters[_].Values[_] == STRING
    input.Body.Aggregators[_].Filters[_].Type == enum_OpsFilterOperatorType[_]
    input.Body.Aggregators[_].Aggregators == NESTED
    input.Body.ResultAttributes[_].TypeName == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetParameter

valid {
    input.Body.Name == STRING
    input.Body.WithDecryption == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetParameterHistory

valid {
    input.Body.Name == STRING
    input.Body.WithDecryption == BOOLEAN
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetParameters

valid {
    input.Body.Names[_] == STRING
    input.Body.WithDecryption == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetParametersByPath

valid {
    input.Body.Path == STRING
    input.Body.Recursive == BOOLEAN
    input.Body.ParameterFilters[_].Key == STRING
    input.Body.ParameterFilters[_].Option == STRING
    input.Body.ParameterFilters[_].Values[_] == STRING
    input.Body.WithDecryption == BOOLEAN
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetPatchBaseline

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

GetPatchBaselineForPatchGroup

enum_OperatingSystem := [ "WINDOWS", "AMAZON_LINUX", "AMAZON_LINUX_2", "AMAZON_LINUX_2022", "UBUNTU", "REDHAT_ENTERPRISE_LINUX", "SUSE", "CENTOS", "ORACLE_LINUX", "DEBIAN", "MACOS", "RASPBIAN", "ROCKY_LINUX", "ALMA_LINUX", "AMAZON_LINUX_2023" ]

valid {
    input.Body.PatchGroup == STRING
    input.Body.OperatingSystem == enum_OperatingSystem[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetResourcePolicies

valid {
    input.Body.ResourceArn == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetServiceSetting

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

LabelParameterVersion

valid {
    input.Body.Name == STRING
    input.Body.ParameterVersion == LONG
    input.Body.Labels[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAssociationVersions

valid {
    input.Body.AssociationId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAssociations

enum_AssociationFilterKey := [ "InstanceId", "Name", "AssociationId", "AssociationStatusName", "LastExecutedBefore", "LastExecutedAfter", "AssociationName", "ResourceGroupName" ]

valid {
    input.Body.AssociationFilterList[_].key == enum_AssociationFilterKey[_]
    input.Body.AssociationFilterList[_].value == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCommandInvocations

enum_CommandFilterKey := [ "InvokedAfter", "InvokedBefore", "Status", "ExecutionStage", "DocumentName" ]

valid {
    input.Body.CommandId == STRING
    input.Body.InstanceId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filters[_].key == enum_CommandFilterKey[_]
    input.Body.Filters[_].value == STRING
    input.Body.Details == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCommands

enum_CommandFilterKey := [ "InvokedAfter", "InvokedBefore", "Status", "ExecutionStage", "DocumentName" ]

valid {
    input.Body.CommandId == STRING
    input.Body.InstanceId == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.Filters[_].key == enum_CommandFilterKey[_]
    input.Body.Filters[_].value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListComplianceItems

enum_ComplianceQueryOperatorType := [ "EQUAL", "NOT_EQUAL", "BEGIN_WITH", "LESS_THAN", "GREATER_THAN" ]

valid {
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Type == enum_ComplianceQueryOperatorType[_]
    input.Body.ResourceIds[_] == STRING
    input.Body.ResourceTypes[_] == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListComplianceSummaries

enum_ComplianceQueryOperatorType := [ "EQUAL", "NOT_EQUAL", "BEGIN_WITH", "LESS_THAN", "GREATER_THAN" ]

valid {
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Type == enum_ComplianceQueryOperatorType[_]
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDocumentMetadataHistory

enum_DocumentMetadataEnum := [ "DocumentReviews" ]

valid {
    input.Body.Name == STRING
    input.Body.DocumentVersion == STRING
    input.Body.Metadata == enum_DocumentMetadataEnum[_]
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDocumentVersions

valid {
    input.Body.Name == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDocuments

enum_DocumentFilterKey := [ "Name", "Owner", "PlatformTypes", "DocumentType" ]

valid {
    input.Body.DocumentFilterList[_].key == enum_DocumentFilterKey[_]
    input.Body.DocumentFilterList[_].value == STRING
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListInventoryEntries

enum_InventoryQueryOperatorType := [ "Equal", "NotEqual", "BeginWith", "LessThan", "GreaterThan", "Exists" ]

valid {
    input.Body.InstanceId == STRING
    input.Body.TypeName == STRING
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Type == enum_InventoryQueryOperatorType[_]
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListNodes

enum_NodeFilterKey := [ "AgentType", "AgentVersion", "ComputerName", "InstanceId", "InstanceStatus", "IpAddress", "ManagedStatus", "PlatformName", "PlatformType", "PlatformVersion", "ResourceType", "OrganizationalUnitId", "OrganizationalUnitPath", "Region", "AccountId" ]
enum_NodeFilterOperatorType := [ "Equal", "NotEqual", "BeginWith" ]

valid {
    input.Body.SyncName == STRING
    input.Body.Filters[_].Key == enum_NodeFilterKey[_]
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Type == enum_NodeFilterOperatorType[_]
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListNodesSummary

enum_NodeAggregatorType := [ "Count" ]
enum_NodeAttributeName := [ "AgentVersion", "PlatformName", "PlatformType", "PlatformVersion", "Region", "ResourceType" ]
enum_NodeFilterKey := [ "AgentType", "AgentVersion", "ComputerName", "InstanceId", "InstanceStatus", "IpAddress", "ManagedStatus", "PlatformName", "PlatformType", "PlatformVersion", "ResourceType", "OrganizationalUnitId", "OrganizationalUnitPath", "Region", "AccountId" ]
enum_NodeFilterOperatorType := [ "Equal", "NotEqual", "BeginWith" ]
enum_NodeTypeName := [ "Instance" ]

valid {
    input.Body.SyncName == STRING
    input.Body.Filters[_].Key == enum_NodeFilterKey[_]
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Type == enum_NodeFilterOperatorType[_]
    input.Body.Aggregators[_].AggregatorType == enum_NodeAggregatorType[_]
    input.Body.Aggregators[_].TypeName == enum_NodeTypeName[_]
    input.Body.Aggregators[_].AttributeName == enum_NodeAttributeName[_]
    input.Body.Aggregators[_].Aggregators == NESTED
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListOpsItemEvents

enum_OpsItemEventFilterKey := [ "OpsItemId" ]
enum_OpsItemEventFilterOperator := [ "Equal" ]

valid {
    input.Body.Filters[_].Key == enum_OpsItemEventFilterKey[_]
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Operator == enum_OpsItemEventFilterOperator[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListOpsItemRelatedItems

enum_OpsItemRelatedItemsFilterKey := [ "ResourceType", "AssociationId", "ResourceUri" ]
enum_OpsItemRelatedItemsFilterOperator := [ "Equal" ]

valid {
    input.Body.OpsItemId == STRING
    input.Body.Filters[_].Key == enum_OpsItemRelatedItemsFilterKey[_]
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Operator == enum_OpsItemRelatedItemsFilterOperator[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListOpsMetadata

valid {
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListResourceComplianceSummaries

enum_ComplianceQueryOperatorType := [ "EQUAL", "NOT_EQUAL", "BEGIN_WITH", "LESS_THAN", "GREATER_THAN" ]

valid {
    input.Body.Filters[_].Key == STRING
    input.Body.Filters[_].Values[_] == STRING
    input.Body.Filters[_].Type == enum_ComplianceQueryOperatorType[_]
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListResourceDataSync

valid {
    input.Body.SyncType == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

enum_ResourceTypeForTagging := [ "Document", "ManagedInstance", "MaintenanceWindow", "Parameter", "PatchBaseline", "OpsItem", "OpsMetadata", "Automation", "Association" ]

valid {
    input.Body.ResourceType == enum_ResourceTypeForTagging[_]
    input.Body.ResourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyDocumentPermission

enum_DocumentPermissionType := [ "Share" ]

valid {
    input.Body.Name == STRING
    input.Body.PermissionType == enum_DocumentPermissionType[_]
    input.Body.AccountIdsToAdd[_] == STRING
    input.Body.AccountIdsToRemove[_] == STRING
    input.Body.SharedDocumentVersion == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutComplianceItems

enum_ComplianceSeverity := [ "CRITICAL", "HIGH", "MEDIUM", "LOW", "INFORMATIONAL", "UNSPECIFIED" ]
enum_ComplianceStatus := [ "COMPLIANT", "NON_COMPLIANT" ]
enum_ComplianceUploadType := [ "COMPLETE", "PARTIAL" ]

valid {
    input.Body.ResourceId == STRING
    input.Body.ResourceType == STRING
    input.Body.ComplianceType == STRING
    input.Body.ExecutionSummary.ExecutionTime == TIMESTAMP
    input.Body.ExecutionSummary.ExecutionId == STRING
    input.Body.ExecutionSummary.ExecutionType == STRING
    input.Body.Items[_].Id == STRING
    input.Body.Items[_].Title == STRING
    input.Body.Items[_].Severity == enum_ComplianceSeverity[_]
    input.Body.Items[_].Status == enum_ComplianceStatus[_]
    input.Body.Items[_].Details.STRING == STRING
    input.Body.ItemContentHash == STRING
    input.Body.UploadType == enum_ComplianceUploadType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutInventory

valid {
    input.Body.InstanceId == STRING
    input.Body.Items[_].TypeName == STRING
    input.Body.Items[_].SchemaVersion == STRING
    input.Body.Items[_].CaptureTime == STRING
    input.Body.Items[_].ContentHash == STRING
    input.Body.Items[_].Content[_].STRING == STRING
    input.Body.Items[_].Context.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutParameter

enum_ParameterTier := [ "Standard", "Advanced", "Intelligent-Tiering" ]
enum_ParameterType := [ "String", "StringList", "SecureString" ]

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.Value == STRING
    input.Body.Type == enum_ParameterType[_]
    input.Body.KeyId == STRING
    input.Body.Overwrite == BOOLEAN
    input.Body.AllowedPattern == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.Tier == enum_ParameterTier[_]
    input.Body.Policies == STRING
    input.Body.DataType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutResourcePolicy

valid {
    input.Body.ResourceArn == STRING
    input.Body.Policy == STRING
    input.Body.PolicyId == STRING
    input.Body.PolicyHash == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterDefaultPatchBaseline

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

RegisterPatchBaselineForPatchGroup

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

RegisterTargetWithMaintenanceWindow

enum_MaintenanceWindowResourceType := [ "INSTANCE", "RESOURCE_GROUP" ]

valid {
    input.Body.WindowId == STRING
    input.Body.ResourceType == enum_MaintenanceWindowResourceType[_]
    input.Body.Targets[_].Key == STRING
    input.Body.Targets[_].Values[_] == STRING
    input.Body.OwnerInformation == STRING
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.ClientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterTaskWithMaintenanceWindow

enum_DocumentHashType := [ "Sha256", "Sha1" ]
enum_MaintenanceWindowTaskCutoffBehavior := [ "CONTINUE_TASK", "CANCEL_TASK" ]
enum_MaintenanceWindowTaskType := [ "RUN_COMMAND", "AUTOMATION", "STEP_FUNCTIONS", "LAMBDA" ]
enum_NotificationEvent := [ "All", "InProgress", "Success", "TimedOut", "Cancelled", "Failed" ]
enum_NotificationType := [ "Command", "Invocation" ]

valid {
    input.Body.WindowId == STRING
    input.Body.Targets[_].Key == STRING
    input.Body.Targets[_].Values[_] == STRING
    input.Body.TaskArn == STRING
    input.Body.ServiceRoleArn == STRING
    input.Body.TaskType == enum_MaintenanceWindowTaskType[_]
    input.Body.TaskParameters.STRING.Values[_] == STRING
    input.Body.TaskInvocationParameters.RunCommand.Comment == STRING
    input.Body.TaskInvocationParameters.RunCommand.CloudWatchOutputConfig.CloudWatchLogGroupName == STRING
    input.Body.TaskInvocationParameters.RunCommand.CloudWatchOutputConfig.CloudWatchOutputEnabled == BOOLEAN
    input.Body.TaskInvocationParameters.RunCommand.DocumentHash == STRING
    input.Body.TaskInvocationParameters.RunCommand.DocumentHashType == enum_DocumentHashType[_]
    input.Body.TaskInvocationParameters.RunCommand.DocumentVersion == STRING
    input.Body.TaskInvocationParameters.RunCommand.NotificationConfig.NotificationArn == STRING
    input.Body.TaskInvocationParameters.RunCommand.NotificationConfig.NotificationEvents[_] == enum_NotificationEvent[_]
    input.Body.TaskInvocationParameters.RunCommand.NotificationConfig.NotificationType == enum_NotificationType[_]
    input.Body.TaskInvocationParameters.RunCommand.OutputS3BucketName == STRING
    input.Body.TaskInvocationParameters.RunCommand.OutputS3KeyPrefix == STRING
    input.Body.TaskInvocationParameters.RunCommand.Parameters.STRING[_] == STRING
    input.Body.TaskInvocationParameters.RunCommand.ServiceRoleArn == STRING
    input.Body.TaskInvocationParameters.RunCommand.TimeoutSeconds == INTEGER
    input.Body.TaskInvocationParameters.Automation.DocumentVersion == STRING
    input.Body.TaskInvocationParameters.Automation.Parameters.STRING[_] == STRING
    input.Body.TaskInvocationParameters.StepFunctions.Input == STRING
    input.Body.TaskInvocationParameters.StepFunctions.Name == STRING
    input.Body.TaskInvocationParameters.Lambda.ClientContext == STRING
    input.Body.TaskInvocationParameters.Lambda.Qualifier == STRING
    input.Body.TaskInvocationParameters.Lambda.Payload == BLOB
    input.Body.Priority == INTEGER
    input.Body.MaxConcurrency == STRING
    input.Body.MaxErrors == STRING
    input.Body.LoggingInfo.S3BucketName == STRING
    input.Body.LoggingInfo.S3KeyPrefix == STRING
    input.Body.LoggingInfo.S3Region == STRING
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.ClientToken == STRING
    input.Body.CutoffBehavior == enum_MaintenanceWindowTaskCutoffBehavior[_]
    input.Body.AlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.AlarmConfiguration.Alarms[_].Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveTagsFromResource

enum_ResourceTypeForTagging := [ "Document", "ManagedInstance", "MaintenanceWindow", "Parameter", "PatchBaseline", "OpsItem", "OpsMetadata", "Automation", "Association" ]

valid {
    input.Body.ResourceType == enum_ResourceTypeForTagging[_]
    input.Body.ResourceId == STRING
    input.Body.TagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ResetServiceSetting

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

ResumeSession

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

SendAutomationSignal

enum_SignalType := [ "Approve", "Reject", "StartStep", "StopStep", "Resume" ]

valid {
    input.Body.AutomationExecutionId == STRING
    input.Body.SignalType == enum_SignalType[_]
    input.Body.Payload.STRING[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SendCommand

enum_DocumentHashType := [ "Sha256", "Sha1" ]
enum_NotificationEvent := [ "All", "InProgress", "Success", "TimedOut", "Cancelled", "Failed" ]
enum_NotificationType := [ "Command", "Invocation" ]

valid {
    input.Body.InstanceIds[_] == STRING
    input.Body.Targets[_].Key == STRING
    input.Body.Targets[_].Values[_] == STRING
    input.Body.DocumentName == STRING
    input.Body.DocumentVersion == STRING
    input.Body.DocumentHash == STRING
    input.Body.DocumentHashType == enum_DocumentHashType[_]
    input.Body.TimeoutSeconds == INTEGER
    input.Body.Comment == STRING
    input.Body.Parameters.STRING[_] == STRING
    input.Body.OutputS3Region == STRING
    input.Body.OutputS3BucketName == STRING
    input.Body.OutputS3KeyPrefix == STRING
    input.Body.MaxConcurrency == STRING
    input.Body.MaxErrors == STRING
    input.Body.ServiceRoleArn == STRING
    input.Body.NotificationConfig.NotificationArn == STRING
    input.Body.NotificationConfig.NotificationEvents[_] == enum_NotificationEvent[_]
    input.Body.NotificationConfig.NotificationType == enum_NotificationType[_]
    input.Body.CloudWatchOutputConfig.CloudWatchLogGroupName == STRING
    input.Body.CloudWatchOutputConfig.CloudWatchOutputEnabled == BOOLEAN
    input.Body.AlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.AlarmConfiguration.Alarms[_].Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartAssociationsOnce

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

StartAutomationExecution

enum_ExecutionMode := [ "Auto", "Interactive" ]

valid {
    input.Body.DocumentName == STRING
    input.Body.DocumentVersion == STRING
    input.Body.Parameters.STRING[_] == STRING
    input.Body.ClientToken == STRING
    input.Body.Mode == enum_ExecutionMode[_]
    input.Body.TargetParameterName == STRING
    input.Body.Targets[_].Key == STRING
    input.Body.Targets[_].Values[_] == STRING
    input.Body.TargetMaps[_].STRING[_] == STRING
    input.Body.MaxConcurrency == STRING
    input.Body.MaxErrors == STRING
    input.Body.TargetLocations[_].Accounts[_] == STRING
    input.Body.TargetLocations[_].Regions[_] == STRING
    input.Body.TargetLocations[_].TargetLocationMaxConcurrency == STRING
    input.Body.TargetLocations[_].TargetLocationMaxErrors == STRING
    input.Body.TargetLocations[_].ExecutionRoleName == STRING
    input.Body.TargetLocations[_].TargetLocationAlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.TargetLocations[_].TargetLocationAlarmConfiguration.Alarms[_].Name == STRING
    input.Body.TargetLocations[_].IncludeChildOrganizationUnits == BOOLEAN
    input.Body.TargetLocations[_].ExcludeAccounts[_] == STRING
    input.Body.TargetLocations[_].Targets[_].Key == STRING
    input.Body.TargetLocations[_].Targets[_].Values[_] == STRING
    input.Body.TargetLocations[_].TargetsMaxConcurrency == STRING
    input.Body.TargetLocations[_].TargetsMaxErrors == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.AlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.AlarmConfiguration.Alarms[_].Name == STRING
    input.Body.TargetLocationsURL == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartChangeRequestExecution

valid {
    input.Body.ScheduledTime == TIMESTAMP
    input.Body.DocumentName == STRING
    input.Body.DocumentVersion == STRING
    input.Body.Parameters.STRING[_] == STRING
    input.Body.ChangeRequestName == STRING
    input.Body.ClientToken == STRING
    input.Body.AutoApprove == BOOLEAN
    input.Body.Runbooks[_].DocumentName == STRING
    input.Body.Runbooks[_].DocumentVersion == STRING
    input.Body.Runbooks[_].Parameters.STRING[_] == STRING
    input.Body.Runbooks[_].TargetParameterName == STRING
    input.Body.Runbooks[_].Targets[_].Key == STRING
    input.Body.Runbooks[_].Targets[_].Values[_] == STRING
    input.Body.Runbooks[_].TargetMaps[_].STRING[_] == STRING
    input.Body.Runbooks[_].MaxConcurrency == STRING
    input.Body.Runbooks[_].MaxErrors == STRING
    input.Body.Runbooks[_].TargetLocations[_].Accounts[_] == STRING
    input.Body.Runbooks[_].TargetLocations[_].Regions[_] == STRING
    input.Body.Runbooks[_].TargetLocations[_].TargetLocationMaxConcurrency == STRING
    input.Body.Runbooks[_].TargetLocations[_].TargetLocationMaxErrors == STRING
    input.Body.Runbooks[_].TargetLocations[_].ExecutionRoleName == STRING
    input.Body.Runbooks[_].TargetLocations[_].TargetLocationAlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.Runbooks[_].TargetLocations[_].TargetLocationAlarmConfiguration.Alarms[_].Name == STRING
    input.Body.Runbooks[_].TargetLocations[_].IncludeChildOrganizationUnits == BOOLEAN
    input.Body.Runbooks[_].TargetLocations[_].ExcludeAccounts[_] == STRING
    input.Body.Runbooks[_].TargetLocations[_].Targets[_].Key == STRING
    input.Body.Runbooks[_].TargetLocations[_].Targets[_].Values[_] == STRING
    input.Body.Runbooks[_].TargetLocations[_].TargetsMaxConcurrency == STRING
    input.Body.Runbooks[_].TargetLocations[_].TargetsMaxErrors == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.ScheduledEndTime == TIMESTAMP
    input.Body.ChangeDetails == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartExecutionPreview

valid {
    input.Body.DocumentName == STRING
    input.Body.DocumentVersion == STRING
    input.Body.ExecutionInputs.Automation.Parameters.STRING[_] == STRING
    input.Body.ExecutionInputs.Automation.TargetParameterName == STRING
    input.Body.ExecutionInputs.Automation.Targets[_].Key == STRING
    input.Body.ExecutionInputs.Automation.Targets[_].Values[_] == STRING
    input.Body.ExecutionInputs.Automation.TargetMaps[_].STRING[_] == STRING
    input.Body.ExecutionInputs.Automation.TargetLocations[_].Accounts[_] == STRING
    input.Body.ExecutionInputs.Automation.TargetLocations[_].Regions[_] == STRING
    input.Body.ExecutionInputs.Automation.TargetLocations[_].TargetLocationMaxConcurrency == STRING
    input.Body.ExecutionInputs.Automation.TargetLocations[_].TargetLocationMaxErrors == STRING
    input.Body.ExecutionInputs.Automation.TargetLocations[_].ExecutionRoleName == STRING
    input.Body.ExecutionInputs.Automation.TargetLocations[_].TargetLocationAlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.ExecutionInputs.Automation.TargetLocations[_].TargetLocationAlarmConfiguration.Alarms[_].Name == STRING
    input.Body.ExecutionInputs.Automation.TargetLocations[_].IncludeChildOrganizationUnits == BOOLEAN
    input.Body.ExecutionInputs.Automation.TargetLocations[_].ExcludeAccounts[_] == STRING
    input.Body.ExecutionInputs.Automation.TargetLocations[_].Targets[_].Key == STRING
    input.Body.ExecutionInputs.Automation.TargetLocations[_].Targets[_].Values[_] == STRING
    input.Body.ExecutionInputs.Automation.TargetLocations[_].TargetsMaxConcurrency == STRING
    input.Body.ExecutionInputs.Automation.TargetLocations[_].TargetsMaxErrors == STRING
    input.Body.ExecutionInputs.Automation.TargetLocationsURL == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartSession

valid {
    input.Body.Target == STRING
    input.Body.DocumentName == STRING
    input.Body.Reason == STRING
    input.Body.Parameters.STRING[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopAutomationExecution

enum_StopType := [ "Complete", "Cancel" ]

valid {
    input.Body.AutomationExecutionId == STRING
    input.Body.Type == enum_StopType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TerminateSession

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

UnlabelParameterVersion

valid {
    input.Body.Name == STRING
    input.Body.ParameterVersion == LONG
    input.Body.Labels[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateAssociation

enum_AssociationComplianceSeverity := [ "CRITICAL", "HIGH", "MEDIUM", "LOW", "UNSPECIFIED" ]
enum_AssociationSyncCompliance := [ "AUTO", "MANUAL" ]

valid {
    input.Body.AssociationId == STRING
    input.Body.Parameters.STRING[_] == STRING
    input.Body.DocumentVersion == STRING
    input.Body.ScheduleExpression == STRING
    input.Body.OutputLocation.S3Location.OutputS3Region == STRING
    input.Body.OutputLocation.S3Location.OutputS3BucketName == STRING
    input.Body.OutputLocation.S3Location.OutputS3KeyPrefix == STRING
    input.Body.Name == STRING
    input.Body.Targets[_].Key == STRING
    input.Body.Targets[_].Values[_] == STRING
    input.Body.AssociationName == STRING
    input.Body.AssociationVersion == STRING
    input.Body.AutomationTargetParameterName == STRING
    input.Body.MaxErrors == STRING
    input.Body.MaxConcurrency == STRING
    input.Body.ComplianceSeverity == enum_AssociationComplianceSeverity[_]
    input.Body.SyncCompliance == enum_AssociationSyncCompliance[_]
    input.Body.ApplyOnlyAtCronInterval == BOOLEAN
    input.Body.CalendarNames[_] == STRING
    input.Body.TargetLocations[_].Accounts[_] == STRING
    input.Body.TargetLocations[_].Regions[_] == STRING
    input.Body.TargetLocations[_].TargetLocationMaxConcurrency == STRING
    input.Body.TargetLocations[_].TargetLocationMaxErrors == STRING
    input.Body.TargetLocations[_].ExecutionRoleName == STRING
    input.Body.TargetLocations[_].TargetLocationAlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.TargetLocations[_].TargetLocationAlarmConfiguration.Alarms[_].Name == STRING
    input.Body.TargetLocations[_].IncludeChildOrganizationUnits == BOOLEAN
    input.Body.TargetLocations[_].ExcludeAccounts[_] == STRING
    input.Body.TargetLocations[_].Targets[_].Key == STRING
    input.Body.TargetLocations[_].Targets[_].Values[_] == STRING
    input.Body.TargetLocations[_].TargetsMaxConcurrency == STRING
    input.Body.TargetLocations[_].TargetsMaxErrors == STRING
    input.Body.ScheduleOffset == INTEGER
    input.Body.Duration == INTEGER
    input.Body.TargetMaps[_].STRING[_] == STRING
    input.Body.AlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.AlarmConfiguration.Alarms[_].Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateAssociationStatus

enum_AssociationStatusName := [ "Pending", "Success", "Failed" ]

valid {
    input.Body.Name == STRING
    input.Body.InstanceId == STRING
    input.Body.AssociationStatus.Date == TIMESTAMP
    input.Body.AssociationStatus.Name == enum_AssociationStatusName[_]
    input.Body.AssociationStatus.Message == STRING
    input.Body.AssociationStatus.AdditionalInfo == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDocument

enum_AttachmentsSourceKey := [ "SourceUrl", "S3FileUrl", "AttachmentReference" ]
enum_DocumentFormat := [ "YAML", "JSON", "TEXT" ]

valid {
    input.Body.Content == STRING
    input.Body.Attachments[_].Key == enum_AttachmentsSourceKey[_]
    input.Body.Attachments[_].Values[_] == STRING
    input.Body.Attachments[_].Name == STRING
    input.Body.Name == STRING
    input.Body.DisplayName == STRING
    input.Body.VersionName == STRING
    input.Body.DocumentVersion == STRING
    input.Body.DocumentFormat == enum_DocumentFormat[_]
    input.Body.TargetType == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDocumentDefaultVersion

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

UpdateDocumentMetadata

enum_DocumentReviewAction := [ "SendForReview", "UpdateReview", "Approve", "Reject" ]
enum_DocumentReviewCommentType := [ "Comment" ]

valid {
    input.Body.Name == STRING
    input.Body.DocumentVersion == STRING
    input.Body.DocumentReviews.Action == enum_DocumentReviewAction[_]
    input.Body.DocumentReviews.Comment[_].Type == enum_DocumentReviewCommentType[_]
    input.Body.DocumentReviews.Comment[_].Content == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateMaintenanceWindow

valid {
    input.Body.WindowId == STRING
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.StartDate == STRING
    input.Body.EndDate == STRING
    input.Body.Schedule == STRING
    input.Body.ScheduleTimezone == STRING
    input.Body.ScheduleOffset == INTEGER
    input.Body.Duration == INTEGER
    input.Body.Cutoff == INTEGER
    input.Body.AllowUnassociatedTargets == BOOLEAN
    input.Body.Enabled == BOOLEAN
    input.Body.Replace == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateMaintenanceWindowTarget

valid {
    input.Body.WindowId == STRING
    input.Body.WindowTargetId == STRING
    input.Body.Targets[_].Key == STRING
    input.Body.Targets[_].Values[_] == STRING
    input.Body.OwnerInformation == STRING
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.Replace == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateMaintenanceWindowTask

enum_DocumentHashType := [ "Sha256", "Sha1" ]
enum_MaintenanceWindowTaskCutoffBehavior := [ "CONTINUE_TASK", "CANCEL_TASK" ]
enum_NotificationEvent := [ "All", "InProgress", "Success", "TimedOut", "Cancelled", "Failed" ]
enum_NotificationType := [ "Command", "Invocation" ]

valid {
    input.Body.WindowId == STRING
    input.Body.WindowTaskId == STRING
    input.Body.Targets[_].Key == STRING
    input.Body.Targets[_].Values[_] == STRING
    input.Body.TaskArn == STRING
    input.Body.ServiceRoleArn == STRING
    input.Body.TaskParameters.STRING.Values[_] == STRING
    input.Body.TaskInvocationParameters.RunCommand.Comment == STRING
    input.Body.TaskInvocationParameters.RunCommand.CloudWatchOutputConfig.CloudWatchLogGroupName == STRING
    input.Body.TaskInvocationParameters.RunCommand.CloudWatchOutputConfig.CloudWatchOutputEnabled == BOOLEAN
    input.Body.TaskInvocationParameters.RunCommand.DocumentHash == STRING
    input.Body.TaskInvocationParameters.RunCommand.DocumentHashType == enum_DocumentHashType[_]
    input.Body.TaskInvocationParameters.RunCommand.DocumentVersion == STRING
    input.Body.TaskInvocationParameters.RunCommand.NotificationConfig.NotificationArn == STRING
    input.Body.TaskInvocationParameters.RunCommand.NotificationConfig.NotificationEvents[_] == enum_NotificationEvent[_]
    input.Body.TaskInvocationParameters.RunCommand.NotificationConfig.NotificationType == enum_NotificationType[_]
    input.Body.TaskInvocationParameters.RunCommand.OutputS3BucketName == STRING
    input.Body.TaskInvocationParameters.RunCommand.OutputS3KeyPrefix == STRING
    input.Body.TaskInvocationParameters.RunCommand.Parameters.STRING[_] == STRING
    input.Body.TaskInvocationParameters.RunCommand.ServiceRoleArn == STRING
    input.Body.TaskInvocationParameters.RunCommand.TimeoutSeconds == INTEGER
    input.Body.TaskInvocationParameters.Automation.DocumentVersion == STRING
    input.Body.TaskInvocationParameters.Automation.Parameters.STRING[_] == STRING
    input.Body.TaskInvocationParameters.StepFunctions.Input == STRING
    input.Body.TaskInvocationParameters.StepFunctions.Name == STRING
    input.Body.TaskInvocationParameters.Lambda.ClientContext == STRING
    input.Body.TaskInvocationParameters.Lambda.Qualifier == STRING
    input.Body.TaskInvocationParameters.Lambda.Payload == BLOB
    input.Body.Priority == INTEGER
    input.Body.MaxConcurrency == STRING
    input.Body.MaxErrors == STRING
    input.Body.LoggingInfo.S3BucketName == STRING
    input.Body.LoggingInfo.S3KeyPrefix == STRING
    input.Body.LoggingInfo.S3Region == STRING
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.Replace == BOOLEAN
    input.Body.CutoffBehavior == enum_MaintenanceWindowTaskCutoffBehavior[_]
    input.Body.AlarmConfiguration.IgnorePollAlarmFailure == BOOLEAN
    input.Body.AlarmConfiguration.Alarms[_].Name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateManagedInstanceRole

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

UpdateOpsItem

enum_OpsItemDataType := [ "SearchableString", "String" ]
enum_OpsItemStatus := [ "Open", "InProgress", "Resolved", "Pending", "TimedOut", "Cancelling", "Cancelled", "Failed", "CompletedWithSuccess", "CompletedWithFailure", "Scheduled", "RunbookInProgress", "PendingChangeCalendarOverride", "ChangeCalendarOverrideApproved", "ChangeCalendarOverrideRejected", "PendingApproval", "Approved", "Rejected", "Closed" ]

valid {
    input.Body.Description == STRING
    input.Body.OperationalData.STRING.Value == STRING
    input.Body.OperationalData.STRING.Type == enum_OpsItemDataType[_]
    input.Body.OperationalDataToDelete[_] == STRING
    input.Body.Notifications[_].Arn == STRING
    input.Body.Priority == INTEGER
    input.Body.RelatedOpsItems[_].OpsItemId == STRING
    input.Body.Status == enum_OpsItemStatus[_]
    input.Body.OpsItemId == STRING
    input.Body.Title == STRING
    input.Body.Category == STRING
    input.Body.Severity == STRING
    input.Body.ActualStartTime == TIMESTAMP
    input.Body.ActualEndTime == TIMESTAMP
    input.Body.PlannedStartTime == TIMESTAMP
    input.Body.PlannedEndTime == TIMESTAMP
    input.Body.OpsItemArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateOpsMetadata

valid {
    input.Body.OpsMetadataArn == STRING
    input.Body.MetadataToUpdate.STRING.Value == STRING
    input.Body.KeysToDelete[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdatePatchBaseline

enum_PatchAction := [ "ALLOW_AS_DEPENDENCY", "BLOCK" ]
enum_PatchComplianceLevel := [ "CRITICAL", "HIGH", "MEDIUM", "LOW", "INFORMATIONAL", "UNSPECIFIED" ]
enum_PatchFilterKey := [ "ARCH", "ADVISORY_ID", "BUGZILLA_ID", "PATCH_SET", "PRODUCT", "PRODUCT_FAMILY", "CLASSIFICATION", "CVE_ID", "EPOCH", "MSRC_SEVERITY", "NAME", "PATCH_ID", "SECTION", "PRIORITY", "REPOSITORY", "RELEASE", "SEVERITY", "SECURITY", "VERSION" ]

valid {
    input.Body.BaselineId == STRING
    input.Body.Name == STRING
    input.Body.GlobalFilters.PatchFilters[_].Key == enum_PatchFilterKey[_]
    input.Body.GlobalFilters.PatchFilters[_].Values[_] == STRING
    input.Body.ApprovalRules.PatchRules[_].PatchFilterGroup.PatchFilters[_].Key == enum_PatchFilterKey[_]
    input.Body.ApprovalRules.PatchRules[_].PatchFilterGroup.PatchFilters[_].Values[_] == STRING
    input.Body.ApprovalRules.PatchRules[_].ComplianceLevel == enum_PatchComplianceLevel[_]
    input.Body.ApprovalRules.PatchRules[_].ApproveAfterDays == INTEGER
    input.Body.ApprovalRules.PatchRules[_].ApproveUntilDate == STRING
    input.Body.ApprovalRules.PatchRules[_].EnableNonSecurity == BOOLEAN
    input.Body.ApprovedPatches[_] == STRING
    input.Body.ApprovedPatchesComplianceLevel == enum_PatchComplianceLevel[_]
    input.Body.ApprovedPatchesEnableNonSecurity == BOOLEAN
    input.Body.RejectedPatches[_] == STRING
    input.Body.RejectedPatchesAction == enum_PatchAction[_]
    input.Body.Description == STRING
    input.Body.Sources[_].Name == STRING
    input.Body.Sources[_].Products[_] == STRING
    input.Body.Sources[_].Configuration == STRING
    input.Body.Replace == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateResourceDataSync

valid {
    input.Body.SyncName == STRING
    input.Body.SyncType == STRING
    input.Body.SyncSource.SourceType == STRING
    input.Body.SyncSource.AwsOrganizationsSource.OrganizationSourceType == STRING
    input.Body.SyncSource.AwsOrganizationsSource.OrganizationalUnits[_].OrganizationalUnitId == STRING
    input.Body.SyncSource.SourceRegions[_] == STRING
    input.Body.SyncSource.IncludeFutureRegions == BOOLEAN
    input.Body.SyncSource.EnableAllOpsDataSources == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateServiceSetting

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