{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.RobOMaker.CreateSimulationJob -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Creates a simulation job. -- -- After 90 days, simulation jobs expire and will be deleted. They will no -- longer be accessible. module Amazonka.RobOMaker.CreateSimulationJob ( -- * Creating a Request CreateSimulationJob (..), newCreateSimulationJob, -- * Request Lenses createSimulationJob_clientRequestToken, createSimulationJob_compute, createSimulationJob_dataSources, createSimulationJob_failureBehavior, createSimulationJob_loggingConfig, createSimulationJob_outputLocation, createSimulationJob_robotApplications, createSimulationJob_simulationApplications, createSimulationJob_tags, createSimulationJob_vpcConfig, createSimulationJob_maxJobDurationInSeconds, createSimulationJob_iamRole, -- * Destructuring the Response CreateSimulationJobResponse (..), newCreateSimulationJobResponse, -- * Response Lenses createSimulationJobResponse_arn, createSimulationJobResponse_clientRequestToken, createSimulationJobResponse_compute, createSimulationJobResponse_dataSources, createSimulationJobResponse_failureBehavior, createSimulationJobResponse_failureCode, createSimulationJobResponse_iamRole, createSimulationJobResponse_lastStartedAt, createSimulationJobResponse_lastUpdatedAt, createSimulationJobResponse_loggingConfig, createSimulationJobResponse_maxJobDurationInSeconds, createSimulationJobResponse_outputLocation, createSimulationJobResponse_robotApplications, createSimulationJobResponse_simulationApplications, createSimulationJobResponse_simulationTimeMillis, createSimulationJobResponse_status, createSimulationJobResponse_tags, createSimulationJobResponse_vpcConfig, createSimulationJobResponse_httpStatus, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response import Amazonka.RobOMaker.Types -- | /See:/ 'newCreateSimulationJob' smart constructor. data CreateSimulationJob = CreateSimulationJob' { -- | Unique, case-sensitive identifier that you provide to ensure the -- idempotency of the request. clientRequestToken :: Prelude.Maybe Prelude.Text, -- | Compute information for the simulation job. compute :: Prelude.Maybe Compute, -- | Specify data sources to mount read-only files from S3 into your -- simulation. These files are available under -- @\/opt\/robomaker\/datasources\/data_source_name@. -- -- There is a limit of 100 files and a combined size of 25GB for all -- @DataSourceConfig@ objects. dataSources :: Prelude.Maybe (Prelude.NonEmpty DataSourceConfig), -- | The failure behavior the simulation job. -- -- [Continue] -- Leaves the instance running for its maximum timeout duration after a -- @4XX@ error code. -- -- [Fail] -- Stop the simulation job and terminate the instance. failureBehavior :: Prelude.Maybe FailureBehavior, -- | The logging configuration. loggingConfig :: Prelude.Maybe LoggingConfig, -- | Location for output files generated by the simulation job. outputLocation :: Prelude.Maybe OutputLocation, -- | The robot application to use in the simulation job. robotApplications :: Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig), -- | The simulation application to use in the simulation job. simulationApplications :: Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig), -- | A map that contains tag keys and tag values that are attached to the -- simulation job. tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text), -- | If your simulation job accesses resources in a VPC, you provide this -- parameter identifying the list of security group IDs and subnet IDs. -- These must belong to the same VPC. You must provide at least one -- security group and one subnet ID. vpcConfig :: Prelude.Maybe VPCConfig, -- | The maximum simulation job duration in seconds (up to 14 days or -- 1,209,600 seconds. When @maxJobDurationInSeconds@ is reached, the -- simulation job will status will transition to @Completed@. maxJobDurationInSeconds :: Prelude.Integer, -- | The IAM role name that allows the simulation instance to call the AWS -- APIs that are specified in its associated policies on your behalf. This -- is how credentials are passed in to your simulation job. iamRole :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'CreateSimulationJob' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'clientRequestToken', 'createSimulationJob_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the -- idempotency of the request. -- -- 'compute', 'createSimulationJob_compute' - Compute information for the simulation job. -- -- 'dataSources', 'createSimulationJob_dataSources' - Specify data sources to mount read-only files from S3 into your -- simulation. These files are available under -- @\/opt\/robomaker\/datasources\/data_source_name@. -- -- There is a limit of 100 files and a combined size of 25GB for all -- @DataSourceConfig@ objects. -- -- 'failureBehavior', 'createSimulationJob_failureBehavior' - The failure behavior the simulation job. -- -- [Continue] -- Leaves the instance running for its maximum timeout duration after a -- @4XX@ error code. -- -- [Fail] -- Stop the simulation job and terminate the instance. -- -- 'loggingConfig', 'createSimulationJob_loggingConfig' - The logging configuration. -- -- 'outputLocation', 'createSimulationJob_outputLocation' - Location for output files generated by the simulation job. -- -- 'robotApplications', 'createSimulationJob_robotApplications' - The robot application to use in the simulation job. -- -- 'simulationApplications', 'createSimulationJob_simulationApplications' - The simulation application to use in the simulation job. -- -- 'tags', 'createSimulationJob_tags' - A map that contains tag keys and tag values that are attached to the -- simulation job. -- -- 'vpcConfig', 'createSimulationJob_vpcConfig' - If your simulation job accesses resources in a VPC, you provide this -- parameter identifying the list of security group IDs and subnet IDs. -- These must belong to the same VPC. You must provide at least one -- security group and one subnet ID. -- -- 'maxJobDurationInSeconds', 'createSimulationJob_maxJobDurationInSeconds' - The maximum simulation job duration in seconds (up to 14 days or -- 1,209,600 seconds. When @maxJobDurationInSeconds@ is reached, the -- simulation job will status will transition to @Completed@. -- -- 'iamRole', 'createSimulationJob_iamRole' - The IAM role name that allows the simulation instance to call the AWS -- APIs that are specified in its associated policies on your behalf. This -- is how credentials are passed in to your simulation job. newCreateSimulationJob :: -- | 'maxJobDurationInSeconds' Prelude.Integer -> -- | 'iamRole' Prelude.Text -> CreateSimulationJob newCreateSimulationJob pMaxJobDurationInSeconds_ pIamRole_ = CreateSimulationJob' { clientRequestToken = Prelude.Nothing, compute = Prelude.Nothing, dataSources = Prelude.Nothing, failureBehavior = Prelude.Nothing, loggingConfig = Prelude.Nothing, outputLocation = Prelude.Nothing, robotApplications = Prelude.Nothing, simulationApplications = Prelude.Nothing, tags = Prelude.Nothing, vpcConfig = Prelude.Nothing, maxJobDurationInSeconds = pMaxJobDurationInSeconds_, iamRole = pIamRole_ } -- | Unique, case-sensitive identifier that you provide to ensure the -- idempotency of the request. createSimulationJob_clientRequestToken :: Lens.Lens' CreateSimulationJob (Prelude.Maybe Prelude.Text) createSimulationJob_clientRequestToken = Lens.lens (\CreateSimulationJob' {clientRequestToken} -> clientRequestToken) (\s@CreateSimulationJob' {} a -> s {clientRequestToken = a} :: CreateSimulationJob) -- | Compute information for the simulation job. createSimulationJob_compute :: Lens.Lens' CreateSimulationJob (Prelude.Maybe Compute) createSimulationJob_compute = Lens.lens (\CreateSimulationJob' {compute} -> compute) (\s@CreateSimulationJob' {} a -> s {compute = a} :: CreateSimulationJob) -- | Specify data sources to mount read-only files from S3 into your -- simulation. These files are available under -- @\/opt\/robomaker\/datasources\/data_source_name@. -- -- There is a limit of 100 files and a combined size of 25GB for all -- @DataSourceConfig@ objects. createSimulationJob_dataSources :: Lens.Lens' CreateSimulationJob (Prelude.Maybe (Prelude.NonEmpty DataSourceConfig)) createSimulationJob_dataSources = Lens.lens (\CreateSimulationJob' {dataSources} -> dataSources) (\s@CreateSimulationJob' {} a -> s {dataSources = a} :: CreateSimulationJob) Prelude.. Lens.mapping Lens.coerced -- | The failure behavior the simulation job. -- -- [Continue] -- Leaves the instance running for its maximum timeout duration after a -- @4XX@ error code. -- -- [Fail] -- Stop the simulation job and terminate the instance. createSimulationJob_failureBehavior :: Lens.Lens' CreateSimulationJob (Prelude.Maybe FailureBehavior) createSimulationJob_failureBehavior = Lens.lens (\CreateSimulationJob' {failureBehavior} -> failureBehavior) (\s@CreateSimulationJob' {} a -> s {failureBehavior = a} :: CreateSimulationJob) -- | The logging configuration. createSimulationJob_loggingConfig :: Lens.Lens' CreateSimulationJob (Prelude.Maybe LoggingConfig) createSimulationJob_loggingConfig = Lens.lens (\CreateSimulationJob' {loggingConfig} -> loggingConfig) (\s@CreateSimulationJob' {} a -> s {loggingConfig = a} :: CreateSimulationJob) -- | Location for output files generated by the simulation job. createSimulationJob_outputLocation :: Lens.Lens' CreateSimulationJob (Prelude.Maybe OutputLocation) createSimulationJob_outputLocation = Lens.lens (\CreateSimulationJob' {outputLocation} -> outputLocation) (\s@CreateSimulationJob' {} a -> s {outputLocation = a} :: CreateSimulationJob) -- | The robot application to use in the simulation job. createSimulationJob_robotApplications :: Lens.Lens' CreateSimulationJob (Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig)) createSimulationJob_robotApplications = Lens.lens (\CreateSimulationJob' {robotApplications} -> robotApplications) (\s@CreateSimulationJob' {} a -> s {robotApplications = a} :: CreateSimulationJob) Prelude.. Lens.mapping Lens.coerced -- | The simulation application to use in the simulation job. createSimulationJob_simulationApplications :: Lens.Lens' CreateSimulationJob (Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig)) createSimulationJob_simulationApplications = Lens.lens (\CreateSimulationJob' {simulationApplications} -> simulationApplications) (\s@CreateSimulationJob' {} a -> s {simulationApplications = a} :: CreateSimulationJob) Prelude.. Lens.mapping Lens.coerced -- | A map that contains tag keys and tag values that are attached to the -- simulation job. createSimulationJob_tags :: Lens.Lens' CreateSimulationJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)) createSimulationJob_tags = Lens.lens (\CreateSimulationJob' {tags} -> tags) (\s@CreateSimulationJob' {} a -> s {tags = a} :: CreateSimulationJob) Prelude.. Lens.mapping Lens.coerced -- | If your simulation job accesses resources in a VPC, you provide this -- parameter identifying the list of security group IDs and subnet IDs. -- These must belong to the same VPC. You must provide at least one -- security group and one subnet ID. createSimulationJob_vpcConfig :: Lens.Lens' CreateSimulationJob (Prelude.Maybe VPCConfig) createSimulationJob_vpcConfig = Lens.lens (\CreateSimulationJob' {vpcConfig} -> vpcConfig) (\s@CreateSimulationJob' {} a -> s {vpcConfig = a} :: CreateSimulationJob) -- | The maximum simulation job duration in seconds (up to 14 days or -- 1,209,600 seconds. When @maxJobDurationInSeconds@ is reached, the -- simulation job will status will transition to @Completed@. createSimulationJob_maxJobDurationInSeconds :: Lens.Lens' CreateSimulationJob Prelude.Integer createSimulationJob_maxJobDurationInSeconds = Lens.lens (\CreateSimulationJob' {maxJobDurationInSeconds} -> maxJobDurationInSeconds) (\s@CreateSimulationJob' {} a -> s {maxJobDurationInSeconds = a} :: CreateSimulationJob) -- | The IAM role name that allows the simulation instance to call the AWS -- APIs that are specified in its associated policies on your behalf. This -- is how credentials are passed in to your simulation job. createSimulationJob_iamRole :: Lens.Lens' CreateSimulationJob Prelude.Text createSimulationJob_iamRole = Lens.lens (\CreateSimulationJob' {iamRole} -> iamRole) (\s@CreateSimulationJob' {} a -> s {iamRole = a} :: CreateSimulationJob) instance Core.AWSRequest CreateSimulationJob where type AWSResponse CreateSimulationJob = CreateSimulationJobResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> CreateSimulationJobResponse' Prelude.<$> (x Data..?> "arn") Prelude.<*> (x Data..?> "clientRequestToken") Prelude.<*> (x Data..?> "compute") Prelude.<*> (x Data..?> "dataSources" Core..!@ Prelude.mempty) Prelude.<*> (x Data..?> "failureBehavior") Prelude.<*> (x Data..?> "failureCode") Prelude.<*> (x Data..?> "iamRole") Prelude.<*> (x Data..?> "lastStartedAt") Prelude.<*> (x Data..?> "lastUpdatedAt") Prelude.<*> (x Data..?> "loggingConfig") Prelude.<*> (x Data..?> "maxJobDurationInSeconds") Prelude.<*> (x Data..?> "outputLocation") Prelude.<*> (x Data..?> "robotApplications") Prelude.<*> (x Data..?> "simulationApplications") Prelude.<*> (x Data..?> "simulationTimeMillis") Prelude.<*> (x Data..?> "status") Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty) Prelude.<*> (x Data..?> "vpcConfig") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) ) instance Prelude.Hashable CreateSimulationJob where hashWithSalt _salt CreateSimulationJob' {..} = _salt `Prelude.hashWithSalt` clientRequestToken `Prelude.hashWithSalt` compute `Prelude.hashWithSalt` dataSources `Prelude.hashWithSalt` failureBehavior `Prelude.hashWithSalt` loggingConfig `Prelude.hashWithSalt` outputLocation `Prelude.hashWithSalt` robotApplications `Prelude.hashWithSalt` simulationApplications `Prelude.hashWithSalt` tags `Prelude.hashWithSalt` vpcConfig `Prelude.hashWithSalt` maxJobDurationInSeconds `Prelude.hashWithSalt` iamRole instance Prelude.NFData CreateSimulationJob where rnf CreateSimulationJob' {..} = Prelude.rnf clientRequestToken `Prelude.seq` Prelude.rnf compute `Prelude.seq` Prelude.rnf dataSources `Prelude.seq` Prelude.rnf failureBehavior `Prelude.seq` Prelude.rnf loggingConfig `Prelude.seq` Prelude.rnf outputLocation `Prelude.seq` Prelude.rnf robotApplications `Prelude.seq` Prelude.rnf simulationApplications `Prelude.seq` Prelude.rnf tags `Prelude.seq` Prelude.rnf vpcConfig `Prelude.seq` Prelude.rnf maxJobDurationInSeconds `Prelude.seq` Prelude.rnf iamRole instance Data.ToHeaders CreateSimulationJob where toHeaders = Prelude.const ( Prelude.mconcat [ "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON CreateSimulationJob where toJSON CreateSimulationJob' {..} = Data.object ( Prelude.catMaybes [ ("clientRequestToken" Data..=) Prelude.<$> clientRequestToken, ("compute" Data..=) Prelude.<$> compute, ("dataSources" Data..=) Prelude.<$> dataSources, ("failureBehavior" Data..=) Prelude.<$> failureBehavior, ("loggingConfig" Data..=) Prelude.<$> loggingConfig, ("outputLocation" Data..=) Prelude.<$> outputLocation, ("robotApplications" Data..=) Prelude.<$> robotApplications, ("simulationApplications" Data..=) Prelude.<$> simulationApplications, ("tags" Data..=) Prelude.<$> tags, ("vpcConfig" Data..=) Prelude.<$> vpcConfig, Prelude.Just ( "maxJobDurationInSeconds" Data..= maxJobDurationInSeconds ), Prelude.Just ("iamRole" Data..= iamRole) ] ) instance Data.ToPath CreateSimulationJob where toPath = Prelude.const "/createSimulationJob" instance Data.ToQuery CreateSimulationJob where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newCreateSimulationJobResponse' smart constructor. data CreateSimulationJobResponse = CreateSimulationJobResponse' { -- | The Amazon Resource Name (ARN) of the simulation job. arn :: Prelude.Maybe Prelude.Text, -- | Unique, case-sensitive identifier that you provide to ensure the -- idempotency of the request. clientRequestToken :: Prelude.Maybe Prelude.Text, -- | Compute information for the simulation job. compute :: Prelude.Maybe ComputeResponse, -- | The data sources for the simulation job. dataSources :: Prelude.Maybe [DataSource], -- | the failure behavior for the simulation job. failureBehavior :: Prelude.Maybe FailureBehavior, -- | The failure code of the simulation job if it failed: -- -- [InternalServiceError] -- Internal service error. -- -- [RobotApplicationCrash] -- Robot application exited abnormally. -- -- [SimulationApplicationCrash] -- Simulation application exited abnormally. -- -- [BadPermissionsRobotApplication] -- Robot application bundle could not be downloaded. -- -- [BadPermissionsSimulationApplication] -- Simulation application bundle could not be downloaded. -- -- [BadPermissionsS3Output] -- Unable to publish outputs to customer-provided S3 bucket. -- -- [BadPermissionsCloudwatchLogs] -- Unable to publish logs to customer-provided CloudWatch Logs -- resource. -- -- [SubnetIpLimitExceeded] -- Subnet IP limit exceeded. -- -- [ENILimitExceeded] -- ENI limit exceeded. -- -- [BadPermissionsUserCredentials] -- Unable to use the Role provided. -- -- [InvalidBundleRobotApplication] -- Robot bundle cannot be extracted (invalid format, bundling error, or -- other issue). -- -- [InvalidBundleSimulationApplication] -- Simulation bundle cannot be extracted (invalid format, bundling -- error, or other issue). -- -- [RobotApplicationVersionMismatchedEtag] -- Etag for RobotApplication does not match value during version -- creation. -- -- [SimulationApplicationVersionMismatchedEtag] -- Etag for SimulationApplication does not match value during version -- creation. failureCode :: Prelude.Maybe SimulationJobErrorCode, -- | The IAM role that allows the simulation job to call the AWS APIs that -- are specified in its associated policies on your behalf. iamRole :: Prelude.Maybe Prelude.Text, -- | The time, in milliseconds since the epoch, when the simulation job was -- last started. lastStartedAt :: Prelude.Maybe Data.POSIX, -- | The time, in milliseconds since the epoch, when the simulation job was -- last updated. lastUpdatedAt :: Prelude.Maybe Data.POSIX, -- | The logging configuration. loggingConfig :: Prelude.Maybe LoggingConfig, -- | The maximum simulation job duration in seconds. maxJobDurationInSeconds :: Prelude.Maybe Prelude.Integer, -- | Simulation job output files location. outputLocation :: Prelude.Maybe OutputLocation, -- | The robot application used by the simulation job. robotApplications :: Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig), -- | The simulation application used by the simulation job. simulationApplications :: Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig), -- | The simulation job execution duration in milliseconds. simulationTimeMillis :: Prelude.Maybe Prelude.Integer, -- | The status of the simulation job. status :: Prelude.Maybe SimulationJobStatus, -- | The list of all tags added to the simulation job. tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text), -- | Information about the vpc configuration. vpcConfig :: Prelude.Maybe VPCConfigResponse, -- | The response's http status code. httpStatus :: Prelude.Int } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'CreateSimulationJobResponse' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'arn', 'createSimulationJobResponse_arn' - The Amazon Resource Name (ARN) of the simulation job. -- -- 'clientRequestToken', 'createSimulationJobResponse_clientRequestToken' - Unique, case-sensitive identifier that you provide to ensure the -- idempotency of the request. -- -- 'compute', 'createSimulationJobResponse_compute' - Compute information for the simulation job. -- -- 'dataSources', 'createSimulationJobResponse_dataSources' - The data sources for the simulation job. -- -- 'failureBehavior', 'createSimulationJobResponse_failureBehavior' - the failure behavior for the simulation job. -- -- 'failureCode', 'createSimulationJobResponse_failureCode' - The failure code of the simulation job if it failed: -- -- [InternalServiceError] -- Internal service error. -- -- [RobotApplicationCrash] -- Robot application exited abnormally. -- -- [SimulationApplicationCrash] -- Simulation application exited abnormally. -- -- [BadPermissionsRobotApplication] -- Robot application bundle could not be downloaded. -- -- [BadPermissionsSimulationApplication] -- Simulation application bundle could not be downloaded. -- -- [BadPermissionsS3Output] -- Unable to publish outputs to customer-provided S3 bucket. -- -- [BadPermissionsCloudwatchLogs] -- Unable to publish logs to customer-provided CloudWatch Logs -- resource. -- -- [SubnetIpLimitExceeded] -- Subnet IP limit exceeded. -- -- [ENILimitExceeded] -- ENI limit exceeded. -- -- [BadPermissionsUserCredentials] -- Unable to use the Role provided. -- -- [InvalidBundleRobotApplication] -- Robot bundle cannot be extracted (invalid format, bundling error, or -- other issue). -- -- [InvalidBundleSimulationApplication] -- Simulation bundle cannot be extracted (invalid format, bundling -- error, or other issue). -- -- [RobotApplicationVersionMismatchedEtag] -- Etag for RobotApplication does not match value during version -- creation. -- -- [SimulationApplicationVersionMismatchedEtag] -- Etag for SimulationApplication does not match value during version -- creation. -- -- 'iamRole', 'createSimulationJobResponse_iamRole' - The IAM role that allows the simulation job to call the AWS APIs that -- are specified in its associated policies on your behalf. -- -- 'lastStartedAt', 'createSimulationJobResponse_lastStartedAt' - The time, in milliseconds since the epoch, when the simulation job was -- last started. -- -- 'lastUpdatedAt', 'createSimulationJobResponse_lastUpdatedAt' - The time, in milliseconds since the epoch, when the simulation job was -- last updated. -- -- 'loggingConfig', 'createSimulationJobResponse_loggingConfig' - The logging configuration. -- -- 'maxJobDurationInSeconds', 'createSimulationJobResponse_maxJobDurationInSeconds' - The maximum simulation job duration in seconds. -- -- 'outputLocation', 'createSimulationJobResponse_outputLocation' - Simulation job output files location. -- -- 'robotApplications', 'createSimulationJobResponse_robotApplications' - The robot application used by the simulation job. -- -- 'simulationApplications', 'createSimulationJobResponse_simulationApplications' - The simulation application used by the simulation job. -- -- 'simulationTimeMillis', 'createSimulationJobResponse_simulationTimeMillis' - The simulation job execution duration in milliseconds. -- -- 'status', 'createSimulationJobResponse_status' - The status of the simulation job. -- -- 'tags', 'createSimulationJobResponse_tags' - The list of all tags added to the simulation job. -- -- 'vpcConfig', 'createSimulationJobResponse_vpcConfig' - Information about the vpc configuration. -- -- 'httpStatus', 'createSimulationJobResponse_httpStatus' - The response's http status code. newCreateSimulationJobResponse :: -- | 'httpStatus' Prelude.Int -> CreateSimulationJobResponse newCreateSimulationJobResponse pHttpStatus_ = CreateSimulationJobResponse' { arn = Prelude.Nothing, clientRequestToken = Prelude.Nothing, compute = Prelude.Nothing, dataSources = Prelude.Nothing, failureBehavior = Prelude.Nothing, failureCode = Prelude.Nothing, iamRole = Prelude.Nothing, lastStartedAt = Prelude.Nothing, lastUpdatedAt = Prelude.Nothing, loggingConfig = Prelude.Nothing, maxJobDurationInSeconds = Prelude.Nothing, outputLocation = Prelude.Nothing, robotApplications = Prelude.Nothing, simulationApplications = Prelude.Nothing, simulationTimeMillis = Prelude.Nothing, status = Prelude.Nothing, tags = Prelude.Nothing, vpcConfig = Prelude.Nothing, httpStatus = pHttpStatus_ } -- | The Amazon Resource Name (ARN) of the simulation job. createSimulationJobResponse_arn :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.Text) createSimulationJobResponse_arn = Lens.lens (\CreateSimulationJobResponse' {arn} -> arn) (\s@CreateSimulationJobResponse' {} a -> s {arn = a} :: CreateSimulationJobResponse) -- | Unique, case-sensitive identifier that you provide to ensure the -- idempotency of the request. createSimulationJobResponse_clientRequestToken :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.Text) createSimulationJobResponse_clientRequestToken = Lens.lens (\CreateSimulationJobResponse' {clientRequestToken} -> clientRequestToken) (\s@CreateSimulationJobResponse' {} a -> s {clientRequestToken = a} :: CreateSimulationJobResponse) -- | Compute information for the simulation job. createSimulationJobResponse_compute :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe ComputeResponse) createSimulationJobResponse_compute = Lens.lens (\CreateSimulationJobResponse' {compute} -> compute) (\s@CreateSimulationJobResponse' {} a -> s {compute = a} :: CreateSimulationJobResponse) -- | The data sources for the simulation job. createSimulationJobResponse_dataSources :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe [DataSource]) createSimulationJobResponse_dataSources = Lens.lens (\CreateSimulationJobResponse' {dataSources} -> dataSources) (\s@CreateSimulationJobResponse' {} a -> s {dataSources = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced -- | the failure behavior for the simulation job. createSimulationJobResponse_failureBehavior :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe FailureBehavior) createSimulationJobResponse_failureBehavior = Lens.lens (\CreateSimulationJobResponse' {failureBehavior} -> failureBehavior) (\s@CreateSimulationJobResponse' {} a -> s {failureBehavior = a} :: CreateSimulationJobResponse) -- | The failure code of the simulation job if it failed: -- -- [InternalServiceError] -- Internal service error. -- -- [RobotApplicationCrash] -- Robot application exited abnormally. -- -- [SimulationApplicationCrash] -- Simulation application exited abnormally. -- -- [BadPermissionsRobotApplication] -- Robot application bundle could not be downloaded. -- -- [BadPermissionsSimulationApplication] -- Simulation application bundle could not be downloaded. -- -- [BadPermissionsS3Output] -- Unable to publish outputs to customer-provided S3 bucket. -- -- [BadPermissionsCloudwatchLogs] -- Unable to publish logs to customer-provided CloudWatch Logs -- resource. -- -- [SubnetIpLimitExceeded] -- Subnet IP limit exceeded. -- -- [ENILimitExceeded] -- ENI limit exceeded. -- -- [BadPermissionsUserCredentials] -- Unable to use the Role provided. -- -- [InvalidBundleRobotApplication] -- Robot bundle cannot be extracted (invalid format, bundling error, or -- other issue). -- -- [InvalidBundleSimulationApplication] -- Simulation bundle cannot be extracted (invalid format, bundling -- error, or other issue). -- -- [RobotApplicationVersionMismatchedEtag] -- Etag for RobotApplication does not match value during version -- creation. -- -- [SimulationApplicationVersionMismatchedEtag] -- Etag for SimulationApplication does not match value during version -- creation. createSimulationJobResponse_failureCode :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe SimulationJobErrorCode) createSimulationJobResponse_failureCode = Lens.lens (\CreateSimulationJobResponse' {failureCode} -> failureCode) (\s@CreateSimulationJobResponse' {} a -> s {failureCode = a} :: CreateSimulationJobResponse) -- | The IAM role that allows the simulation job to call the AWS APIs that -- are specified in its associated policies on your behalf. createSimulationJobResponse_iamRole :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.Text) createSimulationJobResponse_iamRole = Lens.lens (\CreateSimulationJobResponse' {iamRole} -> iamRole) (\s@CreateSimulationJobResponse' {} a -> s {iamRole = a} :: CreateSimulationJobResponse) -- | The time, in milliseconds since the epoch, when the simulation job was -- last started. createSimulationJobResponse_lastStartedAt :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.UTCTime) createSimulationJobResponse_lastStartedAt = Lens.lens (\CreateSimulationJobResponse' {lastStartedAt} -> lastStartedAt) (\s@CreateSimulationJobResponse' {} a -> s {lastStartedAt = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Data._Time -- | The time, in milliseconds since the epoch, when the simulation job was -- last updated. createSimulationJobResponse_lastUpdatedAt :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.UTCTime) createSimulationJobResponse_lastUpdatedAt = Lens.lens (\CreateSimulationJobResponse' {lastUpdatedAt} -> lastUpdatedAt) (\s@CreateSimulationJobResponse' {} a -> s {lastUpdatedAt = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Data._Time -- | The logging configuration. createSimulationJobResponse_loggingConfig :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe LoggingConfig) createSimulationJobResponse_loggingConfig = Lens.lens (\CreateSimulationJobResponse' {loggingConfig} -> loggingConfig) (\s@CreateSimulationJobResponse' {} a -> s {loggingConfig = a} :: CreateSimulationJobResponse) -- | The maximum simulation job duration in seconds. createSimulationJobResponse_maxJobDurationInSeconds :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.Integer) createSimulationJobResponse_maxJobDurationInSeconds = Lens.lens (\CreateSimulationJobResponse' {maxJobDurationInSeconds} -> maxJobDurationInSeconds) (\s@CreateSimulationJobResponse' {} a -> s {maxJobDurationInSeconds = a} :: CreateSimulationJobResponse) -- | Simulation job output files location. createSimulationJobResponse_outputLocation :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe OutputLocation) createSimulationJobResponse_outputLocation = Lens.lens (\CreateSimulationJobResponse' {outputLocation} -> outputLocation) (\s@CreateSimulationJobResponse' {} a -> s {outputLocation = a} :: CreateSimulationJobResponse) -- | The robot application used by the simulation job. createSimulationJobResponse_robotApplications :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe (Prelude.NonEmpty RobotApplicationConfig)) createSimulationJobResponse_robotApplications = Lens.lens (\CreateSimulationJobResponse' {robotApplications} -> robotApplications) (\s@CreateSimulationJobResponse' {} a -> s {robotApplications = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced -- | The simulation application used by the simulation job. createSimulationJobResponse_simulationApplications :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe (Prelude.NonEmpty SimulationApplicationConfig)) createSimulationJobResponse_simulationApplications = Lens.lens (\CreateSimulationJobResponse' {simulationApplications} -> simulationApplications) (\s@CreateSimulationJobResponse' {} a -> s {simulationApplications = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced -- | The simulation job execution duration in milliseconds. createSimulationJobResponse_simulationTimeMillis :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe Prelude.Integer) createSimulationJobResponse_simulationTimeMillis = Lens.lens (\CreateSimulationJobResponse' {simulationTimeMillis} -> simulationTimeMillis) (\s@CreateSimulationJobResponse' {} a -> s {simulationTimeMillis = a} :: CreateSimulationJobResponse) -- | The status of the simulation job. createSimulationJobResponse_status :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe SimulationJobStatus) createSimulationJobResponse_status = Lens.lens (\CreateSimulationJobResponse' {status} -> status) (\s@CreateSimulationJobResponse' {} a -> s {status = a} :: CreateSimulationJobResponse) -- | The list of all tags added to the simulation job. createSimulationJobResponse_tags :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)) createSimulationJobResponse_tags = Lens.lens (\CreateSimulationJobResponse' {tags} -> tags) (\s@CreateSimulationJobResponse' {} a -> s {tags = a} :: CreateSimulationJobResponse) Prelude.. Lens.mapping Lens.coerced -- | Information about the vpc configuration. createSimulationJobResponse_vpcConfig :: Lens.Lens' CreateSimulationJobResponse (Prelude.Maybe VPCConfigResponse) createSimulationJobResponse_vpcConfig = Lens.lens (\CreateSimulationJobResponse' {vpcConfig} -> vpcConfig) (\s@CreateSimulationJobResponse' {} a -> s {vpcConfig = a} :: CreateSimulationJobResponse) -- | The response's http status code. createSimulationJobResponse_httpStatus :: Lens.Lens' CreateSimulationJobResponse Prelude.Int createSimulationJobResponse_httpStatus = Lens.lens (\CreateSimulationJobResponse' {httpStatus} -> httpStatus) (\s@CreateSimulationJobResponse' {} a -> s {httpStatus = a} :: CreateSimulationJobResponse) instance Prelude.NFData CreateSimulationJobResponse where rnf CreateSimulationJobResponse' {..} = Prelude.rnf arn `Prelude.seq` Prelude.rnf clientRequestToken `Prelude.seq` Prelude.rnf compute `Prelude.seq` Prelude.rnf dataSources `Prelude.seq` Prelude.rnf failureBehavior `Prelude.seq` Prelude.rnf failureCode `Prelude.seq` Prelude.rnf iamRole `Prelude.seq` Prelude.rnf lastStartedAt `Prelude.seq` Prelude.rnf lastUpdatedAt `Prelude.seq` Prelude.rnf loggingConfig `Prelude.seq` Prelude.rnf maxJobDurationInSeconds `Prelude.seq` Prelude.rnf outputLocation `Prelude.seq` Prelude.rnf robotApplications `Prelude.seq` Prelude.rnf simulationApplications `Prelude.seq` Prelude.rnf simulationTimeMillis `Prelude.seq` Prelude.rnf status `Prelude.seq` Prelude.rnf tags `Prelude.seq` Prelude.rnf vpcConfig `Prelude.seq` Prelude.rnf httpStatus