CODEDEPLOY

AddTagsToOnPremisesInstances

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

BatchGetApplicationRevisions

enum_BundleType := [ "tar", "tgz", "zip", "YAML", "JSON" ]
enum_RevisionLocationType := [ "S3", "GitHub", "String", "AppSpecContent" ]

valid {
    input.Body.applicationName == STRING
    input.Body.revisions[_].revisionType == enum_RevisionLocationType[_]
    input.Body.revisions[_].s3Location.bucket == STRING
    input.Body.revisions[_].s3Location.key == STRING
    input.Body.revisions[_].s3Location.bundleType == enum_BundleType[_]
    input.Body.revisions[_].s3Location.version == STRING
    input.Body.revisions[_].s3Location.eTag == STRING
    input.Body.revisions[_].gitHubLocation.repository == STRING
    input.Body.revisions[_].gitHubLocation.commitId == STRING
    input.Body.revisions[_].string.content == STRING
    input.Body.revisions[_].string.sha256 == STRING
    input.Body.revisions[_].appSpecContent.content == STRING
    input.Body.revisions[_].appSpecContent.sha256 == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

BatchGetApplications

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

BatchGetDeploymentGroups

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

BatchGetDeploymentInstances

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

BatchGetDeploymentTargets

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

BatchGetDeployments

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

BatchGetOnPremisesInstances

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

ContinueDeployment

enum_DeploymentWaitType := [ "READY_WAIT", "TERMINATION_WAIT" ]

valid {
    input.Body.deploymentId == STRING
    input.Body.deploymentWaitType == enum_DeploymentWaitType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateApplication

enum_ComputePlatform := [ "Server", "Lambda", "ECS" ]

valid {
    input.Body.applicationName == STRING
    input.Body.computePlatform == enum_ComputePlatform[_]
    input.Body.tags[_].Key == STRING
    input.Body.tags[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDeployment

enum_AutoRollbackEvent := [ "DEPLOYMENT_FAILURE", "DEPLOYMENT_STOP_ON_ALARM", "DEPLOYMENT_STOP_ON_REQUEST" ]
enum_BundleType := [ "tar", "tgz", "zip", "YAML", "JSON" ]
enum_EC2TagFilterType := [ "KEY_ONLY", "VALUE_ONLY", "KEY_AND_VALUE" ]
enum_FileExistsBehavior := [ "DISALLOW", "OVERWRITE", "RETAIN" ]
enum_RevisionLocationType := [ "S3", "GitHub", "String", "AppSpecContent" ]

valid {
    input.Body.applicationName == STRING
    input.Body.deploymentGroupName == STRING
    input.Body.revision.revisionType == enum_RevisionLocationType[_]
    input.Body.revision.s3Location.bucket == STRING
    input.Body.revision.s3Location.key == STRING
    input.Body.revision.s3Location.bundleType == enum_BundleType[_]
    input.Body.revision.s3Location.version == STRING
    input.Body.revision.s3Location.eTag == STRING
    input.Body.revision.gitHubLocation.repository == STRING
    input.Body.revision.gitHubLocation.commitId == STRING
    input.Body.revision.string.content == STRING
    input.Body.revision.string.sha256 == STRING
    input.Body.revision.appSpecContent.content == STRING
    input.Body.revision.appSpecContent.sha256 == STRING
    input.Body.deploymentConfigName == STRING
    input.Body.description == STRING
    input.Body.ignoreApplicationStopFailures == BOOLEAN
    input.Body.targetInstances.tagFilters[_].Key == STRING
    input.Body.targetInstances.tagFilters[_].Value == STRING
    input.Body.targetInstances.tagFilters[_].Type == enum_EC2TagFilterType[_]
    input.Body.targetInstances.autoScalingGroups[_] == STRING
    input.Body.targetInstances.ec2TagSet.ec2TagSetList[_][_].Key == STRING
    input.Body.targetInstances.ec2TagSet.ec2TagSetList[_][_].Value == STRING
    input.Body.targetInstances.ec2TagSet.ec2TagSetList[_][_].Type == enum_EC2TagFilterType[_]
    input.Body.autoRollbackConfiguration.enabled == BOOLEAN
    input.Body.autoRollbackConfiguration.events[_] == enum_AutoRollbackEvent[_]
    input.Body.updateOutdatedInstancesOnly == BOOLEAN
    input.Body.fileExistsBehavior == enum_FileExistsBehavior[_]
    input.Body.overrideAlarmConfiguration.enabled == BOOLEAN
    input.Body.overrideAlarmConfiguration.ignorePollAlarmFailure == BOOLEAN
    input.Body.overrideAlarmConfiguration.alarms[_].name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDeploymentConfig

enum_ComputePlatform := [ "Server", "Lambda", "ECS" ]
enum_MinimumHealthyHostsPerZoneType := [ "HOST_COUNT", "FLEET_PERCENT" ]
enum_MinimumHealthyHostsType := [ "HOST_COUNT", "FLEET_PERCENT" ]
enum_TrafficRoutingType := [ "TimeBasedCanary", "TimeBasedLinear", "AllAtOnce" ]

valid {
    input.Body.deploymentConfigName == STRING
    input.Body.minimumHealthyHosts.type == enum_MinimumHealthyHostsType[_]
    input.Body.minimumHealthyHosts.value == INTEGER
    input.Body.trafficRoutingConfig.type == enum_TrafficRoutingType[_]
    input.Body.trafficRoutingConfig.timeBasedCanary.canaryPercentage == INTEGER
    input.Body.trafficRoutingConfig.timeBasedCanary.canaryInterval == INTEGER
    input.Body.trafficRoutingConfig.timeBasedLinear.linearPercentage == INTEGER
    input.Body.trafficRoutingConfig.timeBasedLinear.linearInterval == INTEGER
    input.Body.computePlatform == enum_ComputePlatform[_]
    input.Body.zonalConfig.firstZoneMonitorDurationInSeconds == LONG
    input.Body.zonalConfig.monitorDurationInSeconds == LONG
    input.Body.zonalConfig.minimumHealthyHostsPerZone.type == enum_MinimumHealthyHostsPerZoneType[_]
    input.Body.zonalConfig.minimumHealthyHostsPerZone.value == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDeploymentGroup

enum_AutoRollbackEvent := [ "DEPLOYMENT_FAILURE", "DEPLOYMENT_STOP_ON_ALARM", "DEPLOYMENT_STOP_ON_REQUEST" ]
enum_DeploymentOption := [ "WITH_TRAFFIC_CONTROL", "WITHOUT_TRAFFIC_CONTROL" ]
enum_DeploymentReadyAction := [ "CONTINUE_DEPLOYMENT", "STOP_DEPLOYMENT" ]
enum_DeploymentType := [ "IN_PLACE", "BLUE_GREEN" ]
enum_EC2TagFilterType := [ "KEY_ONLY", "VALUE_ONLY", "KEY_AND_VALUE" ]
enum_GreenFleetProvisioningAction := [ "DISCOVER_EXISTING", "COPY_AUTO_SCALING_GROUP" ]
enum_InstanceAction := [ "TERMINATE", "KEEP_ALIVE" ]
enum_OutdatedInstancesStrategy := [ "UPDATE", "IGNORE" ]
enum_TagFilterType := [ "KEY_ONLY", "VALUE_ONLY", "KEY_AND_VALUE" ]
enum_TriggerEventType := [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure", "DeploymentStop", "DeploymentRollback", "DeploymentReady", "InstanceStart", "InstanceSuccess", "InstanceFailure", "InstanceReady" ]

valid {
    input.Body.applicationName == STRING
    input.Body.deploymentGroupName == STRING
    input.Body.deploymentConfigName == STRING
    input.Body.ec2TagFilters[_].Key == STRING
    input.Body.ec2TagFilters[_].Value == STRING
    input.Body.ec2TagFilters[_].Type == enum_EC2TagFilterType[_]
    input.Body.onPremisesInstanceTagFilters[_].Key == STRING
    input.Body.onPremisesInstanceTagFilters[_].Value == STRING
    input.Body.onPremisesInstanceTagFilters[_].Type == enum_TagFilterType[_]
    input.Body.autoScalingGroups[_] == STRING
    input.Body.serviceRoleArn == STRING
    input.Body.triggerConfigurations[_].triggerName == STRING
    input.Body.triggerConfigurations[_].triggerTargetArn == STRING
    input.Body.triggerConfigurations[_].triggerEvents[_] == enum_TriggerEventType[_]
    input.Body.alarmConfiguration.enabled == BOOLEAN
    input.Body.alarmConfiguration.ignorePollAlarmFailure == BOOLEAN
    input.Body.alarmConfiguration.alarms[_].name == STRING
    input.Body.autoRollbackConfiguration.enabled == BOOLEAN
    input.Body.autoRollbackConfiguration.events[_] == enum_AutoRollbackEvent[_]
    input.Body.outdatedInstancesStrategy == enum_OutdatedInstancesStrategy[_]
    input.Body.deploymentStyle.deploymentType == enum_DeploymentType[_]
    input.Body.deploymentStyle.deploymentOption == enum_DeploymentOption[_]
    input.Body.blueGreenDeploymentConfiguration.terminateBlueInstancesOnDeploymentSuccess.action == enum_InstanceAction[_]
    input.Body.blueGreenDeploymentConfiguration.terminateBlueInstancesOnDeploymentSuccess.terminationWaitTimeInMinutes == INTEGER
    input.Body.blueGreenDeploymentConfiguration.deploymentReadyOption.actionOnTimeout == enum_DeploymentReadyAction[_]
    input.Body.blueGreenDeploymentConfiguration.deploymentReadyOption.waitTimeInMinutes == INTEGER
    input.Body.blueGreenDeploymentConfiguration.greenFleetProvisioningOption.action == enum_GreenFleetProvisioningAction[_]
    input.Body.loadBalancerInfo.elbInfoList[_].name == STRING
    input.Body.loadBalancerInfo.targetGroupInfoList[_].name == STRING
    input.Body.loadBalancerInfo.targetGroupPairInfoList[_].targetGroups[_].name == STRING
    input.Body.loadBalancerInfo.targetGroupPairInfoList[_].prodTrafficRoute.listenerArns[_] == STRING
    input.Body.loadBalancerInfo.targetGroupPairInfoList[_].testTrafficRoute.listenerArns[_] == STRING
    input.Body.ec2TagSet.ec2TagSetList[_][_].Key == STRING
    input.Body.ec2TagSet.ec2TagSetList[_][_].Value == STRING
    input.Body.ec2TagSet.ec2TagSetList[_][_].Type == enum_EC2TagFilterType[_]
    input.Body.ecsServices[_].serviceName == STRING
    input.Body.ecsServices[_].clusterName == STRING
    input.Body.onPremisesTagSet.onPremisesTagSetList[_][_].Key == STRING
    input.Body.onPremisesTagSet.onPremisesTagSetList[_][_].Value == STRING
    input.Body.onPremisesTagSet.onPremisesTagSetList[_][_].Type == enum_TagFilterType[_]
    input.Body.tags[_].Key == STRING
    input.Body.tags[_].Value == STRING
    input.Body.terminationHookEnabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteApplication

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

DeleteDeploymentConfig

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

DeleteDeploymentGroup

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

DeleteGitHubAccountToken

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

DeleteResourcesByExternalId

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

DeregisterOnPremisesInstance

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

GetApplication

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

GetApplicationRevision

enum_BundleType := [ "tar", "tgz", "zip", "YAML", "JSON" ]
enum_RevisionLocationType := [ "S3", "GitHub", "String", "AppSpecContent" ]

valid {
    input.Body.applicationName == STRING
    input.Body.revision.revisionType == enum_RevisionLocationType[_]
    input.Body.revision.s3Location.bucket == STRING
    input.Body.revision.s3Location.key == STRING
    input.Body.revision.s3Location.bundleType == enum_BundleType[_]
    input.Body.revision.s3Location.version == STRING
    input.Body.revision.s3Location.eTag == STRING
    input.Body.revision.gitHubLocation.repository == STRING
    input.Body.revision.gitHubLocation.commitId == STRING
    input.Body.revision.string.content == STRING
    input.Body.revision.string.sha256 == STRING
    input.Body.revision.appSpecContent.content == STRING
    input.Body.revision.appSpecContent.sha256 == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetDeployment

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

GetDeploymentConfig

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

GetDeploymentGroup

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

GetDeploymentInstance

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

GetDeploymentTarget

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

GetOnPremisesInstance

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

ListApplicationRevisions

enum_ApplicationRevisionSortBy := [ "registerTime", "firstUsedTime", "lastUsedTime" ]
enum_ListStateFilterAction := [ "include", "exclude", "ignore" ]
enum_SortOrder := [ "ascending", "descending" ]

valid {
    input.Body.applicationName == STRING
    input.Body.sortBy == enum_ApplicationRevisionSortBy[_]
    input.Body.sortOrder == enum_SortOrder[_]
    input.Body.s3Bucket == STRING
    input.Body.s3KeyPrefix == STRING
    input.Body.deployed == enum_ListStateFilterAction[_]
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListApplications

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

ListDeploymentConfigs

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

ListDeploymentGroups

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

ListDeploymentInstances

enum_InstanceStatus := [ "Pending", "InProgress", "Succeeded", "Failed", "Skipped", "Unknown", "Ready" ]
enum_InstanceType := [ "Blue", "Green" ]

valid {
    input.Body.deploymentId == STRING
    input.Body.nextToken == STRING
    input.Body.instanceStatusFilter[_] == enum_InstanceStatus[_]
    input.Body.instanceTypeFilter[_] == enum_InstanceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDeploymentTargets

valid {
    input.Body.deploymentId == STRING
    input.Body.nextToken == STRING
    input.Body.targetFilters.TargetStatus[_] == STRING
    input.Body.targetFilters.ServerInstanceLabel[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListDeployments

enum_DeploymentStatus := [ "Created", "Queued", "InProgress", "Baking", "Succeeded", "Failed", "Stopped", "Ready" ]

valid {
    input.Body.applicationName == STRING
    input.Body.deploymentGroupName == STRING
    input.Body.externalId == STRING
    input.Body.includeOnlyStatuses[_] == enum_DeploymentStatus[_]
    input.Body.createTimeRange.start == TIMESTAMP
    input.Body.createTimeRange.end == TIMESTAMP
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListGitHubAccountTokenNames

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

ListOnPremisesInstances

enum_RegistrationStatus := [ "Registered", "Deregistered" ]
enum_TagFilterType := [ "KEY_ONLY", "VALUE_ONLY", "KEY_AND_VALUE" ]

valid {
    input.Body.registrationStatus == enum_RegistrationStatus[_]
    input.Body.tagFilters[_].Key == STRING
    input.Body.tagFilters[_].Value == STRING
    input.Body.tagFilters[_].Type == enum_TagFilterType[_]
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTagsForResource

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

PutLifecycleEventHookExecutionStatus

enum_LifecycleEventStatus := [ "Pending", "InProgress", "Succeeded", "Failed", "Skipped", "Unknown" ]

valid {
    input.Body.deploymentId == STRING
    input.Body.lifecycleEventHookExecutionId == STRING
    input.Body.status == enum_LifecycleEventStatus[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterApplicationRevision

enum_BundleType := [ "tar", "tgz", "zip", "YAML", "JSON" ]
enum_RevisionLocationType := [ "S3", "GitHub", "String", "AppSpecContent" ]

valid {
    input.Body.applicationName == STRING
    input.Body.description == STRING
    input.Body.revision.revisionType == enum_RevisionLocationType[_]
    input.Body.revision.s3Location.bucket == STRING
    input.Body.revision.s3Location.key == STRING
    input.Body.revision.s3Location.bundleType == enum_BundleType[_]
    input.Body.revision.s3Location.version == STRING
    input.Body.revision.s3Location.eTag == STRING
    input.Body.revision.gitHubLocation.repository == STRING
    input.Body.revision.gitHubLocation.commitId == STRING
    input.Body.revision.string.content == STRING
    input.Body.revision.string.sha256 == STRING
    input.Body.revision.appSpecContent.content == STRING
    input.Body.revision.appSpecContent.sha256 == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RegisterOnPremisesInstance

valid {
    input.Body.instanceName == STRING
    input.Body.iamSessionArn == STRING
    input.Body.iamUserArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveTagsFromOnPremisesInstances

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

SkipWaitTimeForInstanceTermination

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

StopDeployment

valid {
    input.Body.deploymentId == STRING
    input.Body.autoRollbackEnabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

TagResource

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

UntagResource

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

UpdateApplication

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

UpdateDeploymentGroup

enum_AutoRollbackEvent := [ "DEPLOYMENT_FAILURE", "DEPLOYMENT_STOP_ON_ALARM", "DEPLOYMENT_STOP_ON_REQUEST" ]
enum_DeploymentOption := [ "WITH_TRAFFIC_CONTROL", "WITHOUT_TRAFFIC_CONTROL" ]
enum_DeploymentReadyAction := [ "CONTINUE_DEPLOYMENT", "STOP_DEPLOYMENT" ]
enum_DeploymentType := [ "IN_PLACE", "BLUE_GREEN" ]
enum_EC2TagFilterType := [ "KEY_ONLY", "VALUE_ONLY", "KEY_AND_VALUE" ]
enum_GreenFleetProvisioningAction := [ "DISCOVER_EXISTING", "COPY_AUTO_SCALING_GROUP" ]
enum_InstanceAction := [ "TERMINATE", "KEEP_ALIVE" ]
enum_OutdatedInstancesStrategy := [ "UPDATE", "IGNORE" ]
enum_TagFilterType := [ "KEY_ONLY", "VALUE_ONLY", "KEY_AND_VALUE" ]
enum_TriggerEventType := [ "DeploymentStart", "DeploymentSuccess", "DeploymentFailure", "DeploymentStop", "DeploymentRollback", "DeploymentReady", "InstanceStart", "InstanceSuccess", "InstanceFailure", "InstanceReady" ]

valid {
    input.Body.applicationName == STRING
    input.Body.currentDeploymentGroupName == STRING
    input.Body.newDeploymentGroupName == STRING
    input.Body.deploymentConfigName == STRING
    input.Body.ec2TagFilters[_].Key == STRING
    input.Body.ec2TagFilters[_].Value == STRING
    input.Body.ec2TagFilters[_].Type == enum_EC2TagFilterType[_]
    input.Body.onPremisesInstanceTagFilters[_].Key == STRING
    input.Body.onPremisesInstanceTagFilters[_].Value == STRING
    input.Body.onPremisesInstanceTagFilters[_].Type == enum_TagFilterType[_]
    input.Body.autoScalingGroups[_] == STRING
    input.Body.serviceRoleArn == STRING
    input.Body.triggerConfigurations[_].triggerName == STRING
    input.Body.triggerConfigurations[_].triggerTargetArn == STRING
    input.Body.triggerConfigurations[_].triggerEvents[_] == enum_TriggerEventType[_]
    input.Body.alarmConfiguration.enabled == BOOLEAN
    input.Body.alarmConfiguration.ignorePollAlarmFailure == BOOLEAN
    input.Body.alarmConfiguration.alarms[_].name == STRING
    input.Body.autoRollbackConfiguration.enabled == BOOLEAN
    input.Body.autoRollbackConfiguration.events[_] == enum_AutoRollbackEvent[_]
    input.Body.outdatedInstancesStrategy == enum_OutdatedInstancesStrategy[_]
    input.Body.deploymentStyle.deploymentType == enum_DeploymentType[_]
    input.Body.deploymentStyle.deploymentOption == enum_DeploymentOption[_]
    input.Body.blueGreenDeploymentConfiguration.terminateBlueInstancesOnDeploymentSuccess.action == enum_InstanceAction[_]
    input.Body.blueGreenDeploymentConfiguration.terminateBlueInstancesOnDeploymentSuccess.terminationWaitTimeInMinutes == INTEGER
    input.Body.blueGreenDeploymentConfiguration.deploymentReadyOption.actionOnTimeout == enum_DeploymentReadyAction[_]
    input.Body.blueGreenDeploymentConfiguration.deploymentReadyOption.waitTimeInMinutes == INTEGER
    input.Body.blueGreenDeploymentConfiguration.greenFleetProvisioningOption.action == enum_GreenFleetProvisioningAction[_]
    input.Body.loadBalancerInfo.elbInfoList[_].name == STRING
    input.Body.loadBalancerInfo.targetGroupInfoList[_].name == STRING
    input.Body.loadBalancerInfo.targetGroupPairInfoList[_].targetGroups[_].name == STRING
    input.Body.loadBalancerInfo.targetGroupPairInfoList[_].prodTrafficRoute.listenerArns[_] == STRING
    input.Body.loadBalancerInfo.targetGroupPairInfoList[_].testTrafficRoute.listenerArns[_] == STRING
    input.Body.ec2TagSet.ec2TagSetList[_][_].Key == STRING
    input.Body.ec2TagSet.ec2TagSetList[_][_].Value == STRING
    input.Body.ec2TagSet.ec2TagSetList[_][_].Type == enum_EC2TagFilterType[_]
    input.Body.ecsServices[_].serviceName == STRING
    input.Body.ecsServices[_].clusterName == STRING
    input.Body.onPremisesTagSet.onPremisesTagSetList[_][_].Key == STRING
    input.Body.onPremisesTagSet.onPremisesTagSetList[_][_].Value == STRING
    input.Body.onPremisesTagSet.onPremisesTagSetList[_][_].Type == enum_TagFilterType[_]
    input.Body.terminationHookEnabled == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}