{-# 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.SageMaker.DescribeInferenceExperiment -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns details about an inference experiment. module Amazonka.SageMaker.DescribeInferenceExperiment ( -- * Creating a Request DescribeInferenceExperiment (..), newDescribeInferenceExperiment, -- * Request Lenses describeInferenceExperiment_name, -- * Destructuring the Response DescribeInferenceExperimentResponse (..), newDescribeInferenceExperimentResponse, -- * Response Lenses describeInferenceExperimentResponse_completionTime, describeInferenceExperimentResponse_creationTime, describeInferenceExperimentResponse_dataStorageConfig, describeInferenceExperimentResponse_description, describeInferenceExperimentResponse_kmsKey, describeInferenceExperimentResponse_lastModifiedTime, describeInferenceExperimentResponse_roleArn, describeInferenceExperimentResponse_schedule, describeInferenceExperimentResponse_shadowModeConfig, describeInferenceExperimentResponse_statusReason, describeInferenceExperimentResponse_httpStatus, describeInferenceExperimentResponse_arn, describeInferenceExperimentResponse_name, describeInferenceExperimentResponse_type, describeInferenceExperimentResponse_status, describeInferenceExperimentResponse_endpointMetadata, describeInferenceExperimentResponse_modelVariants, ) 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.SageMaker.Types -- | /See:/ 'newDescribeInferenceExperiment' smart constructor. data DescribeInferenceExperiment = DescribeInferenceExperiment' { -- | The name of the inference experiment to describe. name :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeInferenceExperiment' 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: -- -- 'name', 'describeInferenceExperiment_name' - The name of the inference experiment to describe. newDescribeInferenceExperiment :: -- | 'name' Prelude.Text -> DescribeInferenceExperiment newDescribeInferenceExperiment pName_ = DescribeInferenceExperiment' {name = pName_} -- | The name of the inference experiment to describe. describeInferenceExperiment_name :: Lens.Lens' DescribeInferenceExperiment Prelude.Text describeInferenceExperiment_name = Lens.lens (\DescribeInferenceExperiment' {name} -> name) (\s@DescribeInferenceExperiment' {} a -> s {name = a} :: DescribeInferenceExperiment) instance Core.AWSRequest DescribeInferenceExperiment where type AWSResponse DescribeInferenceExperiment = DescribeInferenceExperimentResponse request overrides = Request.postJSON (overrides defaultService) response = Response.receiveJSON ( \s h x -> DescribeInferenceExperimentResponse' Prelude.<$> (x Data..?> "CompletionTime") Prelude.<*> (x Data..?> "CreationTime") Prelude.<*> (x Data..?> "DataStorageConfig") Prelude.<*> (x Data..?> "Description") Prelude.<*> (x Data..?> "KmsKey") Prelude.<*> (x Data..?> "LastModifiedTime") Prelude.<*> (x Data..?> "RoleArn") Prelude.<*> (x Data..?> "Schedule") Prelude.<*> (x Data..?> "ShadowModeConfig") Prelude.<*> (x Data..?> "StatusReason") Prelude.<*> (Prelude.pure (Prelude.fromEnum s)) Prelude.<*> (x Data..:> "Arn") Prelude.<*> (x Data..:> "Name") Prelude.<*> (x Data..:> "Type") Prelude.<*> (x Data..:> "Status") Prelude.<*> (x Data..:> "EndpointMetadata") Prelude.<*> (x Data..?> "ModelVariants" Core..!@ Prelude.mempty) ) instance Prelude.Hashable DescribeInferenceExperiment where hashWithSalt _salt DescribeInferenceExperiment' {..} = _salt `Prelude.hashWithSalt` name instance Prelude.NFData DescribeInferenceExperiment where rnf DescribeInferenceExperiment' {..} = Prelude.rnf name instance Data.ToHeaders DescribeInferenceExperiment where toHeaders = Prelude.const ( Prelude.mconcat [ "X-Amz-Target" Data.=# ( "SageMaker.DescribeInferenceExperiment" :: Prelude.ByteString ), "Content-Type" Data.=# ( "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Data.ToJSON DescribeInferenceExperiment where toJSON DescribeInferenceExperiment' {..} = Data.object ( Prelude.catMaybes [Prelude.Just ("Name" Data..= name)] ) instance Data.ToPath DescribeInferenceExperiment where toPath = Prelude.const "/" instance Data.ToQuery DescribeInferenceExperiment where toQuery = Prelude.const Prelude.mempty -- | /See:/ 'newDescribeInferenceExperimentResponse' smart constructor. data DescribeInferenceExperimentResponse = DescribeInferenceExperimentResponse' { -- | The timestamp at which the inference experiment was completed. completionTime :: Prelude.Maybe Data.POSIX, -- | The timestamp at which you created the inference experiment. creationTime :: Prelude.Maybe Data.POSIX, -- | The Amazon S3 location and configuration for storing inference request -- and response data. dataStorageConfig :: Prelude.Maybe InferenceExperimentDataStorageConfig, -- | The description of the inference experiment. description :: Prelude.Maybe Prelude.Text, -- | The Amazon Web Services Key Management Service (Amazon Web Services KMS) -- key that Amazon SageMaker uses to encrypt data on the storage volume -- attached to the ML compute instance that hosts the endpoint. For more -- information, see CreateInferenceExperimentRequest$KmsKey. kmsKey :: Prelude.Maybe Prelude.Text, -- | The timestamp at which you last modified the inference experiment. lastModifiedTime :: Prelude.Maybe Data.POSIX, -- | The ARN of the IAM role that Amazon SageMaker can assume to access model -- artifacts and container images, and manage Amazon SageMaker Inference -- endpoints for model deployment. roleArn :: Prelude.Maybe Prelude.Text, -- | The duration for which the inference experiment ran or will run. schedule :: Prelude.Maybe InferenceExperimentSchedule, -- | The configuration of @ShadowMode@ inference experiment type, which shows -- the production variant that takes all the inference requests, and the -- shadow variant to which Amazon SageMaker replicates a percentage of the -- inference requests. For the shadow variant it also shows the percentage -- of requests that Amazon SageMaker replicates. shadowModeConfig :: Prelude.Maybe ShadowModeConfig, -- | The error message or client-specified @Reason@ from the -- StopInferenceExperiment API, that explains the status of the inference -- experiment. statusReason :: Prelude.Maybe Prelude.Text, -- | The response's http status code. httpStatus :: Prelude.Int, -- | The ARN of the inference experiment being described. arn :: Prelude.Text, -- | The name of the inference experiment. name :: Prelude.Text, -- | The type of the inference experiment. type' :: InferenceExperimentType, -- | The status of the inference experiment. The following are the possible -- statuses for an inference experiment: -- -- - @Creating@ - Amazon SageMaker is creating your experiment. -- -- - @Created@ - Amazon SageMaker has finished the creation of your -- experiment and will begin the experiment at the scheduled time. -- -- - @Updating@ - When you make changes to your experiment, your -- experiment shows as updating. -- -- - @Starting@ - Amazon SageMaker is beginning your experiment. -- -- - @Running@ - Your experiment is in progress. -- -- - @Stopping@ - Amazon SageMaker is stopping your experiment. -- -- - @Completed@ - Your experiment has completed. -- -- - @Cancelled@ - When you conclude your experiment early using the -- StopInferenceExperiment API, or if any operation fails with an -- unexpected error, it shows as cancelled. status :: InferenceExperimentStatus, -- | The metadata of the endpoint on which the inference experiment ran. endpointMetadata :: EndpointMetadata, -- | An array of @ModelVariantConfigSummary@ objects. There is one for each -- variant in the inference experiment. Each @ModelVariantConfigSummary@ -- object in the array describes the infrastructure configuration for -- deploying the corresponding variant. modelVariants :: [ModelVariantConfigSummary] } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'DescribeInferenceExperimentResponse' 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: -- -- 'completionTime', 'describeInferenceExperimentResponse_completionTime' - The timestamp at which the inference experiment was completed. -- -- 'creationTime', 'describeInferenceExperimentResponse_creationTime' - The timestamp at which you created the inference experiment. -- -- 'dataStorageConfig', 'describeInferenceExperimentResponse_dataStorageConfig' - The Amazon S3 location and configuration for storing inference request -- and response data. -- -- 'description', 'describeInferenceExperimentResponse_description' - The description of the inference experiment. -- -- 'kmsKey', 'describeInferenceExperimentResponse_kmsKey' - The Amazon Web Services Key Management Service (Amazon Web Services KMS) -- key that Amazon SageMaker uses to encrypt data on the storage volume -- attached to the ML compute instance that hosts the endpoint. For more -- information, see CreateInferenceExperimentRequest$KmsKey. -- -- 'lastModifiedTime', 'describeInferenceExperimentResponse_lastModifiedTime' - The timestamp at which you last modified the inference experiment. -- -- 'roleArn', 'describeInferenceExperimentResponse_roleArn' - The ARN of the IAM role that Amazon SageMaker can assume to access model -- artifacts and container images, and manage Amazon SageMaker Inference -- endpoints for model deployment. -- -- 'schedule', 'describeInferenceExperimentResponse_schedule' - The duration for which the inference experiment ran or will run. -- -- 'shadowModeConfig', 'describeInferenceExperimentResponse_shadowModeConfig' - The configuration of @ShadowMode@ inference experiment type, which shows -- the production variant that takes all the inference requests, and the -- shadow variant to which Amazon SageMaker replicates a percentage of the -- inference requests. For the shadow variant it also shows the percentage -- of requests that Amazon SageMaker replicates. -- -- 'statusReason', 'describeInferenceExperimentResponse_statusReason' - The error message or client-specified @Reason@ from the -- StopInferenceExperiment API, that explains the status of the inference -- experiment. -- -- 'httpStatus', 'describeInferenceExperimentResponse_httpStatus' - The response's http status code. -- -- 'arn', 'describeInferenceExperimentResponse_arn' - The ARN of the inference experiment being described. -- -- 'name', 'describeInferenceExperimentResponse_name' - The name of the inference experiment. -- -- 'type'', 'describeInferenceExperimentResponse_type' - The type of the inference experiment. -- -- 'status', 'describeInferenceExperimentResponse_status' - The status of the inference experiment. The following are the possible -- statuses for an inference experiment: -- -- - @Creating@ - Amazon SageMaker is creating your experiment. -- -- - @Created@ - Amazon SageMaker has finished the creation of your -- experiment and will begin the experiment at the scheduled time. -- -- - @Updating@ - When you make changes to your experiment, your -- experiment shows as updating. -- -- - @Starting@ - Amazon SageMaker is beginning your experiment. -- -- - @Running@ - Your experiment is in progress. -- -- - @Stopping@ - Amazon SageMaker is stopping your experiment. -- -- - @Completed@ - Your experiment has completed. -- -- - @Cancelled@ - When you conclude your experiment early using the -- StopInferenceExperiment API, or if any operation fails with an -- unexpected error, it shows as cancelled. -- -- 'endpointMetadata', 'describeInferenceExperimentResponse_endpointMetadata' - The metadata of the endpoint on which the inference experiment ran. -- -- 'modelVariants', 'describeInferenceExperimentResponse_modelVariants' - An array of @ModelVariantConfigSummary@ objects. There is one for each -- variant in the inference experiment. Each @ModelVariantConfigSummary@ -- object in the array describes the infrastructure configuration for -- deploying the corresponding variant. newDescribeInferenceExperimentResponse :: -- | 'httpStatus' Prelude.Int -> -- | 'arn' Prelude.Text -> -- | 'name' Prelude.Text -> -- | 'type'' InferenceExperimentType -> -- | 'status' InferenceExperimentStatus -> -- | 'endpointMetadata' EndpointMetadata -> DescribeInferenceExperimentResponse newDescribeInferenceExperimentResponse pHttpStatus_ pArn_ pName_ pType_ pStatus_ pEndpointMetadata_ = DescribeInferenceExperimentResponse' { completionTime = Prelude.Nothing, creationTime = Prelude.Nothing, dataStorageConfig = Prelude.Nothing, description = Prelude.Nothing, kmsKey = Prelude.Nothing, lastModifiedTime = Prelude.Nothing, roleArn = Prelude.Nothing, schedule = Prelude.Nothing, shadowModeConfig = Prelude.Nothing, statusReason = Prelude.Nothing, httpStatus = pHttpStatus_, arn = pArn_, name = pName_, type' = pType_, status = pStatus_, endpointMetadata = pEndpointMetadata_, modelVariants = Prelude.mempty } -- | The timestamp at which the inference experiment was completed. describeInferenceExperimentResponse_completionTime :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.UTCTime) describeInferenceExperimentResponse_completionTime = Lens.lens (\DescribeInferenceExperimentResponse' {completionTime} -> completionTime) (\s@DescribeInferenceExperimentResponse' {} a -> s {completionTime = a} :: DescribeInferenceExperimentResponse) Prelude.. Lens.mapping Data._Time -- | The timestamp at which you created the inference experiment. describeInferenceExperimentResponse_creationTime :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.UTCTime) describeInferenceExperimentResponse_creationTime = Lens.lens (\DescribeInferenceExperimentResponse' {creationTime} -> creationTime) (\s@DescribeInferenceExperimentResponse' {} a -> s {creationTime = a} :: DescribeInferenceExperimentResponse) Prelude.. Lens.mapping Data._Time -- | The Amazon S3 location and configuration for storing inference request -- and response data. describeInferenceExperimentResponse_dataStorageConfig :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe InferenceExperimentDataStorageConfig) describeInferenceExperimentResponse_dataStorageConfig = Lens.lens (\DescribeInferenceExperimentResponse' {dataStorageConfig} -> dataStorageConfig) (\s@DescribeInferenceExperimentResponse' {} a -> s {dataStorageConfig = a} :: DescribeInferenceExperimentResponse) -- | The description of the inference experiment. describeInferenceExperimentResponse_description :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.Text) describeInferenceExperimentResponse_description = Lens.lens (\DescribeInferenceExperimentResponse' {description} -> description) (\s@DescribeInferenceExperimentResponse' {} a -> s {description = a} :: DescribeInferenceExperimentResponse) -- | The Amazon Web Services Key Management Service (Amazon Web Services KMS) -- key that Amazon SageMaker uses to encrypt data on the storage volume -- attached to the ML compute instance that hosts the endpoint. For more -- information, see CreateInferenceExperimentRequest$KmsKey. describeInferenceExperimentResponse_kmsKey :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.Text) describeInferenceExperimentResponse_kmsKey = Lens.lens (\DescribeInferenceExperimentResponse' {kmsKey} -> kmsKey) (\s@DescribeInferenceExperimentResponse' {} a -> s {kmsKey = a} :: DescribeInferenceExperimentResponse) -- | The timestamp at which you last modified the inference experiment. describeInferenceExperimentResponse_lastModifiedTime :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.UTCTime) describeInferenceExperimentResponse_lastModifiedTime = Lens.lens (\DescribeInferenceExperimentResponse' {lastModifiedTime} -> lastModifiedTime) (\s@DescribeInferenceExperimentResponse' {} a -> s {lastModifiedTime = a} :: DescribeInferenceExperimentResponse) Prelude.. Lens.mapping Data._Time -- | The ARN of the IAM role that Amazon SageMaker can assume to access model -- artifacts and container images, and manage Amazon SageMaker Inference -- endpoints for model deployment. describeInferenceExperimentResponse_roleArn :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.Text) describeInferenceExperimentResponse_roleArn = Lens.lens (\DescribeInferenceExperimentResponse' {roleArn} -> roleArn) (\s@DescribeInferenceExperimentResponse' {} a -> s {roleArn = a} :: DescribeInferenceExperimentResponse) -- | The duration for which the inference experiment ran or will run. describeInferenceExperimentResponse_schedule :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe InferenceExperimentSchedule) describeInferenceExperimentResponse_schedule = Lens.lens (\DescribeInferenceExperimentResponse' {schedule} -> schedule) (\s@DescribeInferenceExperimentResponse' {} a -> s {schedule = a} :: DescribeInferenceExperimentResponse) -- | The configuration of @ShadowMode@ inference experiment type, which shows -- the production variant that takes all the inference requests, and the -- shadow variant to which Amazon SageMaker replicates a percentage of the -- inference requests. For the shadow variant it also shows the percentage -- of requests that Amazon SageMaker replicates. describeInferenceExperimentResponse_shadowModeConfig :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe ShadowModeConfig) describeInferenceExperimentResponse_shadowModeConfig = Lens.lens (\DescribeInferenceExperimentResponse' {shadowModeConfig} -> shadowModeConfig) (\s@DescribeInferenceExperimentResponse' {} a -> s {shadowModeConfig = a} :: DescribeInferenceExperimentResponse) -- | The error message or client-specified @Reason@ from the -- StopInferenceExperiment API, that explains the status of the inference -- experiment. describeInferenceExperimentResponse_statusReason :: Lens.Lens' DescribeInferenceExperimentResponse (Prelude.Maybe Prelude.Text) describeInferenceExperimentResponse_statusReason = Lens.lens (\DescribeInferenceExperimentResponse' {statusReason} -> statusReason) (\s@DescribeInferenceExperimentResponse' {} a -> s {statusReason = a} :: DescribeInferenceExperimentResponse) -- | The response's http status code. describeInferenceExperimentResponse_httpStatus :: Lens.Lens' DescribeInferenceExperimentResponse Prelude.Int describeInferenceExperimentResponse_httpStatus = Lens.lens (\DescribeInferenceExperimentResponse' {httpStatus} -> httpStatus) (\s@DescribeInferenceExperimentResponse' {} a -> s {httpStatus = a} :: DescribeInferenceExperimentResponse) -- | The ARN of the inference experiment being described. describeInferenceExperimentResponse_arn :: Lens.Lens' DescribeInferenceExperimentResponse Prelude.Text describeInferenceExperimentResponse_arn = Lens.lens (\DescribeInferenceExperimentResponse' {arn} -> arn) (\s@DescribeInferenceExperimentResponse' {} a -> s {arn = a} :: DescribeInferenceExperimentResponse) -- | The name of the inference experiment. describeInferenceExperimentResponse_name :: Lens.Lens' DescribeInferenceExperimentResponse Prelude.Text describeInferenceExperimentResponse_name = Lens.lens (\DescribeInferenceExperimentResponse' {name} -> name) (\s@DescribeInferenceExperimentResponse' {} a -> s {name = a} :: DescribeInferenceExperimentResponse) -- | The type of the inference experiment. describeInferenceExperimentResponse_type :: Lens.Lens' DescribeInferenceExperimentResponse InferenceExperimentType describeInferenceExperimentResponse_type = Lens.lens (\DescribeInferenceExperimentResponse' {type'} -> type') (\s@DescribeInferenceExperimentResponse' {} a -> s {type' = a} :: DescribeInferenceExperimentResponse) -- | The status of the inference experiment. The following are the possible -- statuses for an inference experiment: -- -- - @Creating@ - Amazon SageMaker is creating your experiment. -- -- - @Created@ - Amazon SageMaker has finished the creation of your -- experiment and will begin the experiment at the scheduled time. -- -- - @Updating@ - When you make changes to your experiment, your -- experiment shows as updating. -- -- - @Starting@ - Amazon SageMaker is beginning your experiment. -- -- - @Running@ - Your experiment is in progress. -- -- - @Stopping@ - Amazon SageMaker is stopping your experiment. -- -- - @Completed@ - Your experiment has completed. -- -- - @Cancelled@ - When you conclude your experiment early using the -- StopInferenceExperiment API, or if any operation fails with an -- unexpected error, it shows as cancelled. describeInferenceExperimentResponse_status :: Lens.Lens' DescribeInferenceExperimentResponse InferenceExperimentStatus describeInferenceExperimentResponse_status = Lens.lens (\DescribeInferenceExperimentResponse' {status} -> status) (\s@DescribeInferenceExperimentResponse' {} a -> s {status = a} :: DescribeInferenceExperimentResponse) -- | The metadata of the endpoint on which the inference experiment ran. describeInferenceExperimentResponse_endpointMetadata :: Lens.Lens' DescribeInferenceExperimentResponse EndpointMetadata describeInferenceExperimentResponse_endpointMetadata = Lens.lens (\DescribeInferenceExperimentResponse' {endpointMetadata} -> endpointMetadata) (\s@DescribeInferenceExperimentResponse' {} a -> s {endpointMetadata = a} :: DescribeInferenceExperimentResponse) -- | An array of @ModelVariantConfigSummary@ objects. There is one for each -- variant in the inference experiment. Each @ModelVariantConfigSummary@ -- object in the array describes the infrastructure configuration for -- deploying the corresponding variant. describeInferenceExperimentResponse_modelVariants :: Lens.Lens' DescribeInferenceExperimentResponse [ModelVariantConfigSummary] describeInferenceExperimentResponse_modelVariants = Lens.lens (\DescribeInferenceExperimentResponse' {modelVariants} -> modelVariants) (\s@DescribeInferenceExperimentResponse' {} a -> s {modelVariants = a} :: DescribeInferenceExperimentResponse) Prelude.. Lens.coerced instance Prelude.NFData DescribeInferenceExperimentResponse where rnf DescribeInferenceExperimentResponse' {..} = Prelude.rnf completionTime `Prelude.seq` Prelude.rnf creationTime `Prelude.seq` Prelude.rnf dataStorageConfig `Prelude.seq` Prelude.rnf description `Prelude.seq` Prelude.rnf kmsKey `Prelude.seq` Prelude.rnf lastModifiedTime `Prelude.seq` Prelude.rnf roleArn `Prelude.seq` Prelude.rnf schedule `Prelude.seq` Prelude.rnf shadowModeConfig `Prelude.seq` Prelude.rnf statusReason `Prelude.seq` Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf arn `Prelude.seq` Prelude.rnf name `Prelude.seq` Prelude.rnf type' `Prelude.seq` Prelude.rnf status `Prelude.seq` Prelude.rnf endpointMetadata `Prelude.seq` Prelude.rnf modelVariants