CLOUDFORMATION

ActivateOrganizationsAccess

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

ActivateType

enum_ThirdPartyType := [ "RESOURCE", "MODULE", "HOOK" ]
enum_VersionBump := [ "MAJOR", "MINOR" ]

valid {
    input.Body.Type == enum_ThirdPartyType[_]
    input.Body.PublicTypeArn == STRING
    input.Body.PublisherId == STRING
    input.Body.TypeName == STRING
    input.Body.TypeNameAlias == STRING
    input.Body.AutoUpdate == BOOLEAN
    input.Body.LoggingConfig.LogRoleArn == STRING
    input.Body.LoggingConfig.LogGroupName == STRING
    input.Body.ExecutionRoleArn == STRING
    input.Body.VersionBump == enum_VersionBump[_]
    input.Body.MajorVersion == LONG
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchDescribeTypeConfigurations

enum_ThirdPartyType := [ "RESOURCE", "MODULE", "HOOK" ]

valid {
    input.Body.TypeConfigurationIdentifiers[_].TypeArn == STRING
    input.Body.TypeConfigurationIdentifiers[_].TypeConfigurationAlias == STRING
    input.Body.TypeConfigurationIdentifiers[_].TypeConfigurationArn == STRING
    input.Body.TypeConfigurationIdentifiers[_].Type == enum_ThirdPartyType[_]
    input.Body.TypeConfigurationIdentifiers[_].TypeName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CancelUpdateStack

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

ContinueUpdateRollback

valid {
    input.Body.StackName == STRING
    input.Body.RoleARN == STRING
    input.Body.ResourcesToSkip[_] == STRING
    input.Body.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateChangeSet

enum_Capability := [ "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND" ]
enum_ChangeSetType := [ "CREATE", "UPDATE", "IMPORT" ]
enum_OnStackFailure := [ "DO_NOTHING", "ROLLBACK", "DELETE" ]

valid {
    input.Body.StackName == STRING
    input.Body.TemplateBody == STRING
    input.Body.TemplateURL == STRING
    input.Body.UsePreviousTemplate == BOOLEAN
    input.Body.Parameters[_].ParameterKey == STRING
    input.Body.Parameters[_].ParameterValue == STRING
    input.Body.Parameters[_].UsePreviousValue == BOOLEAN
    input.Body.Parameters[_].ResolvedValue == STRING
    input.Body.Capabilities[_] == enum_Capability[_]
    input.Body.ResourceTypes[_] == STRING
    input.Body.RoleARN == STRING
    input.Body.RollbackConfiguration.RollbackTriggers[_].Arn == STRING
    input.Body.RollbackConfiguration.RollbackTriggers[_].Type == STRING
    input.Body.RollbackConfiguration.MonitoringTimeInMinutes == INTEGER
    input.Body.NotificationARNs[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.ChangeSetName == STRING
    input.Body.ClientToken == STRING
    input.Body.Description == STRING
    input.Body.ChangeSetType == enum_ChangeSetType[_]
    input.Body.ResourcesToImport[_].ResourceType == STRING
    input.Body.ResourcesToImport[_].LogicalResourceId == STRING
    input.Body.ResourcesToImport[_].ResourceIdentifier.STRING == STRING
    input.Body.IncludeNestedStacks == BOOLEAN
    input.Body.OnStackFailure == enum_OnStackFailure[_]
    input.Body.ImportExistingResources == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateGeneratedTemplate

enum_GeneratedTemplateDeletionPolicy := [ "DELETE", "RETAIN" ]
enum_GeneratedTemplateUpdateReplacePolicy := [ "DELETE", "RETAIN" ]

valid {
    input.Body.Resources[_].ResourceType == STRING
    input.Body.Resources[_].LogicalResourceId == STRING
    input.Body.Resources[_].ResourceIdentifier.STRING == STRING
    input.Body.GeneratedTemplateName == STRING
    input.Body.StackName == STRING
    input.Body.TemplateConfiguration.DeletionPolicy == enum_GeneratedTemplateDeletionPolicy[_]
    input.Body.TemplateConfiguration.UpdateReplacePolicy == enum_GeneratedTemplateUpdateReplacePolicy[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateStack

enum_Capability := [ "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND" ]
enum_OnFailure := [ "DO_NOTHING", "ROLLBACK", "DELETE" ]

valid {
    input.Body.StackName == STRING
    input.Body.TemplateBody == STRING
    input.Body.TemplateURL == STRING
    input.Body.Parameters[_].ParameterKey == STRING
    input.Body.Parameters[_].ParameterValue == STRING
    input.Body.Parameters[_].UsePreviousValue == BOOLEAN
    input.Body.Parameters[_].ResolvedValue == STRING
    input.Body.DisableRollback == BOOLEAN
    input.Body.RollbackConfiguration.RollbackTriggers[_].Arn == STRING
    input.Body.RollbackConfiguration.RollbackTriggers[_].Type == STRING
    input.Body.RollbackConfiguration.MonitoringTimeInMinutes == INTEGER
    input.Body.TimeoutInMinutes == INTEGER
    input.Body.NotificationARNs[_] == STRING
    input.Body.Capabilities[_] == enum_Capability[_]
    input.Body.ResourceTypes[_] == STRING
    input.Body.RoleARN == STRING
    input.Body.OnFailure == enum_OnFailure[_]
    input.Body.StackPolicyBody == STRING
    input.Body.StackPolicyURL == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.ClientRequestToken == STRING
    input.Body.EnableTerminationProtection == BOOLEAN
    input.Body.RetainExceptOnCreate == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateStackInstances

enum_AccountFilterType := [ "NONE", "INTERSECTION", "DIFFERENCE", "UNION" ]
enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]
enum_ConcurrencyMode := [ "STRICT_FAILURE_TOLERANCE", "SOFT_FAILURE_TOLERANCE" ]
enum_RegionConcurrencyType := [ "SEQUENTIAL", "PARALLEL" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.Accounts[_] == STRING
    input.Body.DeploymentTargets.Accounts[_] == STRING
    input.Body.DeploymentTargets.AccountsUrl == STRING
    input.Body.DeploymentTargets.OrganizationalUnitIds[_] == STRING
    input.Body.DeploymentTargets.AccountFilterType == enum_AccountFilterType[_]
    input.Body.Regions[_] == STRING
    input.Body.ParameterOverrides[_].ParameterKey == STRING
    input.Body.ParameterOverrides[_].ParameterValue == STRING
    input.Body.ParameterOverrides[_].UsePreviousValue == BOOLEAN
    input.Body.ParameterOverrides[_].ResolvedValue == STRING
    input.Body.OperationPreferences.RegionConcurrencyType == enum_RegionConcurrencyType[_]
    input.Body.OperationPreferences.RegionOrder[_] == STRING
    input.Body.OperationPreferences.FailureToleranceCount == INTEGER
    input.Body.OperationPreferences.FailureTolerancePercentage == INTEGER
    input.Body.OperationPreferences.MaxConcurrentCount == INTEGER
    input.Body.OperationPreferences.MaxConcurrentPercentage == INTEGER
    input.Body.OperationPreferences.ConcurrencyMode == enum_ConcurrencyMode[_]
    input.Body.OperationId == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateStackSet

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]
enum_Capability := [ "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND" ]
enum_PermissionModels := [ "SERVICE_MANAGED", "SELF_MANAGED" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.Description == STRING
    input.Body.TemplateBody == STRING
    input.Body.TemplateURL == STRING
    input.Body.StackId == STRING
    input.Body.Parameters[_].ParameterKey == STRING
    input.Body.Parameters[_].ParameterValue == STRING
    input.Body.Parameters[_].UsePreviousValue == BOOLEAN
    input.Body.Parameters[_].ResolvedValue == STRING
    input.Body.Capabilities[_] == enum_Capability[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.AdministrationRoleARN == STRING
    input.Body.ExecutionRoleName == STRING
    input.Body.PermissionModel == enum_PermissionModels[_]
    input.Body.AutoDeployment.Enabled == BOOLEAN
    input.Body.AutoDeployment.RetainStacksOnAccountRemoval == BOOLEAN
    input.Body.CallAs == enum_CallAs[_]
    input.Body.ClientRequestToken == STRING
    input.Body.ManagedExecution.Active == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeactivateOrganizationsAccess

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

DeactivateType

enum_ThirdPartyType := [ "RESOURCE", "MODULE", "HOOK" ]

valid {
    input.Body.TypeName == STRING
    input.Body.Type == enum_ThirdPartyType[_]
    input.Body.Arn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteChangeSet

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

DeleteGeneratedTemplate

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

DeleteStack

valid {
    input.Body.StackName == STRING
    input.Body.RetainResources[_] == STRING
    input.Body.RoleARN == STRING
    input.Body.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteStackInstances

enum_AccountFilterType := [ "NONE", "INTERSECTION", "DIFFERENCE", "UNION" ]
enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]
enum_ConcurrencyMode := [ "STRICT_FAILURE_TOLERANCE", "SOFT_FAILURE_TOLERANCE" ]
enum_RegionConcurrencyType := [ "SEQUENTIAL", "PARALLEL" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.Accounts[_] == STRING
    input.Body.DeploymentTargets.Accounts[_] == STRING
    input.Body.DeploymentTargets.AccountsUrl == STRING
    input.Body.DeploymentTargets.OrganizationalUnitIds[_] == STRING
    input.Body.DeploymentTargets.AccountFilterType == enum_AccountFilterType[_]
    input.Body.Regions[_] == STRING
    input.Body.OperationPreferences.RegionConcurrencyType == enum_RegionConcurrencyType[_]
    input.Body.OperationPreferences.RegionOrder[_] == STRING
    input.Body.OperationPreferences.FailureToleranceCount == INTEGER
    input.Body.OperationPreferences.FailureTolerancePercentage == INTEGER
    input.Body.OperationPreferences.MaxConcurrentCount == INTEGER
    input.Body.OperationPreferences.MaxConcurrentPercentage == INTEGER
    input.Body.OperationPreferences.ConcurrencyMode == enum_ConcurrencyMode[_]
    input.Body.RetainStacks == BOOLEAN
    input.Body.OperationId == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteStackSet

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeregisterType

enum_RegistryType := [ "RESOURCE", "MODULE", "HOOK" ]

valid {
    input.Body.Arn == STRING
    input.Body.Type == enum_RegistryType[_]
    input.Body.TypeName == STRING
    input.Body.VersionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeAccountLimits

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

DescribeChangeSet

valid {
    input.Body.ChangeSetName == STRING
    input.Body.StackName == STRING
    input.Body.NextToken == STRING
    input.Body.IncludePropertyValues == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeChangeSetHooks

valid {
    input.Body.ChangeSetName == STRING
    input.Body.StackName == STRING
    input.Body.NextToken == STRING
    input.Body.LogicalResourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeGeneratedTemplate

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

DescribeOrganizationsAccess

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]

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

DescribePublisher

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

DescribeResourceScan

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

DescribeStackDriftDetectionStatus

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

DescribeStackEvents

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

DescribeStackInstance

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.StackInstanceAccount == STRING
    input.Body.StackInstanceRegion == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeStackResource

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

DescribeStackResourceDrifts

enum_StackResourceDriftStatus := [ "IN_SYNC", "MODIFIED", "DELETED", "NOT_CHECKED" ]

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

DescribeStackResources

valid {
    input.Body.StackName == STRING
    input.Body.LogicalResourceId == STRING
    input.Body.PhysicalResourceId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeStackSet

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeStackSetOperation

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.OperationId == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeStacks

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

DescribeType

enum_RegistryType := [ "RESOURCE", "MODULE", "HOOK" ]

valid {
    input.Body.Type == enum_RegistryType[_]
    input.Body.TypeName == STRING
    input.Body.Arn == STRING
    input.Body.VersionId == STRING
    input.Body.PublisherId == STRING
    input.Body.PublicVersionNumber == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeTypeRegistration

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

DetectStackDrift

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

DetectStackResourceDrift

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

DetectStackSetDrift

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]
enum_ConcurrencyMode := [ "STRICT_FAILURE_TOLERANCE", "SOFT_FAILURE_TOLERANCE" ]
enum_RegionConcurrencyType := [ "SEQUENTIAL", "PARALLEL" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.OperationPreferences.RegionConcurrencyType == enum_RegionConcurrencyType[_]
    input.Body.OperationPreferences.RegionOrder[_] == STRING
    input.Body.OperationPreferences.FailureToleranceCount == INTEGER
    input.Body.OperationPreferences.FailureTolerancePercentage == INTEGER
    input.Body.OperationPreferences.MaxConcurrentCount == INTEGER
    input.Body.OperationPreferences.MaxConcurrentPercentage == INTEGER
    input.Body.OperationPreferences.ConcurrencyMode == enum_ConcurrencyMode[_]
    input.Body.OperationId == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EstimateTemplateCost

valid {
    input.Body.TemplateBody == STRING
    input.Body.TemplateURL == STRING
    input.Body.Parameters[_].ParameterKey == STRING
    input.Body.Parameters[_].ParameterValue == STRING
    input.Body.Parameters[_].UsePreviousValue == BOOLEAN
    input.Body.Parameters[_].ResolvedValue == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ExecuteChangeSet

valid {
    input.Body.ChangeSetName == STRING
    input.Body.StackName == STRING
    input.Body.ClientRequestToken == STRING
    input.Body.DisableRollback == BOOLEAN
    input.Body.RetainExceptOnCreate == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetGeneratedTemplate

enum_TemplateFormat := [ "JSON", "YAML" ]

valid {
    input.Body.Format == enum_TemplateFormat[_]
    input.Body.GeneratedTemplateName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetStackPolicy

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

GetTemplate

enum_TemplateStage := [ "Original", "Processed" ]

valid {
    input.Body.StackName == STRING
    input.Body.ChangeSetName == STRING
    input.Body.TemplateStage == enum_TemplateStage[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTemplateSummary

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]

valid {
    input.Body.TemplateBody == STRING
    input.Body.TemplateURL == STRING
    input.Body.StackName == STRING
    input.Body.StackSetName == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.Body.TemplateSummaryConfig.TreatUnrecognizedResourceTypesAsWarnings == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportStacksToStackSet

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]
enum_ConcurrencyMode := [ "STRICT_FAILURE_TOLERANCE", "SOFT_FAILURE_TOLERANCE" ]
enum_RegionConcurrencyType := [ "SEQUENTIAL", "PARALLEL" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.StackIds[_] == STRING
    input.Body.StackIdsUrl == STRING
    input.Body.OrganizationalUnitIds[_] == STRING
    input.Body.OperationPreferences.RegionConcurrencyType == enum_RegionConcurrencyType[_]
    input.Body.OperationPreferences.RegionOrder[_] == STRING
    input.Body.OperationPreferences.FailureToleranceCount == INTEGER
    input.Body.OperationPreferences.FailureTolerancePercentage == INTEGER
    input.Body.OperationPreferences.MaxConcurrentCount == INTEGER
    input.Body.OperationPreferences.MaxConcurrentPercentage == INTEGER
    input.Body.OperationPreferences.ConcurrencyMode == enum_ConcurrencyMode[_]
    input.Body.OperationId == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListChangeSets

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

ListExports

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

ListGeneratedTemplates

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

ListImports

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

ListResourceScanRelatedResources

valid {
    input.Body.ResourceScanId == STRING
    input.Body.Resources[_].ResourceType == STRING
    input.Body.Resources[_].ResourceIdentifier.STRING == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListResourceScanResources

valid {
    input.Body.ResourceScanId == STRING
    input.Body.ResourceIdentifier == STRING
    input.Body.ResourceTypePrefix == STRING
    input.Body.TagKey == STRING
    input.Body.TagValue == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListResourceScans

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

ListStackInstanceResourceDrifts

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]
enum_StackResourceDriftStatus := [ "IN_SYNC", "MODIFIED", "DELETED", "NOT_CHECKED" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.StackInstanceResourceDriftStatuses[_] == enum_StackResourceDriftStatus[_]
    input.Body.StackInstanceAccount == STRING
    input.Body.StackInstanceRegion == STRING
    input.Body.OperationId == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListStackInstances

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]
enum_StackInstanceFilterName := [ "DETAILED_STATUS", "LAST_OPERATION_ID", "DRIFT_STATUS" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.Filters[_].Name == enum_StackInstanceFilterName[_]
    input.Body.Filters[_].Values == STRING
    input.Body.StackInstanceAccount == STRING
    input.Body.StackInstanceRegion == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListStackResources

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

ListStackSetAutoDeploymentTargets

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]

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

ListStackSetOperationResults

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]
enum_OperationResultFilterName := [ "OPERATION_RESULT_STATUS" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.OperationId == STRING
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.CallAs == enum_CallAs[_]
    input.Body.Filters[_].Name == enum_OperationResultFilterName[_]
    input.Body.Filters[_].Values == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListStackSetOperations

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]

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

ListStackSets

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]
enum_StackSetStatus := [ "ACTIVE", "DELETED" ]

valid {
    input.Body.NextToken == STRING
    input.Body.MaxResults == INTEGER
    input.Body.Status == enum_StackSetStatus[_]
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListStacks

enum_StackStatus := [ "CREATE_IN_PROGRESS", "CREATE_FAILED", "CREATE_COMPLETE", "ROLLBACK_IN_PROGRESS", "ROLLBACK_FAILED", "ROLLBACK_COMPLETE", "DELETE_IN_PROGRESS", "DELETE_FAILED", "DELETE_COMPLETE", "UPDATE_IN_PROGRESS", "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS", "UPDATE_COMPLETE", "UPDATE_FAILED", "UPDATE_ROLLBACK_IN_PROGRESS", "UPDATE_ROLLBACK_FAILED", "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS", "UPDATE_ROLLBACK_COMPLETE", "REVIEW_IN_PROGRESS", "IMPORT_IN_PROGRESS", "IMPORT_COMPLETE", "IMPORT_ROLLBACK_IN_PROGRESS", "IMPORT_ROLLBACK_FAILED", "IMPORT_ROLLBACK_COMPLETE" ]

valid {
    input.Body.NextToken == STRING
    input.Body.StackStatusFilter[_] == enum_StackStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTypeRegistrations

enum_RegistrationStatus := [ "COMPLETE", "IN_PROGRESS", "FAILED" ]
enum_RegistryType := [ "RESOURCE", "MODULE", "HOOK" ]

valid {
    input.Body.Type == enum_RegistryType[_]
    input.Body.TypeName == STRING
    input.Body.TypeArn == STRING
    input.Body.RegistrationStatusFilter == enum_RegistrationStatus[_]
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTypeVersions

enum_DeprecatedStatus := [ "LIVE", "DEPRECATED" ]
enum_RegistryType := [ "RESOURCE", "MODULE", "HOOK" ]

valid {
    input.Body.Type == enum_RegistryType[_]
    input.Body.TypeName == STRING
    input.Body.Arn == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.Body.DeprecatedStatus == enum_DeprecatedStatus[_]
    input.Body.PublisherId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTypes

enum_Category := [ "REGISTERED", "ACTIVATED", "THIRD_PARTY", "AWS_TYPES" ]
enum_DeprecatedStatus := [ "LIVE", "DEPRECATED" ]
enum_ProvisioningType := [ "NON_PROVISIONABLE", "IMMUTABLE", "FULLY_MUTABLE" ]
enum_RegistryType := [ "RESOURCE", "MODULE", "HOOK" ]
enum_Visibility := [ "PUBLIC", "PRIVATE" ]

valid {
    input.Body.Visibility == enum_Visibility[_]
    input.Body.ProvisioningType == enum_ProvisioningType[_]
    input.Body.DeprecatedStatus == enum_DeprecatedStatus[_]
    input.Body.Type == enum_RegistryType[_]
    input.Body.Filters.Category == enum_Category[_]
    input.Body.Filters.PublisherId == STRING
    input.Body.Filters.TypeNamePrefix == STRING
    input.Body.MaxResults == INTEGER
    input.Body.NextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PublishType

enum_ThirdPartyType := [ "RESOURCE", "MODULE", "HOOK" ]

valid {
    input.Body.Type == enum_ThirdPartyType[_]
    input.Body.Arn == STRING
    input.Body.TypeName == STRING
    input.Body.PublicVersionNumber == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RecordHandlerProgress

enum_HandlerErrorCode := [ "NotUpdatable", "InvalidRequest", "AccessDenied", "InvalidCredentials", "AlreadyExists", "NotFound", "ResourceConflict", "Throttling", "ServiceLimitExceeded", "NotStabilized", "GeneralServiceException", "ServiceInternalError", "NetworkFailure", "InternalFailure", "InvalidTypeConfiguration", "HandlerInternalFailure", "NonCompliant", "Unknown", "UnsupportedTarget" ]
enum_OperationStatus := [ "PENDING", "IN_PROGRESS", "SUCCESS", "FAILED" ]

valid {
    input.Body.BearerToken == STRING
    input.Body.OperationStatus == enum_OperationStatus[_]
    input.Body.CurrentOperationStatus == enum_OperationStatus[_]
    input.Body.StatusMessage == STRING
    input.Body.ErrorCode == enum_HandlerErrorCode[_]
    input.Body.ResourceModel == STRING
    input.Body.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterPublisher

valid {
    input.Body.AcceptTermsAndConditions == BOOLEAN
    input.Body.ConnectionArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterType

enum_RegistryType := [ "RESOURCE", "MODULE", "HOOK" ]

valid {
    input.Body.Type == enum_RegistryType[_]
    input.Body.TypeName == STRING
    input.Body.SchemaHandlerPackage == STRING
    input.Body.LoggingConfig.LogRoleArn == STRING
    input.Body.LoggingConfig.LogGroupName == STRING
    input.Body.ExecutionRoleArn == STRING
    input.Body.ClientRequestToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RollbackStack

valid {
    input.Body.StackName == STRING
    input.Body.RoleARN == STRING
    input.Body.ClientRequestToken == STRING
    input.Body.RetainExceptOnCreate == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetStackPolicy

valid {
    input.Body.StackName == STRING
    input.Body.StackPolicyBody == STRING
    input.Body.StackPolicyURL == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetTypeConfiguration

enum_ThirdPartyType := [ "RESOURCE", "MODULE", "HOOK" ]

valid {
    input.Body.TypeArn == STRING
    input.Body.Configuration == STRING
    input.Body.ConfigurationAlias == STRING
    input.Body.TypeName == STRING
    input.Body.Type == enum_ThirdPartyType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetTypeDefaultVersion

enum_RegistryType := [ "RESOURCE", "MODULE", "HOOK" ]

valid {
    input.Body.Arn == STRING
    input.Body.Type == enum_RegistryType[_]
    input.Body.TypeName == STRING
    input.Body.VersionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SignalResource

enum_ResourceSignalStatus := [ "SUCCESS", "FAILURE" ]

valid {
    input.Body.StackName == STRING
    input.Body.LogicalResourceId == STRING
    input.Body.UniqueId == STRING
    input.Body.Status == enum_ResourceSignalStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartResourceScan

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

StopStackSetOperation

enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.OperationId == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TestType

enum_ThirdPartyType := [ "RESOURCE", "MODULE", "HOOK" ]

valid {
    input.Body.Arn == STRING
    input.Body.Type == enum_ThirdPartyType[_]
    input.Body.TypeName == STRING
    input.Body.VersionId == STRING
    input.Body.LogDeliveryBucket == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateGeneratedTemplate

enum_GeneratedTemplateDeletionPolicy := [ "DELETE", "RETAIN" ]
enum_GeneratedTemplateUpdateReplacePolicy := [ "DELETE", "RETAIN" ]

valid {
    input.Body.GeneratedTemplateName == STRING
    input.Body.NewGeneratedTemplateName == STRING
    input.Body.AddResources[_].ResourceType == STRING
    input.Body.AddResources[_].LogicalResourceId == STRING
    input.Body.AddResources[_].ResourceIdentifier.STRING == STRING
    input.Body.RemoveResources[_] == STRING
    input.Body.RefreshAllResources == BOOLEAN
    input.Body.TemplateConfiguration.DeletionPolicy == enum_GeneratedTemplateDeletionPolicy[_]
    input.Body.TemplateConfiguration.UpdateReplacePolicy == enum_GeneratedTemplateUpdateReplacePolicy[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateStack

enum_Capability := [ "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND" ]

valid {
    input.Body.StackName == STRING
    input.Body.TemplateBody == STRING
    input.Body.TemplateURL == STRING
    input.Body.UsePreviousTemplate == BOOLEAN
    input.Body.StackPolicyDuringUpdateBody == STRING
    input.Body.StackPolicyDuringUpdateURL == STRING
    input.Body.Parameters[_].ParameterKey == STRING
    input.Body.Parameters[_].ParameterValue == STRING
    input.Body.Parameters[_].UsePreviousValue == BOOLEAN
    input.Body.Parameters[_].ResolvedValue == STRING
    input.Body.Capabilities[_] == enum_Capability[_]
    input.Body.ResourceTypes[_] == STRING
    input.Body.RoleARN == STRING
    input.Body.RollbackConfiguration.RollbackTriggers[_].Arn == STRING
    input.Body.RollbackConfiguration.RollbackTriggers[_].Type == STRING
    input.Body.RollbackConfiguration.MonitoringTimeInMinutes == INTEGER
    input.Body.StackPolicyBody == STRING
    input.Body.StackPolicyURL == STRING
    input.Body.NotificationARNs[_] == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.DisableRollback == BOOLEAN
    input.Body.ClientRequestToken == STRING
    input.Body.RetainExceptOnCreate == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateStackInstances

enum_AccountFilterType := [ "NONE", "INTERSECTION", "DIFFERENCE", "UNION" ]
enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]
enum_ConcurrencyMode := [ "STRICT_FAILURE_TOLERANCE", "SOFT_FAILURE_TOLERANCE" ]
enum_RegionConcurrencyType := [ "SEQUENTIAL", "PARALLEL" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.Accounts[_] == STRING
    input.Body.DeploymentTargets.Accounts[_] == STRING
    input.Body.DeploymentTargets.AccountsUrl == STRING
    input.Body.DeploymentTargets.OrganizationalUnitIds[_] == STRING
    input.Body.DeploymentTargets.AccountFilterType == enum_AccountFilterType[_]
    input.Body.Regions[_] == STRING
    input.Body.ParameterOverrides[_].ParameterKey == STRING
    input.Body.ParameterOverrides[_].ParameterValue == STRING
    input.Body.ParameterOverrides[_].UsePreviousValue == BOOLEAN
    input.Body.ParameterOverrides[_].ResolvedValue == STRING
    input.Body.OperationPreferences.RegionConcurrencyType == enum_RegionConcurrencyType[_]
    input.Body.OperationPreferences.RegionOrder[_] == STRING
    input.Body.OperationPreferences.FailureToleranceCount == INTEGER
    input.Body.OperationPreferences.FailureTolerancePercentage == INTEGER
    input.Body.OperationPreferences.MaxConcurrentCount == INTEGER
    input.Body.OperationPreferences.MaxConcurrentPercentage == INTEGER
    input.Body.OperationPreferences.ConcurrencyMode == enum_ConcurrencyMode[_]
    input.Body.OperationId == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateStackSet

enum_AccountFilterType := [ "NONE", "INTERSECTION", "DIFFERENCE", "UNION" ]
enum_CallAs := [ "SELF", "DELEGATED_ADMIN" ]
enum_Capability := [ "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND" ]
enum_ConcurrencyMode := [ "STRICT_FAILURE_TOLERANCE", "SOFT_FAILURE_TOLERANCE" ]
enum_PermissionModels := [ "SERVICE_MANAGED", "SELF_MANAGED" ]
enum_RegionConcurrencyType := [ "SEQUENTIAL", "PARALLEL" ]

valid {
    input.Body.StackSetName == STRING
    input.Body.Description == STRING
    input.Body.TemplateBody == STRING
    input.Body.TemplateURL == STRING
    input.Body.UsePreviousTemplate == BOOLEAN
    input.Body.Parameters[_].ParameterKey == STRING
    input.Body.Parameters[_].ParameterValue == STRING
    input.Body.Parameters[_].UsePreviousValue == BOOLEAN
    input.Body.Parameters[_].ResolvedValue == STRING
    input.Body.Capabilities[_] == enum_Capability[_]
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.OperationPreferences.RegionConcurrencyType == enum_RegionConcurrencyType[_]
    input.Body.OperationPreferences.RegionOrder[_] == STRING
    input.Body.OperationPreferences.FailureToleranceCount == INTEGER
    input.Body.OperationPreferences.FailureTolerancePercentage == INTEGER
    input.Body.OperationPreferences.MaxConcurrentCount == INTEGER
    input.Body.OperationPreferences.MaxConcurrentPercentage == INTEGER
    input.Body.OperationPreferences.ConcurrencyMode == enum_ConcurrencyMode[_]
    input.Body.AdministrationRoleARN == STRING
    input.Body.ExecutionRoleName == STRING
    input.Body.DeploymentTargets.Accounts[_] == STRING
    input.Body.DeploymentTargets.AccountsUrl == STRING
    input.Body.DeploymentTargets.OrganizationalUnitIds[_] == STRING
    input.Body.DeploymentTargets.AccountFilterType == enum_AccountFilterType[_]
    input.Body.PermissionModel == enum_PermissionModels[_]
    input.Body.AutoDeployment.Enabled == BOOLEAN
    input.Body.AutoDeployment.RetainStacksOnAccountRemoval == BOOLEAN
    input.Body.OperationId == STRING
    input.Body.Accounts[_] == STRING
    input.Body.Regions[_] == STRING
    input.Body.CallAs == enum_CallAs[_]
    input.Body.ManagedExecution.Active == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTerminationProtection

valid {
    input.Body.EnableTerminationProtection == BOOLEAN
    input.Body.StackName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ValidateTemplate

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