Class: AWSCDK::Transfer::CfnConnectorProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
transfer/cfn_connector_props.rb

Overview

Properties for defining a CfnConnector.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_role:, as2_config: nil, egress_config: nil, egress_type: nil, ip_address_type: nil, logging_role: nil, security_policy_name: nil, sftp_config: nil, tags: nil, url: nil) ⇒ CfnConnectorProps

Returns a new instance of CfnConnectorProps.

Parameters:

  • access_role (String)

    Connectors are used to send files using either the AS2 or SFTP protocol.

  • as2_config (Object, nil) (defaults to: nil)

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

  • egress_config (AWSCDK::IResolvable, AWSCDK::Transfer::CfnConnector::ConnectorEgressConfigProperty, nil) (defaults to: nil)

    Current egress configuration of the connector, showing how traffic is routed to the SFTP server.

  • egress_type (String, nil) (defaults to: nil)

    Type of egress configuration for the connector.

  • ip_address_type (String, nil) (defaults to: nil)

    IP address type for Connector.

  • logging_role (String, nil) (defaults to: nil)

    The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that allows a connector to turn on CloudWatch logging for Amazon S3 events.

  • security_policy_name (String, nil) (defaults to: nil)

    The text name of the security policy for the specified connector.

  • sftp_config (AWSCDK::IResolvable, AWSCDK::Transfer::CfnConnector::SftpConfigProperty, nil) (defaults to: nil)

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

  • tags (Array<AWSCDK::CfnTag>, nil) (defaults to: nil)

    Key-value pairs that can be used to group and search for connectors.

  • url (String, nil) (defaults to: nil)

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



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'transfer/cfn_connector_props.rb', line 19

def initialize(access_role:, as2_config: nil, egress_config: nil, egress_type: nil, ip_address_type: nil, logging_role: nil, security_policy_name: nil, sftp_config: nil, tags: nil, url: nil)
  @access_role = access_role
  Jsii::Type.check_type(@access_role, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "accessRole")
  @as2_config = as2_config
  Jsii::Type.check_type(@as2_config, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "as2Config") unless @as2_config.nil?
  @egress_config = egress_config.is_a?(Hash) ? ::AWSCDK::Transfer::CfnConnector::ConnectorEgressConfigProperty.new(**egress_config.transform_keys(&:to_sym)) : egress_config
  Jsii::Type.check_type(@egress_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c190cmFuc2Zlci5DZm5Db25uZWN0b3IuQ29ubmVjdG9yRWdyZXNzQ29uZmlnUHJvcGVydHkifV19fQ==")), "egressConfig") unless @egress_config.nil?
  @egress_type = egress_type
  Jsii::Type.check_type(@egress_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "egressType") unless @egress_type.nil?
  @ip_address_type = ip_address_type
  Jsii::Type.check_type(@ip_address_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "ipAddressType") unless @ip_address_type.nil?
  @logging_role = logging_role
  Jsii::Type.check_type(@logging_role, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "loggingRole") unless @logging_role.nil?
  @security_policy_name = security_policy_name
  Jsii::Type.check_type(@security_policy_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "securityPolicyName") unless @security_policy_name.nil?
  @sftp_config = sftp_config.is_a?(Hash) ? ::AWSCDK::Transfer::CfnConnector::SftpConfigProperty.new(**sftp_config.transform_keys(&:to_sym)) : sftp_config
  Jsii::Type.check_type(@sftp_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c190cmFuc2Zlci5DZm5Db25uZWN0b3IuU2Z0cENvbmZpZ1Byb3BlcnR5In1dfX0=")), "sftpConfig") unless @sftp_config.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
  @url = url
  Jsii::Type.check_type(@url, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "url") unless @url.nil?
end

Instance Attribute Details

#access_roleString (readonly)

Connectors are used to send files using either the AS2 or SFTP protocol.

For the access role, provide the Amazon Resource Name (ARN) of the AWS Identity and Access Management role to use.

For AS2 connectors

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 AWS managed key in Secrets Manager, then the role also needs the kms:Decrypt permission for that key.

For SFTP connectors

Make sure that the access role provides read and write access to the parent directory of the file location that's used in the StartFileTransfer request. Additionally, make sure that the role provides secretsmanager:GetSecretValue permission to AWS Secrets Manager .



58
59
60
# File 'transfer/cfn_connector_props.rb', line 58

def access_role
  @access_role
end

#as2_configObject? (readonly)

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



63
64
65
# File 'transfer/cfn_connector_props.rb', line 63

def as2_config
  @as2_config
end

#egress_configAWSCDK::IResolvable, ... (readonly)

Current egress configuration of the connector, showing how traffic is routed to the SFTP server.

Contains VPC Lattice settings when using VPC_LATTICE egress type.

When using the VPC_LATTICE egress type, AWS Transfer Family uses a managed Service Network to simplify the resource sharing process.



72
73
74
# File 'transfer/cfn_connector_props.rb', line 72

def egress_config
  @egress_config
end

#egress_typeString? (readonly)

Type of egress configuration for the connector.

SERVICE_MANAGED uses Transfer Family managed NAT gateways, while VPC_LATTICE routes traffic through customer VPCs using VPC Lattice.



79
80
81
# File 'transfer/cfn_connector_props.rb', line 79

def egress_type
  @egress_type
end

#ip_address_typeString? (readonly)

IP address type for Connector.



84
85
86
# File 'transfer/cfn_connector_props.rb', line 84

def ip_address_type
  @ip_address_type
end

#logging_roleString? (readonly)

The Amazon Resource Name (ARN) of the AWS 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.



91
92
93
# File 'transfer/cfn_connector_props.rb', line 91

def logging_role
  @logging_role
end

#security_policy_nameString? (readonly)

The text name of the security policy for the specified connector.



96
97
98
# File 'transfer/cfn_connector_props.rb', line 96

def security_policy_name
  @security_policy_name
end

#sftp_configAWSCDK::IResolvable, ... (readonly)

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



101
102
103
# File 'transfer/cfn_connector_props.rb', line 101

def sftp_config
  @sftp_config
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

Key-value pairs that can be used to group and search for connectors.



106
107
108
# File 'transfer/cfn_connector_props.rb', line 106

def tags
  @tags
end

#urlString? (readonly)

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

When creating AS2 connectors or service-managed SFTP connectors (connectors without egress configuration), you must provide a URL to specify the remote server endpoint. For VPC Lattice type connectors, the URL must be null.



113
114
115
# File 'transfer/cfn_connector_props.rb', line 113

def url
  @url
end

Class Method Details

.jsii_propertiesObject



115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'transfer/cfn_connector_props.rb', line 115

def self.jsii_properties
  {
    :access_role => "accessRole",
    :as2_config => "as2Config",
    :egress_config => "egressConfig",
    :egress_type => "egressType",
    :ip_address_type => "ipAddressType",
    :logging_role => "loggingRole",
    :security_policy_name => "securityPolicyName",
    :sftp_config => "sftpConfig",
    :tags => "tags",
    :url => "url",
  }
end

Instance Method Details

#to_jsiiObject



130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'transfer/cfn_connector_props.rb', line 130

def to_jsii
  result = {}
  result.merge!({
    "accessRole" => @access_role,
    "as2Config" => @as2_config,
    "egressConfig" => @egress_config,
    "egressType" => @egress_type,
    "ipAddressType" => @ip_address_type,
    "loggingRole" => @logging_role,
    "securityPolicyName" => @security_policy_name,
    "sftpConfig" => @sftp_config,
    "tags" => @tags,
    "url" => @url,
  })
  result.compact
end