IMAGEBUILDER

CancelImageCreation

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

CancelLifecycleExecution

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

CreateComponent

enum_Platform := [ "Windows", "Linux", "macOS" ]

valid {
    input.Body.name == STRING
    input.Body.semanticVersion == STRING
    input.Body.description == STRING
    input.Body.changeDescription == STRING
    input.Body.platform == enum_Platform[_]
    input.Body.supportedOsVersions[_] == STRING
    input.Body.data == STRING
    input.Body.uri == STRING
    input.Body.kmsKeyId == STRING
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateContainerRecipe

enum_ContainerRepositoryService := [ "ECR" ]
enum_ContainerType := [ "DOCKER" ]
enum_EbsVolumeType := [ "standard", "io1", "io2", "gp2", "gp3", "sc1", "st1" ]
enum_Platform := [ "Windows", "Linux", "macOS" ]

valid {
    input.Body.containerType == enum_ContainerType[_]
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.semanticVersion == STRING
    input.Body.components[_].componentArn == STRING
    input.Body.components[_].parameters[_].name == STRING
    input.Body.components[_].parameters[_].value[_] == STRING
    input.Body.instanceConfiguration.image == STRING
    input.Body.instanceConfiguration.blockDeviceMappings[_].deviceName == STRING
    input.Body.instanceConfiguration.blockDeviceMappings[_].ebs.encrypted == BOOLEAN
    input.Body.instanceConfiguration.blockDeviceMappings[_].ebs.deleteOnTermination == BOOLEAN
    input.Body.instanceConfiguration.blockDeviceMappings[_].ebs.iops == INTEGER
    input.Body.instanceConfiguration.blockDeviceMappings[_].ebs.kmsKeyId == STRING
    input.Body.instanceConfiguration.blockDeviceMappings[_].ebs.snapshotId == STRING
    input.Body.instanceConfiguration.blockDeviceMappings[_].ebs.volumeSize == INTEGER
    input.Body.instanceConfiguration.blockDeviceMappings[_].ebs.volumeType == enum_EbsVolumeType[_]
    input.Body.instanceConfiguration.blockDeviceMappings[_].ebs.throughput == INTEGER
    input.Body.instanceConfiguration.blockDeviceMappings[_].virtualName == STRING
    input.Body.instanceConfiguration.blockDeviceMappings[_].noDevice == STRING
    input.Body.dockerfileTemplateData == STRING
    input.Body.dockerfileTemplateUri == STRING
    input.Body.platformOverride == enum_Platform[_]
    input.Body.imageOsVersionOverride == STRING
    input.Body.parentImage == STRING
    input.Body.tags.STRING == STRING
    input.Body.workingDirectory == STRING
    input.Body.targetRepository.service == enum_ContainerRepositoryService[_]
    input.Body.targetRepository.repositoryName == STRING
    input.Body.kmsKeyId == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDistributionConfiguration

enum_ContainerRepositoryService := [ "ECR" ]
enum_DiskImageFormat := [ "VMDK", "RAW", "VHD" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.distributions[_].region == STRING
    input.Body.distributions[_].amiDistributionConfiguration.name == STRING
    input.Body.distributions[_].amiDistributionConfiguration.description == STRING
    input.Body.distributions[_].amiDistributionConfiguration.targetAccountIds[_] == STRING
    input.Body.distributions[_].amiDistributionConfiguration.amiTags.STRING == STRING
    input.Body.distributions[_].amiDistributionConfiguration.kmsKeyId == STRING
    input.Body.distributions[_].amiDistributionConfiguration.launchPermission.userIds[_] == STRING
    input.Body.distributions[_].amiDistributionConfiguration.launchPermission.userGroups[_] == STRING
    input.Body.distributions[_].amiDistributionConfiguration.launchPermission.organizationArns[_] == STRING
    input.Body.distributions[_].amiDistributionConfiguration.launchPermission.organizationalUnitArns[_] == STRING
    input.Body.distributions[_].containerDistributionConfiguration.description == STRING
    input.Body.distributions[_].containerDistributionConfiguration.containerTags[_] == STRING
    input.Body.distributions[_].containerDistributionConfiguration.targetRepository.service == enum_ContainerRepositoryService[_]
    input.Body.distributions[_].containerDistributionConfiguration.targetRepository.repositoryName == STRING
    input.Body.distributions[_].licenseConfigurationArns[_] == STRING
    input.Body.distributions[_].launchTemplateConfigurations[_].launchTemplateId == STRING
    input.Body.distributions[_].launchTemplateConfigurations[_].accountId == STRING
    input.Body.distributions[_].launchTemplateConfigurations[_].setDefaultVersion == BOOLEAN
    input.Body.distributions[_].s3ExportConfiguration.roleName == STRING
    input.Body.distributions[_].s3ExportConfiguration.diskImageFormat == enum_DiskImageFormat[_]
    input.Body.distributions[_].s3ExportConfiguration.s3Bucket == STRING
    input.Body.distributions[_].s3ExportConfiguration.s3Prefix == STRING
    input.Body.distributions[_].fastLaunchConfigurations[_].enabled == BOOLEAN
    input.Body.distributions[_].fastLaunchConfigurations[_].snapshotConfiguration.targetResourceCount == INTEGER
    input.Body.distributions[_].fastLaunchConfigurations[_].maxParallelLaunches == INTEGER
    input.Body.distributions[_].fastLaunchConfigurations[_].launchTemplate.launchTemplateId == STRING
    input.Body.distributions[_].fastLaunchConfigurations[_].launchTemplate.launchTemplateName == STRING
    input.Body.distributions[_].fastLaunchConfigurations[_].launchTemplate.launchTemplateVersion == STRING
    input.Body.distributions[_].fastLaunchConfigurations[_].accountId == STRING
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateImage

enum_OnWorkflowFailure := [ "CONTINUE", "ABORT" ]

valid {
    input.Body.imageRecipeArn == STRING
    input.Body.containerRecipeArn == STRING
    input.Body.distributionConfigurationArn == STRING
    input.Body.infrastructureConfigurationArn == STRING
    input.Body.imageTestsConfiguration.imageTestsEnabled == BOOLEAN
    input.Body.imageTestsConfiguration.timeoutMinutes == INTEGER
    input.Body.enhancedImageMetadataEnabled == BOOLEAN
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.Body.imageScanningConfiguration.imageScanningEnabled == BOOLEAN
    input.Body.imageScanningConfiguration.ecrConfiguration.repositoryName == STRING
    input.Body.imageScanningConfiguration.ecrConfiguration.containerTags[_] == STRING
    input.Body.workflows[_].workflowArn == STRING
    input.Body.workflows[_].parameters[_].name == STRING
    input.Body.workflows[_].parameters[_].value[_] == STRING
    input.Body.workflows[_].parallelGroup == STRING
    input.Body.workflows[_].onFailure == enum_OnWorkflowFailure[_]
    input.Body.executionRole == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateImagePipeline

enum_OnWorkflowFailure := [ "CONTINUE", "ABORT" ]
enum_PipelineExecutionStartCondition := [ "EXPRESSION_MATCH_ONLY", "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" ]
enum_PipelineStatus := [ "DISABLED", "ENABLED" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.imageRecipeArn == STRING
    input.Body.containerRecipeArn == STRING
    input.Body.infrastructureConfigurationArn == STRING
    input.Body.distributionConfigurationArn == STRING
    input.Body.imageTestsConfiguration.imageTestsEnabled == BOOLEAN
    input.Body.imageTestsConfiguration.timeoutMinutes == INTEGER
    input.Body.enhancedImageMetadataEnabled == BOOLEAN
    input.Body.schedule.scheduleExpression == STRING
    input.Body.schedule.timezone == STRING
    input.Body.schedule.pipelineExecutionStartCondition == enum_PipelineExecutionStartCondition[_]
    input.Body.status == enum_PipelineStatus[_]
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.Body.imageScanningConfiguration.imageScanningEnabled == BOOLEAN
    input.Body.imageScanningConfiguration.ecrConfiguration.repositoryName == STRING
    input.Body.imageScanningConfiguration.ecrConfiguration.containerTags[_] == STRING
    input.Body.workflows[_].workflowArn == STRING
    input.Body.workflows[_].parameters[_].name == STRING
    input.Body.workflows[_].parameters[_].value[_] == STRING
    input.Body.workflows[_].parallelGroup == STRING
    input.Body.workflows[_].onFailure == enum_OnWorkflowFailure[_]
    input.Body.executionRole == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateImageRecipe

enum_EbsVolumeType := [ "standard", "io1", "io2", "gp2", "gp3", "sc1", "st1" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.semanticVersion == STRING
    input.Body.components[_].componentArn == STRING
    input.Body.components[_].parameters[_].name == STRING
    input.Body.components[_].parameters[_].value[_] == STRING
    input.Body.parentImage == STRING
    input.Body.blockDeviceMappings[_].deviceName == STRING
    input.Body.blockDeviceMappings[_].ebs.encrypted == BOOLEAN
    input.Body.blockDeviceMappings[_].ebs.deleteOnTermination == BOOLEAN
    input.Body.blockDeviceMappings[_].ebs.iops == INTEGER
    input.Body.blockDeviceMappings[_].ebs.kmsKeyId == STRING
    input.Body.blockDeviceMappings[_].ebs.snapshotId == STRING
    input.Body.blockDeviceMappings[_].ebs.volumeSize == INTEGER
    input.Body.blockDeviceMappings[_].ebs.volumeType == enum_EbsVolumeType[_]
    input.Body.blockDeviceMappings[_].ebs.throughput == INTEGER
    input.Body.blockDeviceMappings[_].virtualName == STRING
    input.Body.blockDeviceMappings[_].noDevice == STRING
    input.Body.tags.STRING == STRING
    input.Body.workingDirectory == STRING
    input.Body.additionalInstanceConfiguration.systemsManagerAgent.uninstallAfterBuild == BOOLEAN
    input.Body.additionalInstanceConfiguration.userDataOverride == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateInfrastructureConfiguration

enum_TenancyType := [ "default", "dedicated", "host" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.instanceTypes[_] == STRING
    input.Body.instanceProfileName == STRING
    input.Body.securityGroupIds[_] == STRING
    input.Body.subnetId == STRING
    input.Body.logging.s3Logs.s3BucketName == STRING
    input.Body.logging.s3Logs.s3KeyPrefix == STRING
    input.Body.keyPair == STRING
    input.Body.terminateInstanceOnFailure == BOOLEAN
    input.Body.snsTopicArn == STRING
    input.Body.resourceTags.STRING == STRING
    input.Body.instanceMetadataOptions.httpTokens == STRING
    input.Body.instanceMetadataOptions.httpPutResponseHopLimit == INTEGER
    input.Body.tags.STRING == STRING
    input.Body.placement.availabilityZone == STRING
    input.Body.placement.tenancy == enum_TenancyType[_]
    input.Body.placement.hostId == STRING
    input.Body.placement.hostResourceGroupArn == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateLifecyclePolicy

enum_LifecyclePolicyDetailActionType := [ "DELETE", "DEPRECATE", "DISABLE" ]
enum_LifecyclePolicyDetailFilterType := [ "AGE", "COUNT" ]
enum_LifecyclePolicyResourceType := [ "AMI_IMAGE", "CONTAINER_IMAGE" ]
enum_LifecyclePolicyStatus := [ "DISABLED", "ENABLED" ]
enum_LifecyclePolicyTimeUnit := [ "DAYS", "WEEKS", "MONTHS", "YEARS" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.status == enum_LifecyclePolicyStatus[_]
    input.Body.executionRole == STRING
    input.Body.resourceType == enum_LifecyclePolicyResourceType[_]
    input.Body.policyDetails[_].action.type == enum_LifecyclePolicyDetailActionType[_]
    input.Body.policyDetails[_].action.includeResources.amis == BOOLEAN
    input.Body.policyDetails[_].action.includeResources.snapshots == BOOLEAN
    input.Body.policyDetails[_].action.includeResources.containers == BOOLEAN
    input.Body.policyDetails[_].filter.type == enum_LifecyclePolicyDetailFilterType[_]
    input.Body.policyDetails[_].filter.value == INTEGER
    input.Body.policyDetails[_].filter.unit == enum_LifecyclePolicyTimeUnit[_]
    input.Body.policyDetails[_].filter.retainAtLeast == INTEGER
    input.Body.policyDetails[_].exclusionRules.tagMap.STRING == STRING
    input.Body.policyDetails[_].exclusionRules.amis.isPublic == BOOLEAN
    input.Body.policyDetails[_].exclusionRules.amis.regions[_] == STRING
    input.Body.policyDetails[_].exclusionRules.amis.sharedAccounts[_] == STRING
    input.Body.policyDetails[_].exclusionRules.amis.lastLaunched.value == INTEGER
    input.Body.policyDetails[_].exclusionRules.amis.lastLaunched.unit == enum_LifecyclePolicyTimeUnit[_]
    input.Body.policyDetails[_].exclusionRules.amis.tagMap.STRING == STRING
    input.Body.resourceSelection.recipes[_].name == STRING
    input.Body.resourceSelection.recipes[_].semanticVersion == STRING
    input.Body.resourceSelection.tagMap.STRING == STRING
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWorkflow

enum_WorkflowType := [ "BUILD", "TEST", "DISTRIBUTION" ]

valid {
    input.Body.name == STRING
    input.Body.semanticVersion == STRING
    input.Body.description == STRING
    input.Body.changeDescription == STRING
    input.Body.data == STRING
    input.Body.uri == STRING
    input.Body.kmsKeyId == STRING
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.Body.type == enum_WorkflowType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteComponent

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

DeleteContainerRecipe

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

DeleteDistributionConfiguration

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

DeleteImage

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

DeleteImagePipeline

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

DeleteImageRecipe

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

DeleteInfrastructureConfiguration

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

DeleteLifecyclePolicy

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

DeleteWorkflow

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

GetComponent

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

GetComponentPolicy

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

GetContainerRecipe

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

GetContainerRecipePolicy

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

GetDistributionConfiguration

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

GetImage

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

GetImagePipeline

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

GetImagePolicy

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

GetImageRecipe

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

GetImageRecipePolicy

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

GetInfrastructureConfiguration

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

GetLifecycleExecution

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

GetLifecyclePolicy

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

GetWorkflow

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

GetWorkflowExecution

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

GetWorkflowStepExecution

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

ImportComponent

enum_ComponentFormat := [ "SHELL" ]
enum_ComponentType := [ "BUILD", "TEST" ]
enum_Platform := [ "Windows", "Linux", "macOS" ]

valid {
    input.Body.name == STRING
    input.Body.semanticVersion == STRING
    input.Body.description == STRING
    input.Body.changeDescription == STRING
    input.Body.type == enum_ComponentType[_]
    input.Body.format == enum_ComponentFormat[_]
    input.Body.platform == enum_Platform[_]
    input.Body.data == STRING
    input.Body.uri == STRING
    input.Body.kmsKeyId == STRING
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ImportVmImage

enum_Platform := [ "Windows", "Linux", "macOS" ]

valid {
    input.Body.name == STRING
    input.Body.semanticVersion == STRING
    input.Body.description == STRING
    input.Body.platform == enum_Platform[_]
    input.Body.osVersion == STRING
    input.Body.vmImportTaskId == STRING
    input.Body.tags.STRING == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListComponentBuildVersions

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

ListComponents

enum_Ownership := [ "Self", "Shared", "Amazon", "ThirdParty" ]

valid {
    input.Body.owner == enum_Ownership[_]
    input.Body.filters[_].name == STRING
    input.Body.filters[_].values[_] == STRING
    input.Body.byName == BOOLEAN
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListContainerRecipes

enum_Ownership := [ "Self", "Shared", "Amazon", "ThirdParty" ]

valid {
    input.Body.owner == enum_Ownership[_]
    input.Body.filters[_].name == 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
}

ListDistributionConfigurations

valid {
    input.Body.filters[_].name == 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
}

ListImageBuildVersions

valid {
    input.Body.imageVersionArn == STRING
    input.Body.filters[_].name == 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
}

ListImagePackages

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

ListImagePipelineImages

valid {
    input.Body.imagePipelineArn == STRING
    input.Body.filters[_].name == 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
}

ListImagePipelines

valid {
    input.Body.filters[_].name == 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
}

ListImageRecipes

enum_Ownership := [ "Self", "Shared", "Amazon", "ThirdParty" ]

valid {
    input.Body.owner == enum_Ownership[_]
    input.Body.filters[_].name == 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
}

ListImageScanFindingAggregations

valid {
    input.Body.filter.name == STRING
    input.Body.filter.values[_] == STRING
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListImageScanFindings

valid {
    input.Body.filters[_].name == 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
}

ListImages

enum_Ownership := [ "Self", "Shared", "Amazon", "ThirdParty" ]

valid {
    input.Body.owner == enum_Ownership[_]
    input.Body.filters[_].name == STRING
    input.Body.filters[_].values[_] == STRING
    input.Body.byName == BOOLEAN
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.Body.includeDeprecated == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListInfrastructureConfigurations

valid {
    input.Body.filters[_].name == 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
}

ListLifecycleExecutionResources

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

ListLifecycleExecutions

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

ListLifecyclePolicies

valid {
    input.Body.filters[_].name == 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
}

ListTagsForResource

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

ListWaitingWorkflowSteps

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

ListWorkflowBuildVersions

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

ListWorkflowExecutions

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

ListWorkflowStepExecutions

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

ListWorkflows

enum_Ownership := [ "Self", "Shared", "Amazon", "ThirdParty" ]

valid {
    input.Body.owner == enum_Ownership[_]
    input.Body.filters[_].name == STRING
    input.Body.filters[_].values[_] == STRING
    input.Body.byName == BOOLEAN
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutComponentPolicy

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

PutContainerRecipePolicy

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

PutImagePolicy

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

PutImageRecipePolicy

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

SendWorkflowStepAction

enum_WorkflowStepActionType := [ "RESUME", "STOP" ]

valid {
    input.Body.stepExecutionId == STRING
    input.Body.imageBuildVersionArn == STRING
    input.Body.action == enum_WorkflowStepActionType[_]
    input.Body.reason == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartImagePipelineExecution

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

StartResourceStateUpdate

enum_LifecyclePolicyTimeUnit := [ "DAYS", "WEEKS", "MONTHS", "YEARS" ]
enum_ResourceStatus := [ "AVAILABLE", "DELETED", "DEPRECATED", "DISABLED" ]

valid {
    input.Body.resourceArn == STRING
    input.Body.state.status == enum_ResourceStatus[_]
    input.Body.executionRole == STRING
    input.Body.includeResources.amis == BOOLEAN
    input.Body.includeResources.snapshots == BOOLEAN
    input.Body.includeResources.containers == BOOLEAN
    input.Body.exclusionRules.amis.isPublic == BOOLEAN
    input.Body.exclusionRules.amis.regions[_] == STRING
    input.Body.exclusionRules.amis.sharedAccounts[_] == STRING
    input.Body.exclusionRules.amis.lastLaunched.value == INTEGER
    input.Body.exclusionRules.amis.lastLaunched.unit == enum_LifecyclePolicyTimeUnit[_]
    input.Body.exclusionRules.amis.tagMap.STRING == STRING
    input.Body.updateAt == TIMESTAMP
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

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

UntagResource

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

UpdateDistributionConfiguration

enum_ContainerRepositoryService := [ "ECR" ]
enum_DiskImageFormat := [ "VMDK", "RAW", "VHD" ]

valid {
    input.Body.distributionConfigurationArn == STRING
    input.Body.description == STRING
    input.Body.distributions[_].region == STRING
    input.Body.distributions[_].amiDistributionConfiguration.name == STRING
    input.Body.distributions[_].amiDistributionConfiguration.description == STRING
    input.Body.distributions[_].amiDistributionConfiguration.targetAccountIds[_] == STRING
    input.Body.distributions[_].amiDistributionConfiguration.amiTags.STRING == STRING
    input.Body.distributions[_].amiDistributionConfiguration.kmsKeyId == STRING
    input.Body.distributions[_].amiDistributionConfiguration.launchPermission.userIds[_] == STRING
    input.Body.distributions[_].amiDistributionConfiguration.launchPermission.userGroups[_] == STRING
    input.Body.distributions[_].amiDistributionConfiguration.launchPermission.organizationArns[_] == STRING
    input.Body.distributions[_].amiDistributionConfiguration.launchPermission.organizationalUnitArns[_] == STRING
    input.Body.distributions[_].containerDistributionConfiguration.description == STRING
    input.Body.distributions[_].containerDistributionConfiguration.containerTags[_] == STRING
    input.Body.distributions[_].containerDistributionConfiguration.targetRepository.service == enum_ContainerRepositoryService[_]
    input.Body.distributions[_].containerDistributionConfiguration.targetRepository.repositoryName == STRING
    input.Body.distributions[_].licenseConfigurationArns[_] == STRING
    input.Body.distributions[_].launchTemplateConfigurations[_].launchTemplateId == STRING
    input.Body.distributions[_].launchTemplateConfigurations[_].accountId == STRING
    input.Body.distributions[_].launchTemplateConfigurations[_].setDefaultVersion == BOOLEAN
    input.Body.distributions[_].s3ExportConfiguration.roleName == STRING
    input.Body.distributions[_].s3ExportConfiguration.diskImageFormat == enum_DiskImageFormat[_]
    input.Body.distributions[_].s3ExportConfiguration.s3Bucket == STRING
    input.Body.distributions[_].s3ExportConfiguration.s3Prefix == STRING
    input.Body.distributions[_].fastLaunchConfigurations[_].enabled == BOOLEAN
    input.Body.distributions[_].fastLaunchConfigurations[_].snapshotConfiguration.targetResourceCount == INTEGER
    input.Body.distributions[_].fastLaunchConfigurations[_].maxParallelLaunches == INTEGER
    input.Body.distributions[_].fastLaunchConfigurations[_].launchTemplate.launchTemplateId == STRING
    input.Body.distributions[_].fastLaunchConfigurations[_].launchTemplate.launchTemplateName == STRING
    input.Body.distributions[_].fastLaunchConfigurations[_].launchTemplate.launchTemplateVersion == STRING
    input.Body.distributions[_].fastLaunchConfigurations[_].accountId == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateImagePipeline

enum_OnWorkflowFailure := [ "CONTINUE", "ABORT" ]
enum_PipelineExecutionStartCondition := [ "EXPRESSION_MATCH_ONLY", "EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE" ]
enum_PipelineStatus := [ "DISABLED", "ENABLED" ]

valid {
    input.Body.imagePipelineArn == STRING
    input.Body.description == STRING
    input.Body.imageRecipeArn == STRING
    input.Body.containerRecipeArn == STRING
    input.Body.infrastructureConfigurationArn == STRING
    input.Body.distributionConfigurationArn == STRING
    input.Body.imageTestsConfiguration.imageTestsEnabled == BOOLEAN
    input.Body.imageTestsConfiguration.timeoutMinutes == INTEGER
    input.Body.enhancedImageMetadataEnabled == BOOLEAN
    input.Body.schedule.scheduleExpression == STRING
    input.Body.schedule.timezone == STRING
    input.Body.schedule.pipelineExecutionStartCondition == enum_PipelineExecutionStartCondition[_]
    input.Body.status == enum_PipelineStatus[_]
    input.Body.clientToken == STRING
    input.Body.imageScanningConfiguration.imageScanningEnabled == BOOLEAN
    input.Body.imageScanningConfiguration.ecrConfiguration.repositoryName == STRING
    input.Body.imageScanningConfiguration.ecrConfiguration.containerTags[_] == STRING
    input.Body.workflows[_].workflowArn == STRING
    input.Body.workflows[_].parameters[_].name == STRING
    input.Body.workflows[_].parameters[_].value[_] == STRING
    input.Body.workflows[_].parallelGroup == STRING
    input.Body.workflows[_].onFailure == enum_OnWorkflowFailure[_]
    input.Body.executionRole == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateInfrastructureConfiguration

enum_TenancyType := [ "default", "dedicated", "host" ]

valid {
    input.Body.infrastructureConfigurationArn == STRING
    input.Body.description == STRING
    input.Body.instanceTypes[_] == STRING
    input.Body.instanceProfileName == STRING
    input.Body.securityGroupIds[_] == STRING
    input.Body.subnetId == STRING
    input.Body.logging.s3Logs.s3BucketName == STRING
    input.Body.logging.s3Logs.s3KeyPrefix == STRING
    input.Body.keyPair == STRING
    input.Body.terminateInstanceOnFailure == BOOLEAN
    input.Body.snsTopicArn == STRING
    input.Body.resourceTags.STRING == STRING
    input.Body.instanceMetadataOptions.httpTokens == STRING
    input.Body.instanceMetadataOptions.httpPutResponseHopLimit == INTEGER
    input.Body.placement.availabilityZone == STRING
    input.Body.placement.tenancy == enum_TenancyType[_]
    input.Body.placement.hostId == STRING
    input.Body.placement.hostResourceGroupArn == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateLifecyclePolicy

enum_LifecyclePolicyDetailActionType := [ "DELETE", "DEPRECATE", "DISABLE" ]
enum_LifecyclePolicyDetailFilterType := [ "AGE", "COUNT" ]
enum_LifecyclePolicyResourceType := [ "AMI_IMAGE", "CONTAINER_IMAGE" ]
enum_LifecyclePolicyStatus := [ "DISABLED", "ENABLED" ]
enum_LifecyclePolicyTimeUnit := [ "DAYS", "WEEKS", "MONTHS", "YEARS" ]

valid {
    input.Body.lifecyclePolicyArn == STRING
    input.Body.description == STRING
    input.Body.status == enum_LifecyclePolicyStatus[_]
    input.Body.executionRole == STRING
    input.Body.resourceType == enum_LifecyclePolicyResourceType[_]
    input.Body.policyDetails[_].action.type == enum_LifecyclePolicyDetailActionType[_]
    input.Body.policyDetails[_].action.includeResources.amis == BOOLEAN
    input.Body.policyDetails[_].action.includeResources.snapshots == BOOLEAN
    input.Body.policyDetails[_].action.includeResources.containers == BOOLEAN
    input.Body.policyDetails[_].filter.type == enum_LifecyclePolicyDetailFilterType[_]
    input.Body.policyDetails[_].filter.value == INTEGER
    input.Body.policyDetails[_].filter.unit == enum_LifecyclePolicyTimeUnit[_]
    input.Body.policyDetails[_].filter.retainAtLeast == INTEGER
    input.Body.policyDetails[_].exclusionRules.tagMap.STRING == STRING
    input.Body.policyDetails[_].exclusionRules.amis.isPublic == BOOLEAN
    input.Body.policyDetails[_].exclusionRules.amis.regions[_] == STRING
    input.Body.policyDetails[_].exclusionRules.amis.sharedAccounts[_] == STRING
    input.Body.policyDetails[_].exclusionRules.amis.lastLaunched.value == INTEGER
    input.Body.policyDetails[_].exclusionRules.amis.lastLaunched.unit == enum_LifecyclePolicyTimeUnit[_]
    input.Body.policyDetails[_].exclusionRules.amis.tagMap.STRING == STRING
    input.Body.resourceSelection.recipes[_].name == STRING
    input.Body.resourceSelection.recipes[_].semanticVersion == STRING
    input.Body.resourceSelection.tagMap.STRING == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}