/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace SageMaker { namespace Model { /** */ class CreateInferenceExperimentRequest : public SageMakerRequest { public: AWS_SAGEMAKER_API CreateInferenceExperimentRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateInferenceExperiment"; } AWS_SAGEMAKER_API Aws::String SerializePayload() const override; AWS_SAGEMAKER_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name for the inference experiment.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name for the inference experiment.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name for the inference experiment.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name for the inference experiment.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name for the inference experiment.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name for the inference experiment.

*/ inline CreateInferenceExperimentRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name for the inference experiment.

*/ inline CreateInferenceExperimentRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name for the inference experiment.

*/ inline CreateInferenceExperimentRequest& WithName(const char* value) { SetName(value); return *this;} /** *

The type of the inference experiment that you want to run. The following * types of experiments are possible:

  • ShadowMode: * You can use this type to validate a shadow variant. For more information, see Shadow * tests.

*/ inline const InferenceExperimentType& GetType() const{ return m_type; } /** *

The type of the inference experiment that you want to run. The following * types of experiments are possible:

  • ShadowMode: * You can use this type to validate a shadow variant. For more information, see Shadow * tests.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of the inference experiment that you want to run. The following * types of experiments are possible:

  • ShadowMode: * You can use this type to validate a shadow variant. For more information, see Shadow * tests.

*/ inline void SetType(const InferenceExperimentType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of the inference experiment that you want to run. The following * types of experiments are possible:

  • ShadowMode: * You can use this type to validate a shadow variant. For more information, see Shadow * tests.

*/ inline void SetType(InferenceExperimentType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of the inference experiment that you want to run. The following * types of experiments are possible:

  • ShadowMode: * You can use this type to validate a shadow variant. For more information, see Shadow * tests.

*/ inline CreateInferenceExperimentRequest& WithType(const InferenceExperimentType& value) { SetType(value); return *this;} /** *

The type of the inference experiment that you want to run. The following * types of experiments are possible:

  • ShadowMode: * You can use this type to validate a shadow variant. For more information, see Shadow * tests.

*/ inline CreateInferenceExperimentRequest& WithType(InferenceExperimentType&& value) { SetType(std::move(value)); return *this;} /** *

The duration for which you want the inference experiment to run. If you * don't specify this field, the experiment automatically starts immediately upon * creation and concludes after 7 days.

*/ inline const InferenceExperimentSchedule& GetSchedule() const{ return m_schedule; } /** *

The duration for which you want the inference experiment to run. If you * don't specify this field, the experiment automatically starts immediately upon * creation and concludes after 7 days.

*/ inline bool ScheduleHasBeenSet() const { return m_scheduleHasBeenSet; } /** *

The duration for which you want the inference experiment to run. If you * don't specify this field, the experiment automatically starts immediately upon * creation and concludes after 7 days.

*/ inline void SetSchedule(const InferenceExperimentSchedule& value) { m_scheduleHasBeenSet = true; m_schedule = value; } /** *

The duration for which you want the inference experiment to run. If you * don't specify this field, the experiment automatically starts immediately upon * creation and concludes after 7 days.

*/ inline void SetSchedule(InferenceExperimentSchedule&& value) { m_scheduleHasBeenSet = true; m_schedule = std::move(value); } /** *

The duration for which you want the inference experiment to run. If you * don't specify this field, the experiment automatically starts immediately upon * creation and concludes after 7 days.

*/ inline CreateInferenceExperimentRequest& WithSchedule(const InferenceExperimentSchedule& value) { SetSchedule(value); return *this;} /** *

The duration for which you want the inference experiment to run. If you * don't specify this field, the experiment automatically starts immediately upon * creation and concludes after 7 days.

*/ inline CreateInferenceExperimentRequest& WithSchedule(InferenceExperimentSchedule&& value) { SetSchedule(std::move(value)); return *this;} /** *

A description for the inference experiment.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description for the inference experiment.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description for the inference experiment.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description for the inference experiment.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description for the inference experiment.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description for the inference experiment.

*/ inline CreateInferenceExperimentRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description for the inference experiment.

*/ inline CreateInferenceExperimentRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description for the inference experiment.

*/ inline CreateInferenceExperimentRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

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.

*/ inline const Aws::String& GetRoleArn() const{ return m_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.

*/ inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; } /** *

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.

*/ inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; } /** *

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.

*/ inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); } /** *

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.

*/ inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); } /** *

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.

*/ inline CreateInferenceExperimentRequest& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;} /** *

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.

*/ inline CreateInferenceExperimentRequest& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;} /** *

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.

*/ inline CreateInferenceExperimentRequest& WithRoleArn(const char* value) { SetRoleArn(value); return *this;} /** *

The name of the Amazon SageMaker endpoint on which you want to run the * inference experiment.

*/ inline const Aws::String& GetEndpointName() const{ return m_endpointName; } /** *

The name of the Amazon SageMaker endpoint on which you want to run the * inference experiment.

*/ inline bool EndpointNameHasBeenSet() const { return m_endpointNameHasBeenSet; } /** *

The name of the Amazon SageMaker endpoint on which you want to run the * inference experiment.

*/ inline void SetEndpointName(const Aws::String& value) { m_endpointNameHasBeenSet = true; m_endpointName = value; } /** *

The name of the Amazon SageMaker endpoint on which you want to run the * inference experiment.

*/ inline void SetEndpointName(Aws::String&& value) { m_endpointNameHasBeenSet = true; m_endpointName = std::move(value); } /** *

The name of the Amazon SageMaker endpoint on which you want to run the * inference experiment.

*/ inline void SetEndpointName(const char* value) { m_endpointNameHasBeenSet = true; m_endpointName.assign(value); } /** *

The name of the Amazon SageMaker endpoint on which you want to run the * inference experiment.

*/ inline CreateInferenceExperimentRequest& WithEndpointName(const Aws::String& value) { SetEndpointName(value); return *this;} /** *

The name of the Amazon SageMaker endpoint on which you want to run the * inference experiment.

*/ inline CreateInferenceExperimentRequest& WithEndpointName(Aws::String&& value) { SetEndpointName(std::move(value)); return *this;} /** *

The name of the Amazon SageMaker endpoint on which you want to run the * inference experiment.

*/ inline CreateInferenceExperimentRequest& WithEndpointName(const char* value) { SetEndpointName(value); return *this;} /** *

An array of ModelVariantConfig objects. There is one for each * variant in the inference experiment. Each ModelVariantConfig object * in the array describes the infrastructure configuration for the corresponding * variant.

*/ inline const Aws::Vector& GetModelVariants() const{ return m_modelVariants; } /** *

An array of ModelVariantConfig objects. There is one for each * variant in the inference experiment. Each ModelVariantConfig object * in the array describes the infrastructure configuration for the corresponding * variant.

*/ inline bool ModelVariantsHasBeenSet() const { return m_modelVariantsHasBeenSet; } /** *

An array of ModelVariantConfig objects. There is one for each * variant in the inference experiment. Each ModelVariantConfig object * in the array describes the infrastructure configuration for the corresponding * variant.

*/ inline void SetModelVariants(const Aws::Vector& value) { m_modelVariantsHasBeenSet = true; m_modelVariants = value; } /** *

An array of ModelVariantConfig objects. There is one for each * variant in the inference experiment. Each ModelVariantConfig object * in the array describes the infrastructure configuration for the corresponding * variant.

*/ inline void SetModelVariants(Aws::Vector&& value) { m_modelVariantsHasBeenSet = true; m_modelVariants = std::move(value); } /** *

An array of ModelVariantConfig objects. There is one for each * variant in the inference experiment. Each ModelVariantConfig object * in the array describes the infrastructure configuration for the corresponding * variant.

*/ inline CreateInferenceExperimentRequest& WithModelVariants(const Aws::Vector& value) { SetModelVariants(value); return *this;} /** *

An array of ModelVariantConfig objects. There is one for each * variant in the inference experiment. Each ModelVariantConfig object * in the array describes the infrastructure configuration for the corresponding * variant.

*/ inline CreateInferenceExperimentRequest& WithModelVariants(Aws::Vector&& value) { SetModelVariants(std::move(value)); return *this;} /** *

An array of ModelVariantConfig objects. There is one for each * variant in the inference experiment. Each ModelVariantConfig object * in the array describes the infrastructure configuration for the corresponding * variant.

*/ inline CreateInferenceExperimentRequest& AddModelVariants(const ModelVariantConfig& value) { m_modelVariantsHasBeenSet = true; m_modelVariants.push_back(value); return *this; } /** *

An array of ModelVariantConfig objects. There is one for each * variant in the inference experiment. Each ModelVariantConfig object * in the array describes the infrastructure configuration for the corresponding * variant.

*/ inline CreateInferenceExperimentRequest& AddModelVariants(ModelVariantConfig&& value) { m_modelVariantsHasBeenSet = true; m_modelVariants.push_back(std::move(value)); return *this; } /** *

The Amazon S3 location and configuration for storing inference request and * response data.

This is an optional parameter that you can use for data * capture. For more information, see Capture * data.

*/ inline const InferenceExperimentDataStorageConfig& GetDataStorageConfig() const{ return m_dataStorageConfig; } /** *

The Amazon S3 location and configuration for storing inference request and * response data.

This is an optional parameter that you can use for data * capture. For more information, see Capture * data.

*/ inline bool DataStorageConfigHasBeenSet() const { return m_dataStorageConfigHasBeenSet; } /** *

The Amazon S3 location and configuration for storing inference request and * response data.

This is an optional parameter that you can use for data * capture. For more information, see Capture * data.

*/ inline void SetDataStorageConfig(const InferenceExperimentDataStorageConfig& value) { m_dataStorageConfigHasBeenSet = true; m_dataStorageConfig = value; } /** *

The Amazon S3 location and configuration for storing inference request and * response data.

This is an optional parameter that you can use for data * capture. For more information, see Capture * data.

*/ inline void SetDataStorageConfig(InferenceExperimentDataStorageConfig&& value) { m_dataStorageConfigHasBeenSet = true; m_dataStorageConfig = std::move(value); } /** *

The Amazon S3 location and configuration for storing inference request and * response data.

This is an optional parameter that you can use for data * capture. For more information, see Capture * data.

*/ inline CreateInferenceExperimentRequest& WithDataStorageConfig(const InferenceExperimentDataStorageConfig& value) { SetDataStorageConfig(value); return *this;} /** *

The Amazon S3 location and configuration for storing inference request and * response data.

This is an optional parameter that you can use for data * capture. For more information, see Capture * data.

*/ inline CreateInferenceExperimentRequest& WithDataStorageConfig(InferenceExperimentDataStorageConfig&& value) { SetDataStorageConfig(std::move(value)); return *this;} /** *

The configuration of ShadowMode inference experiment type. Use * this field to specify a production variant which takes all the inference * requests, and a shadow variant to which Amazon SageMaker replicates a percentage * of the inference requests. For the shadow variant also specify the percentage of * requests that Amazon SageMaker replicates.

*/ inline const ShadowModeConfig& GetShadowModeConfig() const{ return m_shadowModeConfig; } /** *

The configuration of ShadowMode inference experiment type. Use * this field to specify a production variant which takes all the inference * requests, and a shadow variant to which Amazon SageMaker replicates a percentage * of the inference requests. For the shadow variant also specify the percentage of * requests that Amazon SageMaker replicates.

*/ inline bool ShadowModeConfigHasBeenSet() const { return m_shadowModeConfigHasBeenSet; } /** *

The configuration of ShadowMode inference experiment type. Use * this field to specify a production variant which takes all the inference * requests, and a shadow variant to which Amazon SageMaker replicates a percentage * of the inference requests. For the shadow variant also specify the percentage of * requests that Amazon SageMaker replicates.

*/ inline void SetShadowModeConfig(const ShadowModeConfig& value) { m_shadowModeConfigHasBeenSet = true; m_shadowModeConfig = value; } /** *

The configuration of ShadowMode inference experiment type. Use * this field to specify a production variant which takes all the inference * requests, and a shadow variant to which Amazon SageMaker replicates a percentage * of the inference requests. For the shadow variant also specify the percentage of * requests that Amazon SageMaker replicates.

*/ inline void SetShadowModeConfig(ShadowModeConfig&& value) { m_shadowModeConfigHasBeenSet = true; m_shadowModeConfig = std::move(value); } /** *

The configuration of ShadowMode inference experiment type. Use * this field to specify a production variant which takes all the inference * requests, and a shadow variant to which Amazon SageMaker replicates a percentage * of the inference requests. For the shadow variant also specify the percentage of * requests that Amazon SageMaker replicates.

*/ inline CreateInferenceExperimentRequest& WithShadowModeConfig(const ShadowModeConfig& value) { SetShadowModeConfig(value); return *this;} /** *

The configuration of ShadowMode inference experiment type. Use * this field to specify a production variant which takes all the inference * requests, and a shadow variant to which Amazon SageMaker replicates a percentage * of the inference requests. For the shadow variant also specify the percentage of * requests that Amazon SageMaker replicates.

*/ inline CreateInferenceExperimentRequest& WithShadowModeConfig(ShadowModeConfig&& value) { SetShadowModeConfig(std::move(value)); return *this;} /** *

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. The KmsKey can be any * of the following formats:

  • KMS key ID

    * "1234abcd-12ab-34cd-56ef-1234567890ab"

  • Amazon * Resource Name (ARN) of a KMS key

    * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" *

  • KMS key Alias

    "alias/ExampleAlias"

    *
  • Amazon Resource Name (ARN) of a KMS key Alias

    * "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"

  • *

If you use a KMS key ID or an alias of your KMS key, the Amazon * SageMaker execution role must include permissions to call * kms:Encrypt. If you don't provide a KMS key ID, Amazon SageMaker * uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker * uses server-side encryption with KMS managed keys for * OutputDataConfig. If you use a bucket policy with an * s3:PutObject permission that only allows objects with server-side * encryption, set the condition key of * s3:x-amz-server-side-encryption to "aws:kms". For more * information, see KMS * managed Encryption Keys in the Amazon Simple Storage Service Developer * Guide.

The KMS key policy must grant permission to the IAM role * that you specify in your CreateEndpoint and * UpdateEndpoint requests. For more information, see Using * Key Policies in Amazon Web Services KMS in the Amazon Web Services Key * Management Service Developer Guide.

*/ inline const Aws::String& GetKmsKey() const{ return m_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. The KmsKey can be any * of the following formats:

  • KMS key ID

    * "1234abcd-12ab-34cd-56ef-1234567890ab"

  • Amazon * Resource Name (ARN) of a KMS key

    * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" *

  • KMS key Alias

    "alias/ExampleAlias"

    *
  • Amazon Resource Name (ARN) of a KMS key Alias

    * "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"

  • *

If you use a KMS key ID or an alias of your KMS key, the Amazon * SageMaker execution role must include permissions to call * kms:Encrypt. If you don't provide a KMS key ID, Amazon SageMaker * uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker * uses server-side encryption with KMS managed keys for * OutputDataConfig. If you use a bucket policy with an * s3:PutObject permission that only allows objects with server-side * encryption, set the condition key of * s3:x-amz-server-side-encryption to "aws:kms". For more * information, see KMS * managed Encryption Keys in the Amazon Simple Storage Service Developer * Guide.

The KMS key policy must grant permission to the IAM role * that you specify in your CreateEndpoint and * UpdateEndpoint requests. For more information, see Using * Key Policies in Amazon Web Services KMS in the Amazon Web Services Key * Management Service Developer Guide.

*/ inline bool KmsKeyHasBeenSet() const { return m_kmsKeyHasBeenSet; } /** *

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. The KmsKey can be any * of the following formats:

  • KMS key ID

    * "1234abcd-12ab-34cd-56ef-1234567890ab"

  • Amazon * Resource Name (ARN) of a KMS key

    * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" *

  • KMS key Alias

    "alias/ExampleAlias"

    *
  • Amazon Resource Name (ARN) of a KMS key Alias

    * "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"

  • *

If you use a KMS key ID or an alias of your KMS key, the Amazon * SageMaker execution role must include permissions to call * kms:Encrypt. If you don't provide a KMS key ID, Amazon SageMaker * uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker * uses server-side encryption with KMS managed keys for * OutputDataConfig. If you use a bucket policy with an * s3:PutObject permission that only allows objects with server-side * encryption, set the condition key of * s3:x-amz-server-side-encryption to "aws:kms". For more * information, see KMS * managed Encryption Keys in the Amazon Simple Storage Service Developer * Guide.

The KMS key policy must grant permission to the IAM role * that you specify in your CreateEndpoint and * UpdateEndpoint requests. For more information, see Using * Key Policies in Amazon Web Services KMS in the Amazon Web Services Key * Management Service Developer Guide.

*/ inline void SetKmsKey(const Aws::String& value) { m_kmsKeyHasBeenSet = true; m_kmsKey = value; } /** *

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. The KmsKey can be any * of the following formats:

  • KMS key ID

    * "1234abcd-12ab-34cd-56ef-1234567890ab"

  • Amazon * Resource Name (ARN) of a KMS key

    * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" *

  • KMS key Alias

    "alias/ExampleAlias"

    *
  • Amazon Resource Name (ARN) of a KMS key Alias

    * "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"

  • *

If you use a KMS key ID or an alias of your KMS key, the Amazon * SageMaker execution role must include permissions to call * kms:Encrypt. If you don't provide a KMS key ID, Amazon SageMaker * uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker * uses server-side encryption with KMS managed keys for * OutputDataConfig. If you use a bucket policy with an * s3:PutObject permission that only allows objects with server-side * encryption, set the condition key of * s3:x-amz-server-side-encryption to "aws:kms". For more * information, see KMS * managed Encryption Keys in the Amazon Simple Storage Service Developer * Guide.

The KMS key policy must grant permission to the IAM role * that you specify in your CreateEndpoint and * UpdateEndpoint requests. For more information, see Using * Key Policies in Amazon Web Services KMS in the Amazon Web Services Key * Management Service Developer Guide.

*/ inline void SetKmsKey(Aws::String&& value) { m_kmsKeyHasBeenSet = true; m_kmsKey = std::move(value); } /** *

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. The KmsKey can be any * of the following formats:

  • KMS key ID

    * "1234abcd-12ab-34cd-56ef-1234567890ab"

  • Amazon * Resource Name (ARN) of a KMS key

    * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" *

  • KMS key Alias

    "alias/ExampleAlias"

    *
  • Amazon Resource Name (ARN) of a KMS key Alias

    * "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"

  • *

If you use a KMS key ID or an alias of your KMS key, the Amazon * SageMaker execution role must include permissions to call * kms:Encrypt. If you don't provide a KMS key ID, Amazon SageMaker * uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker * uses server-side encryption with KMS managed keys for * OutputDataConfig. If you use a bucket policy with an * s3:PutObject permission that only allows objects with server-side * encryption, set the condition key of * s3:x-amz-server-side-encryption to "aws:kms". For more * information, see KMS * managed Encryption Keys in the Amazon Simple Storage Service Developer * Guide.

The KMS key policy must grant permission to the IAM role * that you specify in your CreateEndpoint and * UpdateEndpoint requests. For more information, see Using * Key Policies in Amazon Web Services KMS in the Amazon Web Services Key * Management Service Developer Guide.

*/ inline void SetKmsKey(const char* value) { m_kmsKeyHasBeenSet = true; m_kmsKey.assign(value); } /** *

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. The KmsKey can be any * of the following formats:

  • KMS key ID

    * "1234abcd-12ab-34cd-56ef-1234567890ab"

  • Amazon * Resource Name (ARN) of a KMS key

    * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" *

  • KMS key Alias

    "alias/ExampleAlias"

    *
  • Amazon Resource Name (ARN) of a KMS key Alias

    * "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"

  • *

If you use a KMS key ID or an alias of your KMS key, the Amazon * SageMaker execution role must include permissions to call * kms:Encrypt. If you don't provide a KMS key ID, Amazon SageMaker * uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker * uses server-side encryption with KMS managed keys for * OutputDataConfig. If you use a bucket policy with an * s3:PutObject permission that only allows objects with server-side * encryption, set the condition key of * s3:x-amz-server-side-encryption to "aws:kms". For more * information, see KMS * managed Encryption Keys in the Amazon Simple Storage Service Developer * Guide.

The KMS key policy must grant permission to the IAM role * that you specify in your CreateEndpoint and * UpdateEndpoint requests. For more information, see Using * Key Policies in Amazon Web Services KMS in the Amazon Web Services Key * Management Service Developer Guide.

*/ inline CreateInferenceExperimentRequest& WithKmsKey(const Aws::String& value) { SetKmsKey(value); return *this;} /** *

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. The KmsKey can be any * of the following formats:

  • KMS key ID

    * "1234abcd-12ab-34cd-56ef-1234567890ab"

  • Amazon * Resource Name (ARN) of a KMS key

    * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" *

  • KMS key Alias

    "alias/ExampleAlias"

    *
  • Amazon Resource Name (ARN) of a KMS key Alias

    * "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"

  • *

If you use a KMS key ID or an alias of your KMS key, the Amazon * SageMaker execution role must include permissions to call * kms:Encrypt. If you don't provide a KMS key ID, Amazon SageMaker * uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker * uses server-side encryption with KMS managed keys for * OutputDataConfig. If you use a bucket policy with an * s3:PutObject permission that only allows objects with server-side * encryption, set the condition key of * s3:x-amz-server-side-encryption to "aws:kms". For more * information, see KMS * managed Encryption Keys in the Amazon Simple Storage Service Developer * Guide.

The KMS key policy must grant permission to the IAM role * that you specify in your CreateEndpoint and * UpdateEndpoint requests. For more information, see Using * Key Policies in Amazon Web Services KMS in the Amazon Web Services Key * Management Service Developer Guide.

*/ inline CreateInferenceExperimentRequest& WithKmsKey(Aws::String&& value) { SetKmsKey(std::move(value)); return *this;} /** *

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. The KmsKey can be any * of the following formats:

  • KMS key ID

    * "1234abcd-12ab-34cd-56ef-1234567890ab"

  • Amazon * Resource Name (ARN) of a KMS key

    * "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" *

  • KMS key Alias

    "alias/ExampleAlias"

    *
  • Amazon Resource Name (ARN) of a KMS key Alias

    * "arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias"

  • *

If you use a KMS key ID or an alias of your KMS key, the Amazon * SageMaker execution role must include permissions to call * kms:Encrypt. If you don't provide a KMS key ID, Amazon SageMaker * uses the default KMS key for Amazon S3 for your role's account. Amazon SageMaker * uses server-side encryption with KMS managed keys for * OutputDataConfig. If you use a bucket policy with an * s3:PutObject permission that only allows objects with server-side * encryption, set the condition key of * s3:x-amz-server-side-encryption to "aws:kms". For more * information, see KMS * managed Encryption Keys in the Amazon Simple Storage Service Developer * Guide.

The KMS key policy must grant permission to the IAM role * that you specify in your CreateEndpoint and * UpdateEndpoint requests. For more information, see Using * Key Policies in Amazon Web Services KMS in the Amazon Web Services Key * Management Service Developer Guide.

*/ inline CreateInferenceExperimentRequest& WithKmsKey(const char* value) { SetKmsKey(value); return *this;} /** *

Array of key-value pairs. You can use tags to categorize your Amazon Web * Services resources in different ways, for example, by purpose, owner, or * environment. For more information, see Tagging * your Amazon Web Services Resources.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Array of key-value pairs. You can use tags to categorize your Amazon Web * Services resources in different ways, for example, by purpose, owner, or * environment. For more information, see Tagging * your Amazon Web Services Resources.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Array of key-value pairs. You can use tags to categorize your Amazon Web * Services resources in different ways, for example, by purpose, owner, or * environment. For more information, see Tagging * your Amazon Web Services Resources.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Array of key-value pairs. You can use tags to categorize your Amazon Web * Services resources in different ways, for example, by purpose, owner, or * environment. For more information, see Tagging * your Amazon Web Services Resources.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Array of key-value pairs. You can use tags to categorize your Amazon Web * Services resources in different ways, for example, by purpose, owner, or * environment. For more information, see Tagging * your Amazon Web Services Resources.

*/ inline CreateInferenceExperimentRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Array of key-value pairs. You can use tags to categorize your Amazon Web * Services resources in different ways, for example, by purpose, owner, or * environment. For more information, see Tagging * your Amazon Web Services Resources.

*/ inline CreateInferenceExperimentRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Array of key-value pairs. You can use tags to categorize your Amazon Web * Services resources in different ways, for example, by purpose, owner, or * environment. For more information, see Tagging * your Amazon Web Services Resources.

*/ inline CreateInferenceExperimentRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Array of key-value pairs. You can use tags to categorize your Amazon Web * Services resources in different ways, for example, by purpose, owner, or * environment. For more information, see Tagging * your Amazon Web Services Resources.

*/ inline CreateInferenceExperimentRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_name; bool m_nameHasBeenSet = false; InferenceExperimentType m_type; bool m_typeHasBeenSet = false; InferenceExperimentSchedule m_schedule; bool m_scheduleHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; Aws::String m_endpointName; bool m_endpointNameHasBeenSet = false; Aws::Vector m_modelVariants; bool m_modelVariantsHasBeenSet = false; InferenceExperimentDataStorageConfig m_dataStorageConfig; bool m_dataStorageConfigHasBeenSet = false; ShadowModeConfig m_shadowModeConfig; bool m_shadowModeConfigHasBeenSet = false; Aws::String m_kmsKey; bool m_kmsKeyHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace SageMaker } // namespace Aws