Skip to content

Commit cd1744f

Browse files
Adds Enhanced mode support for NFS and SMB locations. SMB credentials are now managed via Secrets Manager, and may be encrypted with service or customer managed keys. Increases AgentArns maximum count to 8 (max 4 per TaskMode). Adds folder counters to DescribeTaskExecution for Enhanced mode tasks.
1 parent 96fae36 commit cd1744f

32 files changed

+1352
-103
lines changed

generator/ServiceModels/datasync/datasync-2018-11-09.api.json

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,7 @@
720720
"AgentArnList":{
721721
"type":"list",
722722
"member":{"shape":"AgentArn"},
723-
"max":4,
723+
"max":8,
724724
"min":1
725725
},
726726
"AgentList":{
@@ -1082,6 +1082,8 @@
10821082
"User":{"shape":"SmbUser"},
10831083
"Domain":{"shape":"SmbDomain"},
10841084
"Password":{"shape":"SmbPassword"},
1085+
"CmkSecretConfig":{"shape":"CmkSecretConfig"},
1086+
"CustomSecretConfig":{"shape":"CustomSecretConfig"},
10851087
"AgentArns":{"shape":"AgentArnList"},
10861088
"MountOptions":{"shape":"SmbMountOptions"},
10871089
"Tags":{"shape":"InputTagList"},
@@ -1397,7 +1399,10 @@
13971399
"CreationTime":{"shape":"Time"},
13981400
"DnsIpAddresses":{"shape":"DnsIpList"},
13991401
"KerberosPrincipal":{"shape":"KerberosPrincipal"},
1400-
"AuthenticationType":{"shape":"SmbAuthenticationType"}
1402+
"AuthenticationType":{"shape":"SmbAuthenticationType"},
1403+
"ManagedSecretConfig":{"shape":"ManagedSecretConfig"},
1404+
"CmkSecretConfig":{"shape":"CmkSecretConfig"},
1405+
"CustomSecretConfig":{"shape":"CustomSecretConfig"}
14011406
}
14021407
},
14031408
"DescribeTaskExecutionRequest":{
@@ -1434,6 +1439,15 @@
14341439
"FilesPrepared":{"shape":"long"},
14351440
"FilesListed":{"shape":"TaskExecutionFilesListedDetail"},
14361441
"FilesFailed":{"shape":"TaskExecutionFilesFailedDetail"},
1442+
"EstimatedFoldersToDelete":{"shape":"ItemCount"},
1443+
"EstimatedFoldersToTransfer":{"shape":"ItemCount"},
1444+
"FoldersSkipped":{"shape":"ItemCount"},
1445+
"FoldersPrepared":{"shape":"ItemCount"},
1446+
"FoldersTransferred":{"shape":"ItemCount"},
1447+
"FoldersVerified":{"shape":"ItemCount"},
1448+
"FoldersDeleted":{"shape":"ItemCount"},
1449+
"FoldersListed":{"shape":"TaskExecutionFoldersListedDetail"},
1450+
"FoldersFailed":{"shape":"TaskExecutionFoldersFailedDetail"},
14371451
"LaunchTime":{"shape":"Time"},
14381452
"EndTime":{"shape":"Time"}
14391453
}
@@ -1767,6 +1781,10 @@
17671781
},
17681782
"exception":true
17691783
},
1784+
"ItemCount":{
1785+
"type":"long",
1786+
"box":true
1787+
},
17701788
"KerberosKeytabFile":{
17711789
"type":"blob",
17721790
"max":65536
@@ -2462,6 +2480,23 @@
24622480
"AtDestinationForDelete":{"shape":"long"}
24632481
}
24642482
},
2483+
"TaskExecutionFoldersFailedDetail":{
2484+
"type":"structure",
2485+
"members":{
2486+
"List":{"shape":"long"},
2487+
"Prepare":{"shape":"long"},
2488+
"Transfer":{"shape":"long"},
2489+
"Verify":{"shape":"long"},
2490+
"Delete":{"shape":"long"}
2491+
}
2492+
},
2493+
"TaskExecutionFoldersListedDetail":{
2494+
"type":"structure",
2495+
"members":{
2496+
"AtSource":{"shape":"long"},
2497+
"AtDestinationForDelete":{"shape":"long"}
2498+
}
2499+
},
24652500
"TaskExecutionList":{
24662501
"type":"list",
24672502
"member":{"shape":"TaskExecutionListEntry"}
@@ -2802,6 +2837,8 @@
28022837
"User":{"shape":"SmbUser"},
28032838
"Domain":{"shape":"SmbDomain"},
28042839
"Password":{"shape":"SmbPassword"},
2840+
"CmkSecretConfig":{"shape":"CmkSecretConfig"},
2841+
"CustomSecretConfig":{"shape":"CustomSecretConfig"},
28052842
"AgentArns":{"shape":"AgentArnList"},
28062843
"MountOptions":{"shape":"SmbMountOptions"},
28072844
"AuthenticationType":{"shape":"SmbAuthenticationType"},

generator/ServiceModels/datasync/datasync-2018-11-09.docs.json

Lines changed: 65 additions & 27 deletions
Large diffs are not rendered by default.

generator/ServiceModels/datasync/datasync-2018-11-09.normal.json

Lines changed: 133 additions & 25 deletions
Large diffs are not rendered by default.

sdk/src/Services/DataSync/Generated/Model/CmkSecretConfig.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ namespace Amazon.DataSync.Model
3131
{
3232
/// <summary>
3333
/// Specifies configuration information for a DataSync-managed secret, such as an authentication
34-
/// token or secret key that DataSync uses to access a specific storage location, with
35-
/// a customer-managed KMS key.
34+
/// token, secret key, password, or Kerberos keytab that DataSync uses to access a specific
35+
/// storage location, with a customer-managed KMS key.
3636
///
3737
/// <note>
3838
/// <para>

sdk/src/Services/DataSync/Generated/Model/CreateLocationAzureBlobRequest.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ internal bool IsSetAccessTier()
9898
/// </para>
9999
/// </note>
100100
/// </summary>
101-
[AWSProperty(Min=1, Max=4)]
101+
[AWSProperty(Min=1, Max=8)]
102102
public List<string> AgentArns
103103
{
104104
get { return this._agentArns; }
@@ -161,14 +161,14 @@ internal bool IsSetBlobType()
161161
/// </para>
162162
///
163163
/// <para>
164-
/// When you include this paramater as part of a <c>CreateLocationAzureBlob</c> request,
164+
/// When you include this parameter as part of a <c>CreateLocationAzureBlob</c> request,
165165
/// you provide only the KMS key ARN. DataSync uses this KMS key together with the authentication
166166
/// token you specify for <c>SasConfiguration</c> to create a DataSync-managed secret
167167
/// to store the location access credentials.
168168
/// </para>
169169
///
170170
/// <para>
171-
/// Make sure the DataSync has permission to access the KMS key that you specify.
171+
/// Make sure that DataSync has permission to access the KMS key that you specify.
172172
/// </para>
173173
/// <note>
174174
/// <para>
@@ -214,8 +214,8 @@ internal bool IsSetContainerUrl()
214214
/// <para>
215215
/// Specifies configuration information for a customer-managed Secrets Manager secret
216216
/// where the authentication token for an AzureBlob storage location is stored in plain
217-
/// text. This configuration includes the secret ARN, and the ARN for an IAM role that
218-
/// provides access to the secret.
217+
/// text, in Secrets Manager. This configuration includes the secret ARN, and the ARN
218+
/// for an IAM role that provides access to the secret.
219219
/// </para>
220220
/// <note>
221221
/// <para>

sdk/src/Services/DataSync/Generated/Model/CreateLocationHdfsRequest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public partial class CreateLocationHdfsRequest : AmazonDataSyncRequest
6363
/// cluster.
6464
/// </para>
6565
/// </summary>
66-
[AWSProperty(Required=true, Min=1, Max=4)]
66+
[AWSProperty(Required=true, Min=1, Max=8)]
6767
public List<string> AgentArns
6868
{
6969
get { return this._agentArns; }

sdk/src/Services/DataSync/Generated/Model/CreateLocationObjectStorageRequest.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ internal bool IsSetAccessKey()
9292
/// </para>
9393
/// </note>
9494
/// </summary>
95-
[AWSProperty(Min=1, Max=4)]
95+
[AWSProperty(Min=1, Max=8)]
9696
public List<string> AgentArns
9797
{
9898
get { return this._agentArns; }
@@ -133,14 +133,14 @@ internal bool IsSetBucketName()
133133
/// </para>
134134
///
135135
/// <para>
136-
/// When you include this paramater as part of a <c>CreateLocationObjectStorage</c> request,
136+
/// When you include this parameter as part of a <c>CreateLocationObjectStorage</c> request,
137137
/// you provide only the KMS key ARN. DataSync uses this KMS key together with the value
138138
/// you specify for the <c>SecretKey</c> parameter to create a DataSync-managed secret
139139
/// to store the location access credentials.
140140
/// </para>
141141
///
142142
/// <para>
143-
/// Make sure the DataSync has permission to access the KMS key that you specify.
143+
/// Make sure that DataSync has permission to access the KMS key that you specify.
144144
/// </para>
145145
/// <note>
146146
/// <para>
@@ -166,9 +166,9 @@ internal bool IsSetCmkSecretConfig()
166166
/// Gets and sets the property CustomSecretConfig.
167167
/// <para>
168168
/// Specifies configuration information for a customer-managed Secrets Manager secret
169-
/// where the secret key for a specific object storage location is stored in plain text.
170-
/// This configuration includes the secret ARN, and the ARN for an IAM role that provides
171-
/// access to the secret.
169+
/// where the secret key for a specific object storage location is stored in plain text,
170+
/// in Secrets Manager. This configuration includes the secret ARN, and the ARN for an
171+
/// IAM role that provides access to the secret.
172172
/// </para>
173173
/// <note>
174174
/// <para>

sdk/src/Services/DataSync/Generated/Model/CreateLocationS3Request.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public partial class CreateLocationS3Request : AmazonDataSyncRequest
7575
/// your DataSync agent on Outposts</a>.
7676
/// </para>
7777
/// </summary>
78-
[AWSProperty(Min=1, Max=4)]
78+
[AWSProperty(Min=1, Max=8)]
7979
public List<string> AgentArns
8080
{
8181
get { return this._agentArns; }

sdk/src/Services/DataSync/Generated/Model/CreateLocationSmbRequest.cs

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ public partial class CreateLocationSmbRequest : AmazonDataSyncRequest
4545
{
4646
private List<string> _agentArns = AWSConfigs.InitializeCollections ? new List<string>() : null;
4747
private SmbAuthenticationType _authenticationType;
48+
private CmkSecretConfig _cmkSecretConfig;
49+
private CustomSecretConfig _customSecretConfig;
4850
private List<string> _dnsIpAddresses = AWSConfigs.InitializeCollections ? new List<string>() : null;
4951
private string _domain;
5052
private MemoryStream _kerberosKeytab;
@@ -64,7 +66,7 @@ public partial class CreateLocationSmbRequest : AmazonDataSyncRequest
6466
/// You specify an agent by using its Amazon Resource Name (ARN).
6567
/// </para>
6668
/// </summary>
67-
[AWSProperty(Required=true, Min=1, Max=4)]
69+
[AWSProperty(Required=true, Min=1, Max=8)]
6870
public List<string> AgentArns
6971
{
7072
get { return this._agentArns; }
@@ -101,6 +103,75 @@ internal bool IsSetAuthenticationType()
101103
return this._authenticationType != null;
102104
}
103105

106+
/// <summary>
107+
/// Gets and sets the property CmkSecretConfig.
108+
/// <para>
109+
/// Specifies configuration information for a DataSync-managed secret, either a <c>Password</c>
110+
/// or <c>KerberosKeytab</c> (for <c>NTLM</c> (default) and <c>KERBEROS</c> authentication
111+
/// types, respectively) that DataSync uses to access a specific SMB storage location,
112+
/// with a customer-managed KMS key.
113+
/// </para>
114+
///
115+
/// <para>
116+
/// When you include this parameter as part of a <c>CreateLocationSmbRequest</c> request,
117+
/// you provide only the KMS key ARN. DataSync uses this KMS key together with either
118+
/// the <c>Password</c> or <c>KerberosKeytab</c> you specify to create a DataSync-managed
119+
/// secret to store the location access credentials.
120+
/// </para>
121+
///
122+
/// <para>
123+
/// Make sure that DataSync has permission to access the KMS key that you specify.
124+
/// </para>
125+
/// <note>
126+
/// <para>
127+
/// You can use either <c>CmkSecretConfig</c> (with either <c>Password</c> or <c>KerberosKeytab</c>)
128+
/// or <c>CustomSecretConfig</c> (without any <c>Password</c> and <c>KerberosKeytab</c>)
129+
/// to provide credentials for a <c>CreateLocationSmbRequest</c> request. Do not provide
130+
/// both <c>CmkSecretConfig</c> and <c>CustomSecretConfig</c> parameters for the same
131+
/// request.
132+
/// </para>
133+
/// </note>
134+
/// </summary>
135+
public CmkSecretConfig CmkSecretConfig
136+
{
137+
get { return this._cmkSecretConfig; }
138+
set { this._cmkSecretConfig = value; }
139+
}
140+
141+
// Check to see if CmkSecretConfig property is set
142+
internal bool IsSetCmkSecretConfig()
143+
{
144+
return this._cmkSecretConfig != null;
145+
}
146+
147+
/// <summary>
148+
/// Gets and sets the property CustomSecretConfig.
149+
/// <para>
150+
/// Specifies configuration information for a customer-managed Secrets Manager secret
151+
/// where the SMB storage location credentials is stored in Secrets Manager as plain text
152+
/// (for <c>Password</c>) or binary (for <c>KerberosKeytab</c>). This configuration includes
153+
/// the secret ARN, and the ARN for an IAM role that provides access to the secret.
154+
/// </para>
155+
/// <note>
156+
/// <para>
157+
/// You can use either <c>CmkSecretConfig</c> (with <c>SasConfiguration</c>) or <c>CustomSecretConfig</c>
158+
/// (without <c>SasConfiguration</c>) to provide credentials for a <c>CreateLocationSmbRequest</c>
159+
/// request. Do not provide both parameters for the same request.
160+
/// </para>
161+
/// </note>
162+
/// </summary>
163+
public CustomSecretConfig CustomSecretConfig
164+
{
165+
get { return this._customSecretConfig; }
166+
set { this._customSecretConfig = value; }
167+
}
168+
169+
// Check to see if CustomSecretConfig property is set
170+
internal bool IsSetCustomSecretConfig()
171+
{
172+
return this._customSecretConfig != null;
173+
}
174+
104175
/// <summary>
105176
/// Gets and sets the property DnsIpAddresses.
106177
/// <para>

sdk/src/Services/DataSync/Generated/Model/CustomSecretConfig.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ namespace Amazon.DataSync.Model
3131
{
3232
/// <summary>
3333
/// Specifies configuration information for a customer-managed Secrets Manager secret
34-
/// where a storage location authentication token or secret key is stored in plain text.
34+
/// where a storage location credentials is stored in Secrets Manager as plain text (for
35+
/// authentication token, secret key, or password) or as binary (for Kerberos keytab).
3536
/// This configuration includes the secret ARN, and the ARN for an IAM role that provides
3637
/// access to the secret.
3738
///

0 commit comments

Comments
 (0)