Class: AWSCDK::Datasync::CfnLocationObjectStorageProps

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

Overview

Properties for defining a CfnLocationObjectStorage.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_key: nil, agent_arns: nil, bucket_name: nil, cmk_secret_config: nil, custom_secret_config: nil, secret_key: nil, server_certificate: nil, server_hostname: nil, server_port: nil, server_protocol: nil, subdirectory: nil, tags: nil) ⇒ CfnLocationObjectStorageProps

Returns a new instance of CfnLocationObjectStorageProps.

Parameters:

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

    Specifies the access key (for example, a user name) if credentials are required to authenticate with the object storage server.

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

    (Optional) Specifies the Amazon Resource Names (ARNs) of the DataSync agents that can connect with your object storage system.

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

    Specifies the name of the object storage bucket involved in the transfer.

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

    Specifies configuration information for a DataSync-managed secret, which includes the SecretKey that DataSync uses to access a specific object storage location, with a customer-managed AWS KMS key .

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

    Specifies configuration information for a customer-managed Secrets Manager secret where the secret key for a specific object storage location is stored in plain text, in Secrets Manager.

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

    Specifies the secret key (for example, a password) if credentials are required to authenticate with the object storage server.

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

    Specifies a certificate chain for DataSync to authenticate with your object storage system if the system uses a private or self-signed certificate authority (CA).

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

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

  • server_port (Numeric, nil) (defaults to: nil)

    Specifies the port that your object storage server accepts inbound network traffic on (for example, port 443).

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

    Specifies the protocol that your object storage server uses to communicate.

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

    Specifies the object prefix for your object storage server.

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

    Specifies the key-value pair that represents a tag that you want to add to the resource.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'datasync/cfn_location_object_storage_props.rb', line 21

def initialize(access_key: nil, agent_arns: nil, bucket_name: nil, cmk_secret_config: nil, custom_secret_config: nil, secret_key: nil, server_certificate: nil, server_hostname: nil, server_port: nil, server_protocol: nil, subdirectory: nil, tags: nil)
  @access_key = access_key
  Jsii::Type.check_type(@access_key, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "accessKey") unless @access_key.nil?
  @agent_arns = agent_arns
  Jsii::Type.check_type(@agent_arns, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "agentArns") unless @agent_arns.nil?
  @bucket_name = bucket_name
  Jsii::Type.check_type(@bucket_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "bucketName") unless @bucket_name.nil?
  @cmk_secret_config = cmk_secret_config.is_a?(Hash) ? ::AWSCDK::Datasync::CfnLocationObjectStorage::CmkSecretConfigProperty.new(**cmk_secret_config.transform_keys(&:to_sym)) : cmk_secret_config
  Jsii::Type.check_type(@cmk_secret_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19kYXRhc3luYy5DZm5Mb2NhdGlvbk9iamVjdFN0b3JhZ2UuQ21rU2VjcmV0Q29uZmlnUHJvcGVydHkifV19fQ==")), "cmkSecretConfig") unless @cmk_secret_config.nil?
  @custom_secret_config = custom_secret_config.is_a?(Hash) ? ::AWSCDK::Datasync::CfnLocationObjectStorage::CustomSecretConfigProperty.new(**custom_secret_config.transform_keys(&:to_sym)) : custom_secret_config
  Jsii::Type.check_type(@custom_secret_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19kYXRhc3luYy5DZm5Mb2NhdGlvbk9iamVjdFN0b3JhZ2UuQ3VzdG9tU2VjcmV0Q29uZmlnUHJvcGVydHkifV19fQ==")), "customSecretConfig") unless @custom_secret_config.nil?
  @secret_key = secret_key
  Jsii::Type.check_type(@secret_key, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "secretKey") unless @secret_key.nil?
  @server_certificate = server_certificate
  Jsii::Type.check_type(@server_certificate, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "serverCertificate") unless @server_certificate.nil?
  @server_hostname = server_hostname
  Jsii::Type.check_type(@server_hostname, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "serverHostname") unless @server_hostname.nil?
  @server_port = server_port
  Jsii::Type.check_type(@server_port, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "serverPort") unless @server_port.nil?
  @server_protocol = server_protocol
  Jsii::Type.check_type(@server_protocol, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "serverProtocol") unless @server_protocol.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?
end

Instance Attribute Details

#access_keyString? (readonly)

Specifies the access key (for example, a user name) if credentials are required to authenticate with the object storage server.



52
53
54
# File 'datasync/cfn_location_object_storage_props.rb', line 52

def access_key
  @access_key
end

#agent_arnsArray<String>? (readonly)

(Optional) Specifies the Amazon Resource Names (ARNs) of the DataSync agents that can connect with your object storage system.

If you are setting up an agentless cross-cloud transfer, you do not need to specify a value for this parameter.

Make sure you configure this parameter correctly when you first create your storage location. You cannot add or remove agents from a storage location after you create it.



61
62
63
# File 'datasync/cfn_location_object_storage_props.rb', line 61

def agent_arns
  @agent_arns
end

#bucket_nameString? (readonly)

Specifies the name of the object storage bucket involved in the transfer.



66
67
68
# File 'datasync/cfn_location_object_storage_props.rb', line 66

def bucket_name
  @bucket_name
end

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

Specifies configuration information for a DataSync-managed secret, which includes the SecretKey that DataSync uses to access a specific object storage location, with a customer-managed AWS KMS key .

When you include this parameter as part of a CreateLocationObjectStorage request, you provide only the KMS key ARN. DataSync uses this KMS key together with the value you specify for the SecretKey parameter to create a DataSync-managed secret to store the location access credentials.

Make sure that DataSync has permission to access the KMS key that you specify.

You can use either CmkSecretConfig (with SecretKey ) or CustomSecretConfig (without SecretKey ) to provide credentials for a CreateLocationObjectStorage request. Do not provide both parameters for the same request.



77
78
79
# File 'datasync/cfn_location_object_storage_props.rb', line 77

def cmk_secret_config
  @cmk_secret_config
end

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

Specifies configuration information for a customer-managed Secrets Manager secret where the secret key for a specific object storage location is stored in plain text, in Secrets Manager.

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

You can use either CmkSecretConfig (with SecretKey ) or CustomSecretConfig (without SecretKey ) to provide credentials for a CreateLocationObjectStorage request. Do not provide both parameters for the same request.



86
87
88
# File 'datasync/cfn_location_object_storage_props.rb', line 86

def custom_secret_config
  @custom_secret_config
end

#secret_keyString? (readonly)

Specifies the secret key (for example, a password) if credentials are required to authenticate with the object storage server.

If you provide a secret using SecretKey , but do not provide secret configuration details using CmkSecretConfig or CustomSecretConfig , then DataSync stores the token using your AWS account's Secrets Manager secret.



93
94
95
# File 'datasync/cfn_location_object_storage_props.rb', line 93

def secret_key
  @secret_key
end

#server_certificateString? (readonly)

Specifies a certificate chain for DataSync to authenticate with your object storage system if the system uses a private or self-signed certificate authority (CA).

You must specify a single .pem file with a full certificate chain (for example, file:///home/user/.ssh/object_storage_certificates.pem ).

The certificate chain might include:

  • The object storage system's certificate
  • All intermediate certificates (if there are any)
  • The root certificate of the signing CA

You can concatenate your certificates into a .pem file (which can be up to 32768 bytes before base64 encoding). The following example cat command creates an object_storage_certificates.pem file that includes three certificates:

cat object_server_certificate.pem intermediate_certificate.pem ca_root_certificate.pem > object_storage_certificates.pem

To use this parameter, configure ServerProtocol to HTTPS .



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

def server_certificate
  @server_certificate
end

#server_hostnameString? (readonly)

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



117
118
119
# File 'datasync/cfn_location_object_storage_props.rb', line 117

def server_hostname
  @server_hostname
end

#server_portNumeric? (readonly)

Specifies the port that your object storage server accepts inbound network traffic on (for example, port 443).



122
123
124
# File 'datasync/cfn_location_object_storage_props.rb', line 122

def server_port
  @server_port
end

#server_protocolString? (readonly)

Specifies the protocol that your object storage server uses to communicate.

If not specified, the default value is HTTPS .



129
130
131
# File 'datasync/cfn_location_object_storage_props.rb', line 129

def server_protocol
  @server_protocol
end

#subdirectoryString? (readonly)

Specifies the object prefix for your object storage server.

If this is a source location, DataSync only copies objects with this prefix. If this is a destination location, DataSync writes all objects with this prefix.



136
137
138
# File 'datasync/cfn_location_object_storage_props.rb', line 136

def subdirectory
  @subdirectory
end

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

Specifies the key-value pair that represents a tag that you want to add to the resource.

Tags can help you manage, filter, and search for your resources. We recommend creating a name tag for your location.



143
144
145
# File 'datasync/cfn_location_object_storage_props.rb', line 143

def tags
  @tags
end

Class Method Details

.jsii_propertiesObject



145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'datasync/cfn_location_object_storage_props.rb', line 145

def self.jsii_properties
  {
    :access_key => "accessKey",
    :agent_arns => "agentArns",
    :bucket_name => "bucketName",
    :cmk_secret_config => "cmkSecretConfig",
    :custom_secret_config => "customSecretConfig",
    :secret_key => "secretKey",
    :server_certificate => "serverCertificate",
    :server_hostname => "serverHostname",
    :server_port => "serverPort",
    :server_protocol => "serverProtocol",
    :subdirectory => "subdirectory",
    :tags => "tags",
  }
end

Instance Method Details

#to_jsiiObject



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# File 'datasync/cfn_location_object_storage_props.rb', line 162

def to_jsii
  result = {}
  result.merge!({
    "accessKey" => @access_key,
    "agentArns" => @agent_arns,
    "bucketName" => @bucket_name,
    "cmkSecretConfig" => @cmk_secret_config,
    "customSecretConfig" => @custom_secret_config,
    "secretKey" => @secret_key,
    "serverCertificate" => @server_certificate,
    "serverHostname" => @server_hostname,
    "serverPort" => @server_port,
    "serverProtocol" => @server_protocol,
    "subdirectory" => @subdirectory,
    "tags" => @tags,
  })
  result.compact
end