Skip to content

Commit 994df73

Browse files
author
awstools
committed
feat(client-s3-control): Add support for the ability to use Amazon S3 Access Points with Amazon FSx for OpenZFS file systems.
1 parent ad27026 commit 994df73

File tree

8 files changed

+151
-25
lines changed

8 files changed

+151
-25
lines changed

clients/client-s3-control/src/commands/CreateAccessPointCommand.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@ export interface CreateAccessPointCommandOutput extends CreateAccessPointResult,
3131
/**
3232
* <p>Creates an access point and associates it to a specified bucket. For more information, see
3333
* <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html">Managing
34-
* access to shared datasets in general purpose buckets with access points</a> or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-directory-buckets.html">Managing
35-
* access to shared datasets in directory buckets with access points</a> in the
34+
* access to shared datasets with access points</a> or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-directory-buckets.html">Managing access to
35+
* shared datasets in directory buckets with access points</a> in the
3636
* <i>Amazon S3 User Guide</i>.</p>
37+
* <p>To create an access point and attach it to a volume on an Amazon FSx file system, see <a href="https://docs.aws.amazon.com/fsx/latest/APIReference/API_CreateAndAttachS3AccessPoint.html">CreateAndAttachS3AccessPoint</a> in the <i>Amazon FSx API
38+
* Reference</i>.</p>
3739
* <p></p>
3840
* <note>
3941
* <p>S3 on Outposts only supports VPC-style access points. </p>

clients/client-s3-control/src/commands/GetAccessPointCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ export interface GetAccessPointCommandOutput extends GetAccessPointResult, __Met
8282
* // "<keys>": "STRING_VALUE",
8383
* // },
8484
* // BucketAccountId: "STRING_VALUE",
85+
* // DataSourceId: "STRING_VALUE",
86+
* // DataSourceType: "STRING_VALUE",
8587
* // };
8688
*
8789
* ```

clients/client-s3-control/src/commands/ListAccessPointsCommand.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,12 @@ export interface ListAccessPointsCommandOutput extends ListAccessPointsResult, _
3232
* <note>
3333
* <p>This operation is not supported by directory buckets.</p>
3434
* </note>
35-
* <p>Returns a list of the access points
36-
* that are
37-
* owned by the current account
38-
* that's
39-
* associated with the specified bucket. You can retrieve up to 1000 access points
40-
* per call. If the specified bucket has more than 1,000 access points (or the number specified in
41-
* <code>maxResults</code>, whichever is less), the response will include a continuation
42-
* token that you can use to list the additional access points.</p>
35+
* <p>Returns a list of the access points. You can retrieve up to 1,000 access points per call. If the call
36+
* returns more than 1,000 access points (or the number specified in <code>maxResults</code>,
37+
* whichever is less), the response will include a continuation token that you can use to list
38+
* the additional access points.</p>
39+
* <p>Returns only access points attached to S3 buckets by default. To return all access points specify
40+
* <code>DataSourceType</code> as <code>ALL</code>.</p>
4341
* <p></p>
4442
* <p>All Amazon S3 on Outposts REST API requests for this action require an additional parameter of <code>x-amz-outpost-id</code> to be passed with the request. In addition, you must use an S3 on Outposts endpoint hostname prefix instead of <code>s3-control</code>. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the <code>x-amz-outpost-id</code> derived by using the access point ARN, see the <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html#API_control_GetAccessPoint_Examples">Examples</a> section.</p>
4543
* <p>The following actions are related to <code>ListAccessPoints</code>:</p>
@@ -71,6 +69,8 @@ export interface ListAccessPointsCommandOutput extends ListAccessPointsResult, _
7169
* Bucket: "STRING_VALUE",
7270
* NextToken: "STRING_VALUE",
7371
* MaxResults: Number("int"),
72+
* DataSourceId: "STRING_VALUE",
73+
* DataSourceType: "STRING_VALUE",
7474
* };
7575
* const command = new ListAccessPointsCommand(input);
7676
* const response = await client.send(command);
@@ -86,6 +86,8 @@ export interface ListAccessPointsCommandOutput extends ListAccessPointsResult, _
8686
* // AccessPointArn: "STRING_VALUE",
8787
* // Alias: "STRING_VALUE",
8888
* // BucketAccountId: "STRING_VALUE",
89+
* // DataSourceId: "STRING_VALUE",
90+
* // DataSourceType: "STRING_VALUE",
8991
* // },
9092
* // ],
9193
* // NextToken: "STRING_VALUE",

clients/client-s3-control/src/commands/ListAccessPointsForDirectoryBucketsCommand.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ export interface ListAccessPointsForDirectoryBucketsCommandOutput
6868
* // AccessPointArn: "STRING_VALUE",
6969
* // Alias: "STRING_VALUE",
7070
* // BucketAccountId: "STRING_VALUE",
71+
* // DataSourceId: "STRING_VALUE",
72+
* // DataSourceType: "STRING_VALUE",
7173
* // },
7274
* // ],
7375
* // NextToken: "STRING_VALUE",

clients/client-s3-control/src/models/models_0.ts

Lines changed: 46 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,18 @@ export interface AccessPoint {
355355
* @public
356356
*/
357357
BucketAccountId?: string | undefined;
358+
359+
/**
360+
* <p>A unique identifier for the data source of the access point.</p>
361+
* @public
362+
*/
363+
DataSourceId?: string | undefined;
364+
365+
/**
366+
* <p>The type of the data source that the access point is attached to.</p>
367+
* @public
368+
*/
369+
DataSourceType?: string | undefined;
358370
}
359371

360372
/**
@@ -1266,8 +1278,7 @@ export type ScopePermission = (typeof ScopePermission)[keyof typeof ScopePermiss
12661278

12671279
/**
12681280
* <p>You can use the access point scope to restrict access to specific prefixes, API operations, or a combination of both.</p>
1269-
* <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-directory-buckets-manage-scope.html">Manage the scope of your access points for directory buckets.</a>
1270-
* </p>
1281+
* <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-directory-buckets-manage-scope.html">Manage the scope of your access points for directory buckets</a>.</p>
12711282
* @public
12721283
*/
12731284
export interface Scope {
@@ -1296,7 +1307,10 @@ export interface CreateAccessPointRequest {
12961307

12971308
/**
12981309
* <p>The name you want to assign to this access point.</p>
1299-
* <p>For directory buckets, the access point name must consist of a base name that you provide and suffix that includes the <code>ZoneID</code> (Amazon Web Services Availability Zone or Local Zone) of your bucket location, followed by <code>--xa-s3</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-directory-buckets.html">Managing access to shared datasets in directory buckets with access points</a> in the Amazon S3 User Guide.</p>
1310+
* <p>For directory buckets, the access point name must consist of a base name that you provide and
1311+
* suffix that includes the <code>ZoneID</code> (Amazon Web Services Availability Zone or Local Zone) of your bucket location,
1312+
* followed by <code>--xa-s3</code>. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-directory-buckets.html">Managing access to shared datasets in directory buckets with
1313+
* access points</a> in the <i>Amazon S3 User Guide</i>.</p>
13001314
* @public
13011315
*/
13021316
Name: string | undefined;
@@ -1336,9 +1350,11 @@ export interface CreateAccessPointRequest {
13361350
BucketAccountId?: string | undefined;
13371351

13381352
/**
1339-
* <p>For directory buckets, you can filter access control to specific prefixes, API operations, or a combination of both. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-directory-buckets.html">Managing access to shared datasets in directory buckets with access points</a> in the Amazon S3 User Guide.</p>
1353+
* <p>For directory buckets, you can filter access control to specific prefixes, API
1354+
* operations, or a combination of both. For more information, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-directory-buckets.html">Managing access to shared datasets in directory buckets with
1355+
* access points</a> in the <i>Amazon S3 User Guide</i>.</p>
13401356
* <note>
1341-
* <p>Scope is not supported for access points for general purpose buckets.</p>
1357+
* <p>Scope is only supported for access points attached to directory buckets.</p>
13421358
* </note>
13431359
* @public
13441360
*/
@@ -4690,6 +4706,18 @@ export interface GetAccessPointResult {
46904706
* @public
46914707
*/
46924708
BucketAccountId?: string | undefined;
4709+
4710+
/**
4711+
* <p>The unique identifier for the data source of the access point.</p>
4712+
* @public
4713+
*/
4714+
DataSourceId?: string | undefined;
4715+
4716+
/**
4717+
* <p>The type of the data source that the access point is attached to.</p>
4718+
* @public
4719+
*/
4720+
DataSourceType?: string | undefined;
46934721
}
46944722

46954723
/**
@@ -7142,6 +7170,19 @@ export interface ListAccessPointsRequest {
71427170
* @public
71437171
*/
71447172
MaxResults?: number | undefined;
7173+
7174+
/**
7175+
* <p>The unique identifier for the data source of the access point.</p>
7176+
* @public
7177+
*/
7178+
DataSourceId?: string | undefined;
7179+
7180+
/**
7181+
* <p>The type of the data source that the access point is attached to. Returns only access points attached to S3 buckets by default. To return all access points specify
7182+
* <code>DataSourceType</code> as <code>ALL</code>.</p>
7183+
* @public
7184+
*/
7185+
DataSourceType?: string | undefined;
71457186
}
71467187

71477188
/**

clients/client-s3-control/src/models/models_1.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -441,8 +441,8 @@ export interface PutAccessPointPolicyRequest {
441441

442442
/**
443443
* <p>The policy that you want to apply to the specified access point. For more information about access point
444-
* policies, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html">Managing access to shared datasets in general purpose buckets with
445-
* access points</a> or <a href="AmazonS3/latest/userguide/access-points-directory-buckets.html">Managing access to shared datasets in directory bucekts with access points</a> in the <i>Amazon S3 User Guide</i>.</p>
444+
* policies, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html">Managing data access with Amazon S3
445+
* access points</a> or <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-directory-buckets.html">Managing access to shared datasets in directory buckets with access points</a> in the <i>Amazon S3 User Guide</i>.</p>
446446
* @public
447447
*/
448448
Policy: string | undefined;

clients/client-s3-control/src/protocols/Aws_restXml.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1842,6 +1842,8 @@ export const se_ListAccessPointsCommand = async (
18421842
[_b]: [, input[_B]!],
18431843
[_nT]: [, input[_NT]!],
18441844
[_mR]: [() => input.MaxResults !== void 0, () => input[_MR]!.toString()],
1845+
[_dSI]: [, input[_DSI]!],
1846+
[_dST]: [, input[_DST]!],
18451847
});
18461848
let body: any;
18471849
b.m("GET").h(headers).q(query).b(body);
@@ -3429,6 +3431,12 @@ export const de_GetAccessPointCommand = async (
34293431
if (data[_CD] != null) {
34303432
contents[_CD] = __expectNonNull(__parseRfc3339DateTimeWithOffset(data[_CD]));
34313433
}
3434+
if (data[_DSI] != null) {
3435+
contents[_DSI] = __expectString(data[_DSI]);
3436+
}
3437+
if (data[_DST] != null) {
3438+
contents[_DST] = __expectString(data[_DST]);
3439+
}
34323440
if (data.Endpoints === "") {
34333441
contents[_E] = {};
34343442
} else if (data[_E] != null && data[_E][_e] != null) {
@@ -6967,6 +6975,12 @@ const de_AccessPoint = (output: any, context: __SerdeContext): AccessPoint => {
69676975
if (output[_BAI] != null) {
69686976
contents[_BAI] = __expectString(output[_BAI]);
69696977
}
6978+
if (output[_DSI] != null) {
6979+
contents[_DSI] = __expectString(output[_DSI]);
6980+
}
6981+
if (output[_DST] != null) {
6982+
contents[_DST] = __expectString(output[_DST]);
6983+
}
69706984
return contents;
69716985
};
69726986

@@ -9800,6 +9814,8 @@ const _DMRS = "DeleteMarkerReplicationStatus";
98009814
const _DN = "DisplayName";
98019815
const _DS = "DurationSeconds";
98029816
const _DSCM = "DetailedStatusCodesMetrics";
9817+
const _DSI = "DataSourceId";
9818+
const _DST = "DataSourceType";
98039819
const _Da = "Date";
98049820
const _Day = "Days";
98059821
const _De = "Details";
@@ -10176,6 +10192,8 @@ const _aa = "application_arn";
1017610192
const _b = "bucket";
1017710193
const _dB = "directoryBucket";
1017810194
const _dS = "durationSeconds";
10195+
const _dSI = "dataSourceId";
10196+
const _dST = "dataSourceType";
1017910197
const _e = "entry";
1018010198
const _g = "granteetype";
1018110199
const _gr = "granteeidentifier";

0 commit comments

Comments
 (0)