/** * 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 Transfer { namespace Model { /** */ class CreateConnectorRequest : public TransferRequest { public: AWS_TRANSFER_API CreateConnectorRequest(); // 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 "CreateConnector"; } AWS_TRANSFER_API Aws::String SerializePayload() const override; AWS_TRANSFER_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The URL of the partner's AS2 or SFTP endpoint.

*/ inline const Aws::String& GetUrl() const{ return m_url; } /** *

The URL of the partner's AS2 or SFTP endpoint.

*/ inline bool UrlHasBeenSet() const { return m_urlHasBeenSet; } /** *

The URL of the partner's AS2 or SFTP endpoint.

*/ inline void SetUrl(const Aws::String& value) { m_urlHasBeenSet = true; m_url = value; } /** *

The URL of the partner's AS2 or SFTP endpoint.

*/ inline void SetUrl(Aws::String&& value) { m_urlHasBeenSet = true; m_url = std::move(value); } /** *

The URL of the partner's AS2 or SFTP endpoint.

*/ inline void SetUrl(const char* value) { m_urlHasBeenSet = true; m_url.assign(value); } /** *

The URL of the partner's AS2 or SFTP endpoint.

*/ inline CreateConnectorRequest& WithUrl(const Aws::String& value) { SetUrl(value); return *this;} /** *

The URL of the partner's AS2 or SFTP endpoint.

*/ inline CreateConnectorRequest& WithUrl(Aws::String&& value) { SetUrl(std::move(value)); return *this;} /** *

The URL of the partner's AS2 or SFTP endpoint.

*/ inline CreateConnectorRequest& WithUrl(const char* value) { SetUrl(value); return *this;} /** *

A structure that contains the parameters for an AS2 connector object.

*/ inline const As2ConnectorConfig& GetAs2Config() const{ return m_as2Config; } /** *

A structure that contains the parameters for an AS2 connector object.

*/ inline bool As2ConfigHasBeenSet() const { return m_as2ConfigHasBeenSet; } /** *

A structure that contains the parameters for an AS2 connector object.

*/ inline void SetAs2Config(const As2ConnectorConfig& value) { m_as2ConfigHasBeenSet = true; m_as2Config = value; } /** *

A structure that contains the parameters for an AS2 connector object.

*/ inline void SetAs2Config(As2ConnectorConfig&& value) { m_as2ConfigHasBeenSet = true; m_as2Config = std::move(value); } /** *

A structure that contains the parameters for an AS2 connector object.

*/ inline CreateConnectorRequest& WithAs2Config(const As2ConnectorConfig& value) { SetAs2Config(value); return *this;} /** *

A structure that contains the parameters for an AS2 connector object.

*/ inline CreateConnectorRequest& WithAs2Config(As2ConnectorConfig&& value) { SetAs2Config(std::move(value)); return *this;} /** *

With AS2, you can send files by calling StartFileTransfer and * specifying the file paths in the request parameter, SendFilePaths. * We use the file’s parent directory (for example, for --send-file-paths * /bucket/dir/file.txt, parent directory is /bucket/dir/) to * temporarily store a processed AS2 message file, store the MDN when we receive * them from the partner, and write a final JSON file containing relevant metadata * of the transmission. So, the AccessRole needs to provide read and * write access to the parent directory of the file location used in the * StartFileTransfer request. Additionally, you need to provide read * and write access to the parent directory of the files that you intend to send * with StartFileTransfer.

If you are using Basic * authentication for your AS2 connector, the access role requires the * secretsmanager:GetSecretValue permission for the secret. If the * secret is encrypted using a customer-managed key instead of the Amazon Web * Services managed key in Secrets Manager, then the role also needs the * kms:Decrypt permission for that key.

*/ inline const Aws::String& GetAccessRole() const{ return m_accessRole; } /** *

With AS2, you can send files by calling StartFileTransfer and * specifying the file paths in the request parameter, SendFilePaths. * We use the file’s parent directory (for example, for --send-file-paths * /bucket/dir/file.txt, parent directory is /bucket/dir/) to * temporarily store a processed AS2 message file, store the MDN when we receive * them from the partner, and write a final JSON file containing relevant metadata * of the transmission. So, the AccessRole needs to provide read and * write access to the parent directory of the file location used in the * StartFileTransfer request. Additionally, you need to provide read * and write access to the parent directory of the files that you intend to send * with StartFileTransfer.

If you are using Basic * authentication for your AS2 connector, the access role requires the * secretsmanager:GetSecretValue permission for the secret. If the * secret is encrypted using a customer-managed key instead of the Amazon Web * Services managed key in Secrets Manager, then the role also needs the * kms:Decrypt permission for that key.

*/ inline bool AccessRoleHasBeenSet() const { return m_accessRoleHasBeenSet; } /** *

With AS2, you can send files by calling StartFileTransfer and * specifying the file paths in the request parameter, SendFilePaths. * We use the file’s parent directory (for example, for --send-file-paths * /bucket/dir/file.txt, parent directory is /bucket/dir/) to * temporarily store a processed AS2 message file, store the MDN when we receive * them from the partner, and write a final JSON file containing relevant metadata * of the transmission. So, the AccessRole needs to provide read and * write access to the parent directory of the file location used in the * StartFileTransfer request. Additionally, you need to provide read * and write access to the parent directory of the files that you intend to send * with StartFileTransfer.

If you are using Basic * authentication for your AS2 connector, the access role requires the * secretsmanager:GetSecretValue permission for the secret. If the * secret is encrypted using a customer-managed key instead of the Amazon Web * Services managed key in Secrets Manager, then the role also needs the * kms:Decrypt permission for that key.

*/ inline void SetAccessRole(const Aws::String& value) { m_accessRoleHasBeenSet = true; m_accessRole = value; } /** *

With AS2, you can send files by calling StartFileTransfer and * specifying the file paths in the request parameter, SendFilePaths. * We use the file’s parent directory (for example, for --send-file-paths * /bucket/dir/file.txt, parent directory is /bucket/dir/) to * temporarily store a processed AS2 message file, store the MDN when we receive * them from the partner, and write a final JSON file containing relevant metadata * of the transmission. So, the AccessRole needs to provide read and * write access to the parent directory of the file location used in the * StartFileTransfer request. Additionally, you need to provide read * and write access to the parent directory of the files that you intend to send * with StartFileTransfer.

If you are using Basic * authentication for your AS2 connector, the access role requires the * secretsmanager:GetSecretValue permission for the secret. If the * secret is encrypted using a customer-managed key instead of the Amazon Web * Services managed key in Secrets Manager, then the role also needs the * kms:Decrypt permission for that key.

*/ inline void SetAccessRole(Aws::String&& value) { m_accessRoleHasBeenSet = true; m_accessRole = std::move(value); } /** *

With AS2, you can send files by calling StartFileTransfer and * specifying the file paths in the request parameter, SendFilePaths. * We use the file’s parent directory (for example, for --send-file-paths * /bucket/dir/file.txt, parent directory is /bucket/dir/) to * temporarily store a processed AS2 message file, store the MDN when we receive * them from the partner, and write a final JSON file containing relevant metadata * of the transmission. So, the AccessRole needs to provide read and * write access to the parent directory of the file location used in the * StartFileTransfer request. Additionally, you need to provide read * and write access to the parent directory of the files that you intend to send * with StartFileTransfer.

If you are using Basic * authentication for your AS2 connector, the access role requires the * secretsmanager:GetSecretValue permission for the secret. If the * secret is encrypted using a customer-managed key instead of the Amazon Web * Services managed key in Secrets Manager, then the role also needs the * kms:Decrypt permission for that key.

*/ inline void SetAccessRole(const char* value) { m_accessRoleHasBeenSet = true; m_accessRole.assign(value); } /** *

With AS2, you can send files by calling StartFileTransfer and * specifying the file paths in the request parameter, SendFilePaths. * We use the file’s parent directory (for example, for --send-file-paths * /bucket/dir/file.txt, parent directory is /bucket/dir/) to * temporarily store a processed AS2 message file, store the MDN when we receive * them from the partner, and write a final JSON file containing relevant metadata * of the transmission. So, the AccessRole needs to provide read and * write access to the parent directory of the file location used in the * StartFileTransfer request. Additionally, you need to provide read * and write access to the parent directory of the files that you intend to send * with StartFileTransfer.

If you are using Basic * authentication for your AS2 connector, the access role requires the * secretsmanager:GetSecretValue permission for the secret. If the * secret is encrypted using a customer-managed key instead of the Amazon Web * Services managed key in Secrets Manager, then the role also needs the * kms:Decrypt permission for that key.

*/ inline CreateConnectorRequest& WithAccessRole(const Aws::String& value) { SetAccessRole(value); return *this;} /** *

With AS2, you can send files by calling StartFileTransfer and * specifying the file paths in the request parameter, SendFilePaths. * We use the file’s parent directory (for example, for --send-file-paths * /bucket/dir/file.txt, parent directory is /bucket/dir/) to * temporarily store a processed AS2 message file, store the MDN when we receive * them from the partner, and write a final JSON file containing relevant metadata * of the transmission. So, the AccessRole needs to provide read and * write access to the parent directory of the file location used in the * StartFileTransfer request. Additionally, you need to provide read * and write access to the parent directory of the files that you intend to send * with StartFileTransfer.

If you are using Basic * authentication for your AS2 connector, the access role requires the * secretsmanager:GetSecretValue permission for the secret. If the * secret is encrypted using a customer-managed key instead of the Amazon Web * Services managed key in Secrets Manager, then the role also needs the * kms:Decrypt permission for that key.

*/ inline CreateConnectorRequest& WithAccessRole(Aws::String&& value) { SetAccessRole(std::move(value)); return *this;} /** *

With AS2, you can send files by calling StartFileTransfer and * specifying the file paths in the request parameter, SendFilePaths. * We use the file’s parent directory (for example, for --send-file-paths * /bucket/dir/file.txt, parent directory is /bucket/dir/) to * temporarily store a processed AS2 message file, store the MDN when we receive * them from the partner, and write a final JSON file containing relevant metadata * of the transmission. So, the AccessRole needs to provide read and * write access to the parent directory of the file location used in the * StartFileTransfer request. Additionally, you need to provide read * and write access to the parent directory of the files that you intend to send * with StartFileTransfer.

If you are using Basic * authentication for your AS2 connector, the access role requires the * secretsmanager:GetSecretValue permission for the secret. If the * secret is encrypted using a customer-managed key instead of the Amazon Web * Services managed key in Secrets Manager, then the role also needs the * kms:Decrypt permission for that key.

*/ inline CreateConnectorRequest& WithAccessRole(const char* value) { SetAccessRole(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a connector to turn on CloudWatch logging for Amazon S3 events. * When set, you can view connector activity in your CloudWatch logs.

*/ inline const Aws::String& GetLoggingRole() const{ return m_loggingRole; } /** *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a connector to turn on CloudWatch logging for Amazon S3 events. * When set, you can view connector activity in your CloudWatch logs.

*/ inline bool LoggingRoleHasBeenSet() const { return m_loggingRoleHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a connector to turn on CloudWatch logging for Amazon S3 events. * When set, you can view connector activity in your CloudWatch logs.

*/ inline void SetLoggingRole(const Aws::String& value) { m_loggingRoleHasBeenSet = true; m_loggingRole = value; } /** *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a connector to turn on CloudWatch logging for Amazon S3 events. * When set, you can view connector activity in your CloudWatch logs.

*/ inline void SetLoggingRole(Aws::String&& value) { m_loggingRoleHasBeenSet = true; m_loggingRole = std::move(value); } /** *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a connector to turn on CloudWatch logging for Amazon S3 events. * When set, you can view connector activity in your CloudWatch logs.

*/ inline void SetLoggingRole(const char* value) { m_loggingRoleHasBeenSet = true; m_loggingRole.assign(value); } /** *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a connector to turn on CloudWatch logging for Amazon S3 events. * When set, you can view connector activity in your CloudWatch logs.

*/ inline CreateConnectorRequest& WithLoggingRole(const Aws::String& value) { SetLoggingRole(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a connector to turn on CloudWatch logging for Amazon S3 events. * When set, you can view connector activity in your CloudWatch logs.

*/ inline CreateConnectorRequest& WithLoggingRole(Aws::String&& value) { SetLoggingRole(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) * role that allows a connector to turn on CloudWatch logging for Amazon S3 events. * When set, you can view connector activity in your CloudWatch logs.

*/ inline CreateConnectorRequest& WithLoggingRole(const char* value) { SetLoggingRole(value); return *this;} /** *

Key-value pairs that can be used to group and search for connectors. Tags are * metadata attached to connectors for any purpose.

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

Key-value pairs that can be used to group and search for connectors. Tags are * metadata attached to connectors for any purpose.

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

Key-value pairs that can be used to group and search for connectors. Tags are * metadata attached to connectors for any purpose.

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

Key-value pairs that can be used to group and search for connectors. Tags are * metadata attached to connectors for any purpose.

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

Key-value pairs that can be used to group and search for connectors. Tags are * metadata attached to connectors for any purpose.

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

Key-value pairs that can be used to group and search for connectors. Tags are * metadata attached to connectors for any purpose.

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

Key-value pairs that can be used to group and search for connectors. Tags are * metadata attached to connectors for any purpose.

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

Key-value pairs that can be used to group and search for connectors. Tags are * metadata attached to connectors for any purpose.

*/ inline CreateConnectorRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

A structure that contains the parameters for an SFTP connector object.

*/ inline const SftpConnectorConfig& GetSftpConfig() const{ return m_sftpConfig; } /** *

A structure that contains the parameters for an SFTP connector object.

*/ inline bool SftpConfigHasBeenSet() const { return m_sftpConfigHasBeenSet; } /** *

A structure that contains the parameters for an SFTP connector object.

*/ inline void SetSftpConfig(const SftpConnectorConfig& value) { m_sftpConfigHasBeenSet = true; m_sftpConfig = value; } /** *

A structure that contains the parameters for an SFTP connector object.

*/ inline void SetSftpConfig(SftpConnectorConfig&& value) { m_sftpConfigHasBeenSet = true; m_sftpConfig = std::move(value); } /** *

A structure that contains the parameters for an SFTP connector object.

*/ inline CreateConnectorRequest& WithSftpConfig(const SftpConnectorConfig& value) { SetSftpConfig(value); return *this;} /** *

A structure that contains the parameters for an SFTP connector object.

*/ inline CreateConnectorRequest& WithSftpConfig(SftpConnectorConfig&& value) { SetSftpConfig(std::move(value)); return *this;} private: Aws::String m_url; bool m_urlHasBeenSet = false; As2ConnectorConfig m_as2Config; bool m_as2ConfigHasBeenSet = false; Aws::String m_accessRole; bool m_accessRoleHasBeenSet = false; Aws::String m_loggingRole; bool m_loggingRoleHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; SftpConnectorConfig m_sftpConfig; bool m_sftpConfigHasBeenSet = false; }; } // namespace Model } // namespace Transfer } // namespace Aws