@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon EMR
@version 2009-03-31
@auth AWS SigV4
@endpoints 56
@hint download_for_search
@toc root(56)

@endpoint POST /
@required {ClusterId: str, InstanceFleet: InstanceFleetConfig}
@returns(200) {ClusterId: str?, InstanceFleetId: str?, ClusterArn: str?}

@endpoint POST /
@required {InstanceGroups: [InstanceGroupConfig], JobFlowId: str}
@returns(200) {JobFlowId: str?, InstanceGroupIds: [str]?, ClusterArn: str?}

@endpoint POST /
@required {JobFlowId: str, Steps: [StepConfig]}
@optional {ExecutionRoleArn: str}
@returns(200) {StepIds: [str]?}

@endpoint POST /
@required {ResourceId: str, Tags: [Tag]}

@endpoint POST /
@required {ClusterId: str, StepIds: [str]}
@optional {StepCancellationOption: str}
@returns(200) {CancelStepsInfoList: [CancelStepsInfo]?}

@endpoint POST /
@required {Name: str, SecurityConfiguration: str}
@returns(200) {Name: str, CreationDateTime: str(timestamp)}

@endpoint POST /
@required {Name: str, AuthMode: str, VpcId: str, SubnetIds: [str], ServiceRole: str, WorkspaceSecurityGroupId: str, EngineSecurityGroupId: str, DefaultS3Location: str}
@optional {Description: str, UserRole: str, IdpAuthUrl: str, IdpRelayStateParameterName: str, Tags: [Tag], TrustedIdentityPropagationEnabled: bool, IdcUserAssignment: str, IdcInstanceArn: str, EncryptionKeyArn: str}
@returns(200) {StudioId: str?, Url: str?}

@endpoint POST /
@required {StudioId: str, IdentityType: str, SessionPolicyArn: str}
@optional {IdentityId: str, IdentityName: str}

@endpoint POST /
@required {Name: str}

@endpoint POST /
@required {StudioId: str}

@endpoint POST /
@required {StudioId: str, IdentityType: str}
@optional {IdentityId: str, IdentityName: str}

@endpoint POST /
@required {ClusterId: str}
@returns(200) {Cluster: Cluster?{Id: str?, Name: str?, Status: ClusterStatus?{State: str?, StateChangeReason: ClusterStateChangeReason?{Code: str?, Message: str?}, Timeline: ClusterTimeline?{CreationDateTime: str(timestamp)?, ReadyDateTime: str(timestamp)?, EndDateTime: str(timestamp)?}, ErrorDetails: [ErrorDetail]?}, Ec2InstanceAttributes: Ec2InstanceAttributes?{Ec2KeyName: str?, Ec2SubnetId: str?, RequestedEc2SubnetIds: [str]?, Ec2AvailabilityZone: str?, RequestedEc2AvailabilityZones: [str]?, IamInstanceProfile: str?, EmrManagedMasterSecurityGroup: str?, EmrManagedSlaveSecurityGroup: str?, ServiceAccessSecurityGroup: str?, AdditionalMasterSecurityGroups: [str]?, AdditionalSlaveSecurityGroups: [str]?}, InstanceCollectionType: str?, LogUri: str?, LogEncryptionKmsKeyId: str?, RequestedAmiVersion: str?, RunningAmiVersion: str?, ReleaseLabel: str?, AutoTerminate: bool?, TerminationProtected: bool?, UnhealthyNodeReplacement: bool?, VisibleToAllUsers: bool?, Applications: [Application]?, Tags: [Tag]?, ServiceRole: str?, NormalizedInstanceHours: int?, MasterPublicDnsName: str?, Configurations: [Configuration]?, SecurityConfiguration: str?, AutoScalingRole: str?, ScaleDownBehavior: str?, CustomAmiId: str?, EbsRootVolumeSize: int?, RepoUpgradeOnBoot: str?, KerberosAttributes: KerberosAttributes?{Realm: str, KdcAdminPassword: str, CrossRealmTrustPrincipalPassword: str?, ADDomainJoinUser: str?, ADDomainJoinPassword: str?}, ClusterArn: str?, OutpostArn: str?, StepConcurrencyLevel: int?, PlacementGroups: [PlacementGroupConfig]?, OSReleaseLabel: str?, EbsRootVolumeIops: int?, EbsRootVolumeThroughput: int?}}

@endpoint POST /
@optional {CreatedAfter: str(timestamp), CreatedBefore: str(timestamp), JobFlowIds: [str], JobFlowStates: [str]}
@returns(200) {JobFlows: [JobFlowDetail]?}

@endpoint POST /
@required {NotebookExecutionId: str}
@returns(200) {NotebookExecution: NotebookExecution?{NotebookExecutionId: str?, EditorId: str?, ExecutionEngine: ExecutionEngineConfig?{Id: str, Type: str?, MasterInstanceSecurityGroupId: str?, ExecutionRoleArn: str?}, NotebookExecutionName: str?, NotebookParams: str?, Status: str?, StartTime: str(timestamp)?, EndTime: str(timestamp)?, Arn: str?, OutputNotebookURI: str?, LastStateChangeReason: str?, NotebookInstanceSecurityGroupId: str?, Tags: [Tag]?, NotebookS3Location: NotebookS3LocationForOutput?{Bucket: str?, Key: str?}, OutputNotebookS3Location: OutputNotebookS3LocationForOutput?{Bucket: str?, Key: str?}, OutputNotebookFormat: str?, EnvironmentVariables: map<str,str>?}}

@endpoint POST /
@optional {ReleaseLabel: str, NextToken: str, MaxResults: int}
@returns(200) {ReleaseLabel: str?, Applications: [SimplifiedApplication]?, NextToken: str?, AvailableOSReleases: [OSRelease]?}

@endpoint POST /
@required {Name: str}
@returns(200) {Name: str?, SecurityConfiguration: str?, CreationDateTime: str(timestamp)?}

@endpoint POST /
@required {ClusterId: str, StepId: str}
@returns(200) {Step: Step?{Id: str?, Name: str?, Config: HadoopStepConfig?{Jar: str?, Properties: map<str,str>?, MainClass: str?, Args: [str]?}, ActionOnFailure: str?, Status: StepStatus?{State: str?, StateChangeReason: StepStateChangeReason?{Code: str?, Message: str?}, FailureDetails: FailureDetails?{Reason: str?, Message: str?, LogFile: str?}, Timeline: StepTimeline?{CreationDateTime: str(timestamp)?, StartDateTime: str(timestamp)?, EndDateTime: str(timestamp)?}}, ExecutionRoleArn: str?}}

@endpoint POST /
@required {StudioId: str}
@returns(200) {Studio: Studio?{StudioId: str?, StudioArn: str?, Name: str?, Description: str?, AuthMode: str?, VpcId: str?, SubnetIds: [str]?, ServiceRole: str?, UserRole: str?, WorkspaceSecurityGroupId: str?, EngineSecurityGroupId: str?, Url: str?, CreationTime: str(timestamp)?, DefaultS3Location: str?, IdpAuthUrl: str?, IdpRelayStateParameterName: str?, Tags: [Tag]?, IdcInstanceArn: str?, TrustedIdentityPropagationEnabled: bool?, IdcUserAssignment: str?, EncryptionKeyArn: str?}}

@endpoint POST /
@required {ClusterId: str}
@returns(200) {AutoTerminationPolicy: AutoTerminationPolicy?{IdleTimeout: int(i64)?}}

@endpoint POST /
@returns(200) {BlockPublicAccessConfiguration: BlockPublicAccessConfiguration{BlockPublicSecurityGroupRules: bool, PermittedPublicSecurityGroupRuleRanges: [PortRange]?}, BlockPublicAccessConfigurationMetadata: BlockPublicAccessConfigurationMetadata{CreationDateTime: str(timestamp), CreatedByArn: str}}

@endpoint POST /
@required {ClusterId: str}
@optional {ExecutionRoleArn: str}
@returns(200) {Credentials: Credentials?{UsernamePassword: UsernamePassword?{Username: str?, Password: str?}}, ExpiresAt: str(timestamp)?}

@endpoint POST /
@required {ClusterId: str}
@returns(200) {ManagedScalingPolicy: ManagedScalingPolicy?{ComputeLimits: ComputeLimits?{UnitType: str, MinimumCapacityUnits: int, MaximumCapacityUnits: int, MaximumOnDemandCapacityUnits: int?, MaximumCoreCapacityUnits: int?}}}

@endpoint POST /
@required {StudioId: str, IdentityType: str}
@optional {IdentityId: str, IdentityName: str}
@returns(200) {SessionMapping: SessionMappingDetail?{StudioId: str?, IdentityId: str?, IdentityName: str?, IdentityType: str?, SessionPolicyArn: str?, CreationTime: str(timestamp)?, LastModifiedTime: str(timestamp)?}}

@endpoint POST /
@required {ClusterId: str}
@optional {Marker: str}
@returns(200) {BootstrapActions: [Command]?, Marker: str?}

@endpoint POST /
@optional {CreatedAfter: str(timestamp), CreatedBefore: str(timestamp), ClusterStates: [str], Marker: str}
@returns(200) {Clusters: [ClusterSummary]?, Marker: str?}

@endpoint POST /
@required {ClusterId: str}
@optional {Marker: str}
@returns(200) {InstanceFleets: [InstanceFleet]?, Marker: str?}

@endpoint POST /
@required {ClusterId: str}
@optional {Marker: str}
@returns(200) {InstanceGroups: [InstanceGroup]?, Marker: str?}

@endpoint POST /
@required {ClusterId: str}
@optional {InstanceGroupId: str, InstanceGroupTypes: [str], InstanceFleetId: str, InstanceFleetType: str, InstanceStates: [str], Marker: str}
@returns(200) {Instances: [Instance]?, Marker: str?}

@endpoint POST /
@optional {EditorId: str, Status: str, From: str(timestamp), To: str(timestamp), Marker: str, ExecutionEngineId: str}
@returns(200) {NotebookExecutions: [NotebookExecutionSummary]?, Marker: str?}

@endpoint POST /
@optional {Filters: ReleaseLabelFilter, NextToken: str, MaxResults: int}
@returns(200) {ReleaseLabels: [str]?, NextToken: str?}

@endpoint POST /
@optional {Marker: str}
@returns(200) {SecurityConfigurations: [SecurityConfigurationSummary]?, Marker: str?}

@endpoint POST /
@required {ClusterId: str}
@optional {StepStates: [str], StepIds: [str], Marker: str}
@returns(200) {Steps: [StepSummary]?, Marker: str?}

@endpoint POST /
@optional {StudioId: str, IdentityType: str, Marker: str}
@returns(200) {SessionMappings: [SessionMappingSummary]?, Marker: str?}

@endpoint POST /
@optional {Marker: str}
@returns(200) {Studios: [StudioSummary]?, Marker: str?}

@endpoint POST /
@required {ReleaseLabel: str}
@optional {Marker: str}
@returns(200) {SupportedInstanceTypes: [SupportedInstanceType]?, Marker: str?}

@endpoint POST /
@required {ClusterId: str}
@optional {StepConcurrencyLevel: int}
@returns(200) {StepConcurrencyLevel: int?}

@endpoint POST /
@required {ClusterId: str, InstanceFleet: InstanceFleetModifyConfig}

@endpoint POST /
@optional {ClusterId: str, InstanceGroups: [InstanceGroupModifyConfig]}

@endpoint POST /
@required {ClusterId: str, InstanceGroupId: str, AutoScalingPolicy: AutoScalingPolicy}
@returns(200) {ClusterId: str?, InstanceGroupId: str?, AutoScalingPolicy: AutoScalingPolicyDescription?{Status: AutoScalingPolicyStatus?{State: str?, StateChangeReason: AutoScalingPolicyStateChangeReason?{Code: str?, Message: str?}}, Constraints: ScalingConstraints?{MinCapacity: int, MaxCapacity: int}, Rules: [ScalingRule]?}, ClusterArn: str?}

@endpoint POST /
@required {ClusterId: str}
@optional {AutoTerminationPolicy: AutoTerminationPolicy}

@endpoint POST /
@required {BlockPublicAccessConfiguration: BlockPublicAccessConfiguration}

@endpoint POST /
@required {ClusterId: str, ManagedScalingPolicy: ManagedScalingPolicy}

@endpoint POST /
@required {ClusterId: str, InstanceGroupId: str}

@endpoint POST /
@required {ClusterId: str}

@endpoint POST /
@required {ClusterId: str}

@endpoint POST /
@required {ResourceId: str, TagKeys: [str]}

@endpoint POST /
@required {Name: str, Instances: JobFlowInstancesConfig}
@optional {LogUri: str, LogEncryptionKmsKeyId: str, AdditionalInfo: str, AmiVersion: str, ReleaseLabel: str, Steps: [StepConfig], BootstrapActions: [BootstrapActionConfig], SupportedProducts: [str], NewSupportedProducts: [SupportedProductConfig], Applications: [Application], Configurations: [Configuration], VisibleToAllUsers: bool, JobFlowRole: str, ServiceRole: str, Tags: [Tag], SecurityConfiguration: str, AutoScalingRole: str, ScaleDownBehavior: str, CustomAmiId: str, EbsRootVolumeSize: int, RepoUpgradeOnBoot: str, KerberosAttributes: KerberosAttributes, StepConcurrencyLevel: int, ManagedScalingPolicy: ManagedScalingPolicy, PlacementGroupConfigs: [PlacementGroupConfig], AutoTerminationPolicy: AutoTerminationPolicy, OSReleaseLabel: str, EbsRootVolumeIops: int, EbsRootVolumeThroughput: int}
@returns(200) {JobFlowId: str?, ClusterArn: str?}

@endpoint POST /
@required {JobFlowIds: [str], KeepJobFlowAliveWhenNoSteps: bool}

@endpoint POST /
@required {JobFlowIds: [str], TerminationProtected: bool}

@endpoint POST /
@required {JobFlowIds: [str], UnhealthyNodeReplacement: bool}

@endpoint POST /
@required {JobFlowIds: [str], VisibleToAllUsers: bool}

@endpoint POST /
@required {ExecutionEngine: ExecutionEngineConfig, ServiceRole: str}
@optional {EditorId: str, RelativePath: str, NotebookExecutionName: str, NotebookParams: str, NotebookInstanceSecurityGroupId: str, Tags: [Tag], NotebookS3Location: NotebookS3LocationFromInput, OutputNotebookS3Location: OutputNotebookS3LocationFromInput, OutputNotebookFormat: str, EnvironmentVariables: map<str,str>}
@returns(200) {NotebookExecutionId: str?}

@endpoint POST /
@required {NotebookExecutionId: str}

@endpoint POST /
@required {JobFlowIds: [str]}

@endpoint POST /
@required {StudioId: str}
@optional {Name: str, Description: str, SubnetIds: [str], DefaultS3Location: str, EncryptionKeyArn: str}

@endpoint POST /
@required {StudioId: str, IdentityType: str, SessionPolicyArn: str}
@optional {IdentityId: str, IdentityName: str}

@end
