Class: AWSCDK::Datasync::CfnLocationSMBProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
datasync/cfn_location_smb_props.rb

Overview

Properties for defining a CfnLocationSMB.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(agent_arns:, authentication_type: nil, cmk_secret_config: nil, custom_secret_config: nil, dns_ip_addresses: nil, domain: nil, kerberos_keytab: nil, kerberos_krb5_conf: nil, kerberos_principal: nil, mount_options: nil, password: nil, server_hostname: nil, subdirectory: nil, tags: nil, user: nil) ⇒ CfnLocationSMBProps

Returns a new instance of CfnLocationSMBProps.

Parameters:

  • agent_arns (Array<String>)

    Specifies the DataSync agent (or agents) that can connect to your SMB file server.

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

    The authentication mode used to determine identity of user.

  • cmk_secret_config (AWSCDK::IResolvable, AWSCDK::Datasync::CfnLocationSMB::CmkSecretConfigProperty, nil) (defaults to: nil)

    Specifies configuration information for a DataSync-managed secret, such as an authentication token, secret key, password, or Kerberos keytab that DataSync uses to access a specific storage location, with a customer-managed AWS KMS key .

  • custom_secret_config (AWSCDK::IResolvable, AWSCDK::Datasync::CfnLocationSMB::CustomSecretConfigProperty, nil) (defaults to: nil)

    Specifies configuration information for a customer-managed Secrets Manager secret where a storage location credentials is stored in Secrets Manager as plain text (for authentication token, secret key, or password) or as binary (for Kerberos keytab).

  • dns_ip_addresses (Array<String>, nil) (defaults to: nil)

    Specifies the IPv4 addresses for the DNS servers that your SMB file server belongs to.

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

    Specifies the Windows domain name that your SMB file server belongs to.

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

    The Base64 string representation of the Keytab file.

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

    The string representation of the Krb5Conf file, or the presigned URL to access the Krb5.conf file within an S3 bucket. Specifies a Kerberos configuration file (krb5.conf) that defines your Kerberos realm configuration. To avoid task execution errors, make sure that the service principal name (SPN) in the krb5.conf file matches exactly what you specify for KerberosPrincipal and in your keytab file.

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

    Specifies a service principal name (SPN), which is an identity in your Kerberos realm that has permission to access the files, folders, and file metadata in your SMB file server.

  • mount_options (AWSCDK::IResolvable, AWSCDK::Datasync::CfnLocationSMB::MountOptionsProperty, nil) (defaults to: nil)

    Specifies the version of the SMB protocol that DataSync uses to access your SMB file server.

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

    Specifies the password of the user who can mount your SMB file server and has permission to access the files and folders involved in your transfer.

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

    Specifies the domain name or IP address (IPv4 or IPv6) of the SMB file server that your DataSync agent connects to.

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

    Specifies the name of the share exported by your SMB file server where DataSync will read or write data.

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

    Specifies labels that help you categorize, filter, and search for your AWS resources.

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

    Specifies the user that can mount and access the files, folders, and file metadata in your SMB file server.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'datasync/cfn_location_smb_props.rb', line 24

def initialize(agent_arns:, authentication_type: nil, cmk_secret_config: nil, custom_secret_config: nil, dns_ip_addresses: nil, domain: nil, kerberos_keytab: nil, kerberos_krb5_conf: nil, kerberos_principal: nil, mount_options: nil, password: nil, server_hostname: nil, subdirectory: nil, tags: nil, user: nil)
  @agent_arns = agent_arns
  Jsii::Type.check_type(@agent_arns, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "agentArns")
  @authentication_type = authentication_type
  Jsii::Type.check_type(@authentication_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "authenticationType") unless @authentication_type.nil?
  @cmk_secret_config = cmk_secret_config.is_a?(Hash) ? ::AWSCDK::Datasync::CfnLocationSMB::CmkSecretConfigProperty.new(**cmk_secret_config.transform_keys(&:to_sym)) : cmk_secret_config
  Jsii::Type.check_type(@cmk_secret_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19kYXRhc3luYy5DZm5Mb2NhdGlvblNNQi5DbWtTZWNyZXRDb25maWdQcm9wZXJ0eSJ9XX19")), "cmkSecretConfig") unless @cmk_secret_config.nil?
  @custom_secret_config = custom_secret_config.is_a?(Hash) ? ::AWSCDK::Datasync::CfnLocationSMB::CustomSecretConfigProperty.new(**custom_secret_config.transform_keys(&:to_sym)) : custom_secret_config
  Jsii::Type.check_type(@custom_secret_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19kYXRhc3luYy5DZm5Mb2NhdGlvblNNQi5DdXN0b21TZWNyZXRDb25maWdQcm9wZXJ0eSJ9XX19")), "customSecretConfig") unless @custom_secret_config.nil?
  @dns_ip_addresses = dns_ip_addresses
  Jsii::Type.check_type(@dns_ip_addresses, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "dnsIpAddresses") unless @dns_ip_addresses.nil?
  @domain = domain
  Jsii::Type.check_type(@domain, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "domain") unless @domain.nil?
  @kerberos_keytab = kerberos_keytab
  Jsii::Type.check_type(@kerberos_keytab, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "kerberosKeytab") unless @kerberos_keytab.nil?
  @kerberos_krb5_conf = kerberos_krb5_conf
  Jsii::Type.check_type(@kerberos_krb5_conf, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "kerberosKrb5Conf") unless @kerberos_krb5_conf.nil?
  @kerberos_principal = kerberos_principal
  Jsii::Type.check_type(@kerberos_principal, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "kerberosPrincipal") unless @kerberos_principal.nil?
  @mount_options = mount_options.is_a?(Hash) ? ::AWSCDK::Datasync::CfnLocationSMB::MountOptionsProperty.new(**mount_options.transform_keys(&:to_sym)) : mount_options
  Jsii::Type.check_type(@mount_options, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19kYXRhc3luYy5DZm5Mb2NhdGlvblNNQi5Nb3VudE9wdGlvbnNQcm9wZXJ0eSJ9XX19")), "mountOptions") unless @mount_options.nil?
  @password = password
  Jsii::Type.check_type(@password, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "password") unless @password.nil?
  @server_hostname = server_hostname
  Jsii::Type.check_type(@server_hostname, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "serverHostname") unless @server_hostname.nil?
  @subdirectory = subdirectory
  Jsii::Type.check_type(@subdirectory, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "subdirectory") unless @subdirectory.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?
  @user = user
  Jsii::Type.check_type(@user, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "user") unless @user.nil?
end

Instance Attribute Details

#agent_arnsArray<String> (readonly)

Specifies the DataSync agent (or agents) that can connect to your SMB file server.

You specify an agent by using its Amazon Resource Name (ARN).



63
64
65
# File 'datasync/cfn_location_smb_props.rb', line 63

def agent_arns
  @agent_arns
end

#authentication_typeString? (readonly)

The authentication mode used to determine identity of user.



68
69
70
# File 'datasync/cfn_location_smb_props.rb', line 68

def authentication_type
  @authentication_type
end

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

Specifies configuration information for a DataSync-managed secret, such as an authentication token, secret key, password, or Kerberos keytab that DataSync uses to access a specific storage location, with a customer-managed AWS KMS key .

You can use either CmkSecretConfig or CustomSecretConfig to provide credentials for a CreateLocation request. Do not provide both parameters for the same request.



75
76
77
# File 'datasync/cfn_location_smb_props.rb', line 75

def cmk_secret_config
  @cmk_secret_config
end

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

Specifies configuration information for a customer-managed Secrets Manager secret where a storage location credentials is stored in Secrets Manager as plain text (for authentication token, secret key, or password) or as binary (for Kerberos keytab).

This configuration includes the secret ARN, and the ARN for an IAM role that provides access to the secret.

You can use either CmkSecretConfig or CustomSecretConfig to provide credentials for a CreateLocation request. Do not provide both parameters for the same request.



84
85
86
# File 'datasync/cfn_location_smb_props.rb', line 84

def custom_secret_config
  @custom_secret_config
end

#dns_ip_addressesArray<String>? (readonly)

Specifies the IPv4 addresses for the DNS servers that your SMB file server belongs to.

This parameter applies only if AuthenticationType is set to KERBEROS. If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.



91
92
93
# File 'datasync/cfn_location_smb_props.rb', line 91

def dns_ip_addresses
  @dns_ip_addresses
end

#domainString? (readonly)

Specifies the Windows domain name that your SMB file server belongs to.

This parameter applies only if AuthenticationType is set to NTLM .

If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right file server.



100
101
102
# File 'datasync/cfn_location_smb_props.rb', line 100

def domain
  @domain
end

#kerberos_keytabString? (readonly)

The Base64 string representation of the Keytab file.

Specifies your Kerberos key table (keytab) file, which includes mappings between your service principal name (SPN) and encryption keys. To avoid task execution errors, make sure that the SPN in the keytab file matches exactly what you specify for KerberosPrincipal and in your krb5.conf file.



107
108
109
# File 'datasync/cfn_location_smb_props.rb', line 107

def kerberos_keytab
  @kerberos_keytab
end

#kerberos_krb5_confString? (readonly)

The string representation of the Krb5Conf file, or the presigned URL to access the Krb5.conf file within an S3 bucket. Specifies a Kerberos configuration file (krb5.conf) that defines your Kerberos realm configuration. To avoid task execution errors, make sure that the service principal name (SPN) in the krb5.conf file matches exactly what you specify for KerberosPrincipal and in your keytab file.



112
113
114
# File 'datasync/cfn_location_smb_props.rb', line 112

def kerberos_krb5_conf
  @kerberos_krb5_conf
end

#kerberos_principalString? (readonly)

Specifies a service principal name (SPN), which is an identity in your Kerberos realm that has permission to access the files, folders, and file metadata in your SMB file server.

SPNs are case sensitive and must include a prepended cifs/. For example, an SPN might look like cifs/kerberosuser@EXAMPLE.COM. Your task execution will fail if the SPN that you provide for this parameter doesn't match exactly what's in your keytab or krb5.conf files.



119
120
121
# File 'datasync/cfn_location_smb_props.rb', line 119

def kerberos_principal
  @kerberos_principal
end

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

Specifies the version of the SMB protocol that DataSync uses to access your SMB file server.



124
125
126
# File 'datasync/cfn_location_smb_props.rb', line 124

def mount_options
  @mount_options
end

#passwordString? (readonly)

Specifies the password of the user who can mount your SMB file server and has permission to access the files and folders involved in your transfer.

This parameter applies only if AuthenticationType is set to NTLM .



131
132
133
# File 'datasync/cfn_location_smb_props.rb', line 131

def password
  @password
end

#server_hostnameString? (readonly)

Specifies the domain name or IP address (IPv4 or IPv6) of the SMB file server that your DataSync agent connects to.

If you're using Kerberos authentication, you must specify a domain name.



138
139
140
# File 'datasync/cfn_location_smb_props.rb', line 138

def server_hostname
  @server_hostname
end

#subdirectoryString? (readonly)

Specifies the name of the share exported by your SMB file server where DataSync will read or write data.

You can include a subdirectory in the share path (for example, /path/to/subdirectory ). Make sure that other SMB clients in your network can also mount this path.

To copy all data in the subdirectory, DataSync must be able to mount the SMB share and access all of its data. For more information, see Providing DataSync access to SMB file servers .



147
148
149
# File 'datasync/cfn_location_smb_props.rb', line 147

def subdirectory
  @subdirectory
end

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

Specifies labels that help you categorize, filter, and search for your AWS resources.

We recommend creating at least a name tag for your location.



154
155
156
# File 'datasync/cfn_location_smb_props.rb', line 154

def tags
  @tags
end

#userString? (readonly)

Specifies the user that can mount and access the files, folders, and file metadata in your SMB file server.

This parameter applies only if AuthenticationType is set to NTLM .

For information about choosing a user with the right level of access for your transfer, see Providing DataSync access to SMB file servers .



163
164
165
# File 'datasync/cfn_location_smb_props.rb', line 163

def user
  @user
end

Class Method Details

.jsii_propertiesObject



165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'datasync/cfn_location_smb_props.rb', line 165

def self.jsii_properties
  {
    :agent_arns => "agentArns",
    :authentication_type => "authenticationType",
    :cmk_secret_config => "cmkSecretConfig",
    :custom_secret_config => "customSecretConfig",
    :dns_ip_addresses => "dnsIpAddresses",
    :domain => "domain",
    :kerberos_keytab => "kerberosKeytab",
    :kerberos_krb5_conf => "kerberosKrb5Conf",
    :kerberos_principal => "kerberosPrincipal",
    :mount_options => "mountOptions",
    :password => "password",
    :server_hostname => "serverHostname",
    :subdirectory => "subdirectory",
    :tags => "tags",
    :user => "user",
  }
end

Instance Method Details

#to_jsiiObject



185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
# File 'datasync/cfn_location_smb_props.rb', line 185

def to_jsii
  result = {}
  result.merge!({
    "agentArns" => @agent_arns,
    "authenticationType" => @authentication_type,
    "cmkSecretConfig" => @cmk_secret_config,
    "customSecretConfig" => @custom_secret_config,
    "dnsIpAddresses" => @dns_ip_addresses,
    "domain" => @domain,
    "kerberosKeytab" => @kerberos_keytab,
    "kerberosKrb5Conf" => @kerberos_krb5_conf,
    "kerberosPrincipal" => @kerberos_principal,
    "mountOptions" => @mount_options,
    "password" => @password,
    "serverHostname" => @server_hostname,
    "subdirectory" => @subdirectory,
    "tags" => @tags,
    "user" => @user,
  })
  result.compact
end