/** * 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 namespace Aws { namespace Rekognition { namespace Model { /** */ class CreateProjectVersionRequest : public RekognitionRequest { public: AWS_REKOGNITION_API CreateProjectVersionRequest(); // 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 "CreateProjectVersion"; } AWS_REKOGNITION_API Aws::String SerializePayload() const override; AWS_REKOGNITION_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The ARN of the Amazon Rekognition Custom Labels project that manages the * model that you want to train.

*/ inline const Aws::String& GetProjectArn() const{ return m_projectArn; } /** *

The ARN of the Amazon Rekognition Custom Labels project that manages the * model that you want to train.

*/ inline bool ProjectArnHasBeenSet() const { return m_projectArnHasBeenSet; } /** *

The ARN of the Amazon Rekognition Custom Labels project that manages the * model that you want to train.

*/ inline void SetProjectArn(const Aws::String& value) { m_projectArnHasBeenSet = true; m_projectArn = value; } /** *

The ARN of the Amazon Rekognition Custom Labels project that manages the * model that you want to train.

*/ inline void SetProjectArn(Aws::String&& value) { m_projectArnHasBeenSet = true; m_projectArn = std::move(value); } /** *

The ARN of the Amazon Rekognition Custom Labels project that manages the * model that you want to train.

*/ inline void SetProjectArn(const char* value) { m_projectArnHasBeenSet = true; m_projectArn.assign(value); } /** *

The ARN of the Amazon Rekognition Custom Labels project that manages the * model that you want to train.

*/ inline CreateProjectVersionRequest& WithProjectArn(const Aws::String& value) { SetProjectArn(value); return *this;} /** *

The ARN of the Amazon Rekognition Custom Labels project that manages the * model that you want to train.

*/ inline CreateProjectVersionRequest& WithProjectArn(Aws::String&& value) { SetProjectArn(std::move(value)); return *this;} /** *

The ARN of the Amazon Rekognition Custom Labels project that manages the * model that you want to train.

*/ inline CreateProjectVersionRequest& WithProjectArn(const char* value) { SetProjectArn(value); return *this;} /** *

A name for the version of the model. This value must be unique.

*/ inline const Aws::String& GetVersionName() const{ return m_versionName; } /** *

A name for the version of the model. This value must be unique.

*/ inline bool VersionNameHasBeenSet() const { return m_versionNameHasBeenSet; } /** *

A name for the version of the model. This value must be unique.

*/ inline void SetVersionName(const Aws::String& value) { m_versionNameHasBeenSet = true; m_versionName = value; } /** *

A name for the version of the model. This value must be unique.

*/ inline void SetVersionName(Aws::String&& value) { m_versionNameHasBeenSet = true; m_versionName = std::move(value); } /** *

A name for the version of the model. This value must be unique.

*/ inline void SetVersionName(const char* value) { m_versionNameHasBeenSet = true; m_versionName.assign(value); } /** *

A name for the version of the model. This value must be unique.

*/ inline CreateProjectVersionRequest& WithVersionName(const Aws::String& value) { SetVersionName(value); return *this;} /** *

A name for the version of the model. This value must be unique.

*/ inline CreateProjectVersionRequest& WithVersionName(Aws::String&& value) { SetVersionName(std::move(value)); return *this;} /** *

A name for the version of the model. This value must be unique.

*/ inline CreateProjectVersionRequest& WithVersionName(const char* value) { SetVersionName(value); return *this;} /** *

The Amazon S3 bucket location to store the results of training. The S3 bucket * can be in any AWS account as long as the caller has s3:PutObject * permissions on the S3 bucket.

*/ inline const OutputConfig& GetOutputConfig() const{ return m_outputConfig; } /** *

The Amazon S3 bucket location to store the results of training. The S3 bucket * can be in any AWS account as long as the caller has s3:PutObject * permissions on the S3 bucket.

*/ inline bool OutputConfigHasBeenSet() const { return m_outputConfigHasBeenSet; } /** *

The Amazon S3 bucket location to store the results of training. The S3 bucket * can be in any AWS account as long as the caller has s3:PutObject * permissions on the S3 bucket.

*/ inline void SetOutputConfig(const OutputConfig& value) { m_outputConfigHasBeenSet = true; m_outputConfig = value; } /** *

The Amazon S3 bucket location to store the results of training. The S3 bucket * can be in any AWS account as long as the caller has s3:PutObject * permissions on the S3 bucket.

*/ inline void SetOutputConfig(OutputConfig&& value) { m_outputConfigHasBeenSet = true; m_outputConfig = std::move(value); } /** *

The Amazon S3 bucket location to store the results of training. The S3 bucket * can be in any AWS account as long as the caller has s3:PutObject * permissions on the S3 bucket.

*/ inline CreateProjectVersionRequest& WithOutputConfig(const OutputConfig& value) { SetOutputConfig(value); return *this;} /** *

The Amazon S3 bucket location to store the results of training. The S3 bucket * can be in any AWS account as long as the caller has s3:PutObject * permissions on the S3 bucket.

*/ inline CreateProjectVersionRequest& WithOutputConfig(OutputConfig&& value) { SetOutputConfig(std::move(value)); return *this;} /** *

Specifies an external manifest that the services uses to train the model. If * you specify TrainingData you must also specify * TestingData. The project must not have any associated datasets. *

*/ inline const TrainingData& GetTrainingData() const{ return m_trainingData; } /** *

Specifies an external manifest that the services uses to train the model. If * you specify TrainingData you must also specify * TestingData. The project must not have any associated datasets. *

*/ inline bool TrainingDataHasBeenSet() const { return m_trainingDataHasBeenSet; } /** *

Specifies an external manifest that the services uses to train the model. If * you specify TrainingData you must also specify * TestingData. The project must not have any associated datasets. *

*/ inline void SetTrainingData(const TrainingData& value) { m_trainingDataHasBeenSet = true; m_trainingData = value; } /** *

Specifies an external manifest that the services uses to train the model. If * you specify TrainingData you must also specify * TestingData. The project must not have any associated datasets. *

*/ inline void SetTrainingData(TrainingData&& value) { m_trainingDataHasBeenSet = true; m_trainingData = std::move(value); } /** *

Specifies an external manifest that the services uses to train the model. If * you specify TrainingData you must also specify * TestingData. The project must not have any associated datasets. *

*/ inline CreateProjectVersionRequest& WithTrainingData(const TrainingData& value) { SetTrainingData(value); return *this;} /** *

Specifies an external manifest that the services uses to train the model. If * you specify TrainingData you must also specify * TestingData. The project must not have any associated datasets. *

*/ inline CreateProjectVersionRequest& WithTrainingData(TrainingData&& value) { SetTrainingData(std::move(value)); return *this;} /** *

Specifies an external manifest that the service uses to test the model. If * you specify TestingData you must also specify * TrainingData. The project must not have any associated * datasets.

*/ inline const TestingData& GetTestingData() const{ return m_testingData; } /** *

Specifies an external manifest that the service uses to test the model. If * you specify TestingData you must also specify * TrainingData. The project must not have any associated * datasets.

*/ inline bool TestingDataHasBeenSet() const { return m_testingDataHasBeenSet; } /** *

Specifies an external manifest that the service uses to test the model. If * you specify TestingData you must also specify * TrainingData. The project must not have any associated * datasets.

*/ inline void SetTestingData(const TestingData& value) { m_testingDataHasBeenSet = true; m_testingData = value; } /** *

Specifies an external manifest that the service uses to test the model. If * you specify TestingData you must also specify * TrainingData. The project must not have any associated * datasets.

*/ inline void SetTestingData(TestingData&& value) { m_testingDataHasBeenSet = true; m_testingData = std::move(value); } /** *

Specifies an external manifest that the service uses to test the model. If * you specify TestingData you must also specify * TrainingData. The project must not have any associated * datasets.

*/ inline CreateProjectVersionRequest& WithTestingData(const TestingData& value) { SetTestingData(value); return *this;} /** *

Specifies an external manifest that the service uses to test the model. If * you specify TestingData you must also specify * TrainingData. The project must not have any associated * datasets.

*/ inline CreateProjectVersionRequest& WithTestingData(TestingData&& value) { SetTestingData(std::move(value)); return *this;} /** *

A set of tags (key-value pairs) that you want to attach to the model.

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

A set of tags (key-value pairs) that you want to attach to the model.

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

A set of tags (key-value pairs) that you want to attach to the model.

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

A set of tags (key-value pairs) that you want to attach to the model.

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

A set of tags (key-value pairs) that you want to attach to the model.

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

A set of tags (key-value pairs) that you want to attach to the model.

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

A set of tags (key-value pairs) that you want to attach to the model.

*/ inline CreateProjectVersionRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

A set of tags (key-value pairs) that you want to attach to the model.

*/ inline CreateProjectVersionRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

A set of tags (key-value pairs) that you want to attach to the model.

*/ inline CreateProjectVersionRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

A set of tags (key-value pairs) that you want to attach to the model.

*/ inline CreateProjectVersionRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

A set of tags (key-value pairs) that you want to attach to the model.

*/ inline CreateProjectVersionRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

A set of tags (key-value pairs) that you want to attach to the model.

*/ inline CreateProjectVersionRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

A set of tags (key-value pairs) that you want to attach to the model.

*/ inline CreateProjectVersionRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The identifier for your AWS Key Management Service key (AWS KMS key). You can * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key, * an alias for your KMS key, or an alias ARN. The key is used to encrypt training * and test images copied into the service for model training. Your source images * are unaffected. The key is also used to encrypt training results and manifest * files written to the output Amazon S3 bucket (OutputConfig).

*

If you choose to use your own KMS key, you need the following permissions on * the KMS key.

  • kms:CreateGrant

  • *

    kms:DescribeKey

  • kms:GenerateDataKey

  • *

    kms:Decrypt

If you don't specify a value for * KmsKeyId, images copied into the service are encrypted using a key * that AWS owns and manages.

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

The identifier for your AWS Key Management Service key (AWS KMS key). You can * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key, * an alias for your KMS key, or an alias ARN. The key is used to encrypt training * and test images copied into the service for model training. Your source images * are unaffected. The key is also used to encrypt training results and manifest * files written to the output Amazon S3 bucket (OutputConfig).

*

If you choose to use your own KMS key, you need the following permissions on * the KMS key.

  • kms:CreateGrant

  • *

    kms:DescribeKey

  • kms:GenerateDataKey

  • *

    kms:Decrypt

If you don't specify a value for * KmsKeyId, images copied into the service are encrypted using a key * that AWS owns and manages.

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

The identifier for your AWS Key Management Service key (AWS KMS key). You can * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key, * an alias for your KMS key, or an alias ARN. The key is used to encrypt training * and test images copied into the service for model training. Your source images * are unaffected. The key is also used to encrypt training results and manifest * files written to the output Amazon S3 bucket (OutputConfig).

*

If you choose to use your own KMS key, you need the following permissions on * the KMS key.

  • kms:CreateGrant

  • *

    kms:DescribeKey

  • kms:GenerateDataKey

  • *

    kms:Decrypt

If you don't specify a value for * KmsKeyId, images copied into the service are encrypted using a key * that AWS owns and manages.

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

The identifier for your AWS Key Management Service key (AWS KMS key). You can * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key, * an alias for your KMS key, or an alias ARN. The key is used to encrypt training * and test images copied into the service for model training. Your source images * are unaffected. The key is also used to encrypt training results and manifest * files written to the output Amazon S3 bucket (OutputConfig).

*

If you choose to use your own KMS key, you need the following permissions on * the KMS key.

  • kms:CreateGrant

  • *

    kms:DescribeKey

  • kms:GenerateDataKey

  • *

    kms:Decrypt

If you don't specify a value for * KmsKeyId, images copied into the service are encrypted using a key * that AWS owns and manages.

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

The identifier for your AWS Key Management Service key (AWS KMS key). You can * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key, * an alias for your KMS key, or an alias ARN. The key is used to encrypt training * and test images copied into the service for model training. Your source images * are unaffected. The key is also used to encrypt training results and manifest * files written to the output Amazon S3 bucket (OutputConfig).

*

If you choose to use your own KMS key, you need the following permissions on * the KMS key.

  • kms:CreateGrant

  • *

    kms:DescribeKey

  • kms:GenerateDataKey

  • *

    kms:Decrypt

If you don't specify a value for * KmsKeyId, images copied into the service are encrypted using a key * that AWS owns and manages.

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

The identifier for your AWS Key Management Service key (AWS KMS key). You can * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key, * an alias for your KMS key, or an alias ARN. The key is used to encrypt training * and test images copied into the service for model training. Your source images * are unaffected. The key is also used to encrypt training results and manifest * files written to the output Amazon S3 bucket (OutputConfig).

*

If you choose to use your own KMS key, you need the following permissions on * the KMS key.

  • kms:CreateGrant

  • *

    kms:DescribeKey

  • kms:GenerateDataKey

  • *

    kms:Decrypt

If you don't specify a value for * KmsKeyId, images copied into the service are encrypted using a key * that AWS owns and manages.

*/ inline CreateProjectVersionRequest& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

The identifier for your AWS Key Management Service key (AWS KMS key). You can * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key, * an alias for your KMS key, or an alias ARN. The key is used to encrypt training * and test images copied into the service for model training. Your source images * are unaffected. The key is also used to encrypt training results and manifest * files written to the output Amazon S3 bucket (OutputConfig).

*

If you choose to use your own KMS key, you need the following permissions on * the KMS key.

  • kms:CreateGrant

  • *

    kms:DescribeKey

  • kms:GenerateDataKey

  • *

    kms:Decrypt

If you don't specify a value for * KmsKeyId, images copied into the service are encrypted using a key * that AWS owns and manages.

*/ inline CreateProjectVersionRequest& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

The identifier for your AWS Key Management Service key (AWS KMS key). You can * supply the Amazon Resource Name (ARN) of your KMS key, the ID of your KMS key, * an alias for your KMS key, or an alias ARN. The key is used to encrypt training * and test images copied into the service for model training. Your source images * are unaffected. The key is also used to encrypt training results and manifest * files written to the output Amazon S3 bucket (OutputConfig).

*

If you choose to use your own KMS key, you need the following permissions on * the KMS key.

  • kms:CreateGrant

  • *

    kms:DescribeKey

  • kms:GenerateDataKey

  • *

    kms:Decrypt

If you don't specify a value for * KmsKeyId, images copied into the service are encrypted using a key * that AWS owns and manages.

*/ inline CreateProjectVersionRequest& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} private: Aws::String m_projectArn; bool m_projectArnHasBeenSet = false; Aws::String m_versionName; bool m_versionNameHasBeenSet = false; OutputConfig m_outputConfig; bool m_outputConfigHasBeenSet = false; TrainingData m_trainingData; bool m_trainingDataHasBeenSet = false; TestingData m_testingData; bool m_testingDataHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; }; } // namespace Model } // namespace Rekognition } // namespace Aws