Enforce Lake Formation permissions for the given databases, tables, and principals.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { LakeFormationClient, CreateLakeFormationOptInCommand } from "@aws-sdk/client-lakeformation"; // ES Modules import + * // const { LakeFormationClient, CreateLakeFormationOptInCommand } = require("@aws-sdk/client-lakeformation"); // CommonJS import + * const client = new LakeFormationClient(config); + * const input = { // CreateLakeFormationOptInRequest + * Principal: { // DataLakePrincipal + * DataLakePrincipalIdentifier: "STRING_VALUE", + * }, + * Resource: { // Resource + * Catalog: {}, + * Database: { // DatabaseResource + * CatalogId: "STRING_VALUE", + * Name: "STRING_VALUE", // required + * }, + * Table: { // TableResource + * CatalogId: "STRING_VALUE", + * DatabaseName: "STRING_VALUE", // required + * Name: "STRING_VALUE", + * TableWildcard: {}, + * }, + * TableWithColumns: { // TableWithColumnsResource + * CatalogId: "STRING_VALUE", + * DatabaseName: "STRING_VALUE", // required + * Name: "STRING_VALUE", // required + * ColumnNames: [ // ColumnNames + * "STRING_VALUE", + * ], + * ColumnWildcard: { // ColumnWildcard + * ExcludedColumnNames: [ + * "STRING_VALUE", + * ], + * }, + * }, + * DataLocation: { // DataLocationResource + * CatalogId: "STRING_VALUE", + * ResourceArn: "STRING_VALUE", // required + * }, + * DataCellsFilter: { // DataCellsFilterResource + * TableCatalogId: "STRING_VALUE", + * DatabaseName: "STRING_VALUE", + * TableName: "STRING_VALUE", + * Name: "STRING_VALUE", + * }, + * LFTag: { // LFTagKeyResource + * CatalogId: "STRING_VALUE", + * TagKey: "STRING_VALUE", // required + * TagValues: [ // TagValueList // required + * "STRING_VALUE", + * ], + * }, + * LFTagPolicy: { // LFTagPolicyResource + * CatalogId: "STRING_VALUE", + * ResourceType: "DATABASE" || "TABLE", // required + * Expression: [ // Expression // required + * { // LFTag + * TagKey: "STRING_VALUE", // required + * TagValues: [ // required + * "STRING_VALUE", + * ], + * }, + * ], + * }, + * }, + * }; + * const command = new CreateLakeFormationOptInCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param CreateLakeFormationOptInCommandInput - {@link CreateLakeFormationOptInCommandInput} + * @returns {@link CreateLakeFormationOptInCommandOutput} + * @see {@link CreateLakeFormationOptInCommandInput} for command's `input` shape. + * @see {@link CreateLakeFormationOptInCommandOutput} for command's `response` shape. + * @see {@link LakeFormationClientResolvedConfig | config} for LakeFormationClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *Access to a resource was denied.
+ * + * @throws {@link ConcurrentModificationException} (client fault) + *Two processes are trying to modify a resource simultaneously.
+ * + * @throws {@link EntityNotFoundException} (client fault) + *A specified entity does not exist.
+ * + * @throws {@link InternalServiceException} (server fault) + *An internal service error occurred.
+ * + * @throws {@link InvalidInputException} (client fault) + *The input provided was not valid.
+ * + * @throws {@link OperationTimeoutException} (client fault) + *The operation timed out.
+ * + * @throws {@link LakeFormationServiceException} + *Base exception class for all service exceptions from LakeFormation service.
+ * + */ +export class CreateLakeFormationOptInCommand extends $Command< + CreateLakeFormationOptInCommandInput, + CreateLakeFormationOptInCommandOutput, + LakeFormationClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: CreateLakeFormationOptInCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackRemove the Lake Formation permissions enforcement of the given databases, tables, and principals.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { LakeFormationClient, DeleteLakeFormationOptInCommand } from "@aws-sdk/client-lakeformation"; // ES Modules import + * // const { LakeFormationClient, DeleteLakeFormationOptInCommand } = require("@aws-sdk/client-lakeformation"); // CommonJS import + * const client = new LakeFormationClient(config); + * const input = { // DeleteLakeFormationOptInRequest + * Principal: { // DataLakePrincipal + * DataLakePrincipalIdentifier: "STRING_VALUE", + * }, + * Resource: { // Resource + * Catalog: {}, + * Database: { // DatabaseResource + * CatalogId: "STRING_VALUE", + * Name: "STRING_VALUE", // required + * }, + * Table: { // TableResource + * CatalogId: "STRING_VALUE", + * DatabaseName: "STRING_VALUE", // required + * Name: "STRING_VALUE", + * TableWildcard: {}, + * }, + * TableWithColumns: { // TableWithColumnsResource + * CatalogId: "STRING_VALUE", + * DatabaseName: "STRING_VALUE", // required + * Name: "STRING_VALUE", // required + * ColumnNames: [ // ColumnNames + * "STRING_VALUE", + * ], + * ColumnWildcard: { // ColumnWildcard + * ExcludedColumnNames: [ + * "STRING_VALUE", + * ], + * }, + * }, + * DataLocation: { // DataLocationResource + * CatalogId: "STRING_VALUE", + * ResourceArn: "STRING_VALUE", // required + * }, + * DataCellsFilter: { // DataCellsFilterResource + * TableCatalogId: "STRING_VALUE", + * DatabaseName: "STRING_VALUE", + * TableName: "STRING_VALUE", + * Name: "STRING_VALUE", + * }, + * LFTag: { // LFTagKeyResource + * CatalogId: "STRING_VALUE", + * TagKey: "STRING_VALUE", // required + * TagValues: [ // TagValueList // required + * "STRING_VALUE", + * ], + * }, + * LFTagPolicy: { // LFTagPolicyResource + * CatalogId: "STRING_VALUE", + * ResourceType: "DATABASE" || "TABLE", // required + * Expression: [ // Expression // required + * { // LFTag + * TagKey: "STRING_VALUE", // required + * TagValues: [ // required + * "STRING_VALUE", + * ], + * }, + * ], + * }, + * }, + * }; + * const command = new DeleteLakeFormationOptInCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DeleteLakeFormationOptInCommandInput - {@link DeleteLakeFormationOptInCommandInput} + * @returns {@link DeleteLakeFormationOptInCommandOutput} + * @see {@link DeleteLakeFormationOptInCommandInput} for command's `input` shape. + * @see {@link DeleteLakeFormationOptInCommandOutput} for command's `response` shape. + * @see {@link LakeFormationClientResolvedConfig | config} for LakeFormationClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *Access to a resource was denied.
+ * + * @throws {@link ConcurrentModificationException} (client fault) + *Two processes are trying to modify a resource simultaneously.
+ * + * @throws {@link EntityNotFoundException} (client fault) + *A specified entity does not exist.
+ * + * @throws {@link InternalServiceException} (server fault) + *An internal service error occurred.
+ * + * @throws {@link InvalidInputException} (client fault) + *The input provided was not valid.
+ * + * @throws {@link OperationTimeoutException} (client fault) + *The operation timed out.
+ * + * @throws {@link LakeFormationServiceException} + *Base exception class for all service exceptions from LakeFormation service.
+ * + */ +export class DeleteLakeFormationOptInCommand extends $Command< + DeleteLakeFormationOptInCommandInput, + DeleteLakeFormationOptInCommandOutput, + LakeFormationClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: DeleteLakeFormationOptInCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackRetrieve the current list of resources and principals that are opt in to enforce Lake Formation permissions.
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { LakeFormationClient, ListLakeFormationOptInsCommand } from "@aws-sdk/client-lakeformation"; // ES Modules import + * // const { LakeFormationClient, ListLakeFormationOptInsCommand } = require("@aws-sdk/client-lakeformation"); // CommonJS import + * const client = new LakeFormationClient(config); + * const input = { // ListLakeFormationOptInsRequest + * Principal: { // DataLakePrincipal + * DataLakePrincipalIdentifier: "STRING_VALUE", + * }, + * Resource: { // Resource + * Catalog: {}, + * Database: { // DatabaseResource + * CatalogId: "STRING_VALUE", + * Name: "STRING_VALUE", // required + * }, + * Table: { // TableResource + * CatalogId: "STRING_VALUE", + * DatabaseName: "STRING_VALUE", // required + * Name: "STRING_VALUE", + * TableWildcard: {}, + * }, + * TableWithColumns: { // TableWithColumnsResource + * CatalogId: "STRING_VALUE", + * DatabaseName: "STRING_VALUE", // required + * Name: "STRING_VALUE", // required + * ColumnNames: [ // ColumnNames + * "STRING_VALUE", + * ], + * ColumnWildcard: { // ColumnWildcard + * ExcludedColumnNames: [ + * "STRING_VALUE", + * ], + * }, + * }, + * DataLocation: { // DataLocationResource + * CatalogId: "STRING_VALUE", + * ResourceArn: "STRING_VALUE", // required + * }, + * DataCellsFilter: { // DataCellsFilterResource + * TableCatalogId: "STRING_VALUE", + * DatabaseName: "STRING_VALUE", + * TableName: "STRING_VALUE", + * Name: "STRING_VALUE", + * }, + * LFTag: { // LFTagKeyResource + * CatalogId: "STRING_VALUE", + * TagKey: "STRING_VALUE", // required + * TagValues: [ // TagValueList // required + * "STRING_VALUE", + * ], + * }, + * LFTagPolicy: { // LFTagPolicyResource + * CatalogId: "STRING_VALUE", + * ResourceType: "DATABASE" || "TABLE", // required + * Expression: [ // Expression // required + * { // LFTag + * TagKey: "STRING_VALUE", // required + * TagValues: [ // required + * "STRING_VALUE", + * ], + * }, + * ], + * }, + * }, + * MaxResults: Number("int"), + * NextToken: "STRING_VALUE", + * }; + * const command = new ListLakeFormationOptInsCommand(input); + * const response = await client.send(command); + * // { // ListLakeFormationOptInsResponse + * // LakeFormationOptInsInfoList: [ // LakeFormationOptInsInfoList + * // { // LakeFormationOptInsInfo + * // Resource: { // Resource + * // Catalog: {}, + * // Database: { // DatabaseResource + * // CatalogId: "STRING_VALUE", + * // Name: "STRING_VALUE", // required + * // }, + * // Table: { // TableResource + * // CatalogId: "STRING_VALUE", + * // DatabaseName: "STRING_VALUE", // required + * // Name: "STRING_VALUE", + * // TableWildcard: {}, + * // }, + * // TableWithColumns: { // TableWithColumnsResource + * // CatalogId: "STRING_VALUE", + * // DatabaseName: "STRING_VALUE", // required + * // Name: "STRING_VALUE", // required + * // ColumnNames: [ // ColumnNames + * // "STRING_VALUE", + * // ], + * // ColumnWildcard: { // ColumnWildcard + * // ExcludedColumnNames: [ + * // "STRING_VALUE", + * // ], + * // }, + * // }, + * // DataLocation: { // DataLocationResource + * // CatalogId: "STRING_VALUE", + * // ResourceArn: "STRING_VALUE", // required + * // }, + * // DataCellsFilter: { // DataCellsFilterResource + * // TableCatalogId: "STRING_VALUE", + * // DatabaseName: "STRING_VALUE", + * // TableName: "STRING_VALUE", + * // Name: "STRING_VALUE", + * // }, + * // LFTag: { // LFTagKeyResource + * // CatalogId: "STRING_VALUE", + * // TagKey: "STRING_VALUE", // required + * // TagValues: [ // TagValueList // required + * // "STRING_VALUE", + * // ], + * // }, + * // LFTagPolicy: { // LFTagPolicyResource + * // CatalogId: "STRING_VALUE", + * // ResourceType: "DATABASE" || "TABLE", // required + * // Expression: [ // Expression // required + * // { // LFTag + * // TagKey: "STRING_VALUE", // required + * // TagValues: [ // required + * // "STRING_VALUE", + * // ], + * // }, + * // ], + * // }, + * // }, + * // Principal: { // DataLakePrincipal + * // DataLakePrincipalIdentifier: "STRING_VALUE", + * // }, + * // LastModified: new Date("TIMESTAMP"), + * // LastUpdatedBy: "STRING_VALUE", + * // }, + * // ], + * // NextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListLakeFormationOptInsCommandInput - {@link ListLakeFormationOptInsCommandInput} + * @returns {@link ListLakeFormationOptInsCommandOutput} + * @see {@link ListLakeFormationOptInsCommandInput} for command's `input` shape. + * @see {@link ListLakeFormationOptInsCommandOutput} for command's `response` shape. + * @see {@link LakeFormationClientResolvedConfig | config} for LakeFormationClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *Access to a resource was denied.
+ * + * @throws {@link InternalServiceException} (server fault) + *An internal service error occurred.
+ * + * @throws {@link InvalidInputException} (client fault) + *The input provided was not valid.
+ * + * @throws {@link OperationTimeoutException} (client fault) + *The operation timed out.
+ * + * @throws {@link LakeFormationServiceException} + *Base exception class for all service exceptions from LakeFormation service.
+ * + */ +export class ListLakeFormationOptInsCommand extends $Command< + ListLakeFormationOptInsCommandInput, + ListLakeFormationOptInsCommandOutput, + LakeFormationClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: ListLakeFormationOptInsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStackA list of possible values an attribute can take.
+ *The maximum number of values that can be defined for a LF-Tag is 1000. A single API call + * supports 50 values. You can use multiple API calls to add more values.
*/ TagValues: string[] | undefined; } @@ -1075,6 +1077,29 @@ export class ResourceNumberLimitExceededException extends __BaseException { } } +/** + * @public + */ +export interface CreateLakeFormationOptInRequest { + /** + * @public + *The Lake Formation principal. Supported principals are IAM users + * or IAM roles.
+ */ + Principal: DataLakePrincipal | undefined; + + /** + * @public + *A structure for the resource.
+ */ + Resource: Resource | undefined; +} + +/** + * @public + */ +export interface CreateLakeFormationOptInResponse {} + /** * @public */ @@ -1137,6 +1162,29 @@ export interface DeleteDataCellsFilterRequest { */ export interface DeleteDataCellsFilterResponse {} +/** + * @public + */ +export interface DeleteLakeFormationOptInRequest { + /** + * @public + *The Lake Formation principal. Supported principals are IAM users + * or IAM roles.
+ */ + Principal: DataLakePrincipal | undefined; + + /** + * @public + *A structure for the resource.
+ */ + Resource: Resource | undefined; +} + +/** + * @public + */ +export interface DeleteLakeFormationOptInResponse {} + /** * @public */ @@ -1299,6 +1347,14 @@ export interface ResourceInfo { *Whether or not the resource is a federated resource.
*/ WithFederation?: boolean; + + /** + * @public + *+ * Indicates whether the data access of tables pointing to the location can be managed by both Lake Formation permissions as well as Amazon S3 bucket policies. + *
+ */ + HybridAccessEnabled?: boolean; } /** @@ -1612,6 +1668,18 @@ export interface PrincipalResourcePermissions { *This attribute can be used to return any additional details of PrincipalResourcePermissions
. Currently returns only as a RAM resource share ARN.
The date and time when the resource was last updated.
+ */ + LastUpdated?: Date; + + /** + * @public + *The user who updated the record.
+ */ + LastUpdatedBy?: string; } /** @@ -2514,6 +2582,84 @@ export interface ListDataCellsFilterResponse { NextToken?: string; } +/** + * @public + */ +export interface ListLakeFormationOptInsRequest { + /** + * @public + *The Lake Formation principal. Supported principals are IAM users + * or IAM roles.
+ */ + Principal?: DataLakePrincipal; + + /** + * @public + *A structure for the resource.
+ */ + Resource?: Resource; + + /** + * @public + *The maximum number of results to return.
+ */ + MaxResults?: number; + + /** + * @public + *A continuation token, if this is not the first call to retrieve this list.
+ */ + NextToken?: string; +} + +/** + * @public + *A single principal-resource pair that has Lake Formation permissins enforced.
+ */ +export interface LakeFormationOptInsInfo { + /** + * @public + *A structure for the resource.
+ */ + Resource?: Resource; + + /** + * @public + *The Lake Formation principal. Supported principals are IAM users + * or IAM roles.
+ */ + Principal?: DataLakePrincipal; + + /** + * @public + *The last modified date and time of the record.
+ */ + LastModified?: Date; + + /** + * @public + *The user who updated the record.
+ */ + LastUpdatedBy?: string; +} + +/** + * @public + */ +export interface ListLakeFormationOptInsResponse { + /** + * @public + *A list of principal-resource pairs that have Lake Formation permissins enforced.
+ */ + LakeFormationOptInsInfoList?: LakeFormationOptInsInfo[]; + + /** + * @public + *A continuation token, if this is not the first call to retrieve this list.
+ */ + NextToken?: string; +} + /** * @public * @enum @@ -2985,6 +3131,14 @@ export interface RegisterResourceRequest { *Whether or not the resource is a federated resource.
*/ WithFederation?: boolean; + + /** + * @public + *+ * Specifies whether the data access of tables pointing to the location can be managed by both Lake Formation permissions as well as Amazon S3 bucket policies. + *
+ */ + HybridAccessEnabled?: boolean; } /** @@ -3379,6 +3533,14 @@ export interface UpdateResourceRequest { *Whether or not the resource is a federated resource.
*/ WithFederation?: boolean; + + /** + * @public + *+ * Specifies whether the data access of tables pointing to the location can be managed by both Lake Formation permissions as well as Amazon S3 bucket policies. + *
+ */ + HybridAccessEnabled?: boolean; } /** diff --git a/clients/client-lakeformation/src/pagination/ListLakeFormationOptInsPaginator.ts b/clients/client-lakeformation/src/pagination/ListLakeFormationOptInsPaginator.ts new file mode 100644 index 0000000000000..d4e29679f43ca --- /dev/null +++ b/clients/client-lakeformation/src/pagination/ListLakeFormationOptInsPaginator.ts @@ -0,0 +1,50 @@ +// smithy-typescript generated code +import { Paginator } from "@smithy/types"; + +import { + ListLakeFormationOptInsCommand, + ListLakeFormationOptInsCommandInput, + ListLakeFormationOptInsCommandOutput, +} from "../commands/ListLakeFormationOptInsCommand"; +import { LakeFormationClient } from "../LakeFormationClient"; +import { LakeFormationPaginationConfiguration } from "./Interfaces"; + +/** + * @internal + */ +const makePagedClientRequest = async ( + client: LakeFormationClient, + input: ListLakeFormationOptInsCommandInput, + ...args: any +): PromiseEnforce Lake Formation permissions for the given databases, tables, and principals.
", + "smithy.api#http": { + "method": "POST", + "uri": "/CreateLakeFormationOptIn", + "code": 200 + } + } + }, + "com.amazonaws.lakeformation#CreateLakeFormationOptInRequest": { + "type": "structure", + "members": { + "Principal": { + "target": "com.amazonaws.lakeformation#DataLakePrincipal", + "traits": { + "smithy.api#required": {} + } + }, + "Resource": { + "target": "com.amazonaws.lakeformation#Resource", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.lakeformation#CreateLakeFormationOptInResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.lakeformation#CredentialTimeoutDurationSecondInteger": { "type": "integer", "traits": { @@ -2501,6 +2574,70 @@ "smithy.api#output": {} } }, + "com.amazonaws.lakeformation#DeleteLakeFormationOptIn": { + "type": "operation", + "input": { + "target": "com.amazonaws.lakeformation#DeleteLakeFormationOptInRequest" + }, + "output": { + "target": "com.amazonaws.lakeformation#DeleteLakeFormationOptInResponse" + }, + "errors": [ + { + "target": "com.amazonaws.lakeformation#AccessDeniedException" + }, + { + "target": "com.amazonaws.lakeformation#ConcurrentModificationException" + }, + { + "target": "com.amazonaws.lakeformation#EntityNotFoundException" + }, + { + "target": "com.amazonaws.lakeformation#InternalServiceException" + }, + { + "target": "com.amazonaws.lakeformation#InvalidInputException" + }, + { + "target": "com.amazonaws.lakeformation#OperationTimeoutException" + } + ], + "traits": { + "smithy.api#documentation": "Remove the Lake Formation permissions enforcement of the given databases, tables, and principals.
", + "smithy.api#http": { + "method": "POST", + "uri": "/DeleteLakeFormationOptIn", + "code": 200 + } + } + }, + "com.amazonaws.lakeformation#DeleteLakeFormationOptInRequest": { + "type": "structure", + "members": { + "Principal": { + "target": "com.amazonaws.lakeformation#DataLakePrincipal", + "traits": { + "smithy.api#required": {} + } + }, + "Resource": { + "target": "com.amazonaws.lakeformation#Resource", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.lakeformation#DeleteLakeFormationOptInResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.lakeformation#DeleteObjectInput": { "type": "structure", "members": { @@ -4331,7 +4468,7 @@ "TagValues": { "target": "com.amazonaws.lakeformation#TagValueList", "traits": { - "smithy.api#documentation": "A list of possible values an attribute can take.
", + "smithy.api#documentation": "A list of possible values an attribute can take.
\nThe maximum number of values that can be defined for a LF-Tag is 1000. A single API call\n supports 50 values. You can use multiple API calls to add more values.
", "smithy.api#required": {} } } @@ -4482,6 +4619,38 @@ } } }, + "com.amazonaws.lakeformation#LakeFormationOptInsInfo": { + "type": "structure", + "members": { + "Resource": { + "target": "com.amazonaws.lakeformation#Resource" + }, + "Principal": { + "target": "com.amazonaws.lakeformation#DataLakePrincipal" + }, + "LastModified": { + "target": "com.amazonaws.lakeformation#LastModifiedTimestamp", + "traits": { + "smithy.api#documentation": "The last modified date and time of the record.
" + } + }, + "LastUpdatedBy": { + "target": "com.amazonaws.lakeformation#NameString", + "traits": { + "smithy.api#documentation": "The user who updated the record.
" + } + } + }, + "traits": { + "smithy.api#documentation": "A single principal-resource pair that has Lake Formation permissins enforced.
" + } + }, + "com.amazonaws.lakeformation#LakeFormationOptInsInfoList": { + "type": "list", + "member": { + "target": "com.amazonaws.lakeformation#LakeFormationOptInsInfo" + } + }, "com.amazonaws.lakeformation#LastModifiedTimestamp": { "type": "timestamp" }, @@ -4660,6 +4829,91 @@ "smithy.api#output": {} } }, + "com.amazonaws.lakeformation#ListLakeFormationOptIns": { + "type": "operation", + "input": { + "target": "com.amazonaws.lakeformation#ListLakeFormationOptInsRequest" + }, + "output": { + "target": "com.amazonaws.lakeformation#ListLakeFormationOptInsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.lakeformation#AccessDeniedException" + }, + { + "target": "com.amazonaws.lakeformation#InternalServiceException" + }, + { + "target": "com.amazonaws.lakeformation#InvalidInputException" + }, + { + "target": "com.amazonaws.lakeformation#OperationTimeoutException" + } + ], + "traits": { + "smithy.api#documentation": "Retrieve the current list of resources and principals that are opt in to enforce Lake Formation permissions.
", + "smithy.api#http": { + "method": "POST", + "uri": "/ListLakeFormationOptIns", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.lakeformation#ListLakeFormationOptInsRequest": { + "type": "structure", + "members": { + "Principal": { + "target": "com.amazonaws.lakeformation#DataLakePrincipal" + }, + "Resource": { + "target": "com.amazonaws.lakeformation#Resource", + "traits": { + "smithy.api#documentation": "A structure for the resource.
" + } + }, + "MaxResults": { + "target": "com.amazonaws.lakeformation#PageSize", + "traits": { + "smithy.api#documentation": "The maximum number of results to return.
" + } + }, + "NextToken": { + "target": "com.amazonaws.lakeformation#Token", + "traits": { + "smithy.api#documentation": "A continuation token, if this is not the first call to retrieve this list.
" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.lakeformation#ListLakeFormationOptInsResponse": { + "type": "structure", + "members": { + "LakeFormationOptInsInfoList": { + "target": "com.amazonaws.lakeformation#LakeFormationOptInsInfoList", + "traits": { + "smithy.api#documentation": "A list of principal-resource pairs that have Lake Formation permissins enforced.
" + } + }, + "NextToken": { + "target": "com.amazonaws.lakeformation#Token", + "traits": { + "smithy.api#documentation": "A continuation token, if this is not the first call to retrieve this list.
" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.lakeformation#ListPermissions": { "type": "operation", "input": { @@ -5445,6 +5699,18 @@ "traits": { "smithy.api#documentation": "This attribute can be used to return any additional details of PrincipalResourcePermissions
. Currently returns only as a RAM resource share ARN.
The date and time when the resource was last updated.
" + } + }, + "LastUpdatedBy": { + "target": "com.amazonaws.lakeformation#NameString", + "traits": { + "smithy.api#documentation": "The user who updated the record.
" + } } }, "traits": { @@ -5675,6 +5941,12 @@ "traits": { "smithy.api#documentation": "Whether or not the resource is a federated resource.
" } + }, + "HybridAccessEnabled": { + "target": "com.amazonaws.lakeformation#NullableBoolean", + "traits": { + "smithy.api#documentation": "\n Specifies whether the data access of tables pointing to the location can be managed by both Lake Formation permissions as well as Amazon S3 bucket policies.\n
" + } } }, "traits": { @@ -5855,6 +6127,12 @@ "traits": { "smithy.api#documentation": "Whether or not the resource is a federated resource.
" } + }, + "HybridAccessEnabled": { + "target": "com.amazonaws.lakeformation#NullableBoolean", + "traits": { + "smithy.api#documentation": "\n Indicates whether the data access of tables pointing to the location can be managed by both Lake Formation permissions as well as Amazon S3 bucket policies.\n
" + } } }, "traits": { @@ -7104,6 +7382,12 @@ "traits": { "smithy.api#documentation": "Whether or not the resource is a federated resource.
" } + }, + "HybridAccessEnabled": { + "target": "com.amazonaws.lakeformation#NullableBoolean", + "traits": { + "smithy.api#documentation": "\n Specifies whether the data access of tables pointing to the location can be managed by both Lake Formation permissions as well as Amazon S3 bucket policies.\n
" + } } }, "traits": { @@ -7443,4 +7727,4 @@ } } } -} \ No newline at end of file +}