{"files":{"SKILL.md":"---\nname: amazon-emr-containers\ndescription: \"Amazon EMR Containers API skill. Use when working with Amazon EMR Containers for virtualclusters, jobtemplates, securityconfigurations. Covers 23 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Amazon EMR Containers\nAPI version: 2020-10-01\n\n## Auth\nAWS SigV4\n\n## Base URL\nNot specified.\n\n## Setup\n1. Configure auth: AWS SigV4\n2. GET /jobtemplates -- lists job templates based on a set of parameters. job template stores values of startjobrun api request in a template and can be used to start a job run. job template allows two use cases: avoid repeating recurring startjobrun api request values, enforcing certain values in startjobrun api request.\n3. POST /jobtemplates -- create first jobtemplate\n\n## Endpoints\n23 endpoints across 4 groups. See references/api-spec.lap for full details.\n\n### Virtualclusters\n| Method | Path | Description |\n|--------|------|-------------|\n| DELETE | /virtualclusters/{virtualClusterId}/jobruns/{jobRunId} | Cancels a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS. |\n| POST | /virtualclusters/{virtualClusterId}/endpoints | Creates a managed endpoint. A managed endpoint is a gateway that connects Amazon EMR Studio to Amazon EMR on EKS so that Amazon EMR Studio can communicate with your virtual cluster. |\n| POST | /virtualclusters | Creates a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements. |\n| DELETE | /virtualclusters/{virtualClusterId}/endpoints/{endpointId} | Deletes a managed endpoint. A managed endpoint is a gateway that connects Amazon EMR Studio to Amazon EMR on EKS so that Amazon EMR Studio can communicate with your virtual cluster. |\n| DELETE | /virtualclusters/{virtualClusterId} | Deletes a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements. |\n| GET | /virtualclusters/{virtualClusterId}/jobruns/{jobRunId} | Displays detailed information about a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS. |\n| GET | /virtualclusters/{virtualClusterId}/endpoints/{endpointId} | Displays detailed information about a managed endpoint. A managed endpoint is a gateway that connects Amazon EMR Studio to Amazon EMR on EKS so that Amazon EMR Studio can communicate with your virtual cluster. |\n| GET | /virtualclusters/{virtualClusterId} | Displays detailed information about a specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements. |\n| POST | /virtualclusters/{virtualClusterId}/endpoints/{endpointId}/credentials | Generate a session token to connect to a managed endpoint. |\n| GET | /virtualclusters/{virtualClusterId}/jobruns | Lists job runs based on a set of parameters. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS. |\n| GET | /virtualclusters/{virtualClusterId}/endpoints | Lists managed endpoints based on a set of parameters. A managed endpoint is a gateway that connects Amazon EMR Studio to Amazon EMR on EKS so that Amazon EMR Studio can communicate with your virtual cluster. |\n| GET | /virtualclusters | Lists information about the specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements. |\n| POST | /virtualclusters/{virtualClusterId}/jobruns | Starts a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS. |\n\n### Jobtemplates\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /jobtemplates | Creates a job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request. |\n| DELETE | /jobtemplates/{templateId} | Deletes a job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request. |\n| GET | /jobtemplates/{templateId} | Displays detailed information about a specified job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request. |\n| GET | /jobtemplates | Lists job templates based on a set of parameters. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request. |\n\n### Securityconfigurations\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /securityconfigurations | Creates a security configuration. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security configurations to configure the Lake Formation integration setup. You can also create a security configuration to re-use a security setup each time you create a virtual cluster. |\n| GET | /securityconfigurations/{securityConfigurationId} | Displays detailed information about a specified security configuration. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security configurations to configure the Lake Formation integration setup. You can also create a security configuration to re-use a security setup each time you create a virtual cluster. |\n| GET | /securityconfigurations | Lists security configurations based on a set of parameters. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security configurations to configure the Lake Formation integration setup. You can also create a security configuration to re-use a security setup each time you create a virtual cluster. |\n\n### Tags\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /tags/{resourceArn} | Lists the tags assigned to the resources. |\n| POST | /tags/{resourceArn} | Assigns tags to resources. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value, both of which you define. Tags enable you to categorize your Amazon Web Services resources by attributes such as purpose, owner, or environment. When you have many resources of the same type, you can quickly identify a specific resource based on the tags you've assigned to it. For example, you can define a set of tags for your Amazon EMR on EKS clusters to help you track each cluster's owner and stack level. We recommend that you devise a consistent set of tag keys for each resource type. You can then search and filter the resources based on the tags that you add. |\n| DELETE | /tags/{resourceArn} | Removes tags from resources. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Delete a jobrun?\" -> DELETE /virtualclusters/{virtualClusterId}/jobruns/{jobRunId}\n- \"Create a jobtemplate?\" -> POST /jobtemplates\n- \"Create a endpoint?\" -> POST /virtualclusters/{virtualClusterId}/endpoints\n- \"Create a securityconfiguration?\" -> POST /securityconfigurations\n- \"Create a virtualcluster?\" -> POST /virtualclusters\n- \"Delete a jobtemplate?\" -> DELETE /jobtemplates/{templateId}\n- \"Delete a endpoint?\" -> DELETE /virtualclusters/{virtualClusterId}/endpoints/{endpointId}\n- \"Delete a virtualcluster?\" -> DELETE /virtualclusters/{virtualClusterId}\n- \"Get jobrun details?\" -> GET /virtualclusters/{virtualClusterId}/jobruns/{jobRunId}\n- \"Get jobtemplate details?\" -> GET /jobtemplates/{templateId}\n- \"Get endpoint details?\" -> GET /virtualclusters/{virtualClusterId}/endpoints/{endpointId}\n- \"Get securityconfiguration details?\" -> GET /securityconfigurations/{securityConfigurationId}\n- \"Get virtualcluster details?\" -> GET /virtualclusters/{virtualClusterId}\n- \"Create a credential?\" -> POST /virtualclusters/{virtualClusterId}/endpoints/{endpointId}/credentials\n- \"List all jobruns?\" -> GET /virtualclusters/{virtualClusterId}/jobruns\n- \"List all jobtemplates?\" -> GET /jobtemplates\n- \"List all endpoints?\" -> GET /virtualclusters/{virtualClusterId}/endpoints\n- \"List all securityconfigurations?\" -> GET /securityconfigurations\n- \"Get tag details?\" -> GET /tags/{resourceArn}\n- \"List all virtualclusters?\" -> GET /virtualclusters\n- \"Create a jobrun?\" -> POST /virtualclusters/{virtualClusterId}/jobruns\n- \"Delete a tag?\" -> DELETE /tags/{resourceArn}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Amazon EMR Containers\n@version 2020-10-01\n@auth AWS SigV4\n@endpoints 23\n@hint download_for_search\n@toc virtualclusters(13), jobtemplates(4), securityconfigurations(3), tags(3)\n\n@group virtualclusters\n@endpoint DELETE /virtualclusters/{virtualClusterId}/jobruns/{jobRunId}\n@desc Cancels a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.\n@required {id: str, virtualClusterId: str}\n@returns(200) {id: str?, virtualClusterId: str?}\n\n@endgroup\n\n@group jobtemplates\n@endpoint POST /jobtemplates\n@desc Creates a job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.\n@required {name: str, clientToken: str, jobTemplateData: JobTemplateData}\n@optional {tags: map<str,str>, kmsKeyArn: str}\n@returns(200) {id: str?, name: str?, arn: str?, createdAt: str(timestamp)?}\n\n@endgroup\n\n@group virtualclusters\n@endpoint POST /virtualclusters/{virtualClusterId}/endpoints\n@desc Creates a managed endpoint. A managed endpoint is a gateway that connects Amazon EMR Studio to Amazon EMR on EKS so that Amazon EMR Studio can communicate with your virtual cluster.\n@required {virtualClusterId: str, name: str, type: str, releaseLabel: str, executionRoleArn: str, clientToken: str}\n@optional {certificateArn: str, configurationOverrides: ConfigurationOverrides, tags: map<str,str>}\n@returns(200) {id: str?, name: str?, arn: str?, virtualClusterId: str?}\n\n@endgroup\n\n@group securityconfigurations\n@endpoint POST /securityconfigurations\n@desc Creates a security configuration. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security configurations to configure the Lake Formation integration setup. You can also create a security configuration to re-use a security setup each time you create a virtual cluster.\n@required {clientToken: str, name: str, securityConfigurationData: SecurityConfigurationData}\n@optional {tags: map<str,str>}\n@returns(200) {id: str?, name: str?, arn: str?}\n\n@endgroup\n\n@group virtualclusters\n@endpoint POST /virtualclusters\n@desc Creates a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.\n@required {name: str, containerProvider: ContainerProvider, clientToken: str}\n@optional {tags: map<str,str>, securityConfigurationId: str}\n@returns(200) {id: str?, name: str?, arn: str?}\n\n@endgroup\n\n@group jobtemplates\n@endpoint DELETE /jobtemplates/{templateId}\n@desc Deletes a job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.\n@required {id: str}\n@returns(200) {id: str?}\n\n@endgroup\n\n@group virtualclusters\n@endpoint DELETE /virtualclusters/{virtualClusterId}/endpoints/{endpointId}\n@desc Deletes a managed endpoint. A managed endpoint is a gateway that connects Amazon EMR Studio to Amazon EMR on EKS so that Amazon EMR Studio can communicate with your virtual cluster.\n@required {id: str, virtualClusterId: str}\n@returns(200) {id: str?, virtualClusterId: str?}\n\n@endpoint DELETE /virtualclusters/{virtualClusterId}\n@desc Deletes a virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.\n@required {id: str}\n@returns(200) {id: str?}\n\n@endpoint GET /virtualclusters/{virtualClusterId}/jobruns/{jobRunId}\n@desc Displays detailed information about a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.\n@required {id: str, virtualClusterId: str}\n@returns(200) {jobRun: JobRun?{id: str?, name: str?, virtualClusterId: str?, arn: str?, state: str?, clientToken: str?, executionRoleArn: str?, releaseLabel: str?, configurationOverrides: ConfigurationOverrides?{applicationConfiguration: [Configuration]?, monitoringConfiguration: MonitoringConfiguration?{persistentAppUI: str?, cloudWatchMonitoringConfiguration: CloudWatchMonitoringConfiguration?, s3MonitoringConfiguration: S3MonitoringConfiguration?, containerLogRotationConfiguration: ContainerLogRotationConfiguration?}}, jobDriver: JobDriver?{sparkSubmitJobDriver: SparkSubmitJobDriver?{entryPoint: str, entryPointArguments: [str]?, sparkSubmitParameters: str?}, sparkSqlJobDriver: SparkSqlJobDriver?{entryPoint: str?, sparkSqlParameters: str?}}, createdAt: str(timestamp)?, createdBy: str?, finishedAt: str(timestamp)?, stateDetails: str?, failureReason: str?, tags: map<str, str>?: any, retryPolicyConfiguration: RetryPolicyConfiguration?{maxAttempts: int}, retryPolicyExecution: RetryPolicyExecution?{currentAttemptCount: int}}}\n\n@endgroup\n\n@group jobtemplates\n@endpoint GET /jobtemplates/{templateId}\n@desc Displays detailed information about a specified job template. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.\n@required {id: str}\n@returns(200) {jobTemplate: JobTemplate?{name: str?, id: str?, arn: str?, createdAt: str(timestamp)?, createdBy: str?, tags: map<str, str>?: any, jobTemplateData: JobTemplateData{executionRoleArn: str, releaseLabel: str, configurationOverrides: ParametricConfigurationOverrides?{applicationConfiguration: [Configuration]?, monitoringConfiguration: ParametricMonitoringConfiguration?}, jobDriver: JobDriver{sparkSubmitJobDriver: SparkSubmitJobDriver?, sparkSqlJobDriver: SparkSqlJobDriver?}, parameterConfiguration: map<str, TemplateParameterConfiguration>?: any, jobTags: map<str, str>?: any}, kmsKeyArn: str?, decryptionError: str?}}\n\n@endgroup\n\n@group virtualclusters\n@endpoint GET /virtualclusters/{virtualClusterId}/endpoints/{endpointId}\n@desc Displays detailed information about a managed endpoint. A managed endpoint is a gateway that connects Amazon EMR Studio to Amazon EMR on EKS so that Amazon EMR Studio can communicate with your virtual cluster.\n@required {id: str, virtualClusterId: str}\n@returns(200) {endpoint: Endpoint?{id: str?, name: str?, arn: str?, virtualClusterId: str?, type: str?, state: str?, releaseLabel: str?, executionRoleArn: str?, certificateArn: str?, certificateAuthority: Certificate?{certificateArn: str?, certificateData: str?}, configurationOverrides: ConfigurationOverrides?{applicationConfiguration: [Configuration]?, monitoringConfiguration: MonitoringConfiguration?{persistentAppUI: str?, cloudWatchMonitoringConfiguration: CloudWatchMonitoringConfiguration?, s3MonitoringConfiguration: S3MonitoringConfiguration?, containerLogRotationConfiguration: ContainerLogRotationConfiguration?}}, serverUrl: str?, createdAt: str(timestamp)?, securityGroup: str?, subnetIds: [str]?, stateDetails: str?, failureReason: str?, tags: map<str, str>?: any}}\n\n@endgroup\n\n@group securityconfigurations\n@endpoint GET /securityconfigurations/{securityConfigurationId}\n@desc Displays detailed information about a specified security configuration. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security configurations to configure the Lake Formation integration setup. You can also create a security configuration to re-use a security setup each time you create a virtual cluster.\n@required {id: str}\n@returns(200) {securityConfiguration: SecurityConfiguration?{id: str?, name: str?, arn: str?, createdAt: str(timestamp)?, createdBy: str?, securityConfigurationData: SecurityConfigurationData?{authorizationConfiguration: AuthorizationConfiguration?{lakeFormationConfiguration: LakeFormationConfiguration?, encryptionConfiguration: EncryptionConfiguration?}}, tags: map<str, str>?: any}}\n\n@endgroup\n\n@group virtualclusters\n@endpoint GET /virtualclusters/{virtualClusterId}\n@desc Displays detailed information about a specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.\n@required {id: str}\n@returns(200) {virtualCluster: VirtualCluster?{id: str?, name: str?, arn: str?, state: str?, containerProvider: ContainerProvider?{type: str, id: str, info: ContainerInfo?{eksInfo: EksInfo?}}, createdAt: str(timestamp)?, tags: map<str, str>?: any, securityConfigurationId: str?}}\n\n@endpoint POST /virtualclusters/{virtualClusterId}/endpoints/{endpointId}/credentials\n@desc Generate a session token to connect to a managed endpoint.\n@required {endpointIdentifier: str, virtualClusterIdentifier: str, executionRoleArn: str, credentialType: str}\n@optional {durationInSeconds: int, logContext: str, clientToken: str}\n@returns(200) {id: str?, credentials: Credentials?{token: str?}, expiresAt: str(timestamp)?}\n\n@endpoint GET /virtualclusters/{virtualClusterId}/jobruns\n@desc Lists job runs based on a set of parameters. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.\n@required {virtualClusterId: str}\n@optional {createdBefore: str(timestamp), createdAfter: str(timestamp), name: str, states: [str], maxResults: int, nextToken: str}\n@returns(200) {jobRuns: [JobRun]?, nextToken: str?}\n\n@endgroup\n\n@group jobtemplates\n@endpoint GET /jobtemplates\n@desc Lists job templates based on a set of parameters. Job template stores values of StartJobRun API request in a template and can be used to start a job run. Job template allows two use cases: avoid repeating recurring StartJobRun API request values, enforcing certain values in StartJobRun API request.\n@optional {createdAfter: str(timestamp), createdBefore: str(timestamp), maxResults: int, nextToken: str}\n@returns(200) {templates: [JobTemplate]?, nextToken: str?}\n\n@endgroup\n\n@group virtualclusters\n@endpoint GET /virtualclusters/{virtualClusterId}/endpoints\n@desc Lists managed endpoints based on a set of parameters. A managed endpoint is a gateway that connects Amazon EMR Studio to Amazon EMR on EKS so that Amazon EMR Studio can communicate with your virtual cluster.\n@required {virtualClusterId: str}\n@optional {createdBefore: str(timestamp), createdAfter: str(timestamp), types: [str], states: [str], maxResults: int, nextToken: str}\n@returns(200) {endpoints: [Endpoint]?, nextToken: str?}\n\n@endgroup\n\n@group securityconfigurations\n@endpoint GET /securityconfigurations\n@desc Lists security configurations based on a set of parameters. Security configurations in Amazon EMR on EKS are templates for different security setups. You can use security configurations to configure the Lake Formation integration setup. You can also create a security configuration to re-use a security setup each time you create a virtual cluster.\n@optional {createdAfter: str(timestamp), createdBefore: str(timestamp), maxResults: int, nextToken: str}\n@returns(200) {securityConfigurations: [SecurityConfiguration]?, nextToken: str?}\n\n@endgroup\n\n@group tags\n@endpoint GET /tags/{resourceArn}\n@desc Lists the tags assigned to the resources.\n@required {resourceArn: str}\n@returns(200) {tags: map<str,str>?}\n\n@endgroup\n\n@group virtualclusters\n@endpoint GET /virtualclusters\n@desc Lists information about the specified virtual cluster. Virtual cluster is a managed entity on Amazon EMR on EKS. You can create, describe, list and delete virtual clusters. They do not consume any additional resource in your system. A single virtual cluster maps to a single Kubernetes namespace. Given this relationship, you can model virtual clusters the same way you model Kubernetes namespaces to meet your requirements.\n@optional {containerProviderId: str, containerProviderType: str, createdAfter: str(timestamp), createdBefore: str(timestamp), states: [str], maxResults: int, nextToken: str, eksAccessEntryIntegrated: bool}\n@returns(200) {virtualClusters: [VirtualCluster]?, nextToken: str?}\n\n@endpoint POST /virtualclusters/{virtualClusterId}/jobruns\n@desc Starts a job run. A job run is a unit of work, such as a Spark jar, PySpark script, or SparkSQL query, that you submit to Amazon EMR on EKS.\n@required {virtualClusterId: str, clientToken: str}\n@optional {name: str, executionRoleArn: str, releaseLabel: str, jobDriver: JobDriver, configurationOverrides: ConfigurationOverrides, tags: map<str,str>, jobTemplateId: str, jobTemplateParameters: map<str,str>, retryPolicyConfiguration: RetryPolicyConfiguration}\n@returns(200) {id: str?, name: str?, arn: str?, virtualClusterId: str?}\n\n@endgroup\n\n@group tags\n@endpoint POST /tags/{resourceArn}\n@desc Assigns tags to resources. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an optional value, both of which you define. Tags enable you to categorize your Amazon Web Services resources by attributes such as purpose, owner, or environment. When you have many resources of the same type, you can quickly identify a specific resource based on the tags you've assigned to it. For example, you can define a set of tags for your Amazon EMR on EKS clusters to help you track each cluster's owner and stack level. We recommend that you devise a consistent set of tag keys for each resource type. You can then search and filter the resources based on the tags that you add.\n@required {resourceArn: str, tags: map<str,str>}\n\n@endpoint DELETE /tags/{resourceArn}\n@desc Removes tags from resources.\n@required {resourceArn: str, tagKeys: [str]}\n\n@endgroup\n\n@end\n"}}