/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Rekognition { namespace Model { /** */ class CopyProjectVersionRequest : public RekognitionRequest { public: AWS_REKOGNITION_API CopyProjectVersionRequest(); // 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 "CopyProjectVersion"; } AWS_REKOGNITION_API Aws::String SerializePayload() const override; AWS_REKOGNITION_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The ARN of the source project in the trusting AWS account.

*/ inline const Aws::String& GetSourceProjectArn() const{ return m_sourceProjectArn; } /** *

The ARN of the source project in the trusting AWS account.

*/ inline bool SourceProjectArnHasBeenSet() const { return m_sourceProjectArnHasBeenSet; } /** *

The ARN of the source project in the trusting AWS account.

*/ inline void SetSourceProjectArn(const Aws::String& value) { m_sourceProjectArnHasBeenSet = true; m_sourceProjectArn = value; } /** *

The ARN of the source project in the trusting AWS account.

*/ inline void SetSourceProjectArn(Aws::String&& value) { m_sourceProjectArnHasBeenSet = true; m_sourceProjectArn = std::move(value); } /** *

The ARN of the source project in the trusting AWS account.

*/ inline void SetSourceProjectArn(const char* value) { m_sourceProjectArnHasBeenSet = true; m_sourceProjectArn.assign(value); } /** *

The ARN of the source project in the trusting AWS account.

*/ inline CopyProjectVersionRequest& WithSourceProjectArn(const Aws::String& value) { SetSourceProjectArn(value); return *this;} /** *

The ARN of the source project in the trusting AWS account.

*/ inline CopyProjectVersionRequest& WithSourceProjectArn(Aws::String&& value) { SetSourceProjectArn(std::move(value)); return *this;} /** *

The ARN of the source project in the trusting AWS account.

*/ inline CopyProjectVersionRequest& WithSourceProjectArn(const char* value) { SetSourceProjectArn(value); return *this;} /** *

The ARN of the model version in the source project that you want to copy to a * destination project.

*/ inline const Aws::String& GetSourceProjectVersionArn() const{ return m_sourceProjectVersionArn; } /** *

The ARN of the model version in the source project that you want to copy to a * destination project.

*/ inline bool SourceProjectVersionArnHasBeenSet() const { return m_sourceProjectVersionArnHasBeenSet; } /** *

The ARN of the model version in the source project that you want to copy to a * destination project.

*/ inline void SetSourceProjectVersionArn(const Aws::String& value) { m_sourceProjectVersionArnHasBeenSet = true; m_sourceProjectVersionArn = value; } /** *

The ARN of the model version in the source project that you want to copy to a * destination project.

*/ inline void SetSourceProjectVersionArn(Aws::String&& value) { m_sourceProjectVersionArnHasBeenSet = true; m_sourceProjectVersionArn = std::move(value); } /** *

The ARN of the model version in the source project that you want to copy to a * destination project.

*/ inline void SetSourceProjectVersionArn(const char* value) { m_sourceProjectVersionArnHasBeenSet = true; m_sourceProjectVersionArn.assign(value); } /** *

The ARN of the model version in the source project that you want to copy to a * destination project.

*/ inline CopyProjectVersionRequest& WithSourceProjectVersionArn(const Aws::String& value) { SetSourceProjectVersionArn(value); return *this;} /** *

The ARN of the model version in the source project that you want to copy to a * destination project.

*/ inline CopyProjectVersionRequest& WithSourceProjectVersionArn(Aws::String&& value) { SetSourceProjectVersionArn(std::move(value)); return *this;} /** *

The ARN of the model version in the source project that you want to copy to a * destination project.

*/ inline CopyProjectVersionRequest& WithSourceProjectVersionArn(const char* value) { SetSourceProjectVersionArn(value); return *this;} /** *

The ARN of the project in the trusted AWS account that you want to copy the * model version to.

*/ inline const Aws::String& GetDestinationProjectArn() const{ return m_destinationProjectArn; } /** *

The ARN of the project in the trusted AWS account that you want to copy the * model version to.

*/ inline bool DestinationProjectArnHasBeenSet() const { return m_destinationProjectArnHasBeenSet; } /** *

The ARN of the project in the trusted AWS account that you want to copy the * model version to.

*/ inline void SetDestinationProjectArn(const Aws::String& value) { m_destinationProjectArnHasBeenSet = true; m_destinationProjectArn = value; } /** *

The ARN of the project in the trusted AWS account that you want to copy the * model version to.

*/ inline void SetDestinationProjectArn(Aws::String&& value) { m_destinationProjectArnHasBeenSet = true; m_destinationProjectArn = std::move(value); } /** *

The ARN of the project in the trusted AWS account that you want to copy the * model version to.

*/ inline void SetDestinationProjectArn(const char* value) { m_destinationProjectArnHasBeenSet = true; m_destinationProjectArn.assign(value); } /** *

The ARN of the project in the trusted AWS account that you want to copy the * model version to.

*/ inline CopyProjectVersionRequest& WithDestinationProjectArn(const Aws::String& value) { SetDestinationProjectArn(value); return *this;} /** *

The ARN of the project in the trusted AWS account that you want to copy the * model version to.

*/ inline CopyProjectVersionRequest& WithDestinationProjectArn(Aws::String&& value) { SetDestinationProjectArn(std::move(value)); return *this;} /** *

The ARN of the project in the trusted AWS account that you want to copy the * model version to.

*/ inline CopyProjectVersionRequest& WithDestinationProjectArn(const char* value) { SetDestinationProjectArn(value); return *this;} /** *

A name for the version of the model that's copied to the destination * project.

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

A name for the version of the model that's copied to the destination * project.

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

A name for the version of the model that's copied to the destination * project.

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

A name for the version of the model that's copied to the destination * project.

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

A name for the version of the model that's copied to the destination * project.

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

A name for the version of the model that's copied to the destination * project.

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

A name for the version of the model that's copied to the destination * project.

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

A name for the version of the model that's copied to the destination * project.

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

The S3 bucket and folder location where the training output for the source * model version is placed.

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

The S3 bucket and folder location where the training output for the source * model version is placed.

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

The S3 bucket and folder location where the training output for the source * model version is placed.

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

The S3 bucket and folder location where the training output for the source * model version is placed.

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

The S3 bucket and folder location where the training output for the source * model version is placed.

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

The S3 bucket and folder location where the training output for the source * model version is placed.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

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

The key-value tags to assign to the model version.

*/ inline CopyProjectVersionRequest& 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 * 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 * 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 * 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 * 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 * 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 * 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 CopyProjectVersionRequest& 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 * 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 CopyProjectVersionRequest& 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 * 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 CopyProjectVersionRequest& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} private: Aws::String m_sourceProjectArn; bool m_sourceProjectArnHasBeenSet = false; Aws::String m_sourceProjectVersionArn; bool m_sourceProjectVersionArnHasBeenSet = false; Aws::String m_destinationProjectArn; bool m_destinationProjectArnHasBeenSet = false; Aws::String m_versionName; bool m_versionNameHasBeenSet = false; OutputConfig m_outputConfig; bool m_outputConfigHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; }; } // namespace Model } // namespace Rekognition } // namespace Aws