From dc63d2cbc17dd6cd977ac1d1ba0189ef3913db35 Mon Sep 17 00:00:00 2001 From: awstools Date: Thu, 27 Jun 2024 18:14:02 +0000 Subject: [PATCH] feat(client-datazone): This release supports the data lineage feature of business data catalog in Amazon DataZone. --- clients/client-datazone/README.md | 24 + clients/client-datazone/src/DataZone.ts | 66 ++ clients/client-datazone/src/DataZoneClient.ts | 12 + .../src/commands/GetLineageNodeCommand.ts | 133 ++++ .../commands/ListLineageNodeHistoryCommand.ts | 123 ++++ .../src/commands/ListNotificationsCommand.ts | 7 +- .../src/commands/PostLineageEventCommand.ts | 117 ++++ .../src/commands/SearchTypesCommand.ts | 19 +- clients/client-datazone/src/commands/index.ts | 3 + .../client-datazone/src/models/models_0.ts | 446 ++++++++----- .../client-datazone/src/models/models_1.ts | 343 +++++++++- .../ListLineageNodeHistoryPaginator.ts | 24 + .../client-datazone/src/pagination/index.ts | 1 + .../src/protocols/Aws_restJson1.ts | 247 ++++++- codegen/sdk-codegen/aws-models/datazone.json | 623 +++++++++++++++++- 15 files changed, 2012 insertions(+), 176 deletions(-) create mode 100644 clients/client-datazone/src/commands/GetLineageNodeCommand.ts create mode 100644 clients/client-datazone/src/commands/ListLineageNodeHistoryCommand.ts create mode 100644 clients/client-datazone/src/commands/PostLineageEventCommand.ts create mode 100644 clients/client-datazone/src/pagination/ListLineageNodeHistoryPaginator.ts diff --git a/clients/client-datazone/README.md b/clients/client-datazone/README.md index 83a54ba6befd..ebf0768ab782 100644 --- a/clients/client-datazone/README.md +++ b/clients/client-datazone/README.md @@ -670,6 +670,14 @@ GetIamPortalLoginUrl [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/datazone/command/GetIamPortalLoginUrlCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/GetIamPortalLoginUrlCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/GetIamPortalLoginUrlCommandOutput/) + +
+ +GetLineageNode + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/datazone/command/GetLineageNodeCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/GetLineageNodeCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/GetLineageNodeCommandOutput/) +
@@ -822,6 +830,14 @@ ListEnvironments [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/datazone/command/ListEnvironmentsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/ListEnvironmentsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/ListEnvironmentsCommandOutput/) +
+
+ +ListLineageNodeHistory + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/datazone/command/ListLineageNodeHistoryCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/ListLineageNodeHistoryCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/ListLineageNodeHistoryCommandOutput/) +
@@ -902,6 +918,14 @@ ListTimeSeriesDataPoints [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/datazone/command/ListTimeSeriesDataPointsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/ListTimeSeriesDataPointsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/ListTimeSeriesDataPointsCommandOutput/) +
+
+ +PostLineageEvent + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/datazone/command/PostLineageEventCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/PostLineageEventCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-datazone/Interface/PostLineageEventCommandOutput/) +
diff --git a/clients/client-datazone/src/DataZone.ts b/clients/client-datazone/src/DataZone.ts index aa01688933cc..1aa89168d563 100644 --- a/clients/client-datazone/src/DataZone.ts +++ b/clients/client-datazone/src/DataZone.ts @@ -268,6 +268,11 @@ import { GetIamPortalLoginUrlCommandInput, GetIamPortalLoginUrlCommandOutput, } from "./commands/GetIamPortalLoginUrlCommand"; +import { + GetLineageNodeCommand, + GetLineageNodeCommandInput, + GetLineageNodeCommandOutput, +} from "./commands/GetLineageNodeCommand"; import { GetListingCommand, GetListingCommandInput, GetListingCommandOutput } from "./commands/GetListingCommand"; import { GetMetadataGenerationRunCommand, @@ -351,6 +356,11 @@ import { ListEnvironmentsCommandInput, ListEnvironmentsCommandOutput, } from "./commands/ListEnvironmentsCommand"; +import { + ListLineageNodeHistoryCommand, + ListLineageNodeHistoryCommandInput, + ListLineageNodeHistoryCommandOutput, +} from "./commands/ListLineageNodeHistoryCommand"; import { ListMetadataGenerationRunsCommand, ListMetadataGenerationRunsCommandInput, @@ -401,6 +411,11 @@ import { ListTimeSeriesDataPointsCommandInput, ListTimeSeriesDataPointsCommandOutput, } from "./commands/ListTimeSeriesDataPointsCommand"; +import { + PostLineageEventCommand, + PostLineageEventCommandInput, + PostLineageEventCommandOutput, +} from "./commands/PostLineageEventCommand"; import { PostTimeSeriesDataPointsCommand, PostTimeSeriesDataPointsCommandInput, @@ -585,6 +600,7 @@ const commands = { GetGlossaryTermCommand, GetGroupProfileCommand, GetIamPortalLoginUrlCommand, + GetLineageNodeCommand, GetListingCommand, GetMetadataGenerationRunCommand, GetProjectCommand, @@ -604,6 +620,7 @@ const commands = { ListEnvironmentBlueprintsCommand, ListEnvironmentProfilesCommand, ListEnvironmentsCommand, + ListLineageNodeHistoryCommand, ListMetadataGenerationRunsCommand, ListNotificationsCommand, ListProjectMembershipsCommand, @@ -614,6 +631,7 @@ const commands = { ListSubscriptionTargetsCommand, ListTagsForResourceCommand, ListTimeSeriesDataPointsCommand, + PostLineageEventCommand, PostTimeSeriesDataPointsCommand, PutEnvironmentBlueprintConfigurationCommand, RejectPredictionsCommand, @@ -1525,6 +1543,20 @@ export interface DataZone { cb: (err: any, data?: GetIamPortalLoginUrlCommandOutput) => void ): void; + /** + * @see {@link GetLineageNodeCommand} + */ + getLineageNode( + args: GetLineageNodeCommandInput, + options?: __HttpHandlerOptions + ): Promise; + getLineageNode(args: GetLineageNodeCommandInput, cb: (err: any, data?: GetLineageNodeCommandOutput) => void): void; + getLineageNode( + args: GetLineageNodeCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetLineageNodeCommandOutput) => void + ): void; + /** * @see {@link GetListingCommand} */ @@ -1822,6 +1854,23 @@ export interface DataZone { cb: (err: any, data?: ListEnvironmentsCommandOutput) => void ): void; + /** + * @see {@link ListLineageNodeHistoryCommand} + */ + listLineageNodeHistory( + args: ListLineageNodeHistoryCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listLineageNodeHistory( + args: ListLineageNodeHistoryCommandInput, + cb: (err: any, data?: ListLineageNodeHistoryCommandOutput) => void + ): void; + listLineageNodeHistory( + args: ListLineageNodeHistoryCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListLineageNodeHistoryCommandOutput) => void + ): void; + /** * @see {@link ListMetadataGenerationRunsCommand} */ @@ -1986,6 +2035,23 @@ export interface DataZone { cb: (err: any, data?: ListTimeSeriesDataPointsCommandOutput) => void ): void; + /** + * @see {@link PostLineageEventCommand} + */ + postLineageEvent( + args: PostLineageEventCommandInput, + options?: __HttpHandlerOptions + ): Promise; + postLineageEvent( + args: PostLineageEventCommandInput, + cb: (err: any, data?: PostLineageEventCommandOutput) => void + ): void; + postLineageEvent( + args: PostLineageEventCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: PostLineageEventCommandOutput) => void + ): void; + /** * @see {@link PostTimeSeriesDataPointsCommand} */ diff --git a/clients/client-datazone/src/DataZoneClient.ts b/clients/client-datazone/src/DataZoneClient.ts index 60949adeb196..959b1d58ddb6 100644 --- a/clients/client-datazone/src/DataZoneClient.ts +++ b/clients/client-datazone/src/DataZoneClient.ts @@ -186,6 +186,7 @@ import { GetIamPortalLoginUrlCommandInput, GetIamPortalLoginUrlCommandOutput, } from "./commands/GetIamPortalLoginUrlCommand"; +import { GetLineageNodeCommandInput, GetLineageNodeCommandOutput } from "./commands/GetLineageNodeCommand"; import { GetListingCommandInput, GetListingCommandOutput } from "./commands/GetListingCommand"; import { GetMetadataGenerationRunCommandInput, @@ -235,6 +236,10 @@ import { ListEnvironmentProfilesCommandOutput, } from "./commands/ListEnvironmentProfilesCommand"; import { ListEnvironmentsCommandInput, ListEnvironmentsCommandOutput } from "./commands/ListEnvironmentsCommand"; +import { + ListLineageNodeHistoryCommandInput, + ListLineageNodeHistoryCommandOutput, +} from "./commands/ListLineageNodeHistoryCommand"; import { ListMetadataGenerationRunsCommandInput, ListMetadataGenerationRunsCommandOutput, @@ -266,6 +271,7 @@ import { ListTimeSeriesDataPointsCommandInput, ListTimeSeriesDataPointsCommandOutput, } from "./commands/ListTimeSeriesDataPointsCommand"; +import { PostLineageEventCommandInput, PostLineageEventCommandOutput } from "./commands/PostLineageEventCommand"; import { PostTimeSeriesDataPointsCommandInput, PostTimeSeriesDataPointsCommandOutput, @@ -396,6 +402,7 @@ export type ServiceInputTypes = | GetGlossaryTermCommandInput | GetGroupProfileCommandInput | GetIamPortalLoginUrlCommandInput + | GetLineageNodeCommandInput | GetListingCommandInput | GetMetadataGenerationRunCommandInput | GetProjectCommandInput @@ -415,6 +422,7 @@ export type ServiceInputTypes = | ListEnvironmentBlueprintsCommandInput | ListEnvironmentProfilesCommandInput | ListEnvironmentsCommandInput + | ListLineageNodeHistoryCommandInput | ListMetadataGenerationRunsCommandInput | ListNotificationsCommandInput | ListProjectMembershipsCommandInput @@ -425,6 +433,7 @@ export type ServiceInputTypes = | ListSubscriptionsCommandInput | ListTagsForResourceCommandInput | ListTimeSeriesDataPointsCommandInput + | PostLineageEventCommandInput | PostTimeSeriesDataPointsCommandInput | PutEnvironmentBlueprintConfigurationCommandInput | RejectPredictionsCommandInput @@ -515,6 +524,7 @@ export type ServiceOutputTypes = | GetGlossaryTermCommandOutput | GetGroupProfileCommandOutput | GetIamPortalLoginUrlCommandOutput + | GetLineageNodeCommandOutput | GetListingCommandOutput | GetMetadataGenerationRunCommandOutput | GetProjectCommandOutput @@ -534,6 +544,7 @@ export type ServiceOutputTypes = | ListEnvironmentBlueprintsCommandOutput | ListEnvironmentProfilesCommandOutput | ListEnvironmentsCommandOutput + | ListLineageNodeHistoryCommandOutput | ListMetadataGenerationRunsCommandOutput | ListNotificationsCommandOutput | ListProjectMembershipsCommandOutput @@ -544,6 +555,7 @@ export type ServiceOutputTypes = | ListSubscriptionsCommandOutput | ListTagsForResourceCommandOutput | ListTimeSeriesDataPointsCommandOutput + | PostLineageEventCommandOutput | PostTimeSeriesDataPointsCommandOutput | PutEnvironmentBlueprintConfigurationCommandOutput | RejectPredictionsCommandOutput diff --git a/clients/client-datazone/src/commands/GetLineageNodeCommand.ts b/clients/client-datazone/src/commands/GetLineageNodeCommand.ts new file mode 100644 index 000000000000..7a023e5f948d --- /dev/null +++ b/clients/client-datazone/src/commands/GetLineageNodeCommand.ts @@ -0,0 +1,133 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { DataZoneClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DataZoneClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { GetLineageNodeInput, GetLineageNodeOutput, GetLineageNodeOutputFilterSensitiveLog } from "../models/models_0"; +import { de_GetLineageNodeCommand, se_GetLineageNodeCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link GetLineageNodeCommand}. + */ +export interface GetLineageNodeCommandInput extends GetLineageNodeInput {} +/** + * @public + * + * The output of {@link GetLineageNodeCommand}. + */ +export interface GetLineageNodeCommandOutput extends GetLineageNodeOutput, __MetadataBearer {} + +/** + *

Gets the data lineage node.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DataZoneClient, GetLineageNodeCommand } from "@aws-sdk/client-datazone"; // ES Modules import + * // const { DataZoneClient, GetLineageNodeCommand } = require("@aws-sdk/client-datazone"); // CommonJS import + * const client = new DataZoneClient(config); + * const input = { // GetLineageNodeInput + * domainIdentifier: "STRING_VALUE", // required + * identifier: "STRING_VALUE", // required + * eventTimestamp: new Date("TIMESTAMP"), + * }; + * const command = new GetLineageNodeCommand(input); + * const response = await client.send(command); + * // { // GetLineageNodeOutput + * // domainId: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // description: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // createdBy: "STRING_VALUE", + * // updatedAt: new Date("TIMESTAMP"), + * // updatedBy: "STRING_VALUE", + * // id: "STRING_VALUE", // required + * // typeName: "STRING_VALUE", // required + * // typeRevision: "STRING_VALUE", + * // sourceIdentifier: "STRING_VALUE", + * // eventTimestamp: new Date("TIMESTAMP"), + * // formsOutput: [ // FormOutputList + * // { // FormOutput + * // formName: "STRING_VALUE", // required + * // typeName: "STRING_VALUE", + * // typeRevision: "STRING_VALUE", + * // content: "STRING_VALUE", + * // }, + * // ], + * // upstreamNodes: [ // LineageNodeReferenceList + * // { // LineageNodeReference + * // id: "STRING_VALUE", + * // eventTimestamp: new Date("TIMESTAMP"), + * // }, + * // ], + * // downstreamNodes: [ + * // { + * // id: "STRING_VALUE", + * // eventTimestamp: new Date("TIMESTAMP"), + * // }, + * // ], + * // }; + * + * ``` + * + * @param GetLineageNodeCommandInput - {@link GetLineageNodeCommandInput} + * @returns {@link GetLineageNodeCommandOutput} + * @see {@link GetLineageNodeCommandInput} for command's `input` shape. + * @see {@link GetLineageNodeCommandOutput} for command's `response` shape. + * @see {@link DataZoneClientResolvedConfig | config} for DataZoneClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

+ * + * @throws {@link InternalServerException} (server fault) + *

The request has failed because of an unknown error, exception or failure.

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

The specified resource cannot be found.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The request was denied due to request throttling.

+ * + * @throws {@link ValidationException} (client fault) + *

The input fails to satisfy the constraints specified by the Amazon Web Services service.

+ * + * @throws {@link UnauthorizedException} (client fault) + *

You do not have permission to perform this action.

+ * + * @throws {@link DataZoneServiceException} + *

Base exception class for all service exceptions from DataZone service.

+ * + * @public + */ +export class GetLineageNodeCommand extends $Command + .classBuilder< + GetLineageNodeCommandInput, + GetLineageNodeCommandOutput, + DataZoneClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: DataZoneClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("DataZone", "GetLineageNode", {}) + .n("DataZoneClient", "GetLineageNodeCommand") + .f(void 0, GetLineageNodeOutputFilterSensitiveLog) + .ser(se_GetLineageNodeCommand) + .de(de_GetLineageNodeCommand) + .build() {} diff --git a/clients/client-datazone/src/commands/ListLineageNodeHistoryCommand.ts b/clients/client-datazone/src/commands/ListLineageNodeHistoryCommand.ts new file mode 100644 index 000000000000..4e6e161372ad --- /dev/null +++ b/clients/client-datazone/src/commands/ListLineageNodeHistoryCommand.ts @@ -0,0 +1,123 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { DataZoneClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DataZoneClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ListLineageNodeHistoryInput, ListLineageNodeHistoryOutput } from "../models/models_0"; +import { de_ListLineageNodeHistoryCommand, se_ListLineageNodeHistoryCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListLineageNodeHistoryCommand}. + */ +export interface ListLineageNodeHistoryCommandInput extends ListLineageNodeHistoryInput {} +/** + * @public + * + * The output of {@link ListLineageNodeHistoryCommand}. + */ +export interface ListLineageNodeHistoryCommandOutput extends ListLineageNodeHistoryOutput, __MetadataBearer {} + +/** + *

Lists the history of the specified data lineage node.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DataZoneClient, ListLineageNodeHistoryCommand } from "@aws-sdk/client-datazone"; // ES Modules import + * // const { DataZoneClient, ListLineageNodeHistoryCommand } = require("@aws-sdk/client-datazone"); // CommonJS import + * const client = new DataZoneClient(config); + * const input = { // ListLineageNodeHistoryInput + * domainIdentifier: "STRING_VALUE", // required + * maxResults: Number("int"), + * nextToken: "STRING_VALUE", + * identifier: "STRING_VALUE", // required + * direction: "UPSTREAM" || "DOWNSTREAM", + * eventTimestampGTE: new Date("TIMESTAMP"), + * eventTimestampLTE: new Date("TIMESTAMP"), + * sortOrder: "ASCENDING" || "DESCENDING", + * }; + * const command = new ListLineageNodeHistoryCommand(input); + * const response = await client.send(command); + * // { // ListLineageNodeHistoryOutput + * // nodes: [ // LineageNodeSummaries + * // { // LineageNodeSummary + * // domainId: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // description: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // createdBy: "STRING_VALUE", + * // updatedAt: new Date("TIMESTAMP"), + * // updatedBy: "STRING_VALUE", + * // id: "STRING_VALUE", // required + * // typeName: "STRING_VALUE", // required + * // typeRevision: "STRING_VALUE", + * // sourceIdentifier: "STRING_VALUE", + * // eventTimestamp: new Date("TIMESTAMP"), + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListLineageNodeHistoryCommandInput - {@link ListLineageNodeHistoryCommandInput} + * @returns {@link ListLineageNodeHistoryCommandOutput} + * @see {@link ListLineageNodeHistoryCommandInput} for command's `input` shape. + * @see {@link ListLineageNodeHistoryCommandOutput} for command's `response` shape. + * @see {@link DataZoneClientResolvedConfig | config} for DataZoneClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

+ * + * @throws {@link InternalServerException} (server fault) + *

The request has failed because of an unknown error, exception or failure.

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

The specified resource cannot be found.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The request was denied due to request throttling.

+ * + * @throws {@link ValidationException} (client fault) + *

The input fails to satisfy the constraints specified by the Amazon Web Services service.

+ * + * @throws {@link UnauthorizedException} (client fault) + *

You do not have permission to perform this action.

+ * + * @throws {@link DataZoneServiceException} + *

Base exception class for all service exceptions from DataZone service.

+ * + * @public + */ +export class ListLineageNodeHistoryCommand extends $Command + .classBuilder< + ListLineageNodeHistoryCommandInput, + ListLineageNodeHistoryCommandOutput, + DataZoneClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: DataZoneClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("DataZone", "ListLineageNodeHistory", {}) + .n("DataZoneClient", "ListLineageNodeHistoryCommand") + .f(void 0, void 0) + .ser(se_ListLineageNodeHistoryCommand) + .de(de_ListLineageNodeHistoryCommand) + .build() {} diff --git a/clients/client-datazone/src/commands/ListNotificationsCommand.ts b/clients/client-datazone/src/commands/ListNotificationsCommand.ts index 0cb683104d43..469cbd7cfd95 100644 --- a/clients/client-datazone/src/commands/ListNotificationsCommand.ts +++ b/clients/client-datazone/src/commands/ListNotificationsCommand.ts @@ -6,11 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { DataZoneClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DataZoneClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { - ListNotificationsInput, - ListNotificationsOutput, - ListNotificationsOutputFilterSensitiveLog, -} from "../models/models_0"; +import { ListNotificationsInput } from "../models/models_0"; +import { ListNotificationsOutput, ListNotificationsOutputFilterSensitiveLog } from "../models/models_1"; import { de_ListNotificationsCommand, se_ListNotificationsCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-datazone/src/commands/PostLineageEventCommand.ts b/clients/client-datazone/src/commands/PostLineageEventCommand.ts new file mode 100644 index 000000000000..624803a94bc5 --- /dev/null +++ b/clients/client-datazone/src/commands/PostLineageEventCommand.ts @@ -0,0 +1,117 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { BlobPayloadInputTypes, MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { DataZoneClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DataZoneClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + PostLineageEventInput, + PostLineageEventInputFilterSensitiveLog, + PostLineageEventOutput, +} from "../models/models_1"; +import { de_PostLineageEventCommand, se_PostLineageEventCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + */ +export type PostLineageEventCommandInputType = Omit & { + event: BlobPayloadInputTypes; +}; + +/** + * @public + * + * The input for {@link PostLineageEventCommand}. + */ +export interface PostLineageEventCommandInput extends PostLineageEventCommandInputType {} +/** + * @public + * + * The output of {@link PostLineageEventCommand}. + */ +export interface PostLineageEventCommandOutput extends PostLineageEventOutput, __MetadataBearer {} + +/** + *

Posts a data lineage event.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DataZoneClient, PostLineageEventCommand } from "@aws-sdk/client-datazone"; // ES Modules import + * // const { DataZoneClient, PostLineageEventCommand } = require("@aws-sdk/client-datazone"); // CommonJS import + * const client = new DataZoneClient(config); + * const input = { // PostLineageEventInput + * domainIdentifier: "STRING_VALUE", // required + * event: new Uint8Array(), // e.g. Buffer.from("") or new TextEncoder().encode("") // required + * clientToken: "STRING_VALUE", + * }; + * const command = new PostLineageEventCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param PostLineageEventCommandInput - {@link PostLineageEventCommandInput} + * @returns {@link PostLineageEventCommandOutput} + * @see {@link PostLineageEventCommandInput} for command's `input` shape. + * @see {@link PostLineageEventCommandOutput} for command's `response` shape. + * @see {@link DataZoneClientResolvedConfig | config} for DataZoneClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

+ * + * @throws {@link ConflictException} (client fault) + *

There is a conflict while performing this action.

+ * + * @throws {@link InternalServerException} (server fault) + *

The request has failed because of an unknown error, exception or failure.

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

The specified resource cannot be found.

+ * + * @throws {@link ServiceQuotaExceededException} (client fault) + *

The request has exceeded the specified service quota.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The request was denied due to request throttling.

+ * + * @throws {@link ValidationException} (client fault) + *

The input fails to satisfy the constraints specified by the Amazon Web Services service.

+ * + * @throws {@link UnauthorizedException} (client fault) + *

You do not have permission to perform this action.

+ * + * @throws {@link DataZoneServiceException} + *

Base exception class for all service exceptions from DataZone service.

+ * + * @public + */ +export class PostLineageEventCommand extends $Command + .classBuilder< + PostLineageEventCommandInput, + PostLineageEventCommandOutput, + DataZoneClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: DataZoneClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("DataZone", "PostLineageEvent", {}) + .n("DataZoneClient", "PostLineageEventCommand") + .f(PostLineageEventInputFilterSensitiveLog, void 0) + .ser(se_PostLineageEventCommand) + .de(de_PostLineageEventCommand) + .build() {} diff --git a/clients/client-datazone/src/commands/SearchTypesCommand.ts b/clients/client-datazone/src/commands/SearchTypesCommand.ts index a3c9703e4efe..808e65ac236e 100644 --- a/clients/client-datazone/src/commands/SearchTypesCommand.ts +++ b/clients/client-datazone/src/commands/SearchTypesCommand.ts @@ -39,7 +39,7 @@ export interface SearchTypesCommandOutput extends SearchTypesOutput, __MetadataB * domainIdentifier: "STRING_VALUE", // required * maxResults: Number("int"), * nextToken: "STRING_VALUE", - * searchScope: "ASSET_TYPE" || "FORM_TYPE", // required + * searchScope: "ASSET_TYPE" || "FORM_TYPE" || "LINEAGE_NODE_TYPE", // required * searchText: "STRING_VALUE", * searchIn: [ // SearchInList * { // SearchInItem @@ -121,6 +121,23 @@ export interface SearchTypesCommandOutput extends SearchTypesOutput, __MetadataB * // }, * // ], * // }, + * // lineageNodeTypeItem: { // LineageNodeTypeItem + * // domainId: "STRING_VALUE", // required + * // name: "STRING_VALUE", + * // description: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // createdBy: "STRING_VALUE", + * // updatedAt: new Date("TIMESTAMP"), + * // updatedBy: "STRING_VALUE", + * // revision: "STRING_VALUE", // required + * // formsOutput: { // required + * // "": { + * // typeName: "STRING_VALUE", // required + * // typeRevision: "STRING_VALUE", // required + * // required: true || false, + * // }, + * // }, + * // }, * // }, * // ], * // nextToken: "STRING_VALUE", diff --git a/clients/client-datazone/src/commands/index.ts b/clients/client-datazone/src/commands/index.ts index 9fbc1009c710..cb043b6c077a 100644 --- a/clients/client-datazone/src/commands/index.ts +++ b/clients/client-datazone/src/commands/index.ts @@ -57,6 +57,7 @@ export * from "./GetGlossaryCommand"; export * from "./GetGlossaryTermCommand"; export * from "./GetGroupProfileCommand"; export * from "./GetIamPortalLoginUrlCommand"; +export * from "./GetLineageNodeCommand"; export * from "./GetListingCommand"; export * from "./GetMetadataGenerationRunCommand"; export * from "./GetProjectCommand"; @@ -76,6 +77,7 @@ export * from "./ListEnvironmentBlueprintConfigurationsCommand"; export * from "./ListEnvironmentBlueprintsCommand"; export * from "./ListEnvironmentProfilesCommand"; export * from "./ListEnvironmentsCommand"; +export * from "./ListLineageNodeHistoryCommand"; export * from "./ListMetadataGenerationRunsCommand"; export * from "./ListNotificationsCommand"; export * from "./ListProjectMembershipsCommand"; @@ -86,6 +88,7 @@ export * from "./ListSubscriptionTargetsCommand"; export * from "./ListSubscriptionsCommand"; export * from "./ListTagsForResourceCommand"; export * from "./ListTimeSeriesDataPointsCommand"; +export * from "./PostLineageEventCommand"; export * from "./PostTimeSeriesDataPointsCommand"; export * from "./PutEnvironmentBlueprintConfigurationCommand"; export * from "./RejectPredictionsCommand"; diff --git a/clients/client-datazone/src/models/models_0.ts b/clients/client-datazone/src/models/models_0.ts index d8563abbb1bd..f1da29170324 100644 --- a/clients/client-datazone/src/models/models_0.ts +++ b/clients/client-datazone/src/models/models_0.ts @@ -8594,6 +8594,146 @@ export interface GetIamPortalLoginUrlOutput { userProfileId: string | undefined; } +/** + * @public + */ +export interface GetLineageNodeInput { + /** + *

The ID of the domain in which you want to get the data lineage node.

+ * @public + */ + domainIdentifier: string | undefined; + + /** + *

The ID of the data lineage node that you want to get.

+ *

Both, a lineage node identifier generated by Amazon DataZone and a + * sourceIdentifier of the lineage node are supported. If + * sourceIdentifier is greater than 1800 characters, you can use lineage node + * identifier generated by Amazon DataZone to get the node details.

+ * @public + */ + identifier: string | undefined; + + /** + *

The event time stamp for which you want to get the data lineage node.

+ * @public + */ + eventTimestamp?: Date; +} + +/** + *

The reference details for the data lineage node.

+ * @public + */ +export interface LineageNodeReference { + /** + *

The ID of the data lineage node.

+ * @public + */ + id?: string; + + /** + *

The event timestamp of the data lineage node.

+ * @public + */ + eventTimestamp?: Date; +} + +/** + * @public + */ +export interface GetLineageNodeOutput { + /** + *

The ID of the domain where you're getting the data lineage node.

+ * @public + */ + domainId: string | undefined; + + /** + *

The name of the data lineage node.

+ * @public + */ + name?: string; + + /** + *

The description of the data lineage node.

+ * @public + */ + description?: string; + + /** + *

The timestamp at which the data lineage node was created.

+ * @public + */ + createdAt?: Date; + + /** + *

The user who created the data lineage node.

+ * @public + */ + createdBy?: string; + + /** + *

The timestamp at which the data lineage node was updated.

+ * @public + */ + updatedAt?: Date; + + /** + *

The user who updated the data lineage node.

+ * @public + */ + updatedBy?: string; + + /** + *

The ID of the data lineage node.

+ * @public + */ + id: string | undefined; + + /** + *

The name of the type of the specified data lineage node.

+ * @public + */ + typeName: string | undefined; + + /** + *

The revision type of the specified data lineage node.

+ * @public + */ + typeRevision?: string; + + /** + *

The source identifier of the data lineage node.

+ * @public + */ + sourceIdentifier?: string; + + /** + *

The timestamp of the event described in the data lineage node.

+ * @public + */ + eventTimestamp?: Date; + + /** + *

The metadata of the specified data lineage node.

+ * @public + */ + formsOutput?: FormOutput[]; + + /** + *

The upstream nodes of the specified data lineage node.

+ * @public + */ + upstreamNodes?: LineageNodeReference[]; + + /** + *

The downsteam nodes of the specified data lineage node.

+ * @public + */ + downstreamNodes?: LineageNodeReference[]; +} + /** * @public */ @@ -10509,251 +10649,272 @@ export interface GetListingOutput { * @public * @enum */ -export const TaskStatus = { - ACTIVE: "ACTIVE", - INACTIVE: "INACTIVE", +export const EdgeDirection = { + DOWNSTREAM: "DOWNSTREAM", + UPSTREAM: "UPSTREAM", } as const; /** * @public */ -export type TaskStatus = (typeof TaskStatus)[keyof typeof TaskStatus]; +export type EdgeDirection = (typeof EdgeDirection)[keyof typeof EdgeDirection]; /** * @public * @enum */ -export const NotificationType = { - EVENT: "EVENT", - TASK: "TASK", +export const SortOrder = { + ASCENDING: "ASCENDING", + DESCENDING: "DESCENDING", } as const; /** * @public */ -export type NotificationType = (typeof NotificationType)[keyof typeof NotificationType]; +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]; /** * @public */ -export interface ListNotificationsInput { +export interface ListLineageNodeHistoryInput { /** - *

The identifier of the Amazon DataZone domain.

+ *

The ID of the domain where you want to list the history of the specified data lineage + * node.

* @public */ domainIdentifier: string | undefined; /** - *

The type of notifications.

+ *

The maximum number of history items to return in a single call to + * ListLineageNodeHistory. When the number of memberships to be listed is greater than the + * value of MaxResults, the response contains a NextToken value that you can use in a + * subsequent call to ListLineageNodeHistory to list the next set of items.

* @public */ - type: NotificationType | undefined; + maxResults?: number; /** - *

The time after which you want to list notifications.

+ *

When the number of history items is greater than the default value for the MaxResults + * parameter, or if you explicitly specify a value for MaxResults that is less than the number + * of items, the response includes a pagination token named NextToken. You can specify this + * NextToken value in a subsequent call to ListLineageNodeHistory to list the next set of + * items.

* @public */ - afterTimestamp?: Date; + nextToken?: string; /** - *

The time before which you want to list notifications.

+ *

The ID of the data lineage node whose history you want to list.

* @public */ - beforeTimestamp?: Date; + identifier: string | undefined; /** - *

The subjects of notifications.

+ *

The direction of the data lineage node refers to the lineage node having neighbors in + * that direction. For example, if direction is UPSTREAM, the + * ListLineageNodeHistory API responds with historical versions with upstream + * neighbors only.

* @public */ - subjects?: string[]; + direction?: EdgeDirection; /** - *

The task status of notifications.

+ *

Specifies whether the action is to return data lineage node history from the time after + * the event timestamp.

* @public */ - taskStatus?: TaskStatus; + eventTimestampGTE?: Date; /** - *

The maximum number of notifications to return in a single call to - * ListNotifications. When the number of notifications to be listed is greater - * than the value of MaxResults, the response contains a NextToken - * value that you can use in a subsequent call to ListNotifications to list the - * next set of notifications.

+ *

Specifies whether the action is to return data lineage node history from the time prior + * of the event timestamp.

* @public */ - maxResults?: number; + eventTimestampLTE?: Date; /** - *

When the number of notifications is greater than the default value for the - * MaxResults parameter, or if you explicitly specify a value for - * MaxResults that is less than the number of notifications, the response - * includes a pagination token named NextToken. You can specify this - * NextToken value in a subsequent call to ListNotifications to - * list the next set of notifications.

+ *

The order by which you want data lineage node history to be sorted.

* @public */ - nextToken?: string; + sortOrder?: SortOrder; } /** - * @public - * @enum - */ -export const NotificationResourceType = { - PROJECT: "PROJECT", -} as const; - -/** + *

The summary of the data lineage node.

* @public */ -export type NotificationResourceType = (typeof NotificationResourceType)[keyof typeof NotificationResourceType]; +export interface LineageNodeSummary { + /** + *

The ID of the domain of the data lineage node.

+ * @public + */ + domainId: string | undefined; -/** - *

The details of the resource mentioned in a notification.

- * @public - */ -export interface NotificationResource { /** - *

The type of the resource mentioned in a notification.

+ *

The name of the data lineage node.

* @public */ - type: NotificationResourceType | undefined; + name?: string; /** - *

The ID of the resource mentioned in a notification.

+ *

The description of the data lineage node.

* @public */ - id: string | undefined; + description?: string; /** - *

The name of the resource mentioned in a notification.

+ *

The timestamp at which the data lineage node was created.

* @public */ - name?: string; -} + createdAt?: Date; -/** - * @public - * @enum - */ -export const NotificationRole = { - DOMAIN_OWNER: "DOMAIN_OWNER", - PROJECT_CONTRIBUTOR: "PROJECT_CONTRIBUTOR", - PROJECT_OWNER: "PROJECT_OWNER", - PROJECT_SUBSCRIBER: "PROJECT_SUBSCRIBER", - PROJECT_VIEWER: "PROJECT_VIEWER", -} as const; + /** + *

The user who created the data lineage node.

+ * @public + */ + createdBy?: string; -/** - * @public - */ -export type NotificationRole = (typeof NotificationRole)[keyof typeof NotificationRole]; + /** + *

The timestamp at which the data lineage node was updated.

+ * @public + */ + updatedAt?: Date; -/** - *

The topic of the notification.

- * @public - */ -export interface Topic { /** - *

The subject of the resource mentioned in a notification.

+ *

The user who updated the data lineage node.

* @public */ - subject: string | undefined; + updatedBy?: string; /** - *

The details of the resource mentioned in a notification.

+ *

The ID of the data lineage node.

* @public */ - resource: NotificationResource | undefined; + id: string | undefined; /** - *

The role of the resource mentioned in a notification.

+ *

The name of the type of the data lineage node.

* @public */ - role: NotificationRole | undefined; -} + typeName: string | undefined; -/** - *

The details of a notification generated in Amazon DataZone.

- * @public - */ -export interface NotificationOutput { /** - *

The identifier of the notification.

+ *

The type of the revision of the data lineage node.

* @public */ - identifier: string | undefined; + typeRevision?: string; /** - *

The identifier of a Amazon DataZone domain in which the notification exists.

+ *

The alternate ID of the data lineage node.

* @public */ - domainIdentifier: string | undefined; + sourceIdentifier?: string; /** - *

The type of the notification.

+ *

The event timestamp of the data lineage node.

* @public */ - type: NotificationType | undefined; + eventTimestamp?: Date; +} +/** + * @public + */ +export interface ListLineageNodeHistoryOutput { /** - *

The topic of the notification.

+ *

The nodes returned by the ListLineageNodeHistory action.

* @public */ - topic: Topic | undefined; + nodes?: LineageNodeSummary[]; /** - *

The title of the notification.

+ *

When the number of history items is greater than the default value for the MaxResults + * parameter, or if you explicitly specify a value for MaxResults that is less than the number + * of items, the response includes a pagination token named NextToken. You can specify this + * NextToken value in a subsequent call to ListLineageNodeHistory to list the next set of + * items.

* @public */ - title: string | undefined; + nextToken?: string; +} + +/** + * @public + * @enum + */ +export const TaskStatus = { + ACTIVE: "ACTIVE", + INACTIVE: "INACTIVE", +} as const; + +/** + * @public + */ +export type TaskStatus = (typeof TaskStatus)[keyof typeof TaskStatus]; +/** + * @public + * @enum + */ +export const NotificationType = { + EVENT: "EVENT", + TASK: "TASK", +} as const; + +/** + * @public + */ +export type NotificationType = (typeof NotificationType)[keyof typeof NotificationType]; + +/** + * @public + */ +export interface ListNotificationsInput { /** - *

The message included in the notification.

+ *

The identifier of the Amazon DataZone domain.

* @public */ - message: string | undefined; + domainIdentifier: string | undefined; /** - *

The status included in the notification.

+ *

The type of notifications.

* @public */ - status?: TaskStatus; + type: NotificationType | undefined; /** - *

The action link included in the notification.

+ *

The time after which you want to list notifications.

* @public */ - actionLink: string | undefined; + afterTimestamp?: Date; /** - *

The timestamp of when a notification was created.

+ *

The time before which you want to list notifications.

* @public */ - creationTimestamp: Date | undefined; + beforeTimestamp?: Date; /** - *

The timestamp of when the notification was last updated.

+ *

The subjects of notifications.

* @public */ - lastUpdatedTimestamp: Date | undefined; + subjects?: string[]; /** - *

The metadata included in the notification.

+ *

The task status of notifications.

* @public */ - metadata?: Record; -} + taskStatus?: TaskStatus; -/** - * @public - */ -export interface ListNotificationsOutput { /** - *

The results of the ListNotifications action.

+ *

The maximum number of notifications to return in a single call to + * ListNotifications. When the number of notifications to be listed is greater + * than the value of MaxResults, the response contains a NextToken + * value that you can use in a subsequent call to ListNotifications to list the + * next set of notifications.

* @public */ - notifications?: NotificationOutput[]; + maxResults?: number; /** *

When the number of notifications is greater than the default value for the @@ -10767,33 +10928,6 @@ export interface ListNotificationsOutput { nextToken?: string; } -/** - * @public - * @enum - */ -export const SortFieldProject = { - NAME: "NAME", -} as const; - -/** - * @public - */ -export type SortFieldProject = (typeof SortFieldProject)[keyof typeof SortFieldProject]; - -/** - * @public - * @enum - */ -export const SortOrder = { - ASCENDING: "ASCENDING", - DESCENDING: "DESCENDING", -} as const; - -/** - * @public - */ -export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]; - /** * @internal */ @@ -11500,6 +11634,14 @@ export const GetGroupProfileOutputFilterSensitiveLog = (obj: GetGroupProfileOutp ...(obj.groupName && { groupName: SENSITIVE_STRING }), }); +/** + * @internal + */ +export const GetLineageNodeOutputFilterSensitiveLog = (obj: GetLineageNodeOutput): any => ({ + ...obj, + ...(obj.formsOutput && { formsOutput: obj.formsOutput.map((item) => FormOutputFilterSensitiveLog(item)) }), +}); + /** * @internal */ @@ -11693,23 +11835,3 @@ export const GetListingOutputFilterSensitiveLog = (obj: GetListingOutput): any = ...(obj.item && { item: ListingItemFilterSensitiveLog(obj.item) }), ...(obj.description && { description: SENSITIVE_STRING }), }); - -/** - * @internal - */ -export const NotificationOutputFilterSensitiveLog = (obj: NotificationOutput): any => ({ - ...obj, - ...(obj.title && { title: SENSITIVE_STRING }), - ...(obj.message && { message: SENSITIVE_STRING }), - ...(obj.actionLink && { actionLink: SENSITIVE_STRING }), -}); - -/** - * @internal - */ -export const ListNotificationsOutputFilterSensitiveLog = (obj: ListNotificationsOutput): any => ({ - ...obj, - ...(obj.notifications && { - notifications: obj.notifications.map((item) => NotificationOutputFilterSensitiveLog(item)), - }), -}); diff --git a/clients/client-datazone/src/models/models_1.ts b/clients/client-datazone/src/models/models_1.ts index cec9835cf8e3..bcf7e1385ce3 100644 --- a/clients/client-datazone/src/models/models_1.ts +++ b/clients/client-datazone/src/models/models_1.ts @@ -19,6 +19,8 @@ import { EnvironmentParameter, EnvironmentStatus, FailureCause, + FormEntryOutput, + FormEntryOutputFilterSensitiveLog, FormTypeStatus, GlossaryStatus, GlossaryTermStatus, @@ -27,11 +29,11 @@ import { Import, ImportFilterSensitiveLog, Model, + NotificationType, ProjectDeletionError, ProjectStatus, ProvisioningProperties, Resource, - SortFieldProject, SortOrder, SubscribedAsset, SubscribedListing, @@ -43,6 +45,7 @@ import { SubscriptionRequestStatus, SubscriptionStatus, SubscriptionTargetForm, + TaskStatus, TermRelations, TimeSeriesDataPointFormOutput, TimeSeriesDataPointSummaryFormOutput, @@ -54,6 +57,191 @@ import { UserProfileType, } from "./models_0"; +/** + * @public + * @enum + */ +export const NotificationResourceType = { + PROJECT: "PROJECT", +} as const; + +/** + * @public + */ +export type NotificationResourceType = (typeof NotificationResourceType)[keyof typeof NotificationResourceType]; + +/** + *

The details of the resource mentioned in a notification.

+ * @public + */ +export interface NotificationResource { + /** + *

The type of the resource mentioned in a notification.

+ * @public + */ + type: NotificationResourceType | undefined; + + /** + *

The ID of the resource mentioned in a notification.

+ * @public + */ + id: string | undefined; + + /** + *

The name of the resource mentioned in a notification.

+ * @public + */ + name?: string; +} + +/** + * @public + * @enum + */ +export const NotificationRole = { + DOMAIN_OWNER: "DOMAIN_OWNER", + PROJECT_CONTRIBUTOR: "PROJECT_CONTRIBUTOR", + PROJECT_OWNER: "PROJECT_OWNER", + PROJECT_SUBSCRIBER: "PROJECT_SUBSCRIBER", + PROJECT_VIEWER: "PROJECT_VIEWER", +} as const; + +/** + * @public + */ +export type NotificationRole = (typeof NotificationRole)[keyof typeof NotificationRole]; + +/** + *

The topic of the notification.

+ * @public + */ +export interface Topic { + /** + *

The subject of the resource mentioned in a notification.

+ * @public + */ + subject: string | undefined; + + /** + *

The details of the resource mentioned in a notification.

+ * @public + */ + resource: NotificationResource | undefined; + + /** + *

The role of the resource mentioned in a notification.

+ * @public + */ + role: NotificationRole | undefined; +} + +/** + *

The details of a notification generated in Amazon DataZone.

+ * @public + */ +export interface NotificationOutput { + /** + *

The identifier of the notification.

+ * @public + */ + identifier: string | undefined; + + /** + *

The identifier of a Amazon DataZone domain in which the notification exists.

+ * @public + */ + domainIdentifier: string | undefined; + + /** + *

The type of the notification.

+ * @public + */ + type: NotificationType | undefined; + + /** + *

The topic of the notification.

+ * @public + */ + topic: Topic | undefined; + + /** + *

The title of the notification.

+ * @public + */ + title: string | undefined; + + /** + *

The message included in the notification.

+ * @public + */ + message: string | undefined; + + /** + *

The status included in the notification.

+ * @public + */ + status?: TaskStatus; + + /** + *

The action link included in the notification.

+ * @public + */ + actionLink: string | undefined; + + /** + *

The timestamp of when a notification was created.

+ * @public + */ + creationTimestamp: Date | undefined; + + /** + *

The timestamp of when the notification was last updated.

+ * @public + */ + lastUpdatedTimestamp: Date | undefined; + + /** + *

The metadata included in the notification.

+ * @public + */ + metadata?: Record; +} + +/** + * @public + */ +export interface ListNotificationsOutput { + /** + *

The results of the ListNotifications action.

+ * @public + */ + notifications?: NotificationOutput[]; + + /** + *

When the number of notifications is greater than the default value for the + * MaxResults parameter, or if you explicitly specify a value for + * MaxResults that is less than the number of notifications, the response + * includes a pagination token named NextToken. You can specify this + * NextToken value in a subsequent call to ListNotifications to + * list the next set of notifications.

+ * @public + */ + nextToken?: string; +} + +/** + * @public + * @enum + */ +export const SortFieldProject = { + NAME: "NAME", +} as const; + +/** + * @public + */ +export type SortFieldProject = (typeof SortFieldProject)[keyof typeof SortFieldProject]; + /** * @public */ @@ -1497,6 +1685,36 @@ export interface StartMetadataGenerationRunOutput { owningProjectId?: string; } +/** + * @public + */ +export interface PostLineageEventInput { + /** + *

The ID of the domain where you want to post a data lineage event.

+ * @public + */ + domainIdentifier: string | undefined; + + /** + *

The data lineage event that you want to post. Only open-lineage run event are supported + * as events.

+ * @public + */ + event: Uint8Array | undefined; + + /** + *

A unique, case-sensitive identifier that is provided to ensure the idempotency of the + * request.

+ * @public + */ + clientToken?: string; +} + +/** + * @public + */ +export interface PostLineageEventOutput {} + /** *

The time series data points form.

* @public @@ -2439,6 +2657,7 @@ export interface SearchListingsOutput { export const TypesSearchScope = { ASSET_TYPE: "ASSET_TYPE", FORM_TYPE: "FORM_TYPE", + LINEAGE_NODE_TYPE: "LINEAGE_NODE_TYPE", } as const; /** @@ -2525,6 +2744,66 @@ export interface FormTypeData { imports?: Import[]; } +/** + *

The details of a data lineage node type.

+ * @public + */ +export interface LineageNodeTypeItem { + /** + *

The ID of the domain where the data lineage node type lives.

+ * @public + */ + domainId: string | undefined; + + /** + *

The name of the data lineage node type.

+ * @public + */ + name?: string; + + /** + *

The description of the data lineage node type.

+ * @public + */ + description?: string; + + /** + *

The timestamp at which the data lineage node type was created.

+ * @public + */ + createdAt?: Date; + + /** + *

The user who created the data lineage node type.

+ * @public + */ + createdBy?: string; + + /** + *

The timestamp at which the data lineage node type was updated.

+ * @public + */ + updatedAt?: Date; + + /** + *

The user who updated the data lineage node type.

+ * @public + */ + updatedBy?: string; + + /** + *

The revision of the data lineage node type.

+ * @public + */ + revision: string | undefined; + + /** + *

The forms output of the data lineage node type.

+ * @public + */ + formsOutput: Record | undefined; +} + /** *

The details of the results of the SearchTypes action.

* @public @@ -2532,6 +2811,7 @@ export interface FormTypeData { export type SearchTypesResultItem = | SearchTypesResultItem.AssetTypeItemMember | SearchTypesResultItem.FormTypeItemMember + | SearchTypesResultItem.LineageNodeTypeItemMember | SearchTypesResultItem.$UnknownMember; /** @@ -2545,6 +2825,7 @@ export namespace SearchTypesResultItem { export interface AssetTypeItemMember { assetTypeItem: AssetTypeItem; formTypeItem?: never; + lineageNodeTypeItem?: never; $unknown?: never; } @@ -2555,6 +2836,18 @@ export namespace SearchTypesResultItem { export interface FormTypeItemMember { assetTypeItem?: never; formTypeItem: FormTypeData; + lineageNodeTypeItem?: never; + $unknown?: never; + } + + /** + *

The details of a data lineage node type.

+ * @public + */ + export interface LineageNodeTypeItemMember { + assetTypeItem?: never; + formTypeItem?: never; + lineageNodeTypeItem: LineageNodeTypeItem; $unknown?: never; } @@ -2564,18 +2857,21 @@ export namespace SearchTypesResultItem { export interface $UnknownMember { assetTypeItem?: never; formTypeItem?: never; + lineageNodeTypeItem?: never; $unknown: [string, any]; } export interface Visitor { assetTypeItem: (value: AssetTypeItem) => T; formTypeItem: (value: FormTypeData) => T; + lineageNodeTypeItem: (value: LineageNodeTypeItem) => T; _: (name: string, value: any) => T; } export const visit = (value: SearchTypesResultItem, visitor: Visitor): T => { if (value.assetTypeItem !== undefined) return visitor.assetTypeItem(value.assetTypeItem); if (value.formTypeItem !== undefined) return visitor.formTypeItem(value.formTypeItem); + if (value.lineageNodeTypeItem !== undefined) return visitor.lineageNodeTypeItem(value.lineageNodeTypeItem); return visitor._(value.$unknown[0], value.$unknown[1]); }; } @@ -4052,6 +4348,26 @@ export interface SearchTypesInput { managed: boolean | undefined; } +/** + * @internal + */ +export const NotificationOutputFilterSensitiveLog = (obj: NotificationOutput): any => ({ + ...obj, + ...(obj.title && { title: SENSITIVE_STRING }), + ...(obj.message && { message: SENSITIVE_STRING }), + ...(obj.actionLink && { actionLink: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const ListNotificationsOutputFilterSensitiveLog = (obj: ListNotificationsOutput): any => ({ + ...obj, + ...(obj.notifications && { + notifications: obj.notifications.map((item) => NotificationOutputFilterSensitiveLog(item)), + }), +}); + /** * @internal */ @@ -4135,6 +4451,14 @@ export const ListSubscriptionTargetsOutputFilterSensitiveLog = (obj: ListSubscri ...(obj.items && { items: obj.items.map((item) => SubscriptionTargetSummaryFilterSensitiveLog(item)) }), }); +/** + * @internal + */ +export const PostLineageEventInputFilterSensitiveLog = (obj: PostLineageEventInput): any => ({ + ...obj, + ...(obj.event && { event: SENSITIVE_STRING }), +}); + /** * @internal */ @@ -4260,12 +4584,29 @@ export const FormTypeDataFilterSensitiveLog = (obj: FormTypeData): any => ({ ...(obj.imports && { imports: obj.imports.map((item) => ImportFilterSensitiveLog(item)) }), }); +/** + * @internal + */ +export const LineageNodeTypeItemFilterSensitiveLog = (obj: LineageNodeTypeItem): any => ({ + ...obj, + ...(obj.formsOutput && { + formsOutput: Object.entries(obj.formsOutput).reduce( + (acc: any, [key, value]: [string, FormEntryOutput]) => ( + (acc[key] = FormEntryOutputFilterSensitiveLog(value)), acc + ), + {} + ), + }), +}); + /** * @internal */ export const SearchTypesResultItemFilterSensitiveLog = (obj: SearchTypesResultItem): any => { if (obj.assetTypeItem !== undefined) return { assetTypeItem: AssetTypeItemFilterSensitiveLog(obj.assetTypeItem) }; if (obj.formTypeItem !== undefined) return { formTypeItem: FormTypeDataFilterSensitiveLog(obj.formTypeItem) }; + if (obj.lineageNodeTypeItem !== undefined) + return { lineageNodeTypeItem: LineageNodeTypeItemFilterSensitiveLog(obj.lineageNodeTypeItem) }; if (obj.$unknown !== undefined) return { [obj.$unknown[0]]: "UNKNOWN" }; }; diff --git a/clients/client-datazone/src/pagination/ListLineageNodeHistoryPaginator.ts b/clients/client-datazone/src/pagination/ListLineageNodeHistoryPaginator.ts new file mode 100644 index 000000000000..46588723253e --- /dev/null +++ b/clients/client-datazone/src/pagination/ListLineageNodeHistoryPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { + ListLineageNodeHistoryCommand, + ListLineageNodeHistoryCommandInput, + ListLineageNodeHistoryCommandOutput, +} from "../commands/ListLineageNodeHistoryCommand"; +import { DataZoneClient } from "../DataZoneClient"; +import { DataZonePaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListLineageNodeHistory: ( + config: DataZonePaginationConfiguration, + input: ListLineageNodeHistoryCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + DataZonePaginationConfiguration, + ListLineageNodeHistoryCommandInput, + ListLineageNodeHistoryCommandOutput +>(DataZoneClient, ListLineageNodeHistoryCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-datazone/src/pagination/index.ts b/clients/client-datazone/src/pagination/index.ts index 2d453c39f01c..80a867737ff5 100644 --- a/clients/client-datazone/src/pagination/index.ts +++ b/clients/client-datazone/src/pagination/index.ts @@ -10,6 +10,7 @@ export * from "./ListEnvironmentBlueprintConfigurationsPaginator"; export * from "./ListEnvironmentBlueprintsPaginator"; export * from "./ListEnvironmentProfilesPaginator"; export * from "./ListEnvironmentsPaginator"; +export * from "./ListLineageNodeHistoryPaginator"; export * from "./ListMetadataGenerationRunsPaginator"; export * from "./ListNotificationsPaginator"; export * from "./ListProjectMembershipsPaginator"; diff --git a/clients/client-datazone/src/protocols/Aws_restJson1.ts b/clients/client-datazone/src/protocols/Aws_restJson1.ts index 5bf378837faa..aa81428632a9 100644 --- a/clients/client-datazone/src/protocols/Aws_restJson1.ts +++ b/clients/client-datazone/src/protocols/Aws_restJson1.ts @@ -167,6 +167,7 @@ import { GetIamPortalLoginUrlCommandInput, GetIamPortalLoginUrlCommandOutput, } from "../commands/GetIamPortalLoginUrlCommand"; +import { GetLineageNodeCommandInput, GetLineageNodeCommandOutput } from "../commands/GetLineageNodeCommand"; import { GetListingCommandInput, GetListingCommandOutput } from "../commands/GetListingCommand"; import { GetMetadataGenerationRunCommandInput, @@ -216,6 +217,10 @@ import { ListEnvironmentProfilesCommandOutput, } from "../commands/ListEnvironmentProfilesCommand"; import { ListEnvironmentsCommandInput, ListEnvironmentsCommandOutput } from "../commands/ListEnvironmentsCommand"; +import { + ListLineageNodeHistoryCommandInput, + ListLineageNodeHistoryCommandOutput, +} from "../commands/ListLineageNodeHistoryCommand"; import { ListMetadataGenerationRunsCommandInput, ListMetadataGenerationRunsCommandOutput, @@ -247,6 +252,7 @@ import { ListTimeSeriesDataPointsCommandInput, ListTimeSeriesDataPointsCommandOutput, } from "../commands/ListTimeSeriesDataPointsCommand"; +import { PostLineageEventCommandInput, PostLineageEventCommandOutput } from "../commands/PostLineageEventCommand"; import { PostTimeSeriesDataPointsCommandInput, PostTimeSeriesDataPointsCommandOutput, @@ -339,11 +345,12 @@ import { GlueRunConfigurationInput, GrantedEntityInput, InternalServerException, + LineageNodeReference, + LineageNodeSummary, ListingItem, ListingRevisionInput, Member, Model, - NotificationOutput, PredictionConfiguration, RecommendationConfiguration, RedshiftClusterStorage, @@ -374,8 +381,10 @@ import { FormTypeData, GlossaryItem, GlossaryTermItem, + LineageNodeTypeItem, MetadataGenerationRunItem, MetadataGenerationRunTarget, + NotificationOutput, ProjectSummary, RejectChoice, RejectRule, @@ -1647,6 +1656,26 @@ export const se_GetIamPortalLoginUrlCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1GetLineageNodeCommand + */ +export const se_GetLineageNodeCommand = async ( + input: GetLineageNodeCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/v2/domains/{domainIdentifier}/lineage/nodes/{identifier}"); + b.p("domainIdentifier", () => input.domainIdentifier!, "{domainIdentifier}", false); + b.p("identifier", () => input.identifier!, "{identifier}", false); + const query: any = map({ + [_t]: [() => input.eventTimestamp !== void 0, () => __serializeDateTime(input[_eT]!).toString()], + }); + let body: any; + b.m("GET").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1GetListingCommand */ @@ -1805,7 +1834,7 @@ export const se_GetUserProfileCommand = async ( b.p("domainIdentifier", () => input.domainIdentifier!, "{domainIdentifier}", false); b.p("userIdentifier", () => input.userIdentifier!, "{userIdentifier}", false); const query: any = map({ - [_t]: [, input[_t]!], + [_ty]: [, input[_ty]!], }); let body: any; b.m("GET").h(headers).q(query).b(body); @@ -1891,7 +1920,7 @@ export const se_ListDataSourcesCommand = async ( const query: any = map({ [_pI]: [, __expectNonNull(input[_pI]!, `projectIdentifier`)], [_eI]: [, input[_eI]!], - [_t]: [, input[_t]!], + [_ty]: [, input[_ty]!], [_s]: [, input[_s]!], [_n]: [, input[_n]!], [_nT]: [, input[_nT]!], @@ -2038,6 +2067,31 @@ export const se_ListEnvironmentsCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1ListLineageNodeHistoryCommand + */ +export const se_ListLineageNodeHistoryCommand = async ( + input: ListLineageNodeHistoryCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/v2/domains/{domainIdentifier}/lineage/nodes/{identifier}/history"); + b.p("domainIdentifier", () => input.domainIdentifier!, "{domainIdentifier}", false); + b.p("identifier", () => input.identifier!, "{identifier}", false); + const query: any = map({ + [_mR]: [() => input.maxResults !== void 0, () => input[_mR]!.toString()], + [_nT]: [, input[_nT]!], + [_d]: [, input[_d]!], + [_tGTE]: [() => input.eventTimestampGTE !== void 0, () => __serializeDateTime(input[_eTGTE]!).toString()], + [_tLTE]: [() => input.eventTimestampLTE !== void 0, () => __serializeDateTime(input[_eTLTE]!).toString()], + [_sO]: [, input[_sO]!], + }); + let body: any; + b.m("GET").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1ListMetadataGenerationRunsCommand */ @@ -2051,7 +2105,7 @@ export const se_ListMetadataGenerationRunsCommand = async ( b.p("domainIdentifier", () => input.domainIdentifier!, "{domainIdentifier}", false); const query: any = map({ [_s]: [, input[_s]!], - [_t]: [, input[_t]!], + [_ty]: [, input[_ty]!], [_nT]: [, input[_nT]!], [_mR]: [() => input.maxResults !== void 0, () => input[_mR]!.toString()], }); @@ -2072,7 +2126,7 @@ export const se_ListNotificationsCommand = async ( b.bp("/v2/domains/{domainIdentifier}/notifications"); b.p("domainIdentifier", () => input.domainIdentifier!, "{domainIdentifier}", false); const query: any = map({ - [_t]: [, __expectNonNull(input[_t]!, `type`)], + [_ty]: [, __expectNonNull(input[_ty]!, `type`)], [_aT]: [() => input.afterTimestamp !== void 0, () => __serializeDateTime(input[_aT]!).toString()], [_bT]: [() => input.beforeTimestamp !== void 0, () => __serializeDateTime(input[_bT]!).toString()], [_su]: [() => input.subjects !== void 0, () => (input[_su]! || []).map((_entry) => _entry as any)], @@ -2274,6 +2328,30 @@ export const se_ListTimeSeriesDataPointsCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1PostLineageEventCommand + */ +export const se_PostLineageEventCommand = async ( + input: PostLineageEventCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/octet-stream", + }; + b.bp("/v2/domains/{domainIdentifier}/lineage/events"); + b.p("domainIdentifier", () => input.domainIdentifier!, "{domainIdentifier}", false); + const query: any = map({ + [_cT]: [, input[_cT] ?? generateIdempotencyToken()], + }); + let body: any; + if (input.event !== undefined) { + body = input.event; + } + b.m("POST").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1PostTimeSeriesDataPointsCommand */ @@ -4533,6 +4611,41 @@ export const de_GetIamPortalLoginUrlCommand = async ( return contents; }; +/** + * deserializeAws_restJson1GetLineageNodeCommand + */ +export const de_GetLineageNodeCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + createdAt: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + createdBy: __expectString, + description: __expectString, + domainId: __expectString, + downstreamNodes: (_) => de_LineageNodeReferenceList(_, context), + eventTimestamp: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + formsOutput: _json, + id: __expectString, + name: __expectString, + sourceIdentifier: __expectString, + typeName: __expectString, + typeRevision: __expectString, + updatedAt: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + updatedBy: __expectString, + upstreamNodes: (_) => de_LineageNodeReferenceList(_, context), + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1GetListingCommand */ @@ -5021,6 +5134,28 @@ export const de_ListEnvironmentsCommand = async ( return contents; }; +/** + * deserializeAws_restJson1ListLineageNodeHistoryCommand + */ +export const de_ListLineageNodeHistoryCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + nextToken: __expectString, + nodes: (_) => de_LineageNodeSummaries(_, context), + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1ListMetadataGenerationRunsCommand */ @@ -5240,6 +5375,23 @@ export const de_ListTimeSeriesDataPointsCommand = async ( return contents; }; +/** + * deserializeAws_restJson1PostLineageEventCommand + */ +export const de_PostLineageEventCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + await collectBody(output.body, context); + return contents; +}; + /** * deserializeAws_restJson1PostTimeSeriesDataPointsCommand */ @@ -6900,6 +7052,77 @@ const de_GlossaryTermItem = (output: any, context: __SerdeContext): GlossaryTerm // de_ImportList omitted. +/** + * deserializeAws_restJson1LineageNodeReference + */ +const de_LineageNodeReference = (output: any, context: __SerdeContext): LineageNodeReference => { + return take(output, { + eventTimestamp: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + id: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1LineageNodeReferenceList + */ +const de_LineageNodeReferenceList = (output: any, context: __SerdeContext): LineageNodeReference[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_LineageNodeReference(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1LineageNodeSummaries + */ +const de_LineageNodeSummaries = (output: any, context: __SerdeContext): LineageNodeSummary[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_LineageNodeSummary(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1LineageNodeSummary + */ +const de_LineageNodeSummary = (output: any, context: __SerdeContext): LineageNodeSummary => { + return take(output, { + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + createdBy: __expectString, + description: __expectString, + domainId: __expectString, + eventTimestamp: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + id: __expectString, + name: __expectString, + sourceIdentifier: __expectString, + typeName: __expectString, + typeRevision: __expectString, + updatedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + updatedBy: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1LineageNodeTypeItem + */ +const de_LineageNodeTypeItem = (output: any, context: __SerdeContext): LineageNodeTypeItem => { + return take(output, { + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + createdBy: __expectString, + description: __expectString, + domainId: __expectString, + formsOutput: _json, + name: __expectString, + revision: __expectString, + updatedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + updatedBy: __expectString, + }) as any; +}; + // de_ListEnvironmentActionSummaries omitted. /** @@ -7131,6 +7354,11 @@ const de_SearchTypesResultItem = (output: any, context: __SerdeContext): SearchT formTypeItem: de_FormTypeData(output.formTypeItem, context), }; } + if (output.lineageNodeTypeItem != null) { + return { + lineageNodeTypeItem: de_LineageNodeTypeItem(output.lineageNodeTypeItem, context), + }; + } return { $unknown: Object.entries(output)[0] }; }; @@ -7430,11 +7658,15 @@ const _aPI = "approverProjectId"; const _aT = "afterTimestamp"; const _bT = "beforeTimestamp"; const _cT = "clientToken"; +const _d = "direction"; const _eA = "endedAt"; const _eBI = "environmentBlueprintIdentifier"; const _eI = "environmentIdentifier"; const _eIn = "environmentId"; const _ePI = "environmentProfileIdentifier"; +const _eT = "eventTimestamp"; +const _eTGTE = "eventTimestampGTE"; +const _eTLTE = "eventTimestampLTE"; const _fN = "formName"; const _gI = "groupIdentifier"; const _lR = "listingRevision"; @@ -7457,7 +7689,10 @@ const _sO = "sortOrder"; const _sRI = "subscriptionRequestIdentifier"; const _sTI = "subscriptionTargetId"; const _su = "subjects"; -const _t = "type"; +const _t = "timestamp"; +const _tGTE = "timestampGTE"; const _tK = "tagKeys"; +const _tLTE = "timestampLTE"; const _tS = "taskStatus"; +const _ty = "type"; const _uI = "userIdentifier"; diff --git a/codegen/sdk-codegen/aws-models/datazone.json b/codegen/sdk-codegen/aws-models/datazone.json index 0f7b779a7f19..d6dfe1378a03 100644 --- a/codegen/sdk-codegen/aws-models/datazone.json +++ b/codegen/sdk-codegen/aws-models/datazone.json @@ -5781,6 +5781,9 @@ { "target": "com.amazonaws.datazone#GetIamPortalLoginUrl" }, + { + "target": "com.amazonaws.datazone#GetLineageNode" + }, { "target": "com.amazonaws.datazone#GetProject" }, @@ -5820,6 +5823,9 @@ { "target": "com.amazonaws.datazone#ListEnvironments" }, + { + "target": "com.amazonaws.datazone#ListLineageNodeHistory" + }, { "target": "com.amazonaws.datazone#ListNotifications" }, @@ -5847,6 +5853,9 @@ { "target": "com.amazonaws.datazone#ListTimeSeriesDataPoints" }, + { + "target": "com.amazonaws.datazone#PostLineageEvent" + }, { "target": "com.amazonaws.datazone#PostTimeSeriesDataPoints" }, @@ -8299,6 +8308,23 @@ "smithy.api#documentation": "

A summary of a Amazon DataZone domain.

" } }, + "com.amazonaws.datazone#EdgeDirection": { + "type": "enum", + "members": { + "UPSTREAM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UPSTREAM" + } + }, + "DOWNSTREAM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOWNSTREAM" + } + } + } + }, "com.amazonaws.datazone#EditedValue": { "type": "string", "traits": { @@ -9201,7 +9227,7 @@ "traits": { "smithy.api#documentation": "

The content of the metadata form.

", "smithy.api#length": { - "max": 150000 + "max": 300000 } } } @@ -11640,6 +11666,173 @@ "smithy.api#output": {} } }, + "com.amazonaws.datazone#GetLineageNode": { + "type": "operation", + "input": { + "target": "com.amazonaws.datazone#GetLineageNodeInput" + }, + "output": { + "target": "com.amazonaws.datazone#GetLineageNodeOutput" + }, + "errors": [ + { + "target": "com.amazonaws.datazone#AccessDeniedException" + }, + { + "target": "com.amazonaws.datazone#InternalServerException" + }, + { + "target": "com.amazonaws.datazone#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.datazone#ThrottlingException" + }, + { + "target": "com.amazonaws.datazone#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Gets the data lineage node.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/v2/domains/{domainIdentifier}/lineage/nodes/{identifier}" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.datazone#GetLineageNodeInput": { + "type": "structure", + "members": { + "domainIdentifier": { + "target": "com.amazonaws.datazone#DomainId", + "traits": { + "smithy.api#documentation": "

The ID of the domain in which you want to get the data lineage node.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "identifier": { + "target": "com.amazonaws.datazone#LineageNodeIdentifier", + "traits": { + "smithy.api#documentation": "

The ID of the data lineage node that you want to get.

\n

Both, a lineage node identifier generated by Amazon DataZone and a\n sourceIdentifier of the lineage node are supported. If\n sourceIdentifier is greater than 1800 characters, you can use lineage node\n identifier generated by Amazon DataZone to get the node details.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "eventTimestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The event time stamp for which you want to get the data lineage node.

", + "smithy.api#httpQuery": "timestamp" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.datazone#GetLineageNodeOutput": { + "type": "structure", + "members": { + "domainId": { + "target": "com.amazonaws.datazone#DomainId", + "traits": { + "smithy.api#documentation": "

The ID of the domain where you're getting the data lineage node.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the data lineage node.

" + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The description of the data lineage node.

" + } + }, + "createdAt": { + "target": "com.amazonaws.datazone#CreatedAt", + "traits": { + "smithy.api#documentation": "

The timestamp at which the data lineage node was created.

" + } + }, + "createdBy": { + "target": "com.amazonaws.datazone#CreatedBy", + "traits": { + "smithy.api#documentation": "

The user who created the data lineage node.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.datazone#UpdatedAt", + "traits": { + "smithy.api#documentation": "

The timestamp at which the data lineage node was updated.

" + } + }, + "updatedBy": { + "target": "com.amazonaws.datazone#UpdatedBy", + "traits": { + "smithy.api#documentation": "

The user who updated the data lineage node.

" + } + }, + "id": { + "target": "com.amazonaws.datazone#LineageNodeId", + "traits": { + "smithy.api#documentation": "

The ID of the data lineage node.

", + "smithy.api#required": {} + } + }, + "typeName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the type of the specified data lineage node.

", + "smithy.api#required": {} + } + }, + "typeRevision": { + "target": "com.amazonaws.datazone#Revision", + "traits": { + "smithy.api#documentation": "

The revision type of the specified data lineage node.

" + } + }, + "sourceIdentifier": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The source identifier of the data lineage node.

" + } + }, + "eventTimestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of the event described in the data lineage node.

" + } + }, + "formsOutput": { + "target": "com.amazonaws.datazone#FormOutputList", + "traits": { + "smithy.api#documentation": "

The metadata of the specified data lineage node.

" + } + }, + "upstreamNodes": { + "target": "com.amazonaws.datazone#LineageNodeReferenceList", + "traits": { + "smithy.api#documentation": "

The upstream nodes of the specified data lineage node.

" + } + }, + "downstreamNodes": { + "target": "com.amazonaws.datazone#LineageNodeReferenceList", + "traits": { + "smithy.api#documentation": "

The downsteam nodes of the specified data lineage node.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.datazone#GetListing": { "type": "operation", "input": { @@ -13583,6 +13776,215 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.datazone#LineageEvent": { + "type": "blob", + "traits": { + "smithy.api#length": { + "max": 300000 + }, + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.datazone#LineageNodeId": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[a-zA-Z0-9_-]{1,36}$" + } + }, + "com.amazonaws.datazone#LineageNodeIdentifier": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2086 + } + } + }, + "com.amazonaws.datazone#LineageNodeReference": { + "type": "structure", + "members": { + "id": { + "target": "com.amazonaws.datazone#LineageNodeId", + "traits": { + "smithy.api#documentation": "

The ID of the data lineage node.

" + } + }, + "eventTimestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The event timestamp of the data lineage node.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The reference details for the data lineage node.

" + } + }, + "com.amazonaws.datazone#LineageNodeReferenceList": { + "type": "list", + "member": { + "target": "com.amazonaws.datazone#LineageNodeReference" + }, + "traits": { + "smithy.api#length": { + "max": 100 + } + } + }, + "com.amazonaws.datazone#LineageNodeSummaries": { + "type": "list", + "member": { + "target": "com.amazonaws.datazone#LineageNodeSummary" + } + }, + "com.amazonaws.datazone#LineageNodeSummary": { + "type": "structure", + "members": { + "domainId": { + "target": "com.amazonaws.datazone#DomainId", + "traits": { + "smithy.api#documentation": "

The ID of the domain of the data lineage node.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the data lineage node.

" + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The description of the data lineage node.

" + } + }, + "createdAt": { + "target": "com.amazonaws.datazone#CreatedAt", + "traits": { + "smithy.api#documentation": "

The timestamp at which the data lineage node was created.

" + } + }, + "createdBy": { + "target": "com.amazonaws.datazone#CreatedBy", + "traits": { + "smithy.api#documentation": "

The user who created the data lineage node.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.datazone#UpdatedAt", + "traits": { + "smithy.api#documentation": "

The timestamp at which the data lineage node was updated.

" + } + }, + "updatedBy": { + "target": "com.amazonaws.datazone#UpdatedBy", + "traits": { + "smithy.api#documentation": "

The user who updated the data lineage node.

" + } + }, + "id": { + "target": "com.amazonaws.datazone#LineageNodeId", + "traits": { + "smithy.api#documentation": "

The ID of the data lineage node.

", + "smithy.api#required": {} + } + }, + "typeName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the type of the data lineage node.

", + "smithy.api#required": {} + } + }, + "typeRevision": { + "target": "com.amazonaws.datazone#Revision", + "traits": { + "smithy.api#documentation": "

The type of the revision of the data lineage node.

" + } + }, + "sourceIdentifier": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The alternate ID of the data lineage node.

" + } + }, + "eventTimestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

The event timestamp of the data lineage node.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

The summary of the data lineage node.

" + } + }, + "com.amazonaws.datazone#LineageNodeTypeItem": { + "type": "structure", + "members": { + "domainId": { + "target": "com.amazonaws.datazone#DomainId", + "traits": { + "smithy.api#documentation": "

The ID of the domain where the data lineage node type lives.

", + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The name of the data lineage node type.

" + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The description of the data lineage node type.

" + } + }, + "createdAt": { + "target": "com.amazonaws.datazone#CreatedAt", + "traits": { + "smithy.api#documentation": "

The timestamp at which the data lineage node type was created.

" + } + }, + "createdBy": { + "target": "com.amazonaws.datazone#CreatedBy", + "traits": { + "smithy.api#documentation": "

The user who created the data lineage node type.

" + } + }, + "updatedAt": { + "target": "com.amazonaws.datazone#UpdatedAt", + "traits": { + "smithy.api#documentation": "

The timestamp at which the data lineage node type was updated.

" + } + }, + "updatedBy": { + "target": "com.amazonaws.datazone#UpdatedBy", + "traits": { + "smithy.api#documentation": "

The user who updated the data lineage node type.

" + } + }, + "revision": { + "target": "com.amazonaws.datazone#Revision", + "traits": { + "smithy.api#documentation": "

The revision of the data lineage node type.

", + "smithy.api#required": {} + } + }, + "formsOutput": { + "target": "com.amazonaws.datazone#FormsOutputMap", + "traits": { + "smithy.api#documentation": "

The forms output of the data lineage node type.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The details of a data lineage node type.

" + } + }, "com.amazonaws.datazone#ListAssetRevisions": { "type": "operation", "input": { @@ -14701,6 +15103,133 @@ "smithy.api#output": {} } }, + "com.amazonaws.datazone#ListLineageNodeHistory": { + "type": "operation", + "input": { + "target": "com.amazonaws.datazone#ListLineageNodeHistoryInput" + }, + "output": { + "target": "com.amazonaws.datazone#ListLineageNodeHistoryOutput" + }, + "errors": [ + { + "target": "com.amazonaws.datazone#AccessDeniedException" + }, + { + "target": "com.amazonaws.datazone#InternalServerException" + }, + { + "target": "com.amazonaws.datazone#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.datazone#ThrottlingException" + }, + { + "target": "com.amazonaws.datazone#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists the history of the specified data lineage node.

", + "smithy.api#http": { + "code": 200, + "method": "GET", + "uri": "/v2/domains/{domainIdentifier}/lineage/nodes/{identifier}/history" + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "nodes" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.datazone#ListLineageNodeHistoryInput": { + "type": "structure", + "members": { + "domainIdentifier": { + "target": "com.amazonaws.datazone#DomainId", + "traits": { + "smithy.api#documentation": "

The ID of the domain where you want to list the history of the specified data lineage\n node.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "maxResults": { + "target": "com.amazonaws.datazone#MaxResults", + "traits": { + "smithy.api#documentation": "

The maximum number of history items to return in a single call to\n ListLineageNodeHistory. When the number of memberships to be listed is greater than the\n value of MaxResults, the response contains a NextToken value that you can use in a\n subsequent call to ListLineageNodeHistory to list the next set of items.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "nextToken": { + "target": "com.amazonaws.datazone#PaginationToken", + "traits": { + "smithy.api#documentation": "

When the number of history items is greater than the default value for the MaxResults\n parameter, or if you explicitly specify a value for MaxResults that is less than the number\n of items, the response includes a pagination token named NextToken. You can specify this\n NextToken value in a subsequent call to ListLineageNodeHistory to list the next set of\n items.

", + "smithy.api#httpQuery": "nextToken" + } + }, + "identifier": { + "target": "com.amazonaws.datazone#LineageNodeIdentifier", + "traits": { + "smithy.api#documentation": "

The ID of the data lineage node whose history you want to list.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "direction": { + "target": "com.amazonaws.datazone#EdgeDirection", + "traits": { + "smithy.api#documentation": "

The direction of the data lineage node refers to the lineage node having neighbors in\n that direction. For example, if direction is UPSTREAM, the\n ListLineageNodeHistory API responds with historical versions with upstream\n neighbors only.

", + "smithy.api#httpQuery": "direction" + } + }, + "eventTimestampGTE": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

Specifies whether the action is to return data lineage node history from the time after\n the event timestamp.

", + "smithy.api#httpQuery": "timestampGTE" + } + }, + "eventTimestampLTE": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

Specifies whether the action is to return data lineage node history from the time prior\n of the event timestamp.

", + "smithy.api#httpQuery": "timestampLTE" + } + }, + "sortOrder": { + "target": "com.amazonaws.datazone#SortOrder", + "traits": { + "smithy.api#documentation": "

The order by which you want data lineage node history to be sorted.

", + "smithy.api#httpQuery": "sortOrder" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.datazone#ListLineageNodeHistoryOutput": { + "type": "structure", + "members": { + "nodes": { + "target": "com.amazonaws.datazone#LineageNodeSummaries", + "traits": { + "smithy.api#documentation": "

The nodes returned by the ListLineageNodeHistory action.

" + } + }, + "nextToken": { + "target": "com.amazonaws.datazone#PaginationToken", + "traits": { + "smithy.api#documentation": "

When the number of history items is greater than the default value for the MaxResults\n parameter, or if you explicitly specify a value for MaxResults that is less than the number\n of items, the response includes a pagination token named NextToken. You can specify this\n NextToken value in a subsequent call to ListLineageNodeHistory to list the next set of\n items.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.datazone#ListMetadataGenerationRuns": { "type": "operation", "input": { @@ -16524,6 +17053,86 @@ } } }, + "com.amazonaws.datazone#PostLineageEvent": { + "type": "operation", + "input": { + "target": "com.amazonaws.datazone#PostLineageEventInput" + }, + "output": { + "target": "com.amazonaws.datazone#PostLineageEventOutput" + }, + "errors": [ + { + "target": "com.amazonaws.datazone#AccessDeniedException" + }, + { + "target": "com.amazonaws.datazone#ConflictException" + }, + { + "target": "com.amazonaws.datazone#InternalServerException" + }, + { + "target": "com.amazonaws.datazone#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.datazone#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.datazone#ThrottlingException" + }, + { + "target": "com.amazonaws.datazone#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

Posts a data lineage event.

", + "smithy.api#http": { + "code": 200, + "method": "POST", + "uri": "/v2/domains/{domainIdentifier}/lineage/events" + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.datazone#PostLineageEventInput": { + "type": "structure", + "members": { + "domainIdentifier": { + "target": "com.amazonaws.datazone#DomainId", + "traits": { + "smithy.api#documentation": "

The ID of the domain where you want to post a data lineage event.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "event": { + "target": "com.amazonaws.datazone#LineageEvent", + "traits": { + "smithy.api#documentation": "

The data lineage event that you want to post. Only open-lineage run event are supported\n as events.

", + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + }, + "clientToken": { + "target": "com.amazonaws.datazone#ClientToken", + "traits": { + "smithy.api#documentation": "

A unique, case-sensitive identifier that is provided to ensure the idempotency of the\n request.

", + "smithy.api#httpQuery": "clientToken", + "smithy.api#idempotencyToken": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.datazone#PostLineageEventOutput": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.datazone#PostTimeSeriesDataPoints": { "type": "operation", "input": { @@ -18526,6 +19135,12 @@ "traits": { "smithy.api#documentation": "

The form type included in the results of the SearchTypes action.

" } + }, + "lineageNodeTypeItem": { + "target": "com.amazonaws.datazone#LineageNodeTypeItem", + "traits": { + "smithy.api#documentation": "

The details of a data lineage node type.

" + } } }, "traits": { @@ -20866,6 +21481,12 @@ "traits": { "smithy.api#enumValue": "FORM_TYPE" } + }, + "LINEAGE_NODE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LINEAGE_NODE_TYPE" + } } } },