ELASTICMAPREDUCE

AddInstanceFleet

enum_InstanceFleetType := [ "MASTER", "CORE", "TASK" ]
enum_OnDemandCapacityReservationPreference := [ "open", "none" ]
enum_OnDemandCapacityReservationUsageStrategy := [ "use-capacity-reservations-first" ]
enum_OnDemandProvisioningAllocationStrategy := [ "lowest-price" ]
enum_SpotProvisioningAllocationStrategy := [ "capacity-optimized", "price-capacity-optimized", "lowest-price", "diversified" ]
enum_SpotProvisioningTimeoutAction := [ "SWITCH_TO_ON_DEMAND", "TERMINATE_CLUSTER" ]

valid {
    input.Body.ClusterId == STRING
    input.Body.InstanceFleet.Name == STRING
    input.Body.InstanceFleet.InstanceFleetType == enum_InstanceFleetType[_]
    input.Body.InstanceFleet.TargetOnDemandCapacity == INTEGER
    input.Body.InstanceFleet.TargetSpotCapacity == INTEGER
    input.Body.InstanceFleet.InstanceTypeConfigs[_].InstanceType == STRING
    input.Body.InstanceFleet.InstanceTypeConfigs[_].WeightedCapacity == INTEGER
    input.Body.InstanceFleet.InstanceTypeConfigs[_].BidPrice == STRING
    input.Body.InstanceFleet.InstanceTypeConfigs[_].BidPriceAsPercentageOfOnDemandPrice == DOUBLE
    input.Body.InstanceFleet.InstanceTypeConfigs[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.VolumeType == STRING
    input.Body.InstanceFleet.InstanceTypeConfigs[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.Iops == INTEGER
    input.Body.InstanceFleet.InstanceTypeConfigs[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.SizeInGB == INTEGER
    input.Body.InstanceFleet.InstanceTypeConfigs[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.Throughput == INTEGER
    input.Body.InstanceFleet.InstanceTypeConfigs[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumesPerInstance == INTEGER
    input.Body.InstanceFleet.InstanceTypeConfigs[_].EbsConfiguration.EbsOptimized == BOOLEAN
    input.Body.InstanceFleet.InstanceTypeConfigs[_].Configurations[_].Classification == STRING
    input.Body.InstanceFleet.InstanceTypeConfigs[_].Configurations[_].Configurations == NESTED
    input.Body.InstanceFleet.InstanceTypeConfigs[_].Configurations[_].Properties.STRING == STRING
    input.Body.InstanceFleet.InstanceTypeConfigs[_].CustomAmiId == STRING
    input.Body.InstanceFleet.LaunchSpecifications.SpotSpecification.TimeoutDurationMinutes == INTEGER
    input.Body.InstanceFleet.LaunchSpecifications.SpotSpecification.TimeoutAction == enum_SpotProvisioningTimeoutAction[_]
    input.Body.InstanceFleet.LaunchSpecifications.SpotSpecification.BlockDurationMinutes == INTEGER
    input.Body.InstanceFleet.LaunchSpecifications.SpotSpecification.AllocationStrategy == enum_SpotProvisioningAllocationStrategy[_]
    input.Body.InstanceFleet.LaunchSpecifications.OnDemandSpecification.AllocationStrategy == enum_OnDemandProvisioningAllocationStrategy[_]
    input.Body.InstanceFleet.LaunchSpecifications.OnDemandSpecification.CapacityReservationOptions.UsageStrategy == enum_OnDemandCapacityReservationUsageStrategy[_]
    input.Body.InstanceFleet.LaunchSpecifications.OnDemandSpecification.CapacityReservationOptions.CapacityReservationPreference == enum_OnDemandCapacityReservationPreference[_]
    input.Body.InstanceFleet.LaunchSpecifications.OnDemandSpecification.CapacityReservationOptions.CapacityReservationResourceGroupArn == STRING
    input.Body.InstanceFleet.ResizeSpecifications.SpotResizeSpecification.TimeoutDurationMinutes == INTEGER
    input.Body.InstanceFleet.ResizeSpecifications.OnDemandResizeSpecification.TimeoutDurationMinutes == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AddInstanceGroups

enum_AdjustmentType := [ "CHANGE_IN_CAPACITY", "PERCENT_CHANGE_IN_CAPACITY", "EXACT_CAPACITY" ]
enum_ComparisonOperator := [ "GREATER_THAN_OR_EQUAL", "GREATER_THAN", "LESS_THAN", "LESS_THAN_OR_EQUAL" ]
enum_InstanceRoleType := [ "MASTER", "CORE", "TASK" ]
enum_MarketType := [ "ON_DEMAND", "SPOT" ]
enum_Statistic := [ "SAMPLE_COUNT", "AVERAGE", "SUM", "MINIMUM", "MAXIMUM" ]
enum_Unit := [ "NONE", "SECONDS", "MICRO_SECONDS", "MILLI_SECONDS", "BYTES", "KILO_BYTES", "MEGA_BYTES", "GIGA_BYTES", "TERA_BYTES", "BITS", "KILO_BITS", "MEGA_BITS", "GIGA_BITS", "TERA_BITS", "PERCENT", "COUNT", "BYTES_PER_SECOND", "KILO_BYTES_PER_SECOND", "MEGA_BYTES_PER_SECOND", "GIGA_BYTES_PER_SECOND", "TERA_BYTES_PER_SECOND", "BITS_PER_SECOND", "KILO_BITS_PER_SECOND", "MEGA_BITS_PER_SECOND", "GIGA_BITS_PER_SECOND", "TERA_BITS_PER_SECOND", "COUNT_PER_SECOND" ]

valid {
    input.Body.InstanceGroups[_].Name == STRING
    input.Body.InstanceGroups[_].Market == enum_MarketType[_]
    input.Body.InstanceGroups[_].InstanceRole == enum_InstanceRoleType[_]
    input.Body.InstanceGroups[_].BidPrice == STRING
    input.Body.InstanceGroups[_].InstanceType == STRING
    input.Body.InstanceGroups[_].InstanceCount == INTEGER
    input.Body.InstanceGroups[_].Configurations[_].Classification == STRING
    input.Body.InstanceGroups[_].Configurations[_].Configurations == NESTED
    input.Body.InstanceGroups[_].Configurations[_].Properties.STRING == STRING
    input.Body.InstanceGroups[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.VolumeType == STRING
    input.Body.InstanceGroups[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.Iops == INTEGER
    input.Body.InstanceGroups[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.SizeInGB == INTEGER
    input.Body.InstanceGroups[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.Throughput == INTEGER
    input.Body.InstanceGroups[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumesPerInstance == INTEGER
    input.Body.InstanceGroups[_].EbsConfiguration.EbsOptimized == BOOLEAN
    input.Body.InstanceGroups[_].AutoScalingPolicy.Constraints.MinCapacity == INTEGER
    input.Body.InstanceGroups[_].AutoScalingPolicy.Constraints.MaxCapacity == INTEGER
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Name == STRING
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Description == STRING
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Action.Market == enum_MarketType[_]
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Action.SimpleScalingPolicyConfiguration.AdjustmentType == enum_AdjustmentType[_]
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Action.SimpleScalingPolicyConfiguration.ScalingAdjustment == INTEGER
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Action.SimpleScalingPolicyConfiguration.CoolDown == INTEGER
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.ComparisonOperator == enum_ComparisonOperator[_]
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.EvaluationPeriods == INTEGER
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.MetricName == STRING
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Namespace == STRING
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Period == INTEGER
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Statistic == enum_Statistic[_]
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Threshold == DOUBLE
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Unit == enum_Unit[_]
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Dimensions[_].Key == STRING
    input.Body.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Dimensions[_].Value == STRING
    input.Body.InstanceGroups[_].CustomAmiId == STRING
    input.Body.JobFlowId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AddJobFlowSteps

enum_ActionOnFailure := [ "TERMINATE_JOB_FLOW", "TERMINATE_CLUSTER", "CANCEL_AND_WAIT", "CONTINUE" ]

valid {
    input.Body.JobFlowId == STRING
    input.Body.Steps[_].Name == STRING
    input.Body.Steps[_].ActionOnFailure == enum_ActionOnFailure[_]
    input.Body.Steps[_].HadoopJarStep.Properties[_].Key == STRING
    input.Body.Steps[_].HadoopJarStep.Properties[_].Value == STRING
    input.Body.Steps[_].HadoopJarStep.Jar == STRING
    input.Body.Steps[_].HadoopJarStep.MainClass == STRING
    input.Body.Steps[_].HadoopJarStep.Args[_] == STRING
    input.Body.ExecutionRoleArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AddTags

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

CancelSteps

enum_StepCancellationOption := [ "SEND_INTERRUPT", "TERMINATE_PROCESS" ]

valid {
    input.Body.ClusterId == STRING
    input.Body.StepIds[_] == STRING
    input.Body.StepCancellationOption == enum_StepCancellationOption[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateSecurityConfiguration

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

CreateStudio

enum_AuthMode := [ "SSO", "IAM" ]
enum_IdcUserAssignment := [ "REQUIRED", "OPTIONAL" ]

valid {
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.AuthMode == enum_AuthMode[_]
    input.Body.VpcId == STRING
    input.Body.SubnetIds[_] == STRING
    input.Body.ServiceRole == STRING
    input.Body.UserRole == STRING
    input.Body.WorkspaceSecurityGroupId == STRING
    input.Body.EngineSecurityGroupId == STRING
    input.Body.DefaultS3Location == STRING
    input.Body.IdpAuthUrl == STRING
    input.Body.IdpRelayStateParameterName == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.TrustedIdentityPropagationEnabled == BOOLEAN
    input.Body.IdcUserAssignment == enum_IdcUserAssignment[_]
    input.Body.IdcInstanceArn == STRING
    input.Body.EncryptionKeyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateStudioSessionMapping

enum_IdentityType := [ "USER", "GROUP" ]

valid {
    input.Body.StudioId == STRING
    input.Body.IdentityId == STRING
    input.Body.IdentityName == STRING
    input.Body.IdentityType == enum_IdentityType[_]
    input.Body.SessionPolicyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteSecurityConfiguration

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

DeleteStudio

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

DeleteStudioSessionMapping

enum_IdentityType := [ "USER", "GROUP" ]

valid {
    input.Body.StudioId == STRING
    input.Body.IdentityId == STRING
    input.Body.IdentityName == STRING
    input.Body.IdentityType == enum_IdentityType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeCluster

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

DescribeJobFlows

enum_JobFlowExecutionState := [ "STARTING", "BOOTSTRAPPING", "RUNNING", "WAITING", "SHUTTING_DOWN", "TERMINATED", "COMPLETED", "FAILED" ]

valid {
    input.Body.CreatedAfter == TIMESTAMP
    input.Body.CreatedBefore == TIMESTAMP
    input.Body.JobFlowIds[_] == STRING
    input.Body.JobFlowStates[_] == enum_JobFlowExecutionState[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DescribeNotebookExecution

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

DescribeReleaseLabel

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

DescribeSecurityConfiguration

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

DescribeStep

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

DescribeStudio

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

GetAutoTerminationPolicy

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

GetBlockPublicAccessConfiguration

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

GetClusterSessionCredentials

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

GetManagedScalingPolicy

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

GetStudioSessionMapping

enum_IdentityType := [ "USER", "GROUP" ]

valid {
    input.Body.StudioId == STRING
    input.Body.IdentityId == STRING
    input.Body.IdentityName == STRING
    input.Body.IdentityType == enum_IdentityType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBootstrapActions

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

ListClusters

enum_ClusterState := [ "STARTING", "BOOTSTRAPPING", "RUNNING", "WAITING", "TERMINATING", "TERMINATED", "TERMINATED_WITH_ERRORS" ]

valid {
    input.Body.CreatedAfter == TIMESTAMP
    input.Body.CreatedBefore == TIMESTAMP
    input.Body.ClusterStates[_] == enum_ClusterState[_]
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListInstanceFleets

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

ListInstanceGroups

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

ListInstances

enum_InstanceFleetType := [ "MASTER", "CORE", "TASK" ]
enum_InstanceGroupType := [ "MASTER", "CORE", "TASK" ]
enum_InstanceState := [ "AWAITING_FULFILLMENT", "PROVISIONING", "BOOTSTRAPPING", "RUNNING", "TERMINATED" ]

valid {
    input.Body.ClusterId == STRING
    input.Body.InstanceGroupId == STRING
    input.Body.InstanceGroupTypes[_] == enum_InstanceGroupType[_]
    input.Body.InstanceFleetId == STRING
    input.Body.InstanceFleetType == enum_InstanceFleetType[_]
    input.Body.InstanceStates[_] == enum_InstanceState[_]
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListNotebookExecutions

enum_NotebookExecutionStatus := [ "START_PENDING", "STARTING", "RUNNING", "FINISHING", "FINISHED", "FAILING", "FAILED", "STOP_PENDING", "STOPPING", "STOPPED" ]

valid {
    input.Body.EditorId == STRING
    input.Body.Status == enum_NotebookExecutionStatus[_]
    input.Body.From == TIMESTAMP
    input.Body.To == TIMESTAMP
    input.Body.Marker == STRING
    input.Body.ExecutionEngineId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListReleaseLabels

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

ListSecurityConfigurations

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

ListSteps

enum_StepState := [ "PENDING", "CANCEL_PENDING", "RUNNING", "COMPLETED", "CANCELLED", "FAILED", "INTERRUPTED" ]

valid {
    input.Body.ClusterId == STRING
    input.Body.StepStates[_] == enum_StepState[_]
    input.Body.StepIds[_] == STRING
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListStudioSessionMappings

enum_IdentityType := [ "USER", "GROUP" ]

valid {
    input.Body.StudioId == STRING
    input.Body.IdentityType == enum_IdentityType[_]
    input.Body.Marker == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListStudios

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

ListSupportedInstanceTypes

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

ModifyCluster

valid {
    input.Body.ClusterId == STRING
    input.Body.StepConcurrencyLevel == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyInstanceFleet

valid {
    input.Body.ClusterId == STRING
    input.Body.InstanceFleet.InstanceFleetId == STRING
    input.Body.InstanceFleet.TargetOnDemandCapacity == INTEGER
    input.Body.InstanceFleet.TargetSpotCapacity == INTEGER
    input.Body.InstanceFleet.ResizeSpecifications.SpotResizeSpecification.TimeoutDurationMinutes == INTEGER
    input.Body.InstanceFleet.ResizeSpecifications.OnDemandResizeSpecification.TimeoutDurationMinutes == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ModifyInstanceGroups

enum_ReconfigurationType := [ "OVERWRITE", "MERGE" ]

valid {
    input.Body.ClusterId == STRING
    input.Body.InstanceGroups[_].InstanceGroupId == STRING
    input.Body.InstanceGroups[_].InstanceCount == INTEGER
    input.Body.InstanceGroups[_].EC2InstanceIdsToTerminate[_] == STRING
    input.Body.InstanceGroups[_].ShrinkPolicy.DecommissionTimeout == INTEGER
    input.Body.InstanceGroups[_].ShrinkPolicy.InstanceResizePolicy.InstancesToTerminate[_] == STRING
    input.Body.InstanceGroups[_].ShrinkPolicy.InstanceResizePolicy.InstancesToProtect[_] == STRING
    input.Body.InstanceGroups[_].ShrinkPolicy.InstanceResizePolicy.InstanceTerminationTimeout == INTEGER
    input.Body.InstanceGroups[_].ReconfigurationType == enum_ReconfigurationType[_]
    input.Body.InstanceGroups[_].Configurations[_].Classification == STRING
    input.Body.InstanceGroups[_].Configurations[_].Configurations == NESTED
    input.Body.InstanceGroups[_].Configurations[_].Properties.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutAutoScalingPolicy

enum_AdjustmentType := [ "CHANGE_IN_CAPACITY", "PERCENT_CHANGE_IN_CAPACITY", "EXACT_CAPACITY" ]
enum_ComparisonOperator := [ "GREATER_THAN_OR_EQUAL", "GREATER_THAN", "LESS_THAN", "LESS_THAN_OR_EQUAL" ]
enum_MarketType := [ "ON_DEMAND", "SPOT" ]
enum_Statistic := [ "SAMPLE_COUNT", "AVERAGE", "SUM", "MINIMUM", "MAXIMUM" ]
enum_Unit := [ "NONE", "SECONDS", "MICRO_SECONDS", "MILLI_SECONDS", "BYTES", "KILO_BYTES", "MEGA_BYTES", "GIGA_BYTES", "TERA_BYTES", "BITS", "KILO_BITS", "MEGA_BITS", "GIGA_BITS", "TERA_BITS", "PERCENT", "COUNT", "BYTES_PER_SECOND", "KILO_BYTES_PER_SECOND", "MEGA_BYTES_PER_SECOND", "GIGA_BYTES_PER_SECOND", "TERA_BYTES_PER_SECOND", "BITS_PER_SECOND", "KILO_BITS_PER_SECOND", "MEGA_BITS_PER_SECOND", "GIGA_BITS_PER_SECOND", "TERA_BITS_PER_SECOND", "COUNT_PER_SECOND" ]

valid {
    input.Body.ClusterId == STRING
    input.Body.InstanceGroupId == STRING
    input.Body.AutoScalingPolicy.Constraints.MinCapacity == INTEGER
    input.Body.AutoScalingPolicy.Constraints.MaxCapacity == INTEGER
    input.Body.AutoScalingPolicy.Rules[_].Name == STRING
    input.Body.AutoScalingPolicy.Rules[_].Description == STRING
    input.Body.AutoScalingPolicy.Rules[_].Action.Market == enum_MarketType[_]
    input.Body.AutoScalingPolicy.Rules[_].Action.SimpleScalingPolicyConfiguration.AdjustmentType == enum_AdjustmentType[_]
    input.Body.AutoScalingPolicy.Rules[_].Action.SimpleScalingPolicyConfiguration.ScalingAdjustment == INTEGER
    input.Body.AutoScalingPolicy.Rules[_].Action.SimpleScalingPolicyConfiguration.CoolDown == INTEGER
    input.Body.AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.ComparisonOperator == enum_ComparisonOperator[_]
    input.Body.AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.EvaluationPeriods == INTEGER
    input.Body.AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.MetricName == STRING
    input.Body.AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Namespace == STRING
    input.Body.AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Period == INTEGER
    input.Body.AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Statistic == enum_Statistic[_]
    input.Body.AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Threshold == DOUBLE
    input.Body.AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Unit == enum_Unit[_]
    input.Body.AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Dimensions[_].Key == STRING
    input.Body.AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Dimensions[_].Value == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutAutoTerminationPolicy

valid {
    input.Body.ClusterId == STRING
    input.Body.AutoTerminationPolicy.IdleTimeout == LONG
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutBlockPublicAccessConfiguration

valid {
    input.Body.BlockPublicAccessConfiguration.BlockPublicSecurityGroupRules == BOOLEAN
    input.Body.BlockPublicAccessConfiguration.PermittedPublicSecurityGroupRuleRanges[_].MinRange == INTEGER
    input.Body.BlockPublicAccessConfiguration.PermittedPublicSecurityGroupRuleRanges[_].MaxRange == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutManagedScalingPolicy

enum_ComputeLimitsUnitType := [ "InstanceFleetUnits", "Instances", "VCPU" ]

valid {
    input.Body.ClusterId == STRING
    input.Body.ManagedScalingPolicy.ComputeLimits.UnitType == enum_ComputeLimitsUnitType[_]
    input.Body.ManagedScalingPolicy.ComputeLimits.MinimumCapacityUnits == INTEGER
    input.Body.ManagedScalingPolicy.ComputeLimits.MaximumCapacityUnits == INTEGER
    input.Body.ManagedScalingPolicy.ComputeLimits.MaximumOnDemandCapacityUnits == INTEGER
    input.Body.ManagedScalingPolicy.ComputeLimits.MaximumCoreCapacityUnits == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

RemoveAutoScalingPolicy

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

RemoveAutoTerminationPolicy

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

RemoveManagedScalingPolicy

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

RemoveTags

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

RunJobFlow

enum_ActionOnFailure := [ "TERMINATE_JOB_FLOW", "TERMINATE_CLUSTER", "CANCEL_AND_WAIT", "CONTINUE" ]
enum_AdjustmentType := [ "CHANGE_IN_CAPACITY", "PERCENT_CHANGE_IN_CAPACITY", "EXACT_CAPACITY" ]
enum_ComparisonOperator := [ "GREATER_THAN_OR_EQUAL", "GREATER_THAN", "LESS_THAN", "LESS_THAN_OR_EQUAL" ]
enum_ComputeLimitsUnitType := [ "InstanceFleetUnits", "Instances", "VCPU" ]
enum_InstanceFleetType := [ "MASTER", "CORE", "TASK" ]
enum_InstanceRoleType := [ "MASTER", "CORE", "TASK" ]
enum_MarketType := [ "ON_DEMAND", "SPOT" ]
enum_OnDemandCapacityReservationPreference := [ "open", "none" ]
enum_OnDemandCapacityReservationUsageStrategy := [ "use-capacity-reservations-first" ]
enum_OnDemandProvisioningAllocationStrategy := [ "lowest-price" ]
enum_PlacementGroupStrategy := [ "SPREAD", "PARTITION", "CLUSTER", "NONE" ]
enum_RepoUpgradeOnBoot := [ "SECURITY", "NONE" ]
enum_ScaleDownBehavior := [ "TERMINATE_AT_INSTANCE_HOUR", "TERMINATE_AT_TASK_COMPLETION" ]
enum_SpotProvisioningAllocationStrategy := [ "capacity-optimized", "price-capacity-optimized", "lowest-price", "diversified" ]
enum_SpotProvisioningTimeoutAction := [ "SWITCH_TO_ON_DEMAND", "TERMINATE_CLUSTER" ]
enum_Statistic := [ "SAMPLE_COUNT", "AVERAGE", "SUM", "MINIMUM", "MAXIMUM" ]
enum_Unit := [ "NONE", "SECONDS", "MICRO_SECONDS", "MILLI_SECONDS", "BYTES", "KILO_BYTES", "MEGA_BYTES", "GIGA_BYTES", "TERA_BYTES", "BITS", "KILO_BITS", "MEGA_BITS", "GIGA_BITS", "TERA_BITS", "PERCENT", "COUNT", "BYTES_PER_SECOND", "KILO_BYTES_PER_SECOND", "MEGA_BYTES_PER_SECOND", "GIGA_BYTES_PER_SECOND", "TERA_BYTES_PER_SECOND", "BITS_PER_SECOND", "KILO_BITS_PER_SECOND", "MEGA_BITS_PER_SECOND", "GIGA_BITS_PER_SECOND", "TERA_BITS_PER_SECOND", "COUNT_PER_SECOND" ]

valid {
    input.Body.Name == STRING
    input.Body.LogUri == STRING
    input.Body.LogEncryptionKmsKeyId == STRING
    input.Body.AdditionalInfo == STRING
    input.Body.AmiVersion == STRING
    input.Body.ReleaseLabel == STRING
    input.Body.Instances.MasterInstanceType == STRING
    input.Body.Instances.SlaveInstanceType == STRING
    input.Body.Instances.InstanceCount == INTEGER
    input.Body.Instances.InstanceGroups[_].Name == STRING
    input.Body.Instances.InstanceGroups[_].Market == enum_MarketType[_]
    input.Body.Instances.InstanceGroups[_].InstanceRole == enum_InstanceRoleType[_]
    input.Body.Instances.InstanceGroups[_].BidPrice == STRING
    input.Body.Instances.InstanceGroups[_].InstanceType == STRING
    input.Body.Instances.InstanceGroups[_].InstanceCount == INTEGER
    input.Body.Instances.InstanceGroups[_].Configurations[_].Classification == STRING
    input.Body.Instances.InstanceGroups[_].Configurations[_].Configurations == NESTED
    input.Body.Instances.InstanceGroups[_].Configurations[_].Properties.STRING == STRING
    input.Body.Instances.InstanceGroups[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.VolumeType == STRING
    input.Body.Instances.InstanceGroups[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.Iops == INTEGER
    input.Body.Instances.InstanceGroups[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.SizeInGB == INTEGER
    input.Body.Instances.InstanceGroups[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.Throughput == INTEGER
    input.Body.Instances.InstanceGroups[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumesPerInstance == INTEGER
    input.Body.Instances.InstanceGroups[_].EbsConfiguration.EbsOptimized == BOOLEAN
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Constraints.MinCapacity == INTEGER
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Constraints.MaxCapacity == INTEGER
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Name == STRING
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Description == STRING
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Action.Market == enum_MarketType[_]
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Action.SimpleScalingPolicyConfiguration.AdjustmentType == enum_AdjustmentType[_]
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Action.SimpleScalingPolicyConfiguration.ScalingAdjustment == INTEGER
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Action.SimpleScalingPolicyConfiguration.CoolDown == INTEGER
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.ComparisonOperator == enum_ComparisonOperator[_]
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.EvaluationPeriods == INTEGER
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.MetricName == STRING
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Namespace == STRING
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Period == INTEGER
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Statistic == enum_Statistic[_]
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Threshold == DOUBLE
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Unit == enum_Unit[_]
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Dimensions[_].Key == STRING
    input.Body.Instances.InstanceGroups[_].AutoScalingPolicy.Rules[_].Trigger.CloudWatchAlarmDefinition.Dimensions[_].Value == STRING
    input.Body.Instances.InstanceGroups[_].CustomAmiId == STRING
    input.Body.Instances.InstanceFleets[_].Name == STRING
    input.Body.Instances.InstanceFleets[_].InstanceFleetType == enum_InstanceFleetType[_]
    input.Body.Instances.InstanceFleets[_].TargetOnDemandCapacity == INTEGER
    input.Body.Instances.InstanceFleets[_].TargetSpotCapacity == INTEGER
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].InstanceType == STRING
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].WeightedCapacity == INTEGER
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].BidPrice == STRING
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].BidPriceAsPercentageOfOnDemandPrice == DOUBLE
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.VolumeType == STRING
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.Iops == INTEGER
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.SizeInGB == INTEGER
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumeSpecification.Throughput == INTEGER
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].EbsConfiguration.EbsBlockDeviceConfigs[_].VolumesPerInstance == INTEGER
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].EbsConfiguration.EbsOptimized == BOOLEAN
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].Configurations[_].Classification == STRING
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].Configurations[_].Configurations == NESTED
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].Configurations[_].Properties.STRING == STRING
    input.Body.Instances.InstanceFleets[_].InstanceTypeConfigs[_].CustomAmiId == STRING
    input.Body.Instances.InstanceFleets[_].LaunchSpecifications.SpotSpecification.TimeoutDurationMinutes == INTEGER
    input.Body.Instances.InstanceFleets[_].LaunchSpecifications.SpotSpecification.TimeoutAction == enum_SpotProvisioningTimeoutAction[_]
    input.Body.Instances.InstanceFleets[_].LaunchSpecifications.SpotSpecification.BlockDurationMinutes == INTEGER
    input.Body.Instances.InstanceFleets[_].LaunchSpecifications.SpotSpecification.AllocationStrategy == enum_SpotProvisioningAllocationStrategy[_]
    input.Body.Instances.InstanceFleets[_].LaunchSpecifications.OnDemandSpecification.AllocationStrategy == enum_OnDemandProvisioningAllocationStrategy[_]
    input.Body.Instances.InstanceFleets[_].LaunchSpecifications.OnDemandSpecification.CapacityReservationOptions.UsageStrategy == enum_OnDemandCapacityReservationUsageStrategy[_]
    input.Body.Instances.InstanceFleets[_].LaunchSpecifications.OnDemandSpecification.CapacityReservationOptions.CapacityReservationPreference == enum_OnDemandCapacityReservationPreference[_]
    input.Body.Instances.InstanceFleets[_].LaunchSpecifications.OnDemandSpecification.CapacityReservationOptions.CapacityReservationResourceGroupArn == STRING
    input.Body.Instances.InstanceFleets[_].ResizeSpecifications.SpotResizeSpecification.TimeoutDurationMinutes == INTEGER
    input.Body.Instances.InstanceFleets[_].ResizeSpecifications.OnDemandResizeSpecification.TimeoutDurationMinutes == INTEGER
    input.Body.Instances.Ec2KeyName == STRING
    input.Body.Instances.Placement.AvailabilityZone == STRING
    input.Body.Instances.Placement.AvailabilityZones[_] == STRING
    input.Body.Instances.KeepJobFlowAliveWhenNoSteps == BOOLEAN
    input.Body.Instances.TerminationProtected == BOOLEAN
    input.Body.Instances.UnhealthyNodeReplacement == BOOLEAN
    input.Body.Instances.HadoopVersion == STRING
    input.Body.Instances.Ec2SubnetId == STRING
    input.Body.Instances.Ec2SubnetIds[_] == STRING
    input.Body.Instances.EmrManagedMasterSecurityGroup == STRING
    input.Body.Instances.EmrManagedSlaveSecurityGroup == STRING
    input.Body.Instances.ServiceAccessSecurityGroup == STRING
    input.Body.Instances.AdditionalMasterSecurityGroups[_] == STRING
    input.Body.Instances.AdditionalSlaveSecurityGroups[_] == STRING
    input.Body.Steps[_].Name == STRING
    input.Body.Steps[_].ActionOnFailure == enum_ActionOnFailure[_]
    input.Body.Steps[_].HadoopJarStep.Properties[_].Key == STRING
    input.Body.Steps[_].HadoopJarStep.Properties[_].Value == STRING
    input.Body.Steps[_].HadoopJarStep.Jar == STRING
    input.Body.Steps[_].HadoopJarStep.MainClass == STRING
    input.Body.Steps[_].HadoopJarStep.Args[_] == STRING
    input.Body.BootstrapActions[_].Name == STRING
    input.Body.BootstrapActions[_].ScriptBootstrapAction.Path == STRING
    input.Body.BootstrapActions[_].ScriptBootstrapAction.Args[_] == STRING
    input.Body.SupportedProducts[_] == STRING
    input.Body.NewSupportedProducts[_].Name == STRING
    input.Body.NewSupportedProducts[_].Args[_] == STRING
    input.Body.Applications[_].Name == STRING
    input.Body.Applications[_].Version == STRING
    input.Body.Applications[_].Args[_] == STRING
    input.Body.Applications[_].AdditionalInfo.STRING == STRING
    input.Body.Configurations[_].Classification == STRING
    input.Body.Configurations[_].Configurations == NESTED
    input.Body.Configurations[_].Properties.STRING == STRING
    input.Body.VisibleToAllUsers == BOOLEAN
    input.Body.JobFlowRole == STRING
    input.Body.ServiceRole == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.SecurityConfiguration == STRING
    input.Body.AutoScalingRole == STRING
    input.Body.ScaleDownBehavior == enum_ScaleDownBehavior[_]
    input.Body.CustomAmiId == STRING
    input.Body.EbsRootVolumeSize == INTEGER
    input.Body.RepoUpgradeOnBoot == enum_RepoUpgradeOnBoot[_]
    input.Body.KerberosAttributes.Realm == STRING
    input.Body.KerberosAttributes.KdcAdminPassword == STRING
    input.Body.KerberosAttributes.CrossRealmTrustPrincipalPassword == STRING
    input.Body.KerberosAttributes.ADDomainJoinUser == STRING
    input.Body.KerberosAttributes.ADDomainJoinPassword == STRING
    input.Body.StepConcurrencyLevel == INTEGER
    input.Body.ManagedScalingPolicy.ComputeLimits.UnitType == enum_ComputeLimitsUnitType[_]
    input.Body.ManagedScalingPolicy.ComputeLimits.MinimumCapacityUnits == INTEGER
    input.Body.ManagedScalingPolicy.ComputeLimits.MaximumCapacityUnits == INTEGER
    input.Body.ManagedScalingPolicy.ComputeLimits.MaximumOnDemandCapacityUnits == INTEGER
    input.Body.ManagedScalingPolicy.ComputeLimits.MaximumCoreCapacityUnits == INTEGER
    input.Body.PlacementGroupConfigs[_].InstanceRole == enum_InstanceRoleType[_]
    input.Body.PlacementGroupConfigs[_].PlacementStrategy == enum_PlacementGroupStrategy[_]
    input.Body.AutoTerminationPolicy.IdleTimeout == LONG
    input.Body.OSReleaseLabel == STRING
    input.Body.EbsRootVolumeIops == INTEGER
    input.Body.EbsRootVolumeThroughput == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetKeepJobFlowAliveWhenNoSteps

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

SetTerminationProtection

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

SetUnhealthyNodeReplacement

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

SetVisibleToAllUsers

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

StartNotebookExecution

enum_ExecutionEngineType := [ "EMR" ]
enum_OutputNotebookFormat := [ "HTML" ]

valid {
    input.Body.EditorId == STRING
    input.Body.RelativePath == STRING
    input.Body.NotebookExecutionName == STRING
    input.Body.NotebookParams == STRING
    input.Body.ExecutionEngine.Id == STRING
    input.Body.ExecutionEngine.Type == enum_ExecutionEngineType[_]
    input.Body.ExecutionEngine.MasterInstanceSecurityGroupId == STRING
    input.Body.ExecutionEngine.ExecutionRoleArn == STRING
    input.Body.ServiceRole == STRING
    input.Body.NotebookInstanceSecurityGroupId == STRING
    input.Body.Tags[_].Key == STRING
    input.Body.Tags[_].Value == STRING
    input.Body.NotebookS3Location.Bucket == STRING
    input.Body.NotebookS3Location.Key == STRING
    input.Body.OutputNotebookS3Location.Bucket == STRING
    input.Body.OutputNotebookS3Location.Key == STRING
    input.Body.OutputNotebookFormat == enum_OutputNotebookFormat[_]
    input.Body.EnvironmentVariables.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StopNotebookExecution

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

TerminateJobFlows

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

UpdateStudio

valid {
    input.Body.StudioId == STRING
    input.Body.Name == STRING
    input.Body.Description == STRING
    input.Body.SubnetIds[_] == STRING
    input.Body.DefaultS3Location == STRING
    input.Body.EncryptionKeyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateStudioSessionMapping

enum_IdentityType := [ "USER", "GROUP" ]

valid {
    input.Body.StudioId == STRING
    input.Body.IdentityId == STRING
    input.Body.IdentityName == STRING
    input.Body.IdentityType == enum_IdentityType[_]
    input.Body.SessionPolicyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}