/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace TranscribeStreamingService { namespace Model { /** *

Allows you to specify additional settings for your streaming Call Analytics * post-call request, including output locations for your redacted and unredacted * transcript, which IAM role to use, and, optionally, which encryption key to * use.

ContentRedactionOutput, * DataAccessRoleArn, and OutputLocation are required * fields.

See Also:

AWS * API Reference

*/ class PostCallAnalyticsSettings { public: AWS_TRANSCRIBESTREAMINGSERVICE_API PostCallAnalyticsSettings(); AWS_TRANSCRIBESTREAMINGSERVICE_API PostCallAnalyticsSettings(Aws::Utils::Json::JsonView jsonValue); AWS_TRANSCRIBESTREAMINGSERVICE_API PostCallAnalyticsSettings& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_TRANSCRIBESTREAMINGSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The Amazon S3 location where you want your Call Analytics post-call * transcription output stored. You can use any of the following formats to specify * the output location:

  1. s3://DOC-EXAMPLE-BUCKET

  2. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/

  3. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/my-call-analytics-job.json

  4. *
*/ inline const Aws::String& GetOutputLocation() const{ return m_outputLocation; } /** *

The Amazon S3 location where you want your Call Analytics post-call * transcription output stored. You can use any of the following formats to specify * the output location:

  1. s3://DOC-EXAMPLE-BUCKET

  2. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/

  3. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/my-call-analytics-job.json

  4. *
*/ inline bool OutputLocationHasBeenSet() const { return m_outputLocationHasBeenSet; } /** *

The Amazon S3 location where you want your Call Analytics post-call * transcription output stored. You can use any of the following formats to specify * the output location:

  1. s3://DOC-EXAMPLE-BUCKET

  2. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/

  3. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/my-call-analytics-job.json

  4. *
*/ inline void SetOutputLocation(const Aws::String& value) { m_outputLocationHasBeenSet = true; m_outputLocation = value; } /** *

The Amazon S3 location where you want your Call Analytics post-call * transcription output stored. You can use any of the following formats to specify * the output location:

  1. s3://DOC-EXAMPLE-BUCKET

  2. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/

  3. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/my-call-analytics-job.json

  4. *
*/ inline void SetOutputLocation(Aws::String&& value) { m_outputLocationHasBeenSet = true; m_outputLocation = std::move(value); } /** *

The Amazon S3 location where you want your Call Analytics post-call * transcription output stored. You can use any of the following formats to specify * the output location:

  1. s3://DOC-EXAMPLE-BUCKET

  2. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/

  3. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/my-call-analytics-job.json

  4. *
*/ inline void SetOutputLocation(const char* value) { m_outputLocationHasBeenSet = true; m_outputLocation.assign(value); } /** *

The Amazon S3 location where you want your Call Analytics post-call * transcription output stored. You can use any of the following formats to specify * the output location:

  1. s3://DOC-EXAMPLE-BUCKET

  2. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/

  3. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/my-call-analytics-job.json

  4. *
*/ inline PostCallAnalyticsSettings& WithOutputLocation(const Aws::String& value) { SetOutputLocation(value); return *this;} /** *

The Amazon S3 location where you want your Call Analytics post-call * transcription output stored. You can use any of the following formats to specify * the output location:

  1. s3://DOC-EXAMPLE-BUCKET

  2. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/

  3. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/my-call-analytics-job.json

  4. *
*/ inline PostCallAnalyticsSettings& WithOutputLocation(Aws::String&& value) { SetOutputLocation(std::move(value)); return *this;} /** *

The Amazon S3 location where you want your Call Analytics post-call * transcription output stored. You can use any of the following formats to specify * the output location:

  1. s3://DOC-EXAMPLE-BUCKET

  2. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/

  3. *

    s3://DOC-EXAMPLE-BUCKET/my-output-folder/my-call-analytics-job.json

  4. *
*/ inline PostCallAnalyticsSettings& WithOutputLocation(const char* value) { SetOutputLocation(value); return *this;} /** *

The Amazon Resource Name (ARN) of an IAM role that has permissions to access * the Amazon S3 bucket that contains your input files. If the role that you * specify doesn’t have the appropriate permissions to access the specified Amazon * S3 location, your request fails.

IAM role ARNs have the format * arn:partition:iam::account:role/role-name-with-path. For example: * arn:aws:iam::111122223333:role/Admin. For more information, see IAM * ARNs.

*/ inline const Aws::String& GetDataAccessRoleArn() const{ return m_dataAccessRoleArn; } /** *

The Amazon Resource Name (ARN) of an IAM role that has permissions to access * the Amazon S3 bucket that contains your input files. If the role that you * specify doesn’t have the appropriate permissions to access the specified Amazon * S3 location, your request fails.

IAM role ARNs have the format * arn:partition:iam::account:role/role-name-with-path. For example: * arn:aws:iam::111122223333:role/Admin. For more information, see IAM * ARNs.

*/ inline bool DataAccessRoleArnHasBeenSet() const { return m_dataAccessRoleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of an IAM role that has permissions to access * the Amazon S3 bucket that contains your input files. If the role that you * specify doesn’t have the appropriate permissions to access the specified Amazon * S3 location, your request fails.

IAM role ARNs have the format * arn:partition:iam::account:role/role-name-with-path. For example: * arn:aws:iam::111122223333:role/Admin. For more information, see IAM * ARNs.

*/ inline void SetDataAccessRoleArn(const Aws::String& value) { m_dataAccessRoleArnHasBeenSet = true; m_dataAccessRoleArn = value; } /** *

The Amazon Resource Name (ARN) of an IAM role that has permissions to access * the Amazon S3 bucket that contains your input files. If the role that you * specify doesn’t have the appropriate permissions to access the specified Amazon * S3 location, your request fails.

IAM role ARNs have the format * arn:partition:iam::account:role/role-name-with-path. For example: * arn:aws:iam::111122223333:role/Admin. For more information, see IAM * ARNs.

*/ inline void SetDataAccessRoleArn(Aws::String&& value) { m_dataAccessRoleArnHasBeenSet = true; m_dataAccessRoleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of an IAM role that has permissions to access * the Amazon S3 bucket that contains your input files. If the role that you * specify doesn’t have the appropriate permissions to access the specified Amazon * S3 location, your request fails.

IAM role ARNs have the format * arn:partition:iam::account:role/role-name-with-path. For example: * arn:aws:iam::111122223333:role/Admin. For more information, see IAM * ARNs.

*/ inline void SetDataAccessRoleArn(const char* value) { m_dataAccessRoleArnHasBeenSet = true; m_dataAccessRoleArn.assign(value); } /** *

The Amazon Resource Name (ARN) of an IAM role that has permissions to access * the Amazon S3 bucket that contains your input files. If the role that you * specify doesn’t have the appropriate permissions to access the specified Amazon * S3 location, your request fails.

IAM role ARNs have the format * arn:partition:iam::account:role/role-name-with-path. For example: * arn:aws:iam::111122223333:role/Admin. For more information, see IAM * ARNs.

*/ inline PostCallAnalyticsSettings& WithDataAccessRoleArn(const Aws::String& value) { SetDataAccessRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of an IAM role that has permissions to access * the Amazon S3 bucket that contains your input files. If the role that you * specify doesn’t have the appropriate permissions to access the specified Amazon * S3 location, your request fails.

IAM role ARNs have the format * arn:partition:iam::account:role/role-name-with-path. For example: * arn:aws:iam::111122223333:role/Admin. For more information, see IAM * ARNs.

*/ inline PostCallAnalyticsSettings& WithDataAccessRoleArn(Aws::String&& value) { SetDataAccessRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of an IAM role that has permissions to access * the Amazon S3 bucket that contains your input files. If the role that you * specify doesn’t have the appropriate permissions to access the specified Amazon * S3 location, your request fails.

IAM role ARNs have the format * arn:partition:iam::account:role/role-name-with-path. For example: * arn:aws:iam::111122223333:role/Admin. For more information, see IAM * ARNs.

*/ inline PostCallAnalyticsSettings& WithDataAccessRoleArn(const char* value) { SetDataAccessRoleArn(value); return *this;} /** *

Specify whether you want only a redacted transcript or both a redacted and an * unredacted transcript. If you choose redacted and unredacted, two JSON files are * generated and stored in the Amazon S3 output location you specify.

Note * that to include ContentRedactionOutput in your request, you must * enable content redaction (ContentRedactionType).

*/ inline const ContentRedactionOutput& GetContentRedactionOutput() const{ return m_contentRedactionOutput; } /** *

Specify whether you want only a redacted transcript or both a redacted and an * unredacted transcript. If you choose redacted and unredacted, two JSON files are * generated and stored in the Amazon S3 output location you specify.

Note * that to include ContentRedactionOutput in your request, you must * enable content redaction (ContentRedactionType).

*/ inline bool ContentRedactionOutputHasBeenSet() const { return m_contentRedactionOutputHasBeenSet; } /** *

Specify whether you want only a redacted transcript or both a redacted and an * unredacted transcript. If you choose redacted and unredacted, two JSON files are * generated and stored in the Amazon S3 output location you specify.

Note * that to include ContentRedactionOutput in your request, you must * enable content redaction (ContentRedactionType).

*/ inline void SetContentRedactionOutput(const ContentRedactionOutput& value) { m_contentRedactionOutputHasBeenSet = true; m_contentRedactionOutput = value; } /** *

Specify whether you want only a redacted transcript or both a redacted and an * unredacted transcript. If you choose redacted and unredacted, two JSON files are * generated and stored in the Amazon S3 output location you specify.

Note * that to include ContentRedactionOutput in your request, you must * enable content redaction (ContentRedactionType).

*/ inline void SetContentRedactionOutput(ContentRedactionOutput&& value) { m_contentRedactionOutputHasBeenSet = true; m_contentRedactionOutput = std::move(value); } /** *

Specify whether you want only a redacted transcript or both a redacted and an * unredacted transcript. If you choose redacted and unredacted, two JSON files are * generated and stored in the Amazon S3 output location you specify.

Note * that to include ContentRedactionOutput in your request, you must * enable content redaction (ContentRedactionType).

*/ inline PostCallAnalyticsSettings& WithContentRedactionOutput(const ContentRedactionOutput& value) { SetContentRedactionOutput(value); return *this;} /** *

Specify whether you want only a redacted transcript or both a redacted and an * unredacted transcript. If you choose redacted and unredacted, two JSON files are * generated and stored in the Amazon S3 output location you specify.

Note * that to include ContentRedactionOutput in your request, you must * enable content redaction (ContentRedactionType).

*/ inline PostCallAnalyticsSettings& WithContentRedactionOutput(ContentRedactionOutput&& value) { SetContentRedactionOutput(std::move(value)); return *this;} /** *

The KMS key you want to use to encrypt your Call Analytics post-call * output.

If using a key located in the current Amazon Web Services * account, you can specify your KMS key in one of four ways:

  1. Use * the KMS key ID itself. For example, * 1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use an * alias for the KMS key ID. For example, alias/ExampleAlias.

    *
  3. Use the Amazon Resource Name (ARN) for the KMS key ID. For * example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  4. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

If using a key located in a different Amazon Web Services account than * the current Amazon Web Services account, you can specify your KMS key in one of * two ways:

  1. Use the ARN for the KMS key ID. For example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  2. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

Note that the user making the request must have permission to use the * specified KMS key.

*/ inline const Aws::String& GetOutputEncryptionKMSKeyId() const{ return m_outputEncryptionKMSKeyId; } /** *

The KMS key you want to use to encrypt your Call Analytics post-call * output.

If using a key located in the current Amazon Web Services * account, you can specify your KMS key in one of four ways:

  1. Use * the KMS key ID itself. For example, * 1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use an * alias for the KMS key ID. For example, alias/ExampleAlias.

    *
  3. Use the Amazon Resource Name (ARN) for the KMS key ID. For * example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  4. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

If using a key located in a different Amazon Web Services account than * the current Amazon Web Services account, you can specify your KMS key in one of * two ways:

  1. Use the ARN for the KMS key ID. For example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  2. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

Note that the user making the request must have permission to use the * specified KMS key.

*/ inline bool OutputEncryptionKMSKeyIdHasBeenSet() const { return m_outputEncryptionKMSKeyIdHasBeenSet; } /** *

The KMS key you want to use to encrypt your Call Analytics post-call * output.

If using a key located in the current Amazon Web Services * account, you can specify your KMS key in one of four ways:

  1. Use * the KMS key ID itself. For example, * 1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use an * alias for the KMS key ID. For example, alias/ExampleAlias.

    *
  3. Use the Amazon Resource Name (ARN) for the KMS key ID. For * example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  4. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

If using a key located in a different Amazon Web Services account than * the current Amazon Web Services account, you can specify your KMS key in one of * two ways:

  1. Use the ARN for the KMS key ID. For example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  2. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

Note that the user making the request must have permission to use the * specified KMS key.

*/ inline void SetOutputEncryptionKMSKeyId(const Aws::String& value) { m_outputEncryptionKMSKeyIdHasBeenSet = true; m_outputEncryptionKMSKeyId = value; } /** *

The KMS key you want to use to encrypt your Call Analytics post-call * output.

If using a key located in the current Amazon Web Services * account, you can specify your KMS key in one of four ways:

  1. Use * the KMS key ID itself. For example, * 1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use an * alias for the KMS key ID. For example, alias/ExampleAlias.

    *
  3. Use the Amazon Resource Name (ARN) for the KMS key ID. For * example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  4. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

If using a key located in a different Amazon Web Services account than * the current Amazon Web Services account, you can specify your KMS key in one of * two ways:

  1. Use the ARN for the KMS key ID. For example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  2. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

Note that the user making the request must have permission to use the * specified KMS key.

*/ inline void SetOutputEncryptionKMSKeyId(Aws::String&& value) { m_outputEncryptionKMSKeyIdHasBeenSet = true; m_outputEncryptionKMSKeyId = std::move(value); } /** *

The KMS key you want to use to encrypt your Call Analytics post-call * output.

If using a key located in the current Amazon Web Services * account, you can specify your KMS key in one of four ways:

  1. Use * the KMS key ID itself. For example, * 1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use an * alias for the KMS key ID. For example, alias/ExampleAlias.

    *
  3. Use the Amazon Resource Name (ARN) for the KMS key ID. For * example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  4. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

If using a key located in a different Amazon Web Services account than * the current Amazon Web Services account, you can specify your KMS key in one of * two ways:

  1. Use the ARN for the KMS key ID. For example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  2. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

Note that the user making the request must have permission to use the * specified KMS key.

*/ inline void SetOutputEncryptionKMSKeyId(const char* value) { m_outputEncryptionKMSKeyIdHasBeenSet = true; m_outputEncryptionKMSKeyId.assign(value); } /** *

The KMS key you want to use to encrypt your Call Analytics post-call * output.

If using a key located in the current Amazon Web Services * account, you can specify your KMS key in one of four ways:

  1. Use * the KMS key ID itself. For example, * 1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use an * alias for the KMS key ID. For example, alias/ExampleAlias.

    *
  3. Use the Amazon Resource Name (ARN) for the KMS key ID. For * example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  4. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

If using a key located in a different Amazon Web Services account than * the current Amazon Web Services account, you can specify your KMS key in one of * two ways:

  1. Use the ARN for the KMS key ID. For example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  2. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

Note that the user making the request must have permission to use the * specified KMS key.

*/ inline PostCallAnalyticsSettings& WithOutputEncryptionKMSKeyId(const Aws::String& value) { SetOutputEncryptionKMSKeyId(value); return *this;} /** *

The KMS key you want to use to encrypt your Call Analytics post-call * output.

If using a key located in the current Amazon Web Services * account, you can specify your KMS key in one of four ways:

  1. Use * the KMS key ID itself. For example, * 1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use an * alias for the KMS key ID. For example, alias/ExampleAlias.

    *
  3. Use the Amazon Resource Name (ARN) for the KMS key ID. For * example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  4. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

If using a key located in a different Amazon Web Services account than * the current Amazon Web Services account, you can specify your KMS key in one of * two ways:

  1. Use the ARN for the KMS key ID. For example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  2. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

Note that the user making the request must have permission to use the * specified KMS key.

*/ inline PostCallAnalyticsSettings& WithOutputEncryptionKMSKeyId(Aws::String&& value) { SetOutputEncryptionKMSKeyId(std::move(value)); return *this;} /** *

The KMS key you want to use to encrypt your Call Analytics post-call * output.

If using a key located in the current Amazon Web Services * account, you can specify your KMS key in one of four ways:

  1. Use * the KMS key ID itself. For example, * 1234abcd-12ab-34cd-56ef-1234567890ab.

  2. Use an * alias for the KMS key ID. For example, alias/ExampleAlias.

    *
  3. Use the Amazon Resource Name (ARN) for the KMS key ID. For * example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  4. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

If using a key located in a different Amazon Web Services account than * the current Amazon Web Services account, you can specify your KMS key in one of * two ways:

  1. Use the ARN for the KMS key ID. For example, * arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    *
  2. Use the ARN for the KMS key alias. For example, * arn:aws:kms:region:account-ID:alias/ExampleAlias.

*

Note that the user making the request must have permission to use the * specified KMS key.

*/ inline PostCallAnalyticsSettings& WithOutputEncryptionKMSKeyId(const char* value) { SetOutputEncryptionKMSKeyId(value); return *this;} private: Aws::String m_outputLocation; bool m_outputLocationHasBeenSet = false; Aws::String m_dataAccessRoleArn; bool m_dataAccessRoleArnHasBeenSet = false; ContentRedactionOutput m_contentRedactionOutput; bool m_contentRedactionOutputHasBeenSet = false; Aws::String m_outputEncryptionKMSKeyId; bool m_outputEncryptionKMSKeyIdHasBeenSet = false; }; } // namespace Model } // namespace TranscribeStreamingService } // namespace Aws