diff --git a/clients/client-securitylake/README.md b/clients/client-securitylake/README.md index 33051aa44d95..f6400cdf28f2 100644 --- a/clients/client-securitylake/README.md +++ b/clients/client-securitylake/README.md @@ -6,14 +6,9 @@ AWS SDK for JavaScript SecurityLake Client for Node.js, Browser and React Native. - -

Amazon Security Lake is in preview release. Your use of the Security Lake preview is subject to -Section 2 of the Amazon Web Services Service -Terms("Betas and Previews").

-

Amazon Security Lake is a fully managed security data lake service. You can use Security Lake to automatically centralize security data from cloud, on-premises, and custom sources into a -data lake that's stored in your Amazon Web Servicesaccount. Amazon Web Services Organizations +data lake that's stored in your Amazon Web Services account. Amazon Web Services Organizations is an account management service that lets you consolidate multiple Amazon Web Services accounts into an organization that you create and centrally manage. With Organizations, you can create member accounts and invite existing accounts to join your organization. @@ -21,9 +16,9 @@ Security Lake helps you analyze security data for a more complete understanding security posture across the entire organization. It can also help you improve the protection of your workloads, applications, and data.

The data lake is backed by Amazon Simple Storage Service (Amazon S3) buckets, and you -retain ownership over your data.

+retain ownership over your data.

Amazon Security Lake integrates with CloudTrail, a service that provides a record of -actions taken by a user, role, or an Amazon Web Services service in Security Lake CloudTrail captures API calls for Security Lake as events. The calls captured include calls +actions taken by a user, role, or an Amazon Web Services service. In Security Lake, CloudTrail captures API calls for Security Lake as events. The calls captured include calls from the Security Lake console and code calls to the Security Lake API operations. If you create a trail, you can enable continuous delivery of CloudTrail events to an Amazon S3 bucket, including events for Security Lake. If you don't configure a trail, you can still view the most recent events in the CloudTrail console in Event history. Using the @@ -251,7 +246,7 @@ CreateCustomLogSource

-CreateDatalake +CreateDataLake [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/createdatalakecommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakecommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakecommandoutput.html) @@ -259,26 +254,18 @@ CreateDatalake
-CreateDatalakeAutoEnable +CreateDataLakeExceptionSubscription -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/createdatalakeautoenablecommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakeautoenablecommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakeautoenablecommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/createdatalakeexceptionsubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakeexceptionsubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakeexceptionsubscriptioncommandoutput.html)
-CreateDatalakeDelegatedAdmin +CreateDataLakeOrganizationConfiguration -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/createdatalakedelegatedadmincommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakedelegatedadmincommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakedelegatedadmincommandoutput.html) - -
-
- -CreateDatalakeExceptionsSubscription - - -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/createdatalakeexceptionssubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakeexceptionssubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakeexceptionssubscriptioncommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/createdatalakeorganizationconfigurationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakeorganizationconfigurationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createdatalakeorganizationconfigurationcommandoutput.html)
@@ -291,10 +278,10 @@ CreateSubscriber
-CreateSubscriptionNotificationConfiguration +CreateSubscriberNotification -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/createsubscriptionnotificationconfigurationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createsubscriptionnotificationconfigurationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createsubscriptionnotificationconfigurationcommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/createsubscribernotificationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createsubscribernotificationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/createsubscribernotificationcommandoutput.html)
@@ -315,7 +302,7 @@ DeleteCustomLogSource
-DeleteDatalake +DeleteDataLake [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/deletedatalakecommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakecommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakecommandoutput.html) @@ -323,26 +310,18 @@ DeleteDatalake
-DeleteDatalakeAutoEnable - - -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/deletedatalakeautoenablecommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakeautoenablecommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakeautoenablecommandoutput.html) - -
-
- -DeleteDatalakeDelegatedAdmin +DeleteDataLakeExceptionSubscription -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/deletedatalakedelegatedadmincommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakedelegatedadmincommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakedelegatedadmincommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/deletedatalakeexceptionsubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakeexceptionsubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakeexceptionsubscriptioncommandoutput.html)
-DeleteDatalakeExceptionsSubscription +DeleteDataLakeOrganizationConfiguration -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/deletedatalakeexceptionssubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakeexceptionssubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakeexceptionssubscriptioncommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/deletedatalakeorganizationconfigurationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakeorganizationconfigurationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletedatalakeorganizationconfigurationcommandoutput.html)
@@ -355,66 +334,66 @@ DeleteSubscriber
-DeleteSubscriptionNotificationConfiguration +DeleteSubscriberNotification -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/deletesubscriptionnotificationconfigurationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletesubscriptionnotificationconfigurationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletesubscriptionnotificationconfigurationcommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/deletesubscribernotificationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletesubscribernotificationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deletesubscribernotificationcommandoutput.html)
-GetDatalake +DeregisterDataLakeDelegatedAdministrator -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/getdatalakecommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakecommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakecommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/deregisterdatalakedelegatedadministratorcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deregisterdatalakedelegatedadministratorcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/deregisterdatalakedelegatedadministratorcommandoutput.html)
-GetDatalakeAutoEnable +GetDataLakeExceptionSubscription -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/getdatalakeautoenablecommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakeautoenablecommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakeautoenablecommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/getdatalakeexceptionsubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakeexceptionsubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakeexceptionsubscriptioncommandoutput.html)
-GetDatalakeExceptionsExpiry +GetDataLakeOrganizationConfiguration -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/getdatalakeexceptionsexpirycommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakeexceptionsexpirycommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakeexceptionsexpirycommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/getdatalakeorganizationconfigurationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakeorganizationconfigurationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakeorganizationconfigurationcommandoutput.html)
-GetDatalakeExceptionsSubscription +GetDataLakeSources -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/getdatalakeexceptionssubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakeexceptionssubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakeexceptionssubscriptioncommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/getdatalakesourcescommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakesourcescommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakesourcescommandoutput.html)
-GetDatalakeStatus +GetSubscriber -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/getdatalakestatuscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakestatuscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getdatalakestatuscommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/getsubscribercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getsubscribercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getsubscribercommandoutput.html)
-GetSubscriber +ListDataLakeExceptions -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/getsubscribercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getsubscribercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/getsubscribercommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/listdatalakeexceptionscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/listdatalakeexceptionscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/listdatalakeexceptionscommandoutput.html)
-ListDatalakeExceptions +ListDataLakes -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/listdatalakeexceptionscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/listdatalakeexceptionscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/listdatalakeexceptionscommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/listdatalakescommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/listdatalakescommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/listdatalakescommandoutput.html)
@@ -435,26 +414,26 @@ ListSubscribers
-UpdateDatalake +RegisterDataLakeDelegatedAdministrator -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/updatedatalakecommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatedatalakecommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatedatalakecommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/registerdatalakedelegatedadministratorcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/registerdatalakedelegatedadministratorcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/registerdatalakedelegatedadministratorcommandoutput.html)
-UpdateDatalakeExceptionsExpiry +UpdateDataLake -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/updatedatalakeexceptionsexpirycommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatedatalakeexceptionsexpirycommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatedatalakeexceptionsexpirycommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/updatedatalakecommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatedatalakecommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatedatalakecommandoutput.html)
-UpdateDatalakeExceptionsSubscription +UpdateDataLakeExceptionSubscription -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/updatedatalakeexceptionssubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatedatalakeexceptionssubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatedatalakeexceptionssubscriptioncommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/updatedatalakeexceptionsubscriptioncommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatedatalakeexceptionsubscriptioncommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatedatalakeexceptionsubscriptioncommandoutput.html)
@@ -467,9 +446,9 @@ UpdateSubscriber
-UpdateSubscriptionNotificationConfiguration +UpdateSubscriberNotification -[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/updatesubscriptionnotificationconfigurationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatesubscriptionnotificationconfigurationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatesubscriptionnotificationconfigurationcommandoutput.html) +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/classes/updatesubscribernotificationcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatesubscribernotificationcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-securitylake/interfaces/updatesubscribernotificationcommandoutput.html)
diff --git a/clients/client-securitylake/src/SecurityLake.ts b/clients/client-securitylake/src/SecurityLake.ts index 69d30a9a9924..fe1f386dfefb 100644 --- a/clients/client-securitylake/src/SecurityLake.ts +++ b/clients/client-securitylake/src/SecurityLake.ts @@ -13,35 +13,30 @@ import { CreateCustomLogSourceCommandOutput, } from "./commands/CreateCustomLogSourceCommand"; import { - CreateDatalakeAutoEnableCommand, - CreateDatalakeAutoEnableCommandInput, - CreateDatalakeAutoEnableCommandOutput, -} from "./commands/CreateDatalakeAutoEnableCommand"; + CreateDataLakeCommand, + CreateDataLakeCommandInput, + CreateDataLakeCommandOutput, +} from "./commands/CreateDataLakeCommand"; import { - CreateDatalakeCommand, - CreateDatalakeCommandInput, - CreateDatalakeCommandOutput, -} from "./commands/CreateDatalakeCommand"; + CreateDataLakeExceptionSubscriptionCommand, + CreateDataLakeExceptionSubscriptionCommandInput, + CreateDataLakeExceptionSubscriptionCommandOutput, +} from "./commands/CreateDataLakeExceptionSubscriptionCommand"; import { - CreateDatalakeDelegatedAdminCommand, - CreateDatalakeDelegatedAdminCommandInput, - CreateDatalakeDelegatedAdminCommandOutput, -} from "./commands/CreateDatalakeDelegatedAdminCommand"; -import { - CreateDatalakeExceptionsSubscriptionCommand, - CreateDatalakeExceptionsSubscriptionCommandInput, - CreateDatalakeExceptionsSubscriptionCommandOutput, -} from "./commands/CreateDatalakeExceptionsSubscriptionCommand"; + CreateDataLakeOrganizationConfigurationCommand, + CreateDataLakeOrganizationConfigurationCommandInput, + CreateDataLakeOrganizationConfigurationCommandOutput, +} from "./commands/CreateDataLakeOrganizationConfigurationCommand"; import { CreateSubscriberCommand, CreateSubscriberCommandInput, CreateSubscriberCommandOutput, } from "./commands/CreateSubscriberCommand"; import { - CreateSubscriptionNotificationConfigurationCommand, - CreateSubscriptionNotificationConfigurationCommandInput, - CreateSubscriptionNotificationConfigurationCommandOutput, -} from "./commands/CreateSubscriptionNotificationConfigurationCommand"; + CreateSubscriberNotificationCommand, + CreateSubscriberNotificationCommandInput, + CreateSubscriberNotificationCommandOutput, +} from "./commands/CreateSubscriberNotificationCommand"; import { DeleteAwsLogSourceCommand, DeleteAwsLogSourceCommandInput, @@ -53,66 +48,65 @@ import { DeleteCustomLogSourceCommandOutput, } from "./commands/DeleteCustomLogSourceCommand"; import { - DeleteDatalakeAutoEnableCommand, - DeleteDatalakeAutoEnableCommandInput, - DeleteDatalakeAutoEnableCommandOutput, -} from "./commands/DeleteDatalakeAutoEnableCommand"; -import { - DeleteDatalakeCommand, - DeleteDatalakeCommandInput, - DeleteDatalakeCommandOutput, -} from "./commands/DeleteDatalakeCommand"; + DeleteDataLakeCommand, + DeleteDataLakeCommandInput, + DeleteDataLakeCommandOutput, +} from "./commands/DeleteDataLakeCommand"; import { - DeleteDatalakeDelegatedAdminCommand, - DeleteDatalakeDelegatedAdminCommandInput, - DeleteDatalakeDelegatedAdminCommandOutput, -} from "./commands/DeleteDatalakeDelegatedAdminCommand"; + DeleteDataLakeExceptionSubscriptionCommand, + DeleteDataLakeExceptionSubscriptionCommandInput, + DeleteDataLakeExceptionSubscriptionCommandOutput, +} from "./commands/DeleteDataLakeExceptionSubscriptionCommand"; import { - DeleteDatalakeExceptionsSubscriptionCommand, - DeleteDatalakeExceptionsSubscriptionCommandInput, - DeleteDatalakeExceptionsSubscriptionCommandOutput, -} from "./commands/DeleteDatalakeExceptionsSubscriptionCommand"; + DeleteDataLakeOrganizationConfigurationCommand, + DeleteDataLakeOrganizationConfigurationCommandInput, + DeleteDataLakeOrganizationConfigurationCommandOutput, +} from "./commands/DeleteDataLakeOrganizationConfigurationCommand"; import { DeleteSubscriberCommand, DeleteSubscriberCommandInput, DeleteSubscriberCommandOutput, } from "./commands/DeleteSubscriberCommand"; import { - DeleteSubscriptionNotificationConfigurationCommand, - DeleteSubscriptionNotificationConfigurationCommandInput, - DeleteSubscriptionNotificationConfigurationCommandOutput, -} from "./commands/DeleteSubscriptionNotificationConfigurationCommand"; + DeleteSubscriberNotificationCommand, + DeleteSubscriberNotificationCommandInput, + DeleteSubscriberNotificationCommandOutput, +} from "./commands/DeleteSubscriberNotificationCommand"; import { - GetDatalakeAutoEnableCommand, - GetDatalakeAutoEnableCommandInput, - GetDatalakeAutoEnableCommandOutput, -} from "./commands/GetDatalakeAutoEnableCommand"; -import { GetDatalakeCommand, GetDatalakeCommandInput, GetDatalakeCommandOutput } from "./commands/GetDatalakeCommand"; + DeregisterDataLakeDelegatedAdministratorCommand, + DeregisterDataLakeDelegatedAdministratorCommandInput, + DeregisterDataLakeDelegatedAdministratorCommandOutput, +} from "./commands/DeregisterDataLakeDelegatedAdministratorCommand"; import { - GetDatalakeExceptionsExpiryCommand, - GetDatalakeExceptionsExpiryCommandInput, - GetDatalakeExceptionsExpiryCommandOutput, -} from "./commands/GetDatalakeExceptionsExpiryCommand"; + GetDataLakeExceptionSubscriptionCommand, + GetDataLakeExceptionSubscriptionCommandInput, + GetDataLakeExceptionSubscriptionCommandOutput, +} from "./commands/GetDataLakeExceptionSubscriptionCommand"; import { - GetDatalakeExceptionsSubscriptionCommand, - GetDatalakeExceptionsSubscriptionCommandInput, - GetDatalakeExceptionsSubscriptionCommandOutput, -} from "./commands/GetDatalakeExceptionsSubscriptionCommand"; + GetDataLakeOrganizationConfigurationCommand, + GetDataLakeOrganizationConfigurationCommandInput, + GetDataLakeOrganizationConfigurationCommandOutput, +} from "./commands/GetDataLakeOrganizationConfigurationCommand"; import { - GetDatalakeStatusCommand, - GetDatalakeStatusCommandInput, - GetDatalakeStatusCommandOutput, -} from "./commands/GetDatalakeStatusCommand"; + GetDataLakeSourcesCommand, + GetDataLakeSourcesCommandInput, + GetDataLakeSourcesCommandOutput, +} from "./commands/GetDataLakeSourcesCommand"; import { GetSubscriberCommand, GetSubscriberCommandInput, GetSubscriberCommandOutput, } from "./commands/GetSubscriberCommand"; import { - ListDatalakeExceptionsCommand, - ListDatalakeExceptionsCommandInput, - ListDatalakeExceptionsCommandOutput, -} from "./commands/ListDatalakeExceptionsCommand"; + ListDataLakeExceptionsCommand, + ListDataLakeExceptionsCommandInput, + ListDataLakeExceptionsCommandOutput, +} from "./commands/ListDataLakeExceptionsCommand"; +import { + ListDataLakesCommand, + ListDataLakesCommandInput, + ListDataLakesCommandOutput, +} from "./commands/ListDataLakesCommand"; import { ListLogSourcesCommand, ListLogSourcesCommandInput, @@ -124,63 +118,61 @@ import { ListSubscribersCommandOutput, } from "./commands/ListSubscribersCommand"; import { - UpdateDatalakeCommand, - UpdateDatalakeCommandInput, - UpdateDatalakeCommandOutput, -} from "./commands/UpdateDatalakeCommand"; + RegisterDataLakeDelegatedAdministratorCommand, + RegisterDataLakeDelegatedAdministratorCommandInput, + RegisterDataLakeDelegatedAdministratorCommandOutput, +} from "./commands/RegisterDataLakeDelegatedAdministratorCommand"; import { - UpdateDatalakeExceptionsExpiryCommand, - UpdateDatalakeExceptionsExpiryCommandInput, - UpdateDatalakeExceptionsExpiryCommandOutput, -} from "./commands/UpdateDatalakeExceptionsExpiryCommand"; + UpdateDataLakeCommand, + UpdateDataLakeCommandInput, + UpdateDataLakeCommandOutput, +} from "./commands/UpdateDataLakeCommand"; import { - UpdateDatalakeExceptionsSubscriptionCommand, - UpdateDatalakeExceptionsSubscriptionCommandInput, - UpdateDatalakeExceptionsSubscriptionCommandOutput, -} from "./commands/UpdateDatalakeExceptionsSubscriptionCommand"; + UpdateDataLakeExceptionSubscriptionCommand, + UpdateDataLakeExceptionSubscriptionCommandInput, + UpdateDataLakeExceptionSubscriptionCommandOutput, +} from "./commands/UpdateDataLakeExceptionSubscriptionCommand"; import { UpdateSubscriberCommand, UpdateSubscriberCommandInput, UpdateSubscriberCommandOutput, } from "./commands/UpdateSubscriberCommand"; import { - UpdateSubscriptionNotificationConfigurationCommand, - UpdateSubscriptionNotificationConfigurationCommandInput, - UpdateSubscriptionNotificationConfigurationCommandOutput, -} from "./commands/UpdateSubscriptionNotificationConfigurationCommand"; + UpdateSubscriberNotificationCommand, + UpdateSubscriberNotificationCommandInput, + UpdateSubscriberNotificationCommandOutput, +} from "./commands/UpdateSubscriberNotificationCommand"; import { SecurityLakeClient, SecurityLakeClientConfig } from "./SecurityLakeClient"; const commands = { CreateAwsLogSourceCommand, CreateCustomLogSourceCommand, - CreateDatalakeCommand, - CreateDatalakeAutoEnableCommand, - CreateDatalakeDelegatedAdminCommand, - CreateDatalakeExceptionsSubscriptionCommand, + CreateDataLakeCommand, + CreateDataLakeExceptionSubscriptionCommand, + CreateDataLakeOrganizationConfigurationCommand, CreateSubscriberCommand, - CreateSubscriptionNotificationConfigurationCommand, + CreateSubscriberNotificationCommand, DeleteAwsLogSourceCommand, DeleteCustomLogSourceCommand, - DeleteDatalakeCommand, - DeleteDatalakeAutoEnableCommand, - DeleteDatalakeDelegatedAdminCommand, - DeleteDatalakeExceptionsSubscriptionCommand, + DeleteDataLakeCommand, + DeleteDataLakeExceptionSubscriptionCommand, + DeleteDataLakeOrganizationConfigurationCommand, DeleteSubscriberCommand, - DeleteSubscriptionNotificationConfigurationCommand, - GetDatalakeCommand, - GetDatalakeAutoEnableCommand, - GetDatalakeExceptionsExpiryCommand, - GetDatalakeExceptionsSubscriptionCommand, - GetDatalakeStatusCommand, + DeleteSubscriberNotificationCommand, + DeregisterDataLakeDelegatedAdministratorCommand, + GetDataLakeExceptionSubscriptionCommand, + GetDataLakeOrganizationConfigurationCommand, + GetDataLakeSourcesCommand, GetSubscriberCommand, - ListDatalakeExceptionsCommand, + ListDataLakeExceptionsCommand, + ListDataLakesCommand, ListLogSourcesCommand, ListSubscribersCommand, - UpdateDatalakeCommand, - UpdateDatalakeExceptionsExpiryCommand, - UpdateDatalakeExceptionsSubscriptionCommand, + RegisterDataLakeDelegatedAdministratorCommand, + UpdateDataLakeCommand, + UpdateDataLakeExceptionSubscriptionCommand, UpdateSubscriberCommand, - UpdateSubscriptionNotificationConfigurationCommand, + UpdateSubscriberNotificationCommand, }; export interface SecurityLake { @@ -219,68 +211,51 @@ export interface SecurityLake { ): void; /** - * @see {@link CreateDatalakeCommand} + * @see {@link CreateDataLakeCommand} */ - createDatalake( - args: CreateDatalakeCommandInput, + createDataLake( + args: CreateDataLakeCommandInput, options?: __HttpHandlerOptions - ): Promise; - createDatalake(args: CreateDatalakeCommandInput, cb: (err: any, data?: CreateDatalakeCommandOutput) => void): void; - createDatalake( - args: CreateDatalakeCommandInput, + ): Promise; + createDataLake(args: CreateDataLakeCommandInput, cb: (err: any, data?: CreateDataLakeCommandOutput) => void): void; + createDataLake( + args: CreateDataLakeCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: CreateDatalakeCommandOutput) => void + cb: (err: any, data?: CreateDataLakeCommandOutput) => void ): void; /** - * @see {@link CreateDatalakeAutoEnableCommand} + * @see {@link CreateDataLakeExceptionSubscriptionCommand} */ - createDatalakeAutoEnable( - args: CreateDatalakeAutoEnableCommandInput, + createDataLakeExceptionSubscription( + args: CreateDataLakeExceptionSubscriptionCommandInput, options?: __HttpHandlerOptions - ): Promise; - createDatalakeAutoEnable( - args: CreateDatalakeAutoEnableCommandInput, - cb: (err: any, data?: CreateDatalakeAutoEnableCommandOutput) => void + ): Promise; + createDataLakeExceptionSubscription( + args: CreateDataLakeExceptionSubscriptionCommandInput, + cb: (err: any, data?: CreateDataLakeExceptionSubscriptionCommandOutput) => void ): void; - createDatalakeAutoEnable( - args: CreateDatalakeAutoEnableCommandInput, + createDataLakeExceptionSubscription( + args: CreateDataLakeExceptionSubscriptionCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: CreateDatalakeAutoEnableCommandOutput) => void + cb: (err: any, data?: CreateDataLakeExceptionSubscriptionCommandOutput) => void ): void; /** - * @see {@link CreateDatalakeDelegatedAdminCommand} + * @see {@link CreateDataLakeOrganizationConfigurationCommand} */ - createDatalakeDelegatedAdmin( - args: CreateDatalakeDelegatedAdminCommandInput, + createDataLakeOrganizationConfiguration( + args: CreateDataLakeOrganizationConfigurationCommandInput, options?: __HttpHandlerOptions - ): Promise; - createDatalakeDelegatedAdmin( - args: CreateDatalakeDelegatedAdminCommandInput, - cb: (err: any, data?: CreateDatalakeDelegatedAdminCommandOutput) => void + ): Promise; + createDataLakeOrganizationConfiguration( + args: CreateDataLakeOrganizationConfigurationCommandInput, + cb: (err: any, data?: CreateDataLakeOrganizationConfigurationCommandOutput) => void ): void; - createDatalakeDelegatedAdmin( - args: CreateDatalakeDelegatedAdminCommandInput, + createDataLakeOrganizationConfiguration( + args: CreateDataLakeOrganizationConfigurationCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: CreateDatalakeDelegatedAdminCommandOutput) => void - ): void; - - /** - * @see {@link CreateDatalakeExceptionsSubscriptionCommand} - */ - createDatalakeExceptionsSubscription( - args: CreateDatalakeExceptionsSubscriptionCommandInput, - options?: __HttpHandlerOptions - ): Promise; - createDatalakeExceptionsSubscription( - args: CreateDatalakeExceptionsSubscriptionCommandInput, - cb: (err: any, data?: CreateDatalakeExceptionsSubscriptionCommandOutput) => void - ): void; - createDatalakeExceptionsSubscription( - args: CreateDatalakeExceptionsSubscriptionCommandInput, - options: __HttpHandlerOptions, - cb: (err: any, data?: CreateDatalakeExceptionsSubscriptionCommandOutput) => void + cb: (err: any, data?: CreateDataLakeOrganizationConfigurationCommandOutput) => void ): void; /** @@ -301,20 +276,20 @@ export interface SecurityLake { ): void; /** - * @see {@link CreateSubscriptionNotificationConfigurationCommand} + * @see {@link CreateSubscriberNotificationCommand} */ - createSubscriptionNotificationConfiguration( - args: CreateSubscriptionNotificationConfigurationCommandInput, + createSubscriberNotification( + args: CreateSubscriberNotificationCommandInput, options?: __HttpHandlerOptions - ): Promise; - createSubscriptionNotificationConfiguration( - args: CreateSubscriptionNotificationConfigurationCommandInput, - cb: (err: any, data?: CreateSubscriptionNotificationConfigurationCommandOutput) => void + ): Promise; + createSubscriberNotification( + args: CreateSubscriberNotificationCommandInput, + cb: (err: any, data?: CreateSubscriberNotificationCommandOutput) => void ): void; - createSubscriptionNotificationConfiguration( - args: CreateSubscriptionNotificationConfigurationCommandInput, + createSubscriberNotification( + args: CreateSubscriberNotificationCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: CreateSubscriptionNotificationConfigurationCommandOutput) => void + cb: (err: any, data?: CreateSubscriberNotificationCommandOutput) => void ): void; /** @@ -352,68 +327,51 @@ export interface SecurityLake { ): void; /** - * @see {@link DeleteDatalakeCommand} + * @see {@link DeleteDataLakeCommand} */ - deleteDatalake( - args: DeleteDatalakeCommandInput, + deleteDataLake( + args: DeleteDataLakeCommandInput, options?: __HttpHandlerOptions - ): Promise; - deleteDatalake(args: DeleteDatalakeCommandInput, cb: (err: any, data?: DeleteDatalakeCommandOutput) => void): void; - deleteDatalake( - args: DeleteDatalakeCommandInput, + ): Promise; + deleteDataLake(args: DeleteDataLakeCommandInput, cb: (err: any, data?: DeleteDataLakeCommandOutput) => void): void; + deleteDataLake( + args: DeleteDataLakeCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: DeleteDatalakeCommandOutput) => void + cb: (err: any, data?: DeleteDataLakeCommandOutput) => void ): void; /** - * @see {@link DeleteDatalakeAutoEnableCommand} + * @see {@link DeleteDataLakeExceptionSubscriptionCommand} */ - deleteDatalakeAutoEnable( - args: DeleteDatalakeAutoEnableCommandInput, + deleteDataLakeExceptionSubscription( + args: DeleteDataLakeExceptionSubscriptionCommandInput, options?: __HttpHandlerOptions - ): Promise; - deleteDatalakeAutoEnable( - args: DeleteDatalakeAutoEnableCommandInput, - cb: (err: any, data?: DeleteDatalakeAutoEnableCommandOutput) => void + ): Promise; + deleteDataLakeExceptionSubscription( + args: DeleteDataLakeExceptionSubscriptionCommandInput, + cb: (err: any, data?: DeleteDataLakeExceptionSubscriptionCommandOutput) => void ): void; - deleteDatalakeAutoEnable( - args: DeleteDatalakeAutoEnableCommandInput, + deleteDataLakeExceptionSubscription( + args: DeleteDataLakeExceptionSubscriptionCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: DeleteDatalakeAutoEnableCommandOutput) => void + cb: (err: any, data?: DeleteDataLakeExceptionSubscriptionCommandOutput) => void ): void; /** - * @see {@link DeleteDatalakeDelegatedAdminCommand} + * @see {@link DeleteDataLakeOrganizationConfigurationCommand} */ - deleteDatalakeDelegatedAdmin( - args: DeleteDatalakeDelegatedAdminCommandInput, + deleteDataLakeOrganizationConfiguration( + args: DeleteDataLakeOrganizationConfigurationCommandInput, options?: __HttpHandlerOptions - ): Promise; - deleteDatalakeDelegatedAdmin( - args: DeleteDatalakeDelegatedAdminCommandInput, - cb: (err: any, data?: DeleteDatalakeDelegatedAdminCommandOutput) => void + ): Promise; + deleteDataLakeOrganizationConfiguration( + args: DeleteDataLakeOrganizationConfigurationCommandInput, + cb: (err: any, data?: DeleteDataLakeOrganizationConfigurationCommandOutput) => void ): void; - deleteDatalakeDelegatedAdmin( - args: DeleteDatalakeDelegatedAdminCommandInput, + deleteDataLakeOrganizationConfiguration( + args: DeleteDataLakeOrganizationConfigurationCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: DeleteDatalakeDelegatedAdminCommandOutput) => void - ): void; - - /** - * @see {@link DeleteDatalakeExceptionsSubscriptionCommand} - */ - deleteDatalakeExceptionsSubscription( - args: DeleteDatalakeExceptionsSubscriptionCommandInput, - options?: __HttpHandlerOptions - ): Promise; - deleteDatalakeExceptionsSubscription( - args: DeleteDatalakeExceptionsSubscriptionCommandInput, - cb: (err: any, data?: DeleteDatalakeExceptionsSubscriptionCommandOutput) => void - ): void; - deleteDatalakeExceptionsSubscription( - args: DeleteDatalakeExceptionsSubscriptionCommandInput, - options: __HttpHandlerOptions, - cb: (err: any, data?: DeleteDatalakeExceptionsSubscriptionCommandOutput) => void + cb: (err: any, data?: DeleteDataLakeOrganizationConfigurationCommandOutput) => void ): void; /** @@ -434,99 +392,88 @@ export interface SecurityLake { ): void; /** - * @see {@link DeleteSubscriptionNotificationConfigurationCommand} + * @see {@link DeleteSubscriberNotificationCommand} */ - deleteSubscriptionNotificationConfiguration( - args: DeleteSubscriptionNotificationConfigurationCommandInput, + deleteSubscriberNotification( + args: DeleteSubscriberNotificationCommandInput, options?: __HttpHandlerOptions - ): Promise; - deleteSubscriptionNotificationConfiguration( - args: DeleteSubscriptionNotificationConfigurationCommandInput, - cb: (err: any, data?: DeleteSubscriptionNotificationConfigurationCommandOutput) => void - ): void; - deleteSubscriptionNotificationConfiguration( - args: DeleteSubscriptionNotificationConfigurationCommandInput, - options: __HttpHandlerOptions, - cb: (err: any, data?: DeleteSubscriptionNotificationConfigurationCommandOutput) => void + ): Promise; + deleteSubscriberNotification( + args: DeleteSubscriberNotificationCommandInput, + cb: (err: any, data?: DeleteSubscriberNotificationCommandOutput) => void ): void; - - /** - * @see {@link GetDatalakeCommand} - */ - getDatalake(args: GetDatalakeCommandInput, options?: __HttpHandlerOptions): Promise; - getDatalake(args: GetDatalakeCommandInput, cb: (err: any, data?: GetDatalakeCommandOutput) => void): void; - getDatalake( - args: GetDatalakeCommandInput, + deleteSubscriberNotification( + args: DeleteSubscriberNotificationCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: GetDatalakeCommandOutput) => void + cb: (err: any, data?: DeleteSubscriberNotificationCommandOutput) => void ): void; /** - * @see {@link GetDatalakeAutoEnableCommand} + * @see {@link DeregisterDataLakeDelegatedAdministratorCommand} */ - getDatalakeAutoEnable( - args: GetDatalakeAutoEnableCommandInput, + deregisterDataLakeDelegatedAdministrator( + args: DeregisterDataLakeDelegatedAdministratorCommandInput, options?: __HttpHandlerOptions - ): Promise; - getDatalakeAutoEnable( - args: GetDatalakeAutoEnableCommandInput, - cb: (err: any, data?: GetDatalakeAutoEnableCommandOutput) => void + ): Promise; + deregisterDataLakeDelegatedAdministrator( + args: DeregisterDataLakeDelegatedAdministratorCommandInput, + cb: (err: any, data?: DeregisterDataLakeDelegatedAdministratorCommandOutput) => void ): void; - getDatalakeAutoEnable( - args: GetDatalakeAutoEnableCommandInput, + deregisterDataLakeDelegatedAdministrator( + args: DeregisterDataLakeDelegatedAdministratorCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: GetDatalakeAutoEnableCommandOutput) => void + cb: (err: any, data?: DeregisterDataLakeDelegatedAdministratorCommandOutput) => void ): void; /** - * @see {@link GetDatalakeExceptionsExpiryCommand} + * @see {@link GetDataLakeExceptionSubscriptionCommand} */ - getDatalakeExceptionsExpiry( - args: GetDatalakeExceptionsExpiryCommandInput, + getDataLakeExceptionSubscription( + args: GetDataLakeExceptionSubscriptionCommandInput, options?: __HttpHandlerOptions - ): Promise; - getDatalakeExceptionsExpiry( - args: GetDatalakeExceptionsExpiryCommandInput, - cb: (err: any, data?: GetDatalakeExceptionsExpiryCommandOutput) => void + ): Promise; + getDataLakeExceptionSubscription( + args: GetDataLakeExceptionSubscriptionCommandInput, + cb: (err: any, data?: GetDataLakeExceptionSubscriptionCommandOutput) => void ): void; - getDatalakeExceptionsExpiry( - args: GetDatalakeExceptionsExpiryCommandInput, + getDataLakeExceptionSubscription( + args: GetDataLakeExceptionSubscriptionCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: GetDatalakeExceptionsExpiryCommandOutput) => void + cb: (err: any, data?: GetDataLakeExceptionSubscriptionCommandOutput) => void ): void; /** - * @see {@link GetDatalakeExceptionsSubscriptionCommand} + * @see {@link GetDataLakeOrganizationConfigurationCommand} */ - getDatalakeExceptionsSubscription( - args: GetDatalakeExceptionsSubscriptionCommandInput, + getDataLakeOrganizationConfiguration( + args: GetDataLakeOrganizationConfigurationCommandInput, options?: __HttpHandlerOptions - ): Promise; - getDatalakeExceptionsSubscription( - args: GetDatalakeExceptionsSubscriptionCommandInput, - cb: (err: any, data?: GetDatalakeExceptionsSubscriptionCommandOutput) => void + ): Promise; + getDataLakeOrganizationConfiguration( + args: GetDataLakeOrganizationConfigurationCommandInput, + cb: (err: any, data?: GetDataLakeOrganizationConfigurationCommandOutput) => void ): void; - getDatalakeExceptionsSubscription( - args: GetDatalakeExceptionsSubscriptionCommandInput, + getDataLakeOrganizationConfiguration( + args: GetDataLakeOrganizationConfigurationCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: GetDatalakeExceptionsSubscriptionCommandOutput) => void + cb: (err: any, data?: GetDataLakeOrganizationConfigurationCommandOutput) => void ): void; /** - * @see {@link GetDatalakeStatusCommand} + * @see {@link GetDataLakeSourcesCommand} */ - getDatalakeStatus( - args: GetDatalakeStatusCommandInput, + getDataLakeSources( + args: GetDataLakeSourcesCommandInput, options?: __HttpHandlerOptions - ): Promise; - getDatalakeStatus( - args: GetDatalakeStatusCommandInput, - cb: (err: any, data?: GetDatalakeStatusCommandOutput) => void + ): Promise; + getDataLakeSources( + args: GetDataLakeSourcesCommandInput, + cb: (err: any, data?: GetDataLakeSourcesCommandOutput) => void ): void; - getDatalakeStatus( - args: GetDatalakeStatusCommandInput, + getDataLakeSources( + args: GetDataLakeSourcesCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: GetDatalakeStatusCommandOutput) => void + cb: (err: any, data?: GetDataLakeSourcesCommandOutput) => void ): void; /** @@ -541,20 +488,31 @@ export interface SecurityLake { ): void; /** - * @see {@link ListDatalakeExceptionsCommand} + * @see {@link ListDataLakeExceptionsCommand} */ - listDatalakeExceptions( - args: ListDatalakeExceptionsCommandInput, + listDataLakeExceptions( + args: ListDataLakeExceptionsCommandInput, options?: __HttpHandlerOptions - ): Promise; - listDatalakeExceptions( - args: ListDatalakeExceptionsCommandInput, - cb: (err: any, data?: ListDatalakeExceptionsCommandOutput) => void + ): Promise; + listDataLakeExceptions( + args: ListDataLakeExceptionsCommandInput, + cb: (err: any, data?: ListDataLakeExceptionsCommandOutput) => void ): void; - listDatalakeExceptions( - args: ListDatalakeExceptionsCommandInput, + listDataLakeExceptions( + args: ListDataLakeExceptionsCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: ListDatalakeExceptionsCommandOutput) => void + cb: (err: any, data?: ListDataLakeExceptionsCommandOutput) => void + ): void; + + /** + * @see {@link ListDataLakesCommand} + */ + listDataLakes(args: ListDataLakesCommandInput, options?: __HttpHandlerOptions): Promise; + listDataLakes(args: ListDataLakesCommandInput, cb: (err: any, data?: ListDataLakesCommandOutput) => void): void; + listDataLakes( + args: ListDataLakesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListDataLakesCommandOutput) => void ): void; /** @@ -586,51 +544,51 @@ export interface SecurityLake { ): void; /** - * @see {@link UpdateDatalakeCommand} + * @see {@link RegisterDataLakeDelegatedAdministratorCommand} */ - updateDatalake( - args: UpdateDatalakeCommandInput, + registerDataLakeDelegatedAdministrator( + args: RegisterDataLakeDelegatedAdministratorCommandInput, options?: __HttpHandlerOptions - ): Promise; - updateDatalake(args: UpdateDatalakeCommandInput, cb: (err: any, data?: UpdateDatalakeCommandOutput) => void): void; - updateDatalake( - args: UpdateDatalakeCommandInput, + ): Promise; + registerDataLakeDelegatedAdministrator( + args: RegisterDataLakeDelegatedAdministratorCommandInput, + cb: (err: any, data?: RegisterDataLakeDelegatedAdministratorCommandOutput) => void + ): void; + registerDataLakeDelegatedAdministrator( + args: RegisterDataLakeDelegatedAdministratorCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: UpdateDatalakeCommandOutput) => void + cb: (err: any, data?: RegisterDataLakeDelegatedAdministratorCommandOutput) => void ): void; /** - * @see {@link UpdateDatalakeExceptionsExpiryCommand} + * @see {@link UpdateDataLakeCommand} */ - updateDatalakeExceptionsExpiry( - args: UpdateDatalakeExceptionsExpiryCommandInput, + updateDataLake( + args: UpdateDataLakeCommandInput, options?: __HttpHandlerOptions - ): Promise; - updateDatalakeExceptionsExpiry( - args: UpdateDatalakeExceptionsExpiryCommandInput, - cb: (err: any, data?: UpdateDatalakeExceptionsExpiryCommandOutput) => void - ): void; - updateDatalakeExceptionsExpiry( - args: UpdateDatalakeExceptionsExpiryCommandInput, + ): Promise; + updateDataLake(args: UpdateDataLakeCommandInput, cb: (err: any, data?: UpdateDataLakeCommandOutput) => void): void; + updateDataLake( + args: UpdateDataLakeCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: UpdateDatalakeExceptionsExpiryCommandOutput) => void + cb: (err: any, data?: UpdateDataLakeCommandOutput) => void ): void; /** - * @see {@link UpdateDatalakeExceptionsSubscriptionCommand} + * @see {@link UpdateDataLakeExceptionSubscriptionCommand} */ - updateDatalakeExceptionsSubscription( - args: UpdateDatalakeExceptionsSubscriptionCommandInput, + updateDataLakeExceptionSubscription( + args: UpdateDataLakeExceptionSubscriptionCommandInput, options?: __HttpHandlerOptions - ): Promise; - updateDatalakeExceptionsSubscription( - args: UpdateDatalakeExceptionsSubscriptionCommandInput, - cb: (err: any, data?: UpdateDatalakeExceptionsSubscriptionCommandOutput) => void + ): Promise; + updateDataLakeExceptionSubscription( + args: UpdateDataLakeExceptionSubscriptionCommandInput, + cb: (err: any, data?: UpdateDataLakeExceptionSubscriptionCommandOutput) => void ): void; - updateDatalakeExceptionsSubscription( - args: UpdateDatalakeExceptionsSubscriptionCommandInput, + updateDataLakeExceptionSubscription( + args: UpdateDataLakeExceptionSubscriptionCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: UpdateDatalakeExceptionsSubscriptionCommandOutput) => void + cb: (err: any, data?: UpdateDataLakeExceptionSubscriptionCommandOutput) => void ): void; /** @@ -651,33 +609,28 @@ export interface SecurityLake { ): void; /** - * @see {@link UpdateSubscriptionNotificationConfigurationCommand} + * @see {@link UpdateSubscriberNotificationCommand} */ - updateSubscriptionNotificationConfiguration( - args: UpdateSubscriptionNotificationConfigurationCommandInput, + updateSubscriberNotification( + args: UpdateSubscriberNotificationCommandInput, options?: __HttpHandlerOptions - ): Promise; - updateSubscriptionNotificationConfiguration( - args: UpdateSubscriptionNotificationConfigurationCommandInput, - cb: (err: any, data?: UpdateSubscriptionNotificationConfigurationCommandOutput) => void + ): Promise; + updateSubscriberNotification( + args: UpdateSubscriberNotificationCommandInput, + cb: (err: any, data?: UpdateSubscriberNotificationCommandOutput) => void ): void; - updateSubscriptionNotificationConfiguration( - args: UpdateSubscriptionNotificationConfigurationCommandInput, + updateSubscriberNotification( + args: UpdateSubscriberNotificationCommandInput, options: __HttpHandlerOptions, - cb: (err: any, data?: UpdateSubscriptionNotificationConfigurationCommandOutput) => void + cb: (err: any, data?: UpdateSubscriberNotificationCommandOutput) => void ): void; } /** * @public - * - *

Amazon Security Lake is in preview release. Your use of the Security Lake preview is subject to - * Section 2 of the Amazon Web Services Service - * Terms("Betas and Previews").

- *
- *

Amazon Security Lake is a fully managed security data lake service. You can use Security Lake to + *

Amazon Security Lake is a fully managed security data lake service. You can use Security Lake to * automatically centralize security data from cloud, on-premises, and custom sources into a - * data lake that's stored in your Amazon Web Servicesaccount. Amazon Web Services Organizations + * data lake that's stored in your Amazon Web Services account. Amazon Web Services Organizations * is an account management service that lets you consolidate multiple Amazon Web Services * accounts into an organization that you create and centrally manage. With Organizations, you * can create member accounts and invite existing accounts to join your organization. @@ -685,9 +638,9 @@ export interface SecurityLake { * security posture across the entire organization. It can also help you improve the * protection of your workloads, applications, and data.

*

The data lake is backed by Amazon Simple Storage Service (Amazon S3) buckets, and you - * retain ownership over your data.

+ * retain ownership over your data.

*

Amazon Security Lake integrates with CloudTrail, a service that provides a record of - * actions taken by a user, role, or an Amazon Web Services service in Security Lake CloudTrail captures API calls for Security Lake as events. The calls captured include calls + * actions taken by a user, role, or an Amazon Web Services service. In Security Lake, CloudTrail captures API calls for Security Lake as events. The calls captured include calls * from the Security Lake console and code calls to the Security Lake API operations. If you create a * trail, you can enable continuous delivery of CloudTrail events to an Amazon S3 bucket, including events for Security Lake. If you don't configure a trail, you can still * view the most recent events in the CloudTrail console in Event history. Using the diff --git a/clients/client-securitylake/src/SecurityLakeClient.ts b/clients/client-securitylake/src/SecurityLakeClient.ts index bd1925d595a2..d48a46874efd 100644 --- a/clients/client-securitylake/src/SecurityLakeClient.ts +++ b/clients/client-securitylake/src/SecurityLakeClient.ts @@ -56,82 +56,74 @@ import { CreateCustomLogSourceCommandInput, CreateCustomLogSourceCommandOutput, } from "./commands/CreateCustomLogSourceCommand"; +import { CreateDataLakeCommandInput, CreateDataLakeCommandOutput } from "./commands/CreateDataLakeCommand"; import { - CreateDatalakeAutoEnableCommandInput, - CreateDatalakeAutoEnableCommandOutput, -} from "./commands/CreateDatalakeAutoEnableCommand"; -import { CreateDatalakeCommandInput, CreateDatalakeCommandOutput } from "./commands/CreateDatalakeCommand"; + CreateDataLakeExceptionSubscriptionCommandInput, + CreateDataLakeExceptionSubscriptionCommandOutput, +} from "./commands/CreateDataLakeExceptionSubscriptionCommand"; import { - CreateDatalakeDelegatedAdminCommandInput, - CreateDatalakeDelegatedAdminCommandOutput, -} from "./commands/CreateDatalakeDelegatedAdminCommand"; -import { - CreateDatalakeExceptionsSubscriptionCommandInput, - CreateDatalakeExceptionsSubscriptionCommandOutput, -} from "./commands/CreateDatalakeExceptionsSubscriptionCommand"; + CreateDataLakeOrganizationConfigurationCommandInput, + CreateDataLakeOrganizationConfigurationCommandOutput, +} from "./commands/CreateDataLakeOrganizationConfigurationCommand"; import { CreateSubscriberCommandInput, CreateSubscriberCommandOutput } from "./commands/CreateSubscriberCommand"; import { - CreateSubscriptionNotificationConfigurationCommandInput, - CreateSubscriptionNotificationConfigurationCommandOutput, -} from "./commands/CreateSubscriptionNotificationConfigurationCommand"; + CreateSubscriberNotificationCommandInput, + CreateSubscriberNotificationCommandOutput, +} from "./commands/CreateSubscriberNotificationCommand"; import { DeleteAwsLogSourceCommandInput, DeleteAwsLogSourceCommandOutput } from "./commands/DeleteAwsLogSourceCommand"; import { DeleteCustomLogSourceCommandInput, DeleteCustomLogSourceCommandOutput, } from "./commands/DeleteCustomLogSourceCommand"; +import { DeleteDataLakeCommandInput, DeleteDataLakeCommandOutput } from "./commands/DeleteDataLakeCommand"; import { - DeleteDatalakeAutoEnableCommandInput, - DeleteDatalakeAutoEnableCommandOutput, -} from "./commands/DeleteDatalakeAutoEnableCommand"; -import { DeleteDatalakeCommandInput, DeleteDatalakeCommandOutput } from "./commands/DeleteDatalakeCommand"; -import { - DeleteDatalakeDelegatedAdminCommandInput, - DeleteDatalakeDelegatedAdminCommandOutput, -} from "./commands/DeleteDatalakeDelegatedAdminCommand"; + DeleteDataLakeExceptionSubscriptionCommandInput, + DeleteDataLakeExceptionSubscriptionCommandOutput, +} from "./commands/DeleteDataLakeExceptionSubscriptionCommand"; import { - DeleteDatalakeExceptionsSubscriptionCommandInput, - DeleteDatalakeExceptionsSubscriptionCommandOutput, -} from "./commands/DeleteDatalakeExceptionsSubscriptionCommand"; + DeleteDataLakeOrganizationConfigurationCommandInput, + DeleteDataLakeOrganizationConfigurationCommandOutput, +} from "./commands/DeleteDataLakeOrganizationConfigurationCommand"; import { DeleteSubscriberCommandInput, DeleteSubscriberCommandOutput } from "./commands/DeleteSubscriberCommand"; import { - DeleteSubscriptionNotificationConfigurationCommandInput, - DeleteSubscriptionNotificationConfigurationCommandOutput, -} from "./commands/DeleteSubscriptionNotificationConfigurationCommand"; + DeleteSubscriberNotificationCommandInput, + DeleteSubscriberNotificationCommandOutput, +} from "./commands/DeleteSubscriberNotificationCommand"; import { - GetDatalakeAutoEnableCommandInput, - GetDatalakeAutoEnableCommandOutput, -} from "./commands/GetDatalakeAutoEnableCommand"; -import { GetDatalakeCommandInput, GetDatalakeCommandOutput } from "./commands/GetDatalakeCommand"; + DeregisterDataLakeDelegatedAdministratorCommandInput, + DeregisterDataLakeDelegatedAdministratorCommandOutput, +} from "./commands/DeregisterDataLakeDelegatedAdministratorCommand"; import { - GetDatalakeExceptionsExpiryCommandInput, - GetDatalakeExceptionsExpiryCommandOutput, -} from "./commands/GetDatalakeExceptionsExpiryCommand"; + GetDataLakeExceptionSubscriptionCommandInput, + GetDataLakeExceptionSubscriptionCommandOutput, +} from "./commands/GetDataLakeExceptionSubscriptionCommand"; import { - GetDatalakeExceptionsSubscriptionCommandInput, - GetDatalakeExceptionsSubscriptionCommandOutput, -} from "./commands/GetDatalakeExceptionsSubscriptionCommand"; -import { GetDatalakeStatusCommandInput, GetDatalakeStatusCommandOutput } from "./commands/GetDatalakeStatusCommand"; + GetDataLakeOrganizationConfigurationCommandInput, + GetDataLakeOrganizationConfigurationCommandOutput, +} from "./commands/GetDataLakeOrganizationConfigurationCommand"; +import { GetDataLakeSourcesCommandInput, GetDataLakeSourcesCommandOutput } from "./commands/GetDataLakeSourcesCommand"; import { GetSubscriberCommandInput, GetSubscriberCommandOutput } from "./commands/GetSubscriberCommand"; import { - ListDatalakeExceptionsCommandInput, - ListDatalakeExceptionsCommandOutput, -} from "./commands/ListDatalakeExceptionsCommand"; + ListDataLakeExceptionsCommandInput, + ListDataLakeExceptionsCommandOutput, +} from "./commands/ListDataLakeExceptionsCommand"; +import { ListDataLakesCommandInput, ListDataLakesCommandOutput } from "./commands/ListDataLakesCommand"; import { ListLogSourcesCommandInput, ListLogSourcesCommandOutput } from "./commands/ListLogSourcesCommand"; import { ListSubscribersCommandInput, ListSubscribersCommandOutput } from "./commands/ListSubscribersCommand"; -import { UpdateDatalakeCommandInput, UpdateDatalakeCommandOutput } from "./commands/UpdateDatalakeCommand"; import { - UpdateDatalakeExceptionsExpiryCommandInput, - UpdateDatalakeExceptionsExpiryCommandOutput, -} from "./commands/UpdateDatalakeExceptionsExpiryCommand"; + RegisterDataLakeDelegatedAdministratorCommandInput, + RegisterDataLakeDelegatedAdministratorCommandOutput, +} from "./commands/RegisterDataLakeDelegatedAdministratorCommand"; +import { UpdateDataLakeCommandInput, UpdateDataLakeCommandOutput } from "./commands/UpdateDataLakeCommand"; import { - UpdateDatalakeExceptionsSubscriptionCommandInput, - UpdateDatalakeExceptionsSubscriptionCommandOutput, -} from "./commands/UpdateDatalakeExceptionsSubscriptionCommand"; + UpdateDataLakeExceptionSubscriptionCommandInput, + UpdateDataLakeExceptionSubscriptionCommandOutput, +} from "./commands/UpdateDataLakeExceptionSubscriptionCommand"; import { UpdateSubscriberCommandInput, UpdateSubscriberCommandOutput } from "./commands/UpdateSubscriberCommand"; import { - UpdateSubscriptionNotificationConfigurationCommandInput, - UpdateSubscriptionNotificationConfigurationCommandOutput, -} from "./commands/UpdateSubscriptionNotificationConfigurationCommand"; + UpdateSubscriberNotificationCommandInput, + UpdateSubscriberNotificationCommandOutput, +} from "./commands/UpdateSubscriberNotificationCommand"; import { ClientInputEndpointParameters, ClientResolvedEndpointParameters, @@ -148,34 +140,32 @@ export { __Client }; export type ServiceInputTypes = | CreateAwsLogSourceCommandInput | CreateCustomLogSourceCommandInput - | CreateDatalakeAutoEnableCommandInput - | CreateDatalakeCommandInput - | CreateDatalakeDelegatedAdminCommandInput - | CreateDatalakeExceptionsSubscriptionCommandInput + | CreateDataLakeCommandInput + | CreateDataLakeExceptionSubscriptionCommandInput + | CreateDataLakeOrganizationConfigurationCommandInput | CreateSubscriberCommandInput - | CreateSubscriptionNotificationConfigurationCommandInput + | CreateSubscriberNotificationCommandInput | DeleteAwsLogSourceCommandInput | DeleteCustomLogSourceCommandInput - | DeleteDatalakeAutoEnableCommandInput - | DeleteDatalakeCommandInput - | DeleteDatalakeDelegatedAdminCommandInput - | DeleteDatalakeExceptionsSubscriptionCommandInput + | DeleteDataLakeCommandInput + | DeleteDataLakeExceptionSubscriptionCommandInput + | DeleteDataLakeOrganizationConfigurationCommandInput | DeleteSubscriberCommandInput - | DeleteSubscriptionNotificationConfigurationCommandInput - | GetDatalakeAutoEnableCommandInput - | GetDatalakeCommandInput - | GetDatalakeExceptionsExpiryCommandInput - | GetDatalakeExceptionsSubscriptionCommandInput - | GetDatalakeStatusCommandInput + | DeleteSubscriberNotificationCommandInput + | DeregisterDataLakeDelegatedAdministratorCommandInput + | GetDataLakeExceptionSubscriptionCommandInput + | GetDataLakeOrganizationConfigurationCommandInput + | GetDataLakeSourcesCommandInput | GetSubscriberCommandInput - | ListDatalakeExceptionsCommandInput + | ListDataLakeExceptionsCommandInput + | ListDataLakesCommandInput | ListLogSourcesCommandInput | ListSubscribersCommandInput - | UpdateDatalakeCommandInput - | UpdateDatalakeExceptionsExpiryCommandInput - | UpdateDatalakeExceptionsSubscriptionCommandInput + | RegisterDataLakeDelegatedAdministratorCommandInput + | UpdateDataLakeCommandInput + | UpdateDataLakeExceptionSubscriptionCommandInput | UpdateSubscriberCommandInput - | UpdateSubscriptionNotificationConfigurationCommandInput; + | UpdateSubscriberNotificationCommandInput; /** * @public @@ -183,34 +173,32 @@ export type ServiceInputTypes = export type ServiceOutputTypes = | CreateAwsLogSourceCommandOutput | CreateCustomLogSourceCommandOutput - | CreateDatalakeAutoEnableCommandOutput - | CreateDatalakeCommandOutput - | CreateDatalakeDelegatedAdminCommandOutput - | CreateDatalakeExceptionsSubscriptionCommandOutput + | CreateDataLakeCommandOutput + | CreateDataLakeExceptionSubscriptionCommandOutput + | CreateDataLakeOrganizationConfigurationCommandOutput | CreateSubscriberCommandOutput - | CreateSubscriptionNotificationConfigurationCommandOutput + | CreateSubscriberNotificationCommandOutput | DeleteAwsLogSourceCommandOutput | DeleteCustomLogSourceCommandOutput - | DeleteDatalakeAutoEnableCommandOutput - | DeleteDatalakeCommandOutput - | DeleteDatalakeDelegatedAdminCommandOutput - | DeleteDatalakeExceptionsSubscriptionCommandOutput + | DeleteDataLakeCommandOutput + | DeleteDataLakeExceptionSubscriptionCommandOutput + | DeleteDataLakeOrganizationConfigurationCommandOutput | DeleteSubscriberCommandOutput - | DeleteSubscriptionNotificationConfigurationCommandOutput - | GetDatalakeAutoEnableCommandOutput - | GetDatalakeCommandOutput - | GetDatalakeExceptionsExpiryCommandOutput - | GetDatalakeExceptionsSubscriptionCommandOutput - | GetDatalakeStatusCommandOutput + | DeleteSubscriberNotificationCommandOutput + | DeregisterDataLakeDelegatedAdministratorCommandOutput + | GetDataLakeExceptionSubscriptionCommandOutput + | GetDataLakeOrganizationConfigurationCommandOutput + | GetDataLakeSourcesCommandOutput | GetSubscriberCommandOutput - | ListDatalakeExceptionsCommandOutput + | ListDataLakeExceptionsCommandOutput + | ListDataLakesCommandOutput | ListLogSourcesCommandOutput | ListSubscribersCommandOutput - | UpdateDatalakeCommandOutput - | UpdateDatalakeExceptionsExpiryCommandOutput - | UpdateDatalakeExceptionsSubscriptionCommandOutput + | RegisterDataLakeDelegatedAdministratorCommandOutput + | UpdateDataLakeCommandOutput + | UpdateDataLakeExceptionSubscriptionCommandOutput | UpdateSubscriberCommandOutput - | UpdateSubscriptionNotificationConfigurationCommandOutput; + | UpdateSubscriberNotificationCommandOutput; /** * @public @@ -376,14 +364,9 @@ export interface SecurityLakeClientResolvedConfig extends SecurityLakeClientReso /** * @public - * - *

Amazon Security Lake is in preview release. Your use of the Security Lake preview is subject to - * Section 2 of the Amazon Web Services Service - * Terms("Betas and Previews").

- * - *

Amazon Security Lake is a fully managed security data lake service. You can use Security Lake to + *

Amazon Security Lake is a fully managed security data lake service. You can use Security Lake to * automatically centralize security data from cloud, on-premises, and custom sources into a - * data lake that's stored in your Amazon Web Servicesaccount. Amazon Web Services Organizations + * data lake that's stored in your Amazon Web Services account. Amazon Web Services Organizations * is an account management service that lets you consolidate multiple Amazon Web Services * accounts into an organization that you create and centrally manage. With Organizations, you * can create member accounts and invite existing accounts to join your organization. @@ -391,9 +374,9 @@ export interface SecurityLakeClientResolvedConfig extends SecurityLakeClientReso * security posture across the entire organization. It can also help you improve the * protection of your workloads, applications, and data.

*

The data lake is backed by Amazon Simple Storage Service (Amazon S3) buckets, and you - * retain ownership over your data.

+ * retain ownership over your data.

*

Amazon Security Lake integrates with CloudTrail, a service that provides a record of - * actions taken by a user, role, or an Amazon Web Services service in Security Lake CloudTrail captures API calls for Security Lake as events. The calls captured include calls + * actions taken by a user, role, or an Amazon Web Services service. In Security Lake, CloudTrail captures API calls for Security Lake as events. The calls captured include calls * from the Security Lake console and code calls to the Security Lake API operations. If you create a * trail, you can enable continuous delivery of CloudTrail events to an Amazon S3 bucket, including events for Security Lake. If you don't configure a trail, you can still * view the most recent events in the CloudTrail console in Event history. Using the diff --git a/clients/client-securitylake/src/commands/CreateAwsLogSourceCommand.ts b/clients/client-securitylake/src/commands/CreateAwsLogSourceCommand.ts index b4bc38cf21eb..bc68cc6d944b 100644 --- a/clients/client-securitylake/src/commands/CreateAwsLogSourceCommand.ts +++ b/clients/client-securitylake/src/commands/CreateAwsLogSourceCommand.ts @@ -39,18 +39,10 @@ export interface CreateAwsLogSourceCommandOutput extends CreateAwsLogSourceRespo *

Adds a natively supported Amazon Web Service as an Amazon Security Lake source. Enables * source types for member accounts in required Amazon Web Services Regions, based on the * parameters you specify. You can choose any source type in any Region for either accounts - * that are part of a trusted organization or standalone accounts. At least one of the three - * dimensions is a mandatory input to this API. However, you can supply any combination of the - * three dimensions to this API.

- *

By default, a dimension refers to the entire set. When you don't provide a dimension, - * Security Lake assumes that the missing dimension refers to the entire set. This is overridden - * when you supply any one of the inputs. For instance, when you do not specify members, the - * API enables all Security Lake member accounts for all sources. Similarly, when you do not - * specify Regions, Security Lake is enabled for all the Regions where Security Lake is available as a - * service.

+ * that are part of a trusted organization or standalone accounts. Once you add an Amazon Web Service as a source, Security Lake starts collecting logs and events from it,

*

You can use this API only to enable natively supported Amazon Web Services as a * source. Use CreateCustomLogSource to enable data collection from a custom - * source.

+ * source.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -58,32 +50,23 @@ export interface CreateAwsLogSourceCommandOutput extends CreateAwsLogSourceRespo * // const { SecurityLakeClient, CreateAwsLogSourceCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); * const input = { // CreateAwsLogSourceRequest - * inputOrder: [ // DimensionSet // required - * "STRING_VALUE", - * ], - * enableAllDimensions: { // AllDimensionsMap - * "": { // TwoDimensionsMap - * "": [ // ValueSet + * sources: [ // AwsLogSourceConfigurationList // required + * { // AwsLogSourceConfiguration + * accounts: [ // AccountList + * "STRING_VALUE", + * ], + * regions: [ // RegionList // required * "STRING_VALUE", * ], + * sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", // required + * sourceVersion: "STRING_VALUE", * }, - * }, - * enableTwoDimensions: { - * "": [ - * "STRING_VALUE", - * ], - * }, - * enableSingleDimension: [ // InputSet - * "STRING_VALUE", * ], * }; * const command = new CreateAwsLogSourceCommand(input); * const response = await client.send(command); * // { // CreateAwsLogSourceResponse - * // processing: [ // AccountList - * // "STRING_VALUE", - * // ], - * // failed: [ + * // failed: [ // AccountList * // "STRING_VALUE", * // ], * // }; @@ -102,26 +85,24 @@ export interface CreateAwsLogSourceCommandOutput extends CreateAwsLogSourceRespo * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

* - * @throws {@link S3Exception} (client fault) - *

Provides an extension of the AmazonServiceException for errors reported by Amazon S3 while processing a request. In particular, this class provides access to the - * Amazon S3 extended request ID. If Amazon S3 is incorrectly handling a - * request and you need to contact Amazon, this extended request ID may provide useful - * debugging information.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

diff --git a/clients/client-securitylake/src/commands/CreateCustomLogSourceCommand.ts b/clients/client-securitylake/src/commands/CreateCustomLogSourceCommand.ts index 3d8e97c45fd0..40df3b66b42a 100644 --- a/clients/client-securitylake/src/commands/CreateCustomLogSourceCommand.ts +++ b/clients/client-securitylake/src/commands/CreateCustomLogSourceCommand.ts @@ -41,7 +41,8 @@ export interface CreateCustomLogSourceCommandOutput extends CreateCustomLogSourc * third-party custom sources. After creating the appropriate IAM role to * invoke Glue crawler, use this API to add a custom source name in Security Lake. This * operation creates a partition in the Amazon S3 bucket for Security Lake as the target - * location for log files from the custom source in addition to an associated Glue table and an Glue crawler.

+ * location for log files from the custom source. In addition, this operation also creates an + * associated Glue table and an Glue crawler.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -49,19 +50,37 @@ export interface CreateCustomLogSourceCommandOutput extends CreateCustomLogSourc * // const { SecurityLakeClient, CreateCustomLogSourceCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); * const input = { // CreateCustomLogSourceRequest - * customSourceName: "STRING_VALUE", // required - * eventClass: "STRING_VALUE", // required - * glueInvocationRoleArn: "STRING_VALUE", // required - * logProviderAccountId: "STRING_VALUE", // required + * sourceName: "STRING_VALUE", // required + * sourceVersion: "STRING_VALUE", + * eventClasses: [ // OcsfEventClassList + * "STRING_VALUE", + * ], + * configuration: { // CustomLogSourceConfiguration + * crawlerConfiguration: { // CustomLogSourceCrawlerConfiguration + * roleArn: "STRING_VALUE", // required + * }, + * providerIdentity: { // AwsIdentity + * principal: "STRING_VALUE", // required + * externalId: "STRING_VALUE", // required + * }, + * }, * }; * const command = new CreateCustomLogSourceCommand(input); * const response = await client.send(command); * // { // CreateCustomLogSourceResponse - * // customDataLocation: "STRING_VALUE", // required - * // glueCrawlerName: "STRING_VALUE", // required - * // glueTableName: "STRING_VALUE", // required - * // glueDatabaseName: "STRING_VALUE", // required - * // logProviderAccessRoleArn: "STRING_VALUE", // required + * // source: { // CustomLogSourceResource + * // sourceName: "STRING_VALUE", + * // sourceVersion: "STRING_VALUE", + * // provider: { // CustomLogSourceProvider + * // roleArn: "STRING_VALUE", + * // location: "STRING_VALUE", + * // }, + * // attributes: { // CustomLogSourceAttributes + * // crawlerArn: "STRING_VALUE", + * // databaseArn: "STRING_VALUE", + * // tableArn: "STRING_VALUE", + * // }, + * // }, * // }; * * ``` @@ -78,27 +97,24 @@ export interface CreateCustomLogSourceCommandOutput extends CreateCustomLogSourc * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

* - * @throws {@link BucketNotFoundException} (client fault) - *

Amazon Security Lake generally returns 404 errors if the requested object is missing from the - * bucket.

- * - * @throws {@link ConflictSourceNamesException} (client fault) - *

There was a conflict when you attempted to modify a Security Lake source name.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

diff --git a/clients/client-securitylake/src/commands/CreateDatalakeCommand.ts b/clients/client-securitylake/src/commands/CreateDataLakeCommand.ts similarity index 56% rename from clients/client-securitylake/src/commands/CreateDatalakeCommand.ts rename to clients/client-securitylake/src/commands/CreateDataLakeCommand.ts index f21d420d1f26..f7fb69c77b64 100644 --- a/clients/client-securitylake/src/commands/CreateDatalakeCommand.ts +++ b/clients/client-securitylake/src/commands/CreateDataLakeCommand.ts @@ -13,8 +13,8 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; -import { CreateDatalakeRequest, CreateDatalakeResponse } from "../models/models_0"; -import { de_CreateDatalakeCommand, se_CreateDatalakeCommand } from "../protocols/Aws_restJson1"; +import { CreateDataLakeRequest, CreateDataLakeResponse } from "../models/models_0"; +import { de_CreateDataLakeCommand, se_CreateDataLakeCommand } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; /** @@ -24,25 +24,24 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link CreateDatalakeCommand}. + * The input for {@link CreateDataLakeCommand}. */ -export interface CreateDatalakeCommandInput extends CreateDatalakeRequest {} +export interface CreateDataLakeCommandInput extends CreateDataLakeRequest {} /** * @public * - * The output of {@link CreateDatalakeCommand}. + * The output of {@link CreateDataLakeCommand}. */ -export interface CreateDatalakeCommandOutput extends CreateDatalakeResponse, __MetadataBearer {} +export interface CreateDataLakeCommandOutput extends CreateDataLakeResponse, __MetadataBearer {} /** * @public *

Initializes an Amazon Security Lake instance with the provided (or default) configuration. You * can enable Security Lake in Amazon Web Services Regions with customized settings before enabling - * log collection in Regions. You can either use the enableAll parameter to - * specify all Regions or specify the Regions where you want to enable Security Lake. To specify - * particular Regions, use the Regions parameter and then configure these Regions - * using the configurations parameter. If you have already enabled Security Lake in a - * Region when you call this command, the command will update the Region if you provide new + * log collection in Regions. By default, the CreateDataLake Security Lake in all + * Regions. To specify particular Regions, configure these Regions using the + * configurations parameter. If you have already enabled Security Lake in a Region + * when you call this command, the command will update the Region if you provide new * configuration parameters. If you have not already enabled Security Lake in the Region when you * call this API, it will set up the data lake in the Region with the specified * configurations.

@@ -55,44 +54,84 @@ export interface CreateDatalakeCommandOutput extends CreateDatalakeResponse, __M * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, CreateDatalakeCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, CreateDatalakeCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, CreateDataLakeCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, CreateDataLakeCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = { // CreateDatalakeRequest - * regions: [ // RegionSet - * "STRING_VALUE", - * ], - * configurations: { // LakeConfigurationRequestMap - * "": { // LakeConfigurationRequest - * encryptionKey: "STRING_VALUE", - * retentionSettings: [ // RetentionSettingList - * { // RetentionSetting - * storageClass: "STRING_VALUE", - * retentionPeriod: Number("int"), + * const input = { // CreateDataLakeRequest + * configurations: [ // DataLakeConfigurationList // required + * { // DataLakeConfiguration + * region: "STRING_VALUE", // required + * encryptionConfiguration: { // DataLakeEncryptionConfiguration + * kmsKeyId: "STRING_VALUE", + * }, + * lifecycleConfiguration: { // DataLakeLifecycleConfiguration + * expiration: { // DataLakeLifecycleExpiration + * days: Number("int"), * }, - * ], - * tagsMap: { // TagsMap - * "": "STRING_VALUE", + * transitions: [ // DataLakeLifecycleTransitionList + * { // DataLakeLifecycleTransition + * storageClass: "STRING_VALUE", + * days: Number("int"), + * }, + * ], + * }, + * replicationConfiguration: { // DataLakeReplicationConfiguration + * regions: [ // RegionList + * "STRING_VALUE", + * ], + * roleArn: "STRING_VALUE", * }, - * replicationDestinationRegions: [ - * "STRING_VALUE", - * ], - * replicationRoleArn: "STRING_VALUE", * }, - * }, - * enableAll: true || false, - * metaStoreManagerRoleArn: "STRING_VALUE", + * ], + * metaStoreManagerRoleArn: "STRING_VALUE", // required * }; - * const command = new CreateDatalakeCommand(input); + * const command = new CreateDataLakeCommand(input); * const response = await client.send(command); - * // {}; + * // { // CreateDataLakeResponse + * // dataLakes: [ // DataLakeResourceList + * // { // DataLakeResource + * // dataLakeArn: "STRING_VALUE", // required + * // region: "STRING_VALUE", // required + * // s3BucketArn: "STRING_VALUE", + * // encryptionConfiguration: { // DataLakeEncryptionConfiguration + * // kmsKeyId: "STRING_VALUE", + * // }, + * // lifecycleConfiguration: { // DataLakeLifecycleConfiguration + * // expiration: { // DataLakeLifecycleExpiration + * // days: Number("int"), + * // }, + * // transitions: [ // DataLakeLifecycleTransitionList + * // { // DataLakeLifecycleTransition + * // storageClass: "STRING_VALUE", + * // days: Number("int"), + * // }, + * // ], + * // }, + * // replicationConfiguration: { // DataLakeReplicationConfiguration + * // regions: [ // RegionList + * // "STRING_VALUE", + * // ], + * // roleArn: "STRING_VALUE", + * // }, + * // createStatus: "INITIALIZED" || "PENDING" || "COMPLETED" || "FAILED", + * // updateStatus: { // DataLakeUpdateStatus + * // requestId: "STRING_VALUE", + * // status: "INITIALIZED" || "PENDING" || "COMPLETED" || "FAILED", + * // exception: { // DataLakeUpdateException + * // reason: "STRING_VALUE", + * // code: "STRING_VALUE", + * // }, + * // }, + * // }, + * // ], + * // }; * * ``` * - * @param CreateDatalakeCommandInput - {@link CreateDatalakeCommandInput} - * @returns {@link CreateDatalakeCommandOutput} - * @see {@link CreateDatalakeCommandInput} for command's `input` shape. - * @see {@link CreateDatalakeCommandOutput} for command's `response` shape. + * @param CreateDataLakeCommandInput - {@link CreateDataLakeCommandInput} + * @returns {@link CreateDataLakeCommandOutput} + * @see {@link CreateDataLakeCommandInput} for command's `input` shape. + * @see {@link CreateDataLakeCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -101,6 +140,9 @@ export interface CreateDatalakeCommandOutput extends CreateDatalakeResponse, __M * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally * occurs when the previous write did not have time to propagate to the host serving the @@ -109,28 +151,21 @@ export interface CreateDatalakeCommandOutput extends CreateDatalakeResponse, __M * * @throws {@link InternalServerException} (server fault) *

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

You have exceeded your service quota. To perform the requested action, remove some of - * the relevant resources, or use Service Quotas to request a service quota increase.

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

The limit on the number of requests per second was exceeded.

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

Your signing certificate could not be validated.

+ *

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class CreateDatalakeCommand extends $Command< - CreateDatalakeCommandInput, - CreateDatalakeCommandOutput, +export class CreateDataLakeCommand extends $Command< + CreateDataLakeCommandInput, + CreateDataLakeCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -148,7 +183,7 @@ export class CreateDatalakeCommand extends $Command< /** * @public */ - constructor(readonly input: CreateDatalakeCommandInput) { + constructor(readonly input: CreateDataLakeCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -161,17 +196,17 @@ export class CreateDatalakeCommand extends $Command< clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( - getEndpointPlugin(configuration, CreateDatalakeCommand.getEndpointParameterInstructions()) + getEndpointPlugin(configuration, CreateDataLakeCommand.getEndpointParameterInstructions()) ); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "CreateDatalakeCommand"; + const commandName = "CreateDataLakeCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -190,15 +225,15 @@ export class CreateDatalakeCommand extends $Command< /** * @internal */ - private serialize(input: CreateDatalakeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_CreateDatalakeCommand(input, context); + private serialize(input: CreateDataLakeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_CreateDataLakeCommand(input, context); } /** * @internal */ - private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { - return de_CreateDatalakeCommand(output, context); + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_CreateDataLakeCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/CreateDatalakeExceptionsSubscriptionCommand.ts b/clients/client-securitylake/src/commands/CreateDataLakeExceptionSubscriptionCommand.ts similarity index 57% rename from clients/client-securitylake/src/commands/CreateDatalakeExceptionsSubscriptionCommand.ts rename to clients/client-securitylake/src/commands/CreateDataLakeExceptionSubscriptionCommand.ts index b7ee8385e972..ac5e7724e4f3 100644 --- a/clients/client-securitylake/src/commands/CreateDatalakeExceptionsSubscriptionCommand.ts +++ b/clients/client-securitylake/src/commands/CreateDataLakeExceptionSubscriptionCommand.ts @@ -14,12 +14,12 @@ import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@s import { SerdeContext as __SerdeContext } from "@smithy/types"; import { - CreateDatalakeExceptionsSubscriptionRequest, - CreateDatalakeExceptionsSubscriptionResponse, + CreateDataLakeExceptionSubscriptionRequest, + CreateDataLakeExceptionSubscriptionResponse, } from "../models/models_0"; import { - de_CreateDatalakeExceptionsSubscriptionCommand, - se_CreateDatalakeExceptionsSubscriptionCommand, + de_CreateDataLakeExceptionSubscriptionCommand, + se_CreateDataLakeExceptionSubscriptionCommand, } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; @@ -30,16 +30,16 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link CreateDatalakeExceptionsSubscriptionCommand}. + * The input for {@link CreateDataLakeExceptionSubscriptionCommand}. */ -export interface CreateDatalakeExceptionsSubscriptionCommandInput extends CreateDatalakeExceptionsSubscriptionRequest {} +export interface CreateDataLakeExceptionSubscriptionCommandInput extends CreateDataLakeExceptionSubscriptionRequest {} /** * @public * - * The output of {@link CreateDatalakeExceptionsSubscriptionCommand}. + * The output of {@link CreateDataLakeExceptionSubscriptionCommand}. */ -export interface CreateDatalakeExceptionsSubscriptionCommandOutput - extends CreateDatalakeExceptionsSubscriptionResponse, +export interface CreateDataLakeExceptionSubscriptionCommandOutput + extends CreateDataLakeExceptionSubscriptionResponse, __MetadataBearer {} /** @@ -49,23 +49,24 @@ export interface CreateDatalakeExceptionsSubscriptionCommandOutput * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, CreateDatalakeExceptionsSubscriptionCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, CreateDatalakeExceptionsSubscriptionCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, CreateDataLakeExceptionSubscriptionCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, CreateDataLakeExceptionSubscriptionCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = { // CreateDatalakeExceptionsSubscriptionRequest + * const input = { // CreateDataLakeExceptionSubscriptionRequest * subscriptionProtocol: "STRING_VALUE", // required * notificationEndpoint: "STRING_VALUE", // required + * exceptionTimeToLive: Number("long"), * }; - * const command = new CreateDatalakeExceptionsSubscriptionCommand(input); + * const command = new CreateDataLakeExceptionSubscriptionCommand(input); * const response = await client.send(command); * // {}; * * ``` * - * @param CreateDatalakeExceptionsSubscriptionCommandInput - {@link CreateDatalakeExceptionsSubscriptionCommandInput} - * @returns {@link CreateDatalakeExceptionsSubscriptionCommandOutput} - * @see {@link CreateDatalakeExceptionsSubscriptionCommandInput} for command's `input` shape. - * @see {@link CreateDatalakeExceptionsSubscriptionCommandOutput} for command's `response` shape. + * @param CreateDataLakeExceptionSubscriptionCommandInput - {@link CreateDataLakeExceptionSubscriptionCommandInput} + * @returns {@link CreateDataLakeExceptionSubscriptionCommandOutput} + * @see {@link CreateDataLakeExceptionSubscriptionCommandInput} for command's `input` shape. + * @see {@link CreateDataLakeExceptionSubscriptionCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -74,25 +75,32 @@ export interface CreateDatalakeExceptionsSubscriptionCommandOutput * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class CreateDatalakeExceptionsSubscriptionCommand extends $Command< - CreateDatalakeExceptionsSubscriptionCommandInput, - CreateDatalakeExceptionsSubscriptionCommandOutput, +export class CreateDataLakeExceptionSubscriptionCommand extends $Command< + CreateDataLakeExceptionSubscriptionCommandInput, + CreateDataLakeExceptionSubscriptionCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -110,7 +118,7 @@ export class CreateDatalakeExceptionsSubscriptionCommand extends $Command< /** * @public */ - constructor(readonly input: CreateDatalakeExceptionsSubscriptionCommandInput) { + constructor(readonly input: CreateDataLakeExceptionSubscriptionCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -123,17 +131,17 @@ export class CreateDatalakeExceptionsSubscriptionCommand extends $Command< clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( - getEndpointPlugin(configuration, CreateDatalakeExceptionsSubscriptionCommand.getEndpointParameterInstructions()) + getEndpointPlugin(configuration, CreateDataLakeExceptionSubscriptionCommand.getEndpointParameterInstructions()) ); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "CreateDatalakeExceptionsSubscriptionCommand"; + const commandName = "CreateDataLakeExceptionSubscriptionCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -153,10 +161,10 @@ export class CreateDatalakeExceptionsSubscriptionCommand extends $Command< * @internal */ private serialize( - input: CreateDatalakeExceptionsSubscriptionCommandInput, + input: CreateDataLakeExceptionSubscriptionCommandInput, context: __SerdeContext ): Promise<__HttpRequest> { - return se_CreateDatalakeExceptionsSubscriptionCommand(input, context); + return se_CreateDataLakeExceptionSubscriptionCommand(input, context); } /** @@ -165,8 +173,8 @@ export class CreateDatalakeExceptionsSubscriptionCommand extends $Command< private deserialize( output: __HttpResponse, context: __SerdeContext - ): Promise { - return de_CreateDatalakeExceptionsSubscriptionCommand(output, context); + ): Promise { + return de_CreateDataLakeExceptionSubscriptionCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/UpdateSubscriptionNotificationConfigurationCommand.ts b/clients/client-securitylake/src/commands/CreateDataLakeOrganizationConfigurationCommand.ts similarity index 52% rename from clients/client-securitylake/src/commands/UpdateSubscriptionNotificationConfigurationCommand.ts rename to clients/client-securitylake/src/commands/CreateDataLakeOrganizationConfigurationCommand.ts index 82bf8202a8cf..0c698af61b60 100644 --- a/clients/client-securitylake/src/commands/UpdateSubscriptionNotificationConfigurationCommand.ts +++ b/clients/client-securitylake/src/commands/CreateDataLakeOrganizationConfigurationCommand.ts @@ -14,12 +14,12 @@ import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@s import { SerdeContext as __SerdeContext } from "@smithy/types"; import { - UpdateSubscriptionNotificationConfigurationRequest, - UpdateSubscriptionNotificationConfigurationResponse, + CreateDataLakeOrganizationConfigurationRequest, + CreateDataLakeOrganizationConfigurationResponse, } from "../models/models_0"; import { - de_UpdateSubscriptionNotificationConfigurationCommand, - se_UpdateSubscriptionNotificationConfigurationCommand, + de_CreateDataLakeOrganizationConfigurationCommand, + se_CreateDataLakeOrganizationConfigurationCommand, } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; @@ -30,50 +30,53 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link UpdateSubscriptionNotificationConfigurationCommand}. + * The input for {@link CreateDataLakeOrganizationConfigurationCommand}. */ -export interface UpdateSubscriptionNotificationConfigurationCommandInput - extends UpdateSubscriptionNotificationConfigurationRequest {} +export interface CreateDataLakeOrganizationConfigurationCommandInput + extends CreateDataLakeOrganizationConfigurationRequest {} /** * @public * - * The output of {@link UpdateSubscriptionNotificationConfigurationCommand}. + * The output of {@link CreateDataLakeOrganizationConfigurationCommand}. */ -export interface UpdateSubscriptionNotificationConfigurationCommandOutput - extends UpdateSubscriptionNotificationConfigurationResponse, +export interface CreateDataLakeOrganizationConfigurationCommandOutput + extends CreateDataLakeOrganizationConfigurationResponse, __MetadataBearer {} /** * @public - *

Updates an existing notification method for the subscription (SQS or HTTPs endpoint) or - * switches the notification subscription endpoint for a subscriber.

+ *

Automatically enables Amazon Security Lake for new member accounts in your organization. + * Security Lake is not automatically enabled for any existing member accounts in your + * organization.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, UpdateSubscriptionNotificationConfigurationCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, UpdateSubscriptionNotificationConfigurationCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, CreateDataLakeOrganizationConfigurationCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, CreateDataLakeOrganizationConfigurationCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = { // UpdateSubscriptionNotificationConfigurationRequest - * subscriptionId: "STRING_VALUE", // required - * subscriptionEndpoint: "STRING_VALUE", - * httpsApiKeyName: "STRING_VALUE", - * httpsApiKeyValue: "STRING_VALUE", - * httpsMethod: "STRING_VALUE", - * createSqs: true || false, - * roleArn: "STRING_VALUE", + * const input = { // CreateDataLakeOrganizationConfigurationRequest + * autoEnableNewAccount: [ // DataLakeAutoEnableNewAccountConfigurationList // required + * { // DataLakeAutoEnableNewAccountConfiguration + * region: "STRING_VALUE", // required + * sources: [ // AwsLogSourceResourceList // required + * { // AwsLogSourceResource + * sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", + * sourceVersion: "STRING_VALUE", + * }, + * ], + * }, + * ], * }; - * const command = new UpdateSubscriptionNotificationConfigurationCommand(input); + * const command = new CreateDataLakeOrganizationConfigurationCommand(input); * const response = await client.send(command); - * // { // UpdateSubscriptionNotificationConfigurationResponse - * // queueArn: "STRING_VALUE", - * // }; + * // {}; * * ``` * - * @param UpdateSubscriptionNotificationConfigurationCommandInput - {@link UpdateSubscriptionNotificationConfigurationCommandInput} - * @returns {@link UpdateSubscriptionNotificationConfigurationCommandOutput} - * @see {@link UpdateSubscriptionNotificationConfigurationCommandInput} for command's `input` shape. - * @see {@link UpdateSubscriptionNotificationConfigurationCommandOutput} for command's `response` shape. + * @param CreateDataLakeOrganizationConfigurationCommandInput - {@link CreateDataLakeOrganizationConfigurationCommandInput} + * @returns {@link CreateDataLakeOrganizationConfigurationCommandOutput} + * @see {@link CreateDataLakeOrganizationConfigurationCommandInput} for command's `input` shape. + * @see {@link CreateDataLakeOrganizationConfigurationCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -82,35 +85,32 @@ export interface UpdateSubscriptionNotificationConfigurationCommandOutput * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

* - * @throws {@link ConcurrentModificationException} (client fault) - *

More than one process tried to modify a resource at the same time.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

- * - * @throws {@link InvalidInputException} (client fault) - *

The request was rejected because a value that's not valid or is out of range was - * supplied for an input parameter.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class UpdateSubscriptionNotificationConfigurationCommand extends $Command< - UpdateSubscriptionNotificationConfigurationCommandInput, - UpdateSubscriptionNotificationConfigurationCommandOutput, +export class CreateDataLakeOrganizationConfigurationCommand extends $Command< + CreateDataLakeOrganizationConfigurationCommandInput, + CreateDataLakeOrganizationConfigurationCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -128,7 +128,7 @@ export class UpdateSubscriptionNotificationConfigurationCommand extends $Command /** * @public */ - constructor(readonly input: UpdateSubscriptionNotificationConfigurationCommandInput) { + constructor(readonly input: CreateDataLakeOrganizationConfigurationCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -142,14 +142,14 @@ export class UpdateSubscriptionNotificationConfigurationCommand extends $Command configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions ): Handler< - UpdateSubscriptionNotificationConfigurationCommandInput, - UpdateSubscriptionNotificationConfigurationCommandOutput + CreateDataLakeOrganizationConfigurationCommandInput, + CreateDataLakeOrganizationConfigurationCommandOutput > { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( getEndpointPlugin( configuration, - UpdateSubscriptionNotificationConfigurationCommand.getEndpointParameterInstructions() + CreateDataLakeOrganizationConfigurationCommand.getEndpointParameterInstructions() ) ); @@ -157,7 +157,7 @@ export class UpdateSubscriptionNotificationConfigurationCommand extends $Command const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "UpdateSubscriptionNotificationConfigurationCommand"; + const commandName = "CreateDataLakeOrganizationConfigurationCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -177,10 +177,10 @@ export class UpdateSubscriptionNotificationConfigurationCommand extends $Command * @internal */ private serialize( - input: UpdateSubscriptionNotificationConfigurationCommandInput, + input: CreateDataLakeOrganizationConfigurationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> { - return se_UpdateSubscriptionNotificationConfigurationCommand(input, context); + return se_CreateDataLakeOrganizationConfigurationCommand(input, context); } /** @@ -189,8 +189,8 @@ export class UpdateSubscriptionNotificationConfigurationCommand extends $Command private deserialize( output: __HttpResponse, context: __SerdeContext - ): Promise { - return de_UpdateSubscriptionNotificationConfigurationCommand(output, context); + ): Promise { + return de_CreateDataLakeOrganizationConfigurationCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/CreateDatalakeAutoEnableCommand.ts b/clients/client-securitylake/src/commands/CreateDatalakeAutoEnableCommand.ts deleted file mode 100644 index c003e4c0cc65..000000000000 --- a/clients/client-securitylake/src/commands/CreateDatalakeAutoEnableCommand.ts +++ /dev/null @@ -1,167 +0,0 @@ -// smithy-typescript generated code -import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; -import { getSerdePlugin } from "@aws-sdk/middleware-serde"; -import { Command as $Command } from "@aws-sdk/smithy-client"; -import { - FinalizeHandlerArguments, - Handler, - HandlerExecutionContext, - HttpHandlerOptions as __HttpHandlerOptions, - MetadataBearer as __MetadataBearer, - MiddlewareStack, -} from "@aws-sdk/types"; -import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; -import { SerdeContext as __SerdeContext } from "@smithy/types"; - -import { CreateDatalakeAutoEnableRequest, CreateDatalakeAutoEnableResponse } from "../models/models_0"; -import { de_CreateDatalakeAutoEnableCommand, se_CreateDatalakeAutoEnableCommand } from "../protocols/Aws_restJson1"; -import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; - -/** - * @public - */ -export { __MetadataBearer, $Command }; -/** - * @public - * - * The input for {@link CreateDatalakeAutoEnableCommand}. - */ -export interface CreateDatalakeAutoEnableCommandInput extends CreateDatalakeAutoEnableRequest {} -/** - * @public - * - * The output of {@link CreateDatalakeAutoEnableCommand}. - */ -export interface CreateDatalakeAutoEnableCommandOutput extends CreateDatalakeAutoEnableResponse, __MetadataBearer {} - -/** - * @public - *

Automatically enables Amazon Security Lake for new member accounts in your organization. - * Security Lake is not automatically enabled for any existing member accounts in your - * organization.

- * @example - * Use a bare-bones client and the command you need to make an API call. - * ```javascript - * import { SecurityLakeClient, CreateDatalakeAutoEnableCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, CreateDatalakeAutoEnableCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import - * const client = new SecurityLakeClient(config); - * const input = { // CreateDatalakeAutoEnableRequest - * configurationForNewAccounts: [ // AutoEnableNewRegionConfigurationList // required - * { // AutoEnableNewRegionConfiguration - * region: "STRING_VALUE", // required - * sources: [ // AwsSourceTypeList // required - * "STRING_VALUE", - * ], - * }, - * ], - * }; - * const command = new CreateDatalakeAutoEnableCommand(input); - * const response = await client.send(command); - * // {}; - * - * ``` - * - * @param CreateDatalakeAutoEnableCommandInput - {@link CreateDatalakeAutoEnableCommandInput} - * @returns {@link CreateDatalakeAutoEnableCommandOutput} - * @see {@link CreateDatalakeAutoEnableCommandInput} for command's `input` shape. - * @see {@link CreateDatalakeAutoEnableCommandOutput} for command's `response` shape. - * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. - * - * @throws {@link AccessDeniedException} (client fault) - *

You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization - * request. An explicit denial occurs when a policy contains a Deny statement for the specific - * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also - * no applicable Allow statement.

- * - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

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

Your signing certificate could not be validated.

- * - * @throws {@link SecurityLakeServiceException} - *

Base exception class for all service exceptions from SecurityLake service.

- * - */ -export class CreateDatalakeAutoEnableCommand extends $Command< - CreateDatalakeAutoEnableCommandInput, - CreateDatalakeAutoEnableCommandOutput, - SecurityLakeClientResolvedConfig -> { - // 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: CreateDatalakeAutoEnableCommandInput) { - // Start section: command_constructor - super(); - // End section: command_constructor - } - - /** - * @internal - */ - resolveMiddleware( - clientStack: MiddlewareStack, - configuration: SecurityLakeClientResolvedConfig, - options?: __HttpHandlerOptions - ): Handler { - this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); - this.middlewareStack.use( - getEndpointPlugin(configuration, CreateDatalakeAutoEnableCommand.getEndpointParameterInstructions()) - ); - - const stack = clientStack.concat(this.middlewareStack); - - const { logger } = configuration; - const clientName = "SecurityLakeClient"; - const commandName = "CreateDatalakeAutoEnableCommand"; - const handlerExecutionContext: HandlerExecutionContext = { - logger, - clientName, - commandName, - inputFilterSensitiveLog: (_: any) => _, - outputFilterSensitiveLog: (_: any) => _, - }; - const { requestHandler } = configuration; - return stack.resolve( - (request: FinalizeHandlerArguments) => - requestHandler.handle(request.request as __HttpRequest, options || {}), - handlerExecutionContext - ); - } - - /** - * @internal - */ - private serialize(input: CreateDatalakeAutoEnableCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_CreateDatalakeAutoEnableCommand(input, context); - } - - /** - * @internal - */ - private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { - return de_CreateDatalakeAutoEnableCommand(output, context); - } - - // Start section: command_body_extra - // End section: command_body_extra -} diff --git a/clients/client-securitylake/src/commands/CreateSubscriberCommand.ts b/clients/client-securitylake/src/commands/CreateSubscriberCommand.ts index 701ca33d4faa..ca2479ab1355 100644 --- a/clients/client-securitylake/src/commands/CreateSubscriberCommand.ts +++ b/clients/client-securitylake/src/commands/CreateSubscriberCommand.ts @@ -45,29 +45,82 @@ export interface CreateSubscriberCommandOutput extends CreateSubscriberResponse, * // const { SecurityLakeClient, CreateSubscriberCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); * const input = { // CreateSubscriberRequest - * sourceTypes: [ // SourceTypeList // required - * { // SourceType Union: only one key present - * awsSourceType: "STRING_VALUE", - * customSourceType: "STRING_VALUE", + * subscriberIdentity: { // AwsIdentity + * principal: "STRING_VALUE", // required + * externalId: "STRING_VALUE", // required + * }, + * subscriberName: "STRING_VALUE", // required + * subscriberDescription: "STRING_VALUE", + * sources: [ // LogSourceResourceList // required + * { // LogSourceResource Union: only one key present + * awsLogSource: { // AwsLogSourceResource + * sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", + * sourceVersion: "STRING_VALUE", + * }, + * customLogSource: { // CustomLogSourceResource + * sourceName: "STRING_VALUE", + * sourceVersion: "STRING_VALUE", + * provider: { // CustomLogSourceProvider + * roleArn: "STRING_VALUE", + * location: "STRING_VALUE", + * }, + * attributes: { // CustomLogSourceAttributes + * crawlerArn: "STRING_VALUE", + * databaseArn: "STRING_VALUE", + * tableArn: "STRING_VALUE", + * }, + * }, * }, * ], - * accountId: "STRING_VALUE", // required - * externalId: "STRING_VALUE", // required * accessTypes: [ // AccessTypeList - * "STRING_VALUE", + * "LAKEFORMATION" || "S3", * ], - * subscriberName: "STRING_VALUE", // required - * subscriberDescription: "STRING_VALUE", * }; * const command = new CreateSubscriberCommand(input); * const response = await client.send(command); * // { // CreateSubscriberResponse - * // subscriptionId: "STRING_VALUE", // required - * // roleArn: "STRING_VALUE", - * // snsArn: "STRING_VALUE", - * // s3BucketArn: "STRING_VALUE", - * // resourceShareArn: "STRING_VALUE", - * // resourceShareName: "STRING_VALUE", + * // subscriber: { // SubscriberResource + * // subscriberId: "STRING_VALUE", // required + * // subscriberArn: "STRING_VALUE", // required + * // subscriberIdentity: { // AwsIdentity + * // principal: "STRING_VALUE", // required + * // externalId: "STRING_VALUE", // required + * // }, + * // subscriberName: "STRING_VALUE", // required + * // subscriberDescription: "STRING_VALUE", + * // sources: [ // LogSourceResourceList // required + * // { // LogSourceResource Union: only one key present + * // awsLogSource: { // AwsLogSourceResource + * // sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", + * // sourceVersion: "STRING_VALUE", + * // }, + * // customLogSource: { // CustomLogSourceResource + * // sourceName: "STRING_VALUE", + * // sourceVersion: "STRING_VALUE", + * // provider: { // CustomLogSourceProvider + * // roleArn: "STRING_VALUE", + * // location: "STRING_VALUE", + * // }, + * // attributes: { // CustomLogSourceAttributes + * // crawlerArn: "STRING_VALUE", + * // databaseArn: "STRING_VALUE", + * // tableArn: "STRING_VALUE", + * // }, + * // }, + * // }, + * // ], + * // accessTypes: [ // AccessTypeList + * // "LAKEFORMATION" || "S3", + * // ], + * // roleArn: "STRING_VALUE", + * // s3BucketArn: "STRING_VALUE", + * // subscriberEndpoint: "STRING_VALUE", + * // subscriberStatus: "ACTIVE" || "DEACTIVATED" || "PENDING" || "READY", + * // resourceShareArn: "STRING_VALUE", + * // resourceShareName: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // updatedAt: new Date("TIMESTAMP"), + * // }, * // }; * * ``` @@ -84,31 +137,24 @@ export interface CreateSubscriberCommandOutput extends CreateSubscriberResponse, * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

- * - * @throws {@link BucketNotFoundException} (client fault) - *

Amazon Security Lake generally returns 404 errors if the requested object is missing from the - * bucket.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

* - * @throws {@link ConflictSubscriptionException} (client fault) - *

A conflicting subscription exception operation is in progress.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

- * - * @throws {@link InvalidInputException} (client fault) - *

The request was rejected because a value that's not valid or is out of range was - * supplied for an input parameter.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

diff --git a/clients/client-securitylake/src/commands/CreateSubscriptionNotificationConfigurationCommand.ts b/clients/client-securitylake/src/commands/CreateSubscriberNotificationCommand.ts similarity index 52% rename from clients/client-securitylake/src/commands/CreateSubscriptionNotificationConfigurationCommand.ts rename to clients/client-securitylake/src/commands/CreateSubscriberNotificationCommand.ts index dfdbe74b4baa..75a45234c502 100644 --- a/clients/client-securitylake/src/commands/CreateSubscriptionNotificationConfigurationCommand.ts +++ b/clients/client-securitylake/src/commands/CreateSubscriberNotificationCommand.ts @@ -13,13 +13,10 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; +import { CreateSubscriberNotificationRequest, CreateSubscriberNotificationResponse } from "../models/models_0"; import { - CreateSubscriptionNotificationConfigurationRequest, - CreateSubscriptionNotificationConfigurationResponse, -} from "../models/models_0"; -import { - de_CreateSubscriptionNotificationConfigurationCommand, - se_CreateSubscriptionNotificationConfigurationCommand, + de_CreateSubscriberNotificationCommand, + se_CreateSubscriberNotificationCommand, } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; @@ -30,17 +27,16 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link CreateSubscriptionNotificationConfigurationCommand}. + * The input for {@link CreateSubscriberNotificationCommand}. */ -export interface CreateSubscriptionNotificationConfigurationCommandInput - extends CreateSubscriptionNotificationConfigurationRequest {} +export interface CreateSubscriberNotificationCommandInput extends CreateSubscriberNotificationRequest {} /** * @public * - * The output of {@link CreateSubscriptionNotificationConfigurationCommand}. + * The output of {@link CreateSubscriberNotificationCommand}. */ -export interface CreateSubscriptionNotificationConfigurationCommandOutput - extends CreateSubscriptionNotificationConfigurationResponse, +export interface CreateSubscriberNotificationCommandOutput + extends CreateSubscriberNotificationResponse, __MetadataBearer {} /** @@ -51,30 +47,34 @@ export interface CreateSubscriptionNotificationConfigurationCommandOutput * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, CreateSubscriptionNotificationConfigurationCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, CreateSubscriptionNotificationConfigurationCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, CreateSubscriberNotificationCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, CreateSubscriberNotificationCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = { // CreateSubscriptionNotificationConfigurationRequest - * subscriptionId: "STRING_VALUE", // required - * subscriptionEndpoint: "STRING_VALUE", - * httpsApiKeyName: "STRING_VALUE", - * httpsApiKeyValue: "STRING_VALUE", - * httpsMethod: "STRING_VALUE", - * createSqs: true || false, - * roleArn: "STRING_VALUE", + * const input = { // CreateSubscriberNotificationRequest + * subscriberId: "STRING_VALUE", // required + * configuration: { // NotificationConfiguration Union: only one key present + * sqsNotificationConfiguration: {}, + * httpsNotificationConfiguration: { // HttpsNotificationConfiguration + * endpoint: "STRING_VALUE", // required + * authorizationApiKeyName: "STRING_VALUE", + * authorizationApiKeyValue: "STRING_VALUE", + * httpMethod: "POST" || "PUT", + * targetRoleArn: "STRING_VALUE", // required + * }, + * }, * }; - * const command = new CreateSubscriptionNotificationConfigurationCommand(input); + * const command = new CreateSubscriberNotificationCommand(input); * const response = await client.send(command); - * // { // CreateSubscriptionNotificationConfigurationResponse - * // queueArn: "STRING_VALUE", + * // { // CreateSubscriberNotificationResponse + * // subscriberEndpoint: "STRING_VALUE", * // }; * * ``` * - * @param CreateSubscriptionNotificationConfigurationCommandInput - {@link CreateSubscriptionNotificationConfigurationCommandInput} - * @returns {@link CreateSubscriptionNotificationConfigurationCommandOutput} - * @see {@link CreateSubscriptionNotificationConfigurationCommandInput} for command's `input` shape. - * @see {@link CreateSubscriptionNotificationConfigurationCommandOutput} for command's `response` shape. + * @param CreateSubscriberNotificationCommandInput - {@link CreateSubscriberNotificationCommandInput} + * @returns {@link CreateSubscriberNotificationCommandOutput} + * @see {@link CreateSubscriberNotificationCommandInput} for command's `input` shape. + * @see {@link CreateSubscriberNotificationCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -83,35 +83,32 @@ export interface CreateSubscriptionNotificationConfigurationCommandOutput * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

* - * @throws {@link ConcurrentModificationException} (client fault) - *

More than one process tried to modify a resource at the same time.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

- * - * @throws {@link InvalidInputException} (client fault) - *

The request was rejected because a value that's not valid or is out of range was - * supplied for an input parameter.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class CreateSubscriptionNotificationConfigurationCommand extends $Command< - CreateSubscriptionNotificationConfigurationCommandInput, - CreateSubscriptionNotificationConfigurationCommandOutput, +export class CreateSubscriberNotificationCommand extends $Command< + CreateSubscriberNotificationCommandInput, + CreateSubscriberNotificationCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -129,7 +126,7 @@ export class CreateSubscriptionNotificationConfigurationCommand extends $Command /** * @public */ - constructor(readonly input: CreateSubscriptionNotificationConfigurationCommandInput) { + constructor(readonly input: CreateSubscriberNotificationCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -142,23 +139,17 @@ export class CreateSubscriptionNotificationConfigurationCommand extends $Command clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler< - CreateSubscriptionNotificationConfigurationCommandInput, - CreateSubscriptionNotificationConfigurationCommandOutput - > { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( - getEndpointPlugin( - configuration, - CreateSubscriptionNotificationConfigurationCommand.getEndpointParameterInstructions() - ) + getEndpointPlugin(configuration, CreateSubscriberNotificationCommand.getEndpointParameterInstructions()) ); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "CreateSubscriptionNotificationConfigurationCommand"; + const commandName = "CreateSubscriberNotificationCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -177,11 +168,8 @@ export class CreateSubscriptionNotificationConfigurationCommand extends $Command /** * @internal */ - private serialize( - input: CreateSubscriptionNotificationConfigurationCommandInput, - context: __SerdeContext - ): Promise<__HttpRequest> { - return se_CreateSubscriptionNotificationConfigurationCommand(input, context); + private serialize(input: CreateSubscriberNotificationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_CreateSubscriberNotificationCommand(input, context); } /** @@ -190,8 +178,8 @@ export class CreateSubscriptionNotificationConfigurationCommand extends $Command private deserialize( output: __HttpResponse, context: __SerdeContext - ): Promise { - return de_CreateSubscriptionNotificationConfigurationCommand(output, context); + ): Promise { + return de_CreateSubscriberNotificationCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/DeleteAwsLogSourceCommand.ts b/clients/client-securitylake/src/commands/DeleteAwsLogSourceCommand.ts index a1255c97904c..e6c848fd369f 100644 --- a/clients/client-securitylake/src/commands/DeleteAwsLogSourceCommand.ts +++ b/clients/client-securitylake/src/commands/DeleteAwsLogSourceCommand.ts @@ -36,21 +36,13 @@ export interface DeleteAwsLogSourceCommandOutput extends DeleteAwsLogSourceRespo /** * @public - *

Removes a natively supported Amazon Web Service as an Amazon Security Lake source. When - * you remove the source, Security Lake stops collecting data from that source, and subscribers - * can no longer consume new data from the source. Subscribers can still consume data that - * Security Lake collected from the source before disablement.

+ *

Removes a natively supported Amazon Web Service as an Amazon Security Lake source. You + * can remove a source for one or more Regions. When you remove the source, Security Lake stops + * collecting data from that source in the specified Regions and accounts, and subscribers can + * no longer consume new data from the source. However, subscribers can still consume data + * that Security Lake collected from the source before removal.

*

You can choose any source type in any Amazon Web Services Region for either accounts that - * are part of a trusted organization or standalone accounts. At least one of the three - * dimensions is a mandatory input to this API. However, you can supply any combination of the - * three dimensions to this API.

- *

By default, a dimension refers to the entire set. This is overridden when you supply any - * one of the inputs. For instance, when you do not specify members, the API disables all - * Security Lake member accounts for sources. Similarly, when you do not specify Regions, - * Security Lake is disabled for all the Regions where Security Lake is available as a service.

- *

When you don't provide a dimension, Security Lake assumes that the missing dimension refers - * to the entire set. For example, if you don't provide specific accounts, the API applies to - * the entire set of accounts in your organization.

+ * are part of a trusted organization or standalone accounts.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -58,32 +50,23 @@ export interface DeleteAwsLogSourceCommandOutput extends DeleteAwsLogSourceRespo * // const { SecurityLakeClient, DeleteAwsLogSourceCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); * const input = { // DeleteAwsLogSourceRequest - * inputOrder: [ // DimensionSet // required - * "STRING_VALUE", - * ], - * disableAllDimensions: { // AllDimensionsMap - * "": { // TwoDimensionsMap - * "": [ // ValueSet + * sources: [ // AwsLogSourceConfigurationList // required + * { // AwsLogSourceConfiguration + * accounts: [ // AccountList + * "STRING_VALUE", + * ], + * regions: [ // RegionList // required * "STRING_VALUE", * ], + * sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", // required + * sourceVersion: "STRING_VALUE", * }, - * }, - * disableTwoDimensions: { - * "": [ - * "STRING_VALUE", - * ], - * }, - * disableSingleDimension: [ // InputSet - * "STRING_VALUE", * ], * }; * const command = new DeleteAwsLogSourceCommand(input); * const response = await client.send(command); * // { // DeleteAwsLogSourceResponse - * // processing: [ // AccountList - * // "STRING_VALUE", - * // ], - * // failed: [ + * // failed: [ // AccountList * // "STRING_VALUE", * // ], * // }; @@ -102,17 +85,24 @@ export interface DeleteAwsLogSourceCommandOutput extends DeleteAwsLogSourceRespo * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

diff --git a/clients/client-securitylake/src/commands/DeleteCustomLogSourceCommand.ts b/clients/client-securitylake/src/commands/DeleteCustomLogSourceCommand.ts index 0545d5394965..996fba6d257c 100644 --- a/clients/client-securitylake/src/commands/DeleteCustomLogSourceCommand.ts +++ b/clients/client-securitylake/src/commands/DeleteCustomLogSourceCommand.ts @@ -36,7 +36,8 @@ export interface DeleteCustomLogSourceCommandOutput extends DeleteCustomLogSourc /** * @public - *

Removes a custom log source from Amazon Security Lake.

+ *

Removes a custom log source from Amazon Security Lake, to stop sending data from the custom + * source to Security Lake.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -44,13 +45,12 @@ export interface DeleteCustomLogSourceCommandOutput extends DeleteCustomLogSourc * // const { SecurityLakeClient, DeleteCustomLogSourceCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); * const input = { // DeleteCustomLogSourceRequest - * customSourceName: "STRING_VALUE", // required + * sourceName: "STRING_VALUE", // required + * sourceVersion: "STRING_VALUE", * }; * const command = new DeleteCustomLogSourceCommand(input); * const response = await client.send(command); - * // { // DeleteCustomLogSourceResponse - * // customDataLocation: "STRING_VALUE", // required - * // }; + * // {}; * * ``` * @@ -66,27 +66,24 @@ export interface DeleteCustomLogSourceCommandOutput extends DeleteCustomLogSourc * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

* - * @throws {@link BucketNotFoundException} (client fault) - *

Amazon Security Lake generally returns 404 errors if the requested object is missing from the - * bucket.

- * - * @throws {@link ConflictSourceNamesException} (client fault) - *

There was a conflict when you attempted to modify a Security Lake source name.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

diff --git a/clients/client-securitylake/src/commands/DeleteDatalakeCommand.ts b/clients/client-securitylake/src/commands/DeleteDataLakeCommand.ts similarity index 63% rename from clients/client-securitylake/src/commands/DeleteDatalakeCommand.ts rename to clients/client-securitylake/src/commands/DeleteDataLakeCommand.ts index ce74bc32a648..a03891383bfb 100644 --- a/clients/client-securitylake/src/commands/DeleteDatalakeCommand.ts +++ b/clients/client-securitylake/src/commands/DeleteDataLakeCommand.ts @@ -13,8 +13,8 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; -import { DeleteDatalakeRequest, DeleteDatalakeResponse } from "../models/models_0"; -import { de_DeleteDatalakeCommand, se_DeleteDatalakeCommand } from "../protocols/Aws_restJson1"; +import { DeleteDataLakeRequest, DeleteDataLakeResponse } from "../models/models_0"; +import { de_DeleteDataLakeCommand, se_DeleteDataLakeCommand } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; /** @@ -24,43 +24,47 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link DeleteDatalakeCommand}. + * The input for {@link DeleteDataLakeCommand}. */ -export interface DeleteDatalakeCommandInput extends DeleteDatalakeRequest {} +export interface DeleteDataLakeCommandInput extends DeleteDataLakeRequest {} /** * @public * - * The output of {@link DeleteDatalakeCommand}. + * The output of {@link DeleteDataLakeCommand}. */ -export interface DeleteDatalakeCommandOutput extends DeleteDatalakeResponse, __MetadataBearer {} +export interface DeleteDataLakeCommandOutput extends DeleteDataLakeResponse, __MetadataBearer {} /** * @public - *

When you delete Amazon Security Lake from your account, Security Lake is disabled in all Amazon Web Services Regions. Also, this API automatically takes steps to remove the account from - * Security Lake .

- *

This operation disables security data collection from sources, deletes data stored, and - * stops making data accessible to subscribers. Security Lake also deletes all the existing - * settings and resources that it stores or maintains for your Amazon Web Services account in - * the current Region, including security log and event data. The DeleteDatalake - * operation does not delete the Amazon S3 bucket, which is owned by your Amazon Web Services account. For more information, see the Amazon Security Lake User + *

When you disable Amazon Security Lake from your account, Security Lake is disabled in all Amazon Web Services Regions and it stops collecting data from your sources. Also, this API + * automatically takes steps to remove the account from Security Lake. However, Security Lake retains + * all of your existing settings and the resources that it created in your Amazon Web Services + * account in the current Amazon Web Services Region.

+ *

The DeleteDataLake operation does not delete the data that is stored in + * your Amazon S3 bucket, which is owned by your Amazon Web Services account. For more + * information, see the Amazon Security Lake User * Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, DeleteDatalakeCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, DeleteDatalakeCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, DeleteDataLakeCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, DeleteDataLakeCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = {}; - * const command = new DeleteDatalakeCommand(input); + * const input = { // DeleteDataLakeRequest + * regions: [ // RegionList // required + * "STRING_VALUE", + * ], + * }; + * const command = new DeleteDataLakeCommand(input); * const response = await client.send(command); * // {}; * * ``` * - * @param DeleteDatalakeCommandInput - {@link DeleteDatalakeCommandInput} - * @returns {@link DeleteDatalakeCommandOutput} - * @see {@link DeleteDatalakeCommandInput} for command's `input` shape. - * @see {@link DeleteDatalakeCommandOutput} for command's `response` shape. + * @param DeleteDataLakeCommandInput - {@link DeleteDataLakeCommandInput} + * @returns {@link DeleteDataLakeCommandOutput} + * @see {@link DeleteDataLakeCommandInput} for command's `input` shape. + * @see {@link DeleteDataLakeCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -69,6 +73,9 @@ export interface DeleteDatalakeCommandOutput extends DeleteDatalakeResponse, __M * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally * occurs when the previous write did not have time to propagate to the host serving the @@ -77,28 +84,21 @@ export interface DeleteDatalakeCommandOutput extends DeleteDatalakeResponse, __M * * @throws {@link InternalServerException} (server fault) *

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

You have exceeded your service quota. To perform the requested action, remove some of - * the relevant resources, or use Service Quotas to request a service quota increase.

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

The limit on the number of requests per second was exceeded.

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

Your signing certificate could not be validated.

+ *

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class DeleteDatalakeCommand extends $Command< - DeleteDatalakeCommandInput, - DeleteDatalakeCommandOutput, +export class DeleteDataLakeCommand extends $Command< + DeleteDataLakeCommandInput, + DeleteDataLakeCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -116,7 +116,7 @@ export class DeleteDatalakeCommand extends $Command< /** * @public */ - constructor(readonly input: DeleteDatalakeCommandInput) { + constructor(readonly input: DeleteDataLakeCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -129,17 +129,17 @@ export class DeleteDatalakeCommand extends $Command< clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( - getEndpointPlugin(configuration, DeleteDatalakeCommand.getEndpointParameterInstructions()) + getEndpointPlugin(configuration, DeleteDataLakeCommand.getEndpointParameterInstructions()) ); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "DeleteDatalakeCommand"; + const commandName = "DeleteDataLakeCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -158,15 +158,15 @@ export class DeleteDatalakeCommand extends $Command< /** * @internal */ - private serialize(input: DeleteDatalakeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_DeleteDatalakeCommand(input, context); + private serialize(input: DeleteDataLakeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_DeleteDataLakeCommand(input, context); } /** * @internal */ - private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { - return de_DeleteDatalakeCommand(output, context); + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_DeleteDataLakeCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/DeleteDatalakeExceptionsSubscriptionCommand.ts b/clients/client-securitylake/src/commands/DeleteDataLakeExceptionSubscriptionCommand.ts similarity index 58% rename from clients/client-securitylake/src/commands/DeleteDatalakeExceptionsSubscriptionCommand.ts rename to clients/client-securitylake/src/commands/DeleteDataLakeExceptionSubscriptionCommand.ts index 50184377873f..c3642f3861b1 100644 --- a/clients/client-securitylake/src/commands/DeleteDatalakeExceptionsSubscriptionCommand.ts +++ b/clients/client-securitylake/src/commands/DeleteDataLakeExceptionSubscriptionCommand.ts @@ -14,12 +14,12 @@ import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@s import { SerdeContext as __SerdeContext } from "@smithy/types"; import { - DeleteDatalakeExceptionsSubscriptionRequest, - DeleteDatalakeExceptionsSubscriptionResponse, + DeleteDataLakeExceptionSubscriptionRequest, + DeleteDataLakeExceptionSubscriptionResponse, } from "../models/models_0"; import { - de_DeleteDatalakeExceptionsSubscriptionCommand, - se_DeleteDatalakeExceptionsSubscriptionCommand, + de_DeleteDataLakeExceptionSubscriptionCommand, + se_DeleteDataLakeExceptionSubscriptionCommand, } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; @@ -30,16 +30,16 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link DeleteDatalakeExceptionsSubscriptionCommand}. + * The input for {@link DeleteDataLakeExceptionSubscriptionCommand}. */ -export interface DeleteDatalakeExceptionsSubscriptionCommandInput extends DeleteDatalakeExceptionsSubscriptionRequest {} +export interface DeleteDataLakeExceptionSubscriptionCommandInput extends DeleteDataLakeExceptionSubscriptionRequest {} /** * @public * - * The output of {@link DeleteDatalakeExceptionsSubscriptionCommand}. + * The output of {@link DeleteDataLakeExceptionSubscriptionCommand}. */ -export interface DeleteDatalakeExceptionsSubscriptionCommandOutput - extends DeleteDatalakeExceptionsSubscriptionResponse, +export interface DeleteDataLakeExceptionSubscriptionCommandOutput + extends DeleteDataLakeExceptionSubscriptionResponse, __MetadataBearer {} /** @@ -49,22 +49,20 @@ export interface DeleteDatalakeExceptionsSubscriptionCommandOutput * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, DeleteDatalakeExceptionsSubscriptionCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, DeleteDatalakeExceptionsSubscriptionCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, DeleteDataLakeExceptionSubscriptionCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, DeleteDataLakeExceptionSubscriptionCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); * const input = {}; - * const command = new DeleteDatalakeExceptionsSubscriptionCommand(input); + * const command = new DeleteDataLakeExceptionSubscriptionCommand(input); * const response = await client.send(command); - * // { // DeleteDatalakeExceptionsSubscriptionResponse - * // status: "STRING_VALUE", // required - * // }; + * // {}; * * ``` * - * @param DeleteDatalakeExceptionsSubscriptionCommandInput - {@link DeleteDatalakeExceptionsSubscriptionCommandInput} - * @returns {@link DeleteDatalakeExceptionsSubscriptionCommandOutput} - * @see {@link DeleteDatalakeExceptionsSubscriptionCommandInput} for command's `input` shape. - * @see {@link DeleteDatalakeExceptionsSubscriptionCommandOutput} for command's `response` shape. + * @param DeleteDataLakeExceptionSubscriptionCommandInput - {@link DeleteDataLakeExceptionSubscriptionCommandInput} + * @returns {@link DeleteDataLakeExceptionSubscriptionCommandOutput} + * @see {@link DeleteDataLakeExceptionSubscriptionCommandInput} for command's `input` shape. + * @see {@link DeleteDataLakeExceptionSubscriptionCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -73,25 +71,32 @@ export interface DeleteDatalakeExceptionsSubscriptionCommandOutput * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class DeleteDatalakeExceptionsSubscriptionCommand extends $Command< - DeleteDatalakeExceptionsSubscriptionCommandInput, - DeleteDatalakeExceptionsSubscriptionCommandOutput, +export class DeleteDataLakeExceptionSubscriptionCommand extends $Command< + DeleteDataLakeExceptionSubscriptionCommandInput, + DeleteDataLakeExceptionSubscriptionCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -109,7 +114,7 @@ export class DeleteDatalakeExceptionsSubscriptionCommand extends $Command< /** * @public */ - constructor(readonly input: DeleteDatalakeExceptionsSubscriptionCommandInput) { + constructor(readonly input: DeleteDataLakeExceptionSubscriptionCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -122,17 +127,17 @@ export class DeleteDatalakeExceptionsSubscriptionCommand extends $Command< clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( - getEndpointPlugin(configuration, DeleteDatalakeExceptionsSubscriptionCommand.getEndpointParameterInstructions()) + getEndpointPlugin(configuration, DeleteDataLakeExceptionSubscriptionCommand.getEndpointParameterInstructions()) ); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "DeleteDatalakeExceptionsSubscriptionCommand"; + const commandName = "DeleteDataLakeExceptionSubscriptionCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -152,10 +157,10 @@ export class DeleteDatalakeExceptionsSubscriptionCommand extends $Command< * @internal */ private serialize( - input: DeleteDatalakeExceptionsSubscriptionCommandInput, + input: DeleteDataLakeExceptionSubscriptionCommandInput, context: __SerdeContext ): Promise<__HttpRequest> { - return se_DeleteDatalakeExceptionsSubscriptionCommand(input, context); + return se_DeleteDataLakeExceptionSubscriptionCommand(input, context); } /** @@ -164,8 +169,8 @@ export class DeleteDatalakeExceptionsSubscriptionCommand extends $Command< private deserialize( output: __HttpResponse, context: __SerdeContext - ): Promise { - return de_DeleteDatalakeExceptionsSubscriptionCommand(output, context); + ): Promise { + return de_DeleteDataLakeExceptionSubscriptionCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/DeleteDataLakeOrganizationConfigurationCommand.ts b/clients/client-securitylake/src/commands/DeleteDataLakeOrganizationConfigurationCommand.ts new file mode 100644 index 000000000000..226a5b34f174 --- /dev/null +++ b/clients/client-securitylake/src/commands/DeleteDataLakeOrganizationConfigurationCommand.ts @@ -0,0 +1,200 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, +} from "@aws-sdk/types"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { SerdeContext as __SerdeContext } from "@smithy/types"; + +import { + DeleteDataLakeOrganizationConfigurationRequest, + DeleteDataLakeOrganizationConfigurationResponse, +} from "../models/models_0"; +import { + de_DeleteDataLakeOrganizationConfigurationCommand, + se_DeleteDataLakeOrganizationConfigurationCommand, +} from "../protocols/Aws_restJson1"; +import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DeleteDataLakeOrganizationConfigurationCommand}. + */ +export interface DeleteDataLakeOrganizationConfigurationCommandInput + extends DeleteDataLakeOrganizationConfigurationRequest {} +/** + * @public + * + * The output of {@link DeleteDataLakeOrganizationConfigurationCommand}. + */ +export interface DeleteDataLakeOrganizationConfigurationCommandOutput + extends DeleteDataLakeOrganizationConfigurationResponse, + __MetadataBearer {} + +/** + * @public + *

Removes automatic the enablement of configuration settings for new member accounts (but + * retains the settings for the delegated administrator) from Amazon Security Lake. You must run this + * API using the credentials of the delegated administrator. When you run this API, new member + * accounts that are added after the organization enables Security Lake won't contribute to the + * data lake.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { SecurityLakeClient, DeleteDataLakeOrganizationConfigurationCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, DeleteDataLakeOrganizationConfigurationCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * const client = new SecurityLakeClient(config); + * const input = { // DeleteDataLakeOrganizationConfigurationRequest + * autoEnableNewAccount: [ // DataLakeAutoEnableNewAccountConfigurationList // required + * { // DataLakeAutoEnableNewAccountConfiguration + * region: "STRING_VALUE", // required + * sources: [ // AwsLogSourceResourceList // required + * { // AwsLogSourceResource + * sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", + * sourceVersion: "STRING_VALUE", + * }, + * ], + * }, + * ], + * }; + * const command = new DeleteDataLakeOrganizationConfigurationCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DeleteDataLakeOrganizationConfigurationCommandInput - {@link DeleteDataLakeOrganizationConfigurationCommandInput} + * @returns {@link DeleteDataLakeOrganizationConfigurationCommandOutput} + * @see {@link DeleteDataLakeOrganizationConfigurationCommandInput} for command's `input` shape. + * @see {@link DeleteDataLakeOrganizationConfigurationCommandOutput} for command's `response` shape. + * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization + * request. An explicit denial occurs when a policy contains a Deny statement for the specific + * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also + * no applicable Allow statement.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start + * troubleshooting, perform the operation again.

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

The resource could not be found.

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

The limit on the number of requests per second was exceeded.

+ * + * @throws {@link SecurityLakeServiceException} + *

Base exception class for all service exceptions from SecurityLake service.

+ * + */ +export class DeleteDataLakeOrganizationConfigurationCommand extends $Command< + DeleteDataLakeOrganizationConfigurationCommandInput, + DeleteDataLakeOrganizationConfigurationCommandOutput, + SecurityLakeClientResolvedConfig +> { + // 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: DeleteDataLakeOrganizationConfigurationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SecurityLakeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + DeleteDataLakeOrganizationConfigurationCommandInput, + DeleteDataLakeOrganizationConfigurationCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin( + configuration, + DeleteDataLakeOrganizationConfigurationCommand.getEndpointParameterInstructions() + ) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SecurityLakeClient"; + const commandName = "DeleteDataLakeOrganizationConfigurationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize( + input: DeleteDataLakeOrganizationConfigurationCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return se_DeleteDataLakeOrganizationConfigurationCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_DeleteDataLakeOrganizationConfigurationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-securitylake/src/commands/DeleteDatalakeAutoEnableCommand.ts b/clients/client-securitylake/src/commands/DeleteDatalakeAutoEnableCommand.ts deleted file mode 100644 index 0a892cf82877..000000000000 --- a/clients/client-securitylake/src/commands/DeleteDatalakeAutoEnableCommand.ts +++ /dev/null @@ -1,170 +0,0 @@ -// smithy-typescript generated code -import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; -import { getSerdePlugin } from "@aws-sdk/middleware-serde"; -import { Command as $Command } from "@aws-sdk/smithy-client"; -import { - FinalizeHandlerArguments, - Handler, - HandlerExecutionContext, - HttpHandlerOptions as __HttpHandlerOptions, - MetadataBearer as __MetadataBearer, - MiddlewareStack, -} from "@aws-sdk/types"; -import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; -import { SerdeContext as __SerdeContext } from "@smithy/types"; - -import { DeleteDatalakeAutoEnableRequest, DeleteDatalakeAutoEnableResponse } from "../models/models_0"; -import { de_DeleteDatalakeAutoEnableCommand, se_DeleteDatalakeAutoEnableCommand } from "../protocols/Aws_restJson1"; -import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; - -/** - * @public - */ -export { __MetadataBearer, $Command }; -/** - * @public - * - * The input for {@link DeleteDatalakeAutoEnableCommand}. - */ -export interface DeleteDatalakeAutoEnableCommandInput extends DeleteDatalakeAutoEnableRequest {} -/** - * @public - * - * The output of {@link DeleteDatalakeAutoEnableCommand}. - */ -export interface DeleteDatalakeAutoEnableCommandOutput extends DeleteDatalakeAutoEnableResponse, __MetadataBearer {} - -/** - * @public - *

- * DeleteDatalakeAutoEnable removes automatic enablement of configuration - * settings for new member accounts (but keeps settings for the delegated administrator) from - * Amazon Security Lake. You must run this API using credentials of the delegated administrator. - * When you run this API, new member accounts that are added after the organization enables - * Security Lake won't contribute to the data lake.

- * @example - * Use a bare-bones client and the command you need to make an API call. - * ```javascript - * import { SecurityLakeClient, DeleteDatalakeAutoEnableCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, DeleteDatalakeAutoEnableCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import - * const client = new SecurityLakeClient(config); - * const input = { // DeleteDatalakeAutoEnableRequest - * removeFromConfigurationForNewAccounts: [ // AutoEnableNewRegionConfigurationList // required - * { // AutoEnableNewRegionConfiguration - * region: "STRING_VALUE", // required - * sources: [ // AwsSourceTypeList // required - * "STRING_VALUE", - * ], - * }, - * ], - * }; - * const command = new DeleteDatalakeAutoEnableCommand(input); - * const response = await client.send(command); - * // {}; - * - * ``` - * - * @param DeleteDatalakeAutoEnableCommandInput - {@link DeleteDatalakeAutoEnableCommandInput} - * @returns {@link DeleteDatalakeAutoEnableCommandOutput} - * @see {@link DeleteDatalakeAutoEnableCommandInput} for command's `input` shape. - * @see {@link DeleteDatalakeAutoEnableCommandOutput} for command's `response` shape. - * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. - * - * @throws {@link AccessDeniedException} (client fault) - *

You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization - * request. An explicit denial occurs when a policy contains a Deny statement for the specific - * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also - * no applicable Allow statement.

- * - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

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

Your signing certificate could not be validated.

- * - * @throws {@link SecurityLakeServiceException} - *

Base exception class for all service exceptions from SecurityLake service.

- * - */ -export class DeleteDatalakeAutoEnableCommand extends $Command< - DeleteDatalakeAutoEnableCommandInput, - DeleteDatalakeAutoEnableCommandOutput, - SecurityLakeClientResolvedConfig -> { - // 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: DeleteDatalakeAutoEnableCommandInput) { - // Start section: command_constructor - super(); - // End section: command_constructor - } - - /** - * @internal - */ - resolveMiddleware( - clientStack: MiddlewareStack, - configuration: SecurityLakeClientResolvedConfig, - options?: __HttpHandlerOptions - ): Handler { - this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); - this.middlewareStack.use( - getEndpointPlugin(configuration, DeleteDatalakeAutoEnableCommand.getEndpointParameterInstructions()) - ); - - const stack = clientStack.concat(this.middlewareStack); - - const { logger } = configuration; - const clientName = "SecurityLakeClient"; - const commandName = "DeleteDatalakeAutoEnableCommand"; - const handlerExecutionContext: HandlerExecutionContext = { - logger, - clientName, - commandName, - inputFilterSensitiveLog: (_: any) => _, - outputFilterSensitiveLog: (_: any) => _, - }; - const { requestHandler } = configuration; - return stack.resolve( - (request: FinalizeHandlerArguments) => - requestHandler.handle(request.request as __HttpRequest, options || {}), - handlerExecutionContext - ); - } - - /** - * @internal - */ - private serialize(input: DeleteDatalakeAutoEnableCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_DeleteDatalakeAutoEnableCommand(input, context); - } - - /** - * @internal - */ - private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { - return de_DeleteDatalakeAutoEnableCommand(output, context); - } - - // Start section: command_body_extra - // End section: command_body_extra -} diff --git a/clients/client-securitylake/src/commands/DeleteSubscriberCommand.ts b/clients/client-securitylake/src/commands/DeleteSubscriberCommand.ts index 457f7028a6f8..6ff959c0f6fa 100644 --- a/clients/client-securitylake/src/commands/DeleteSubscriberCommand.ts +++ b/clients/client-securitylake/src/commands/DeleteSubscriberCommand.ts @@ -36,9 +36,10 @@ export interface DeleteSubscriberCommandOutput extends DeleteSubscriberResponse, /** * @public - *

Deletes the subscription permission for accounts that are already enabled in - * Amazon Security Lake. You can delete a subscriber and remove access to data in the current Amazon Web Services - * Region.

+ *

Deletes the subscription permission and all notification settings for accounts that are + * already enabled in Amazon Security Lake. When you run DeleteSubscriber, the + * subscriber will no longer consume data from Security Lake and the subscriber is removed. This + * operation deletes the subscriber and removes access to data in the current Amazon Web Services Region.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -46,7 +47,7 @@ export interface DeleteSubscriberCommandOutput extends DeleteSubscriberResponse, * // const { SecurityLakeClient, DeleteSubscriberCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); * const input = { // DeleteSubscriberRequest - * id: "STRING_VALUE", // required + * subscriberId: "STRING_VALUE", // required * }; * const command = new DeleteSubscriberCommand(input); * const response = await client.send(command); @@ -66,31 +67,24 @@ export interface DeleteSubscriberCommandOutput extends DeleteSubscriberResponse, * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

* - * @throws {@link BucketNotFoundException} (client fault) - *

Amazon Security Lake generally returns 404 errors if the requested object is missing from the - * bucket.

- * - * @throws {@link ConcurrentModificationException} (client fault) - *

More than one process tried to modify a resource at the same time.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

- * - * @throws {@link InvalidInputException} (client fault) - *

The request was rejected because a value that's not valid or is out of range was - * supplied for an input parameter.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

diff --git a/clients/client-securitylake/src/commands/DeleteDatalakeDelegatedAdminCommand.ts b/clients/client-securitylake/src/commands/DeleteSubscriberNotificationCommand.ts similarity index 60% rename from clients/client-securitylake/src/commands/DeleteDatalakeDelegatedAdminCommand.ts rename to clients/client-securitylake/src/commands/DeleteSubscriberNotificationCommand.ts index 306b09eff2f2..68622d3a8408 100644 --- a/clients/client-securitylake/src/commands/DeleteDatalakeDelegatedAdminCommand.ts +++ b/clients/client-securitylake/src/commands/DeleteSubscriberNotificationCommand.ts @@ -13,10 +13,10 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; -import { DeleteDatalakeDelegatedAdminRequest, DeleteDatalakeDelegatedAdminResponse } from "../models/models_0"; +import { DeleteSubscriberNotificationRequest, DeleteSubscriberNotificationResponse } from "../models/models_0"; import { - de_DeleteDatalakeDelegatedAdminCommand, - se_DeleteDatalakeDelegatedAdminCommand, + de_DeleteSubscriberNotificationCommand, + se_DeleteSubscriberNotificationCommand, } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; @@ -27,42 +27,41 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link DeleteDatalakeDelegatedAdminCommand}. + * The input for {@link DeleteSubscriberNotificationCommand}. */ -export interface DeleteDatalakeDelegatedAdminCommandInput extends DeleteDatalakeDelegatedAdminRequest {} +export interface DeleteSubscriberNotificationCommandInput extends DeleteSubscriberNotificationRequest {} /** * @public * - * The output of {@link DeleteDatalakeDelegatedAdminCommand}. + * The output of {@link DeleteSubscriberNotificationCommand}. */ -export interface DeleteDatalakeDelegatedAdminCommandOutput - extends DeleteDatalakeDelegatedAdminResponse, +export interface DeleteSubscriberNotificationCommandOutput + extends DeleteSubscriberNotificationResponse, __MetadataBearer {} /** * @public - *

Deletes the Amazon Security Lake delegated administrator account for the organization. This API - * can only be called by the organization management account. The organization management - * account cannot be the delegated administrator account.

+ *

Deletes the specified notification subscription in Amazon Security Lake for the organization + * you specify.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, DeleteDatalakeDelegatedAdminCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, DeleteDatalakeDelegatedAdminCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, DeleteSubscriberNotificationCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, DeleteSubscriberNotificationCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = { // DeleteDatalakeDelegatedAdminRequest - * account: "STRING_VALUE", // required + * const input = { // DeleteSubscriberNotificationRequest + * subscriberId: "STRING_VALUE", // required * }; - * const command = new DeleteDatalakeDelegatedAdminCommand(input); + * const command = new DeleteSubscriberNotificationCommand(input); * const response = await client.send(command); * // {}; * * ``` * - * @param DeleteDatalakeDelegatedAdminCommandInput - {@link DeleteDatalakeDelegatedAdminCommandInput} - * @returns {@link DeleteDatalakeDelegatedAdminCommandOutput} - * @see {@link DeleteDatalakeDelegatedAdminCommandInput} for command's `input` shape. - * @see {@link DeleteDatalakeDelegatedAdminCommandOutput} for command's `response` shape. + * @param DeleteSubscriberNotificationCommandInput - {@link DeleteSubscriberNotificationCommandInput} + * @returns {@link DeleteSubscriberNotificationCommandOutput} + * @see {@link DeleteSubscriberNotificationCommandInput} for command's `input` shape. + * @see {@link DeleteSubscriberNotificationCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -71,23 +70,32 @@ export interface DeleteDatalakeDelegatedAdminCommandOutput * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The limit on the number of requests per second was exceeded.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class DeleteDatalakeDelegatedAdminCommand extends $Command< - DeleteDatalakeDelegatedAdminCommandInput, - DeleteDatalakeDelegatedAdminCommandOutput, +export class DeleteSubscriberNotificationCommand extends $Command< + DeleteSubscriberNotificationCommandInput, + DeleteSubscriberNotificationCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -105,7 +113,7 @@ export class DeleteDatalakeDelegatedAdminCommand extends $Command< /** * @public */ - constructor(readonly input: DeleteDatalakeDelegatedAdminCommandInput) { + constructor(readonly input: DeleteSubscriberNotificationCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -118,17 +126,17 @@ export class DeleteDatalakeDelegatedAdminCommand extends $Command< clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( - getEndpointPlugin(configuration, DeleteDatalakeDelegatedAdminCommand.getEndpointParameterInstructions()) + getEndpointPlugin(configuration, DeleteSubscriberNotificationCommand.getEndpointParameterInstructions()) ); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "DeleteDatalakeDelegatedAdminCommand"; + const commandName = "DeleteSubscriberNotificationCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -147,8 +155,8 @@ export class DeleteDatalakeDelegatedAdminCommand extends $Command< /** * @internal */ - private serialize(input: DeleteDatalakeDelegatedAdminCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_DeleteDatalakeDelegatedAdminCommand(input, context); + private serialize(input: DeleteSubscriberNotificationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_DeleteSubscriberNotificationCommand(input, context); } /** @@ -157,8 +165,8 @@ export class DeleteDatalakeDelegatedAdminCommand extends $Command< private deserialize( output: __HttpResponse, context: __SerdeContext - ): Promise { - return de_DeleteDatalakeDelegatedAdminCommand(output, context); + ): Promise { + return de_DeleteSubscriberNotificationCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/DeleteSubscriptionNotificationConfigurationCommand.ts b/clients/client-securitylake/src/commands/DeregisterDataLakeDelegatedAdministratorCommand.ts similarity index 54% rename from clients/client-securitylake/src/commands/DeleteSubscriptionNotificationConfigurationCommand.ts rename to clients/client-securitylake/src/commands/DeregisterDataLakeDelegatedAdministratorCommand.ts index 1b83d02002c7..111474aac0ed 100644 --- a/clients/client-securitylake/src/commands/DeleteSubscriptionNotificationConfigurationCommand.ts +++ b/clients/client-securitylake/src/commands/DeregisterDataLakeDelegatedAdministratorCommand.ts @@ -14,12 +14,12 @@ import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@s import { SerdeContext as __SerdeContext } from "@smithy/types"; import { - DeleteSubscriptionNotificationConfigurationRequest, - DeleteSubscriptionNotificationConfigurationResponse, + DeregisterDataLakeDelegatedAdministratorRequest, + DeregisterDataLakeDelegatedAdministratorResponse, } from "../models/models_0"; import { - de_DeleteSubscriptionNotificationConfigurationCommand, - se_DeleteSubscriptionNotificationConfigurationCommand, + de_DeregisterDataLakeDelegatedAdministratorCommand, + se_DeregisterDataLakeDelegatedAdministratorCommand, } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; @@ -30,42 +30,41 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link DeleteSubscriptionNotificationConfigurationCommand}. + * The input for {@link DeregisterDataLakeDelegatedAdministratorCommand}. */ -export interface DeleteSubscriptionNotificationConfigurationCommandInput - extends DeleteSubscriptionNotificationConfigurationRequest {} +export interface DeregisterDataLakeDelegatedAdministratorCommandInput + extends DeregisterDataLakeDelegatedAdministratorRequest {} /** * @public * - * The output of {@link DeleteSubscriptionNotificationConfigurationCommand}. + * The output of {@link DeregisterDataLakeDelegatedAdministratorCommand}. */ -export interface DeleteSubscriptionNotificationConfigurationCommandOutput - extends DeleteSubscriptionNotificationConfigurationResponse, +export interface DeregisterDataLakeDelegatedAdministratorCommandOutput + extends DeregisterDataLakeDelegatedAdministratorResponse, __MetadataBearer {} /** * @public - *

Deletes the specified notification subscription in Amazon Security Lake for the organization - * you specify.

+ *

Deletes the Amazon Security Lake delegated administrator account for the organization. This API + * can only be called by the organization management account. The organization management + * account cannot be the delegated administrator account.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, DeleteSubscriptionNotificationConfigurationCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, DeleteSubscriptionNotificationConfigurationCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, DeregisterDataLakeDelegatedAdministratorCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, DeregisterDataLakeDelegatedAdministratorCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = { // DeleteSubscriptionNotificationConfigurationRequest - * subscriptionId: "STRING_VALUE", // required - * }; - * const command = new DeleteSubscriptionNotificationConfigurationCommand(input); + * const input = {}; + * const command = new DeregisterDataLakeDelegatedAdministratorCommand(input); * const response = await client.send(command); * // {}; * * ``` * - * @param DeleteSubscriptionNotificationConfigurationCommandInput - {@link DeleteSubscriptionNotificationConfigurationCommandInput} - * @returns {@link DeleteSubscriptionNotificationConfigurationCommandOutput} - * @see {@link DeleteSubscriptionNotificationConfigurationCommandInput} for command's `input` shape. - * @see {@link DeleteSubscriptionNotificationConfigurationCommandOutput} for command's `response` shape. + * @param DeregisterDataLakeDelegatedAdministratorCommandInput - {@link DeregisterDataLakeDelegatedAdministratorCommandInput} + * @returns {@link DeregisterDataLakeDelegatedAdministratorCommandOutput} + * @see {@link DeregisterDataLakeDelegatedAdministratorCommandInput} for command's `input` shape. + * @see {@link DeregisterDataLakeDelegatedAdministratorCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -74,35 +73,32 @@ export interface DeleteSubscriptionNotificationConfigurationCommandOutput * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

* - * @throws {@link ConcurrentModificationException} (client fault) - *

More than one process tried to modify a resource at the same time.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

- * - * @throws {@link InvalidInputException} (client fault) - *

The request was rejected because a value that's not valid or is out of range was - * supplied for an input parameter.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class DeleteSubscriptionNotificationConfigurationCommand extends $Command< - DeleteSubscriptionNotificationConfigurationCommandInput, - DeleteSubscriptionNotificationConfigurationCommandOutput, +export class DeregisterDataLakeDelegatedAdministratorCommand extends $Command< + DeregisterDataLakeDelegatedAdministratorCommandInput, + DeregisterDataLakeDelegatedAdministratorCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -120,7 +116,7 @@ export class DeleteSubscriptionNotificationConfigurationCommand extends $Command /** * @public */ - constructor(readonly input: DeleteSubscriptionNotificationConfigurationCommandInput) { + constructor(readonly input: DeregisterDataLakeDelegatedAdministratorCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -134,14 +130,14 @@ export class DeleteSubscriptionNotificationConfigurationCommand extends $Command configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions ): Handler< - DeleteSubscriptionNotificationConfigurationCommandInput, - DeleteSubscriptionNotificationConfigurationCommandOutput + DeregisterDataLakeDelegatedAdministratorCommandInput, + DeregisterDataLakeDelegatedAdministratorCommandOutput > { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( getEndpointPlugin( configuration, - DeleteSubscriptionNotificationConfigurationCommand.getEndpointParameterInstructions() + DeregisterDataLakeDelegatedAdministratorCommand.getEndpointParameterInstructions() ) ); @@ -149,7 +145,7 @@ export class DeleteSubscriptionNotificationConfigurationCommand extends $Command const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "DeleteSubscriptionNotificationConfigurationCommand"; + const commandName = "DeregisterDataLakeDelegatedAdministratorCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -169,10 +165,10 @@ export class DeleteSubscriptionNotificationConfigurationCommand extends $Command * @internal */ private serialize( - input: DeleteSubscriptionNotificationConfigurationCommandInput, + input: DeregisterDataLakeDelegatedAdministratorCommandInput, context: __SerdeContext ): Promise<__HttpRequest> { - return se_DeleteSubscriptionNotificationConfigurationCommand(input, context); + return se_DeregisterDataLakeDelegatedAdministratorCommand(input, context); } /** @@ -181,8 +177,8 @@ export class DeleteSubscriptionNotificationConfigurationCommand extends $Command private deserialize( output: __HttpResponse, context: __SerdeContext - ): Promise { - return de_DeleteSubscriptionNotificationConfigurationCommand(output, context); + ): Promise { + return de_DeregisterDataLakeDelegatedAdministratorCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/GetDatalakeExceptionsSubscriptionCommand.ts b/clients/client-securitylake/src/commands/GetDataLakeExceptionSubscriptionCommand.ts similarity index 56% rename from clients/client-securitylake/src/commands/GetDatalakeExceptionsSubscriptionCommand.ts rename to clients/client-securitylake/src/commands/GetDataLakeExceptionSubscriptionCommand.ts index 0ddd01dc719c..b64f30c2507f 100644 --- a/clients/client-securitylake/src/commands/GetDatalakeExceptionsSubscriptionCommand.ts +++ b/clients/client-securitylake/src/commands/GetDataLakeExceptionSubscriptionCommand.ts @@ -13,13 +13,10 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; +import { GetDataLakeExceptionSubscriptionRequest, GetDataLakeExceptionSubscriptionResponse } from "../models/models_0"; import { - GetDatalakeExceptionsSubscriptionRequest, - GetDatalakeExceptionsSubscriptionResponse, -} from "../models/models_0"; -import { - de_GetDatalakeExceptionsSubscriptionCommand, - se_GetDatalakeExceptionsSubscriptionCommand, + de_GetDataLakeExceptionSubscriptionCommand, + se_GetDataLakeExceptionSubscriptionCommand, } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; @@ -30,16 +27,16 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link GetDatalakeExceptionsSubscriptionCommand}. + * The input for {@link GetDataLakeExceptionSubscriptionCommand}. */ -export interface GetDatalakeExceptionsSubscriptionCommandInput extends GetDatalakeExceptionsSubscriptionRequest {} +export interface GetDataLakeExceptionSubscriptionCommandInput extends GetDataLakeExceptionSubscriptionRequest {} /** * @public * - * The output of {@link GetDatalakeExceptionsSubscriptionCommand}. + * The output of {@link GetDataLakeExceptionSubscriptionCommand}. */ -export interface GetDatalakeExceptionsSubscriptionCommandOutput - extends GetDatalakeExceptionsSubscriptionResponse, +export interface GetDataLakeExceptionSubscriptionCommandOutput + extends GetDataLakeExceptionSubscriptionResponse, __MetadataBearer {} /** @@ -48,25 +45,24 @@ export interface GetDatalakeExceptionsSubscriptionCommandOutput * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, GetDatalakeExceptionsSubscriptionCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, GetDatalakeExceptionsSubscriptionCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, GetDataLakeExceptionSubscriptionCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, GetDataLakeExceptionSubscriptionCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); * const input = {}; - * const command = new GetDatalakeExceptionsSubscriptionCommand(input); + * const command = new GetDataLakeExceptionSubscriptionCommand(input); * const response = await client.send(command); - * // { // GetDatalakeExceptionsSubscriptionResponse - * // protocolAndNotificationEndpoint: { // ProtocolAndNotificationEndpoint - * // protocol: "STRING_VALUE", - * // endpoint: "STRING_VALUE", - * // }, + * // { // GetDataLakeExceptionSubscriptionResponse + * // subscriptionProtocol: "STRING_VALUE", + * // notificationEndpoint: "STRING_VALUE", + * // exceptionTimeToLive: Number("long"), * // }; * * ``` * - * @param GetDatalakeExceptionsSubscriptionCommandInput - {@link GetDatalakeExceptionsSubscriptionCommandInput} - * @returns {@link GetDatalakeExceptionsSubscriptionCommandOutput} - * @see {@link GetDatalakeExceptionsSubscriptionCommandInput} for command's `input` shape. - * @see {@link GetDatalakeExceptionsSubscriptionCommandOutput} for command's `response` shape. + * @param GetDataLakeExceptionSubscriptionCommandInput - {@link GetDataLakeExceptionSubscriptionCommandInput} + * @returns {@link GetDataLakeExceptionSubscriptionCommandOutput} + * @see {@link GetDataLakeExceptionSubscriptionCommandInput} for command's `input` shape. + * @see {@link GetDataLakeExceptionSubscriptionCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -75,25 +71,32 @@ export interface GetDatalakeExceptionsSubscriptionCommandOutput * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class GetDatalakeExceptionsSubscriptionCommand extends $Command< - GetDatalakeExceptionsSubscriptionCommandInput, - GetDatalakeExceptionsSubscriptionCommandOutput, +export class GetDataLakeExceptionSubscriptionCommand extends $Command< + GetDataLakeExceptionSubscriptionCommandInput, + GetDataLakeExceptionSubscriptionCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -111,7 +114,7 @@ export class GetDatalakeExceptionsSubscriptionCommand extends $Command< /** * @public */ - constructor(readonly input: GetDatalakeExceptionsSubscriptionCommandInput) { + constructor(readonly input: GetDataLakeExceptionSubscriptionCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -124,17 +127,17 @@ export class GetDatalakeExceptionsSubscriptionCommand extends $Command< clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( - getEndpointPlugin(configuration, GetDatalakeExceptionsSubscriptionCommand.getEndpointParameterInstructions()) + getEndpointPlugin(configuration, GetDataLakeExceptionSubscriptionCommand.getEndpointParameterInstructions()) ); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "GetDatalakeExceptionsSubscriptionCommand"; + const commandName = "GetDataLakeExceptionSubscriptionCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -154,10 +157,10 @@ export class GetDatalakeExceptionsSubscriptionCommand extends $Command< * @internal */ private serialize( - input: GetDatalakeExceptionsSubscriptionCommandInput, + input: GetDataLakeExceptionSubscriptionCommandInput, context: __SerdeContext ): Promise<__HttpRequest> { - return se_GetDatalakeExceptionsSubscriptionCommand(input, context); + return se_GetDataLakeExceptionSubscriptionCommand(input, context); } /** @@ -166,8 +169,8 @@ export class GetDatalakeExceptionsSubscriptionCommand extends $Command< private deserialize( output: __HttpResponse, context: __SerdeContext - ): Promise { - return de_GetDatalakeExceptionsSubscriptionCommand(output, context); + ): Promise { + return de_GetDataLakeExceptionSubscriptionCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/GetDataLakeOrganizationConfigurationCommand.ts b/clients/client-securitylake/src/commands/GetDataLakeOrganizationConfigurationCommand.ts new file mode 100644 index 000000000000..96bfbc4cb365 --- /dev/null +++ b/clients/client-securitylake/src/commands/GetDataLakeOrganizationConfigurationCommand.ts @@ -0,0 +1,191 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, +} from "@aws-sdk/types"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { SerdeContext as __SerdeContext } from "@smithy/types"; + +import { + GetDataLakeOrganizationConfigurationRequest, + GetDataLakeOrganizationConfigurationResponse, +} from "../models/models_0"; +import { + de_GetDataLakeOrganizationConfigurationCommand, + se_GetDataLakeOrganizationConfigurationCommand, +} from "../protocols/Aws_restJson1"; +import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link GetDataLakeOrganizationConfigurationCommand}. + */ +export interface GetDataLakeOrganizationConfigurationCommandInput extends GetDataLakeOrganizationConfigurationRequest {} +/** + * @public + * + * The output of {@link GetDataLakeOrganizationConfigurationCommand}. + */ +export interface GetDataLakeOrganizationConfigurationCommandOutput + extends GetDataLakeOrganizationConfigurationResponse, + __MetadataBearer {} + +/** + * @public + *

Retrieves the configuration that will be automatically set up for accounts added to the + * organization after the organization has onboarded to Amazon Security Lake. This API does not take + * input parameters.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { SecurityLakeClient, GetDataLakeOrganizationConfigurationCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, GetDataLakeOrganizationConfigurationCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * const client = new SecurityLakeClient(config); + * const input = {}; + * const command = new GetDataLakeOrganizationConfigurationCommand(input); + * const response = await client.send(command); + * // { // GetDataLakeOrganizationConfigurationResponse + * // autoEnableNewAccount: [ // DataLakeAutoEnableNewAccountConfigurationList + * // { // DataLakeAutoEnableNewAccountConfiguration + * // region: "STRING_VALUE", // required + * // sources: [ // AwsLogSourceResourceList // required + * // { // AwsLogSourceResource + * // sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", + * // sourceVersion: "STRING_VALUE", + * // }, + * // ], + * // }, + * // ], + * // }; + * + * ``` + * + * @param GetDataLakeOrganizationConfigurationCommandInput - {@link GetDataLakeOrganizationConfigurationCommandInput} + * @returns {@link GetDataLakeOrganizationConfigurationCommandOutput} + * @see {@link GetDataLakeOrganizationConfigurationCommandInput} for command's `input` shape. + * @see {@link GetDataLakeOrganizationConfigurationCommandOutput} for command's `response` shape. + * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization + * request. An explicit denial occurs when a policy contains a Deny statement for the specific + * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also + * no applicable Allow statement.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start + * troubleshooting, perform the operation again.

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

The resource could not be found.

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

The limit on the number of requests per second was exceeded.

+ * + * @throws {@link SecurityLakeServiceException} + *

Base exception class for all service exceptions from SecurityLake service.

+ * + */ +export class GetDataLakeOrganizationConfigurationCommand extends $Command< + GetDataLakeOrganizationConfigurationCommandInput, + GetDataLakeOrganizationConfigurationCommandOutput, + SecurityLakeClientResolvedConfig +> { + // 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: GetDataLakeOrganizationConfigurationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SecurityLakeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, GetDataLakeOrganizationConfigurationCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SecurityLakeClient"; + const commandName = "GetDataLakeOrganizationConfigurationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize( + input: GetDataLakeOrganizationConfigurationCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return se_GetDataLakeOrganizationConfigurationCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_GetDataLakeOrganizationConfigurationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-securitylake/src/commands/GetDatalakeStatusCommand.ts b/clients/client-securitylake/src/commands/GetDataLakeSourcesCommand.ts similarity index 55% rename from clients/client-securitylake/src/commands/GetDatalakeStatusCommand.ts rename to clients/client-securitylake/src/commands/GetDataLakeSourcesCommand.ts index 437b95709d6e..ae66bd883086 100644 --- a/clients/client-securitylake/src/commands/GetDatalakeStatusCommand.ts +++ b/clients/client-securitylake/src/commands/GetDataLakeSourcesCommand.ts @@ -13,8 +13,8 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; -import { GetDatalakeStatusRequest, GetDatalakeStatusResponse } from "../models/models_0"; -import { de_GetDatalakeStatusCommand, se_GetDatalakeStatusCommand } from "../protocols/Aws_restJson1"; +import { GetDataLakeSourcesRequest, GetDataLakeSourcesResponse } from "../models/models_0"; +import { de_GetDataLakeSourcesCommand, se_GetDataLakeSourcesCommand } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; /** @@ -24,47 +24,50 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link GetDatalakeStatusCommand}. + * The input for {@link GetDataLakeSourcesCommand}. */ -export interface GetDatalakeStatusCommandInput extends GetDatalakeStatusRequest {} +export interface GetDataLakeSourcesCommandInput extends GetDataLakeSourcesRequest {} /** * @public * - * The output of {@link GetDatalakeStatusCommand}. + * The output of {@link GetDataLakeSourcesCommand}. */ -export interface GetDatalakeStatusCommandOutput extends GetDatalakeStatusResponse, __MetadataBearer {} +export interface GetDataLakeSourcesCommandOutput extends GetDataLakeSourcesResponse, __MetadataBearer {} /** * @public *

Retrieves a snapshot of the current Region, including whether Amazon Security Lake is enabled - * for those accounts and which sources Security Lake is collecting data from.

+ * for those accounts and which sources Security Lake is collecting data from.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, GetDatalakeStatusCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, GetDatalakeStatusCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, GetDataLakeSourcesCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, GetDataLakeSourcesCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = { // GetDatalakeStatusRequest - * accountSet: [ // InputSet + * const input = { // GetDataLakeSourcesRequest + * accounts: [ // AccountList * "STRING_VALUE", * ], - * maxAccountResults: Number("int"), + * maxResults: Number("int"), * nextToken: "STRING_VALUE", * }; - * const command = new GetDatalakeStatusCommand(input); + * const command = new GetDataLakeSourcesCommand(input); * const response = await client.send(command); - * // { // GetDatalakeStatusResponse - * // accountSourcesList: [ // AccountSourcesList // required - * // { // AccountSources - * // account: "STRING_VALUE", // required - * // sourceType: "STRING_VALUE", // required - * // logsStatus: [ // LogsStatusList - * // { // LogsStatus - * // pathToLogs: "STRING_VALUE", // required - * // healthStatus: "STRING_VALUE", // required + * // { // GetDataLakeSourcesResponse + * // dataLakeArn: "STRING_VALUE", + * // dataLakeSources: [ // DataLakeSourceList + * // { // DataLakeSource + * // account: "STRING_VALUE", + * // sourceName: "STRING_VALUE", + * // eventClasses: [ // OcsfEventClassList + * // "STRING_VALUE", + * // ], + * // sourceStatuses: [ // DataLakeSourceStatusList + * // { // DataLakeSourceStatus + * // resource: "STRING_VALUE", + * // status: "COLLECTING" || "MISCONFIGURED" || "NOT_COLLECTING", * // }, * // ], - * // eventClass: "STRING_VALUE", * // }, * // ], * // nextToken: "STRING_VALUE", @@ -72,10 +75,10 @@ export interface GetDatalakeStatusCommandOutput extends GetDatalakeStatusRespons * * ``` * - * @param GetDatalakeStatusCommandInput - {@link GetDatalakeStatusCommandInput} - * @returns {@link GetDatalakeStatusCommandOutput} - * @see {@link GetDatalakeStatusCommandInput} for command's `input` shape. - * @see {@link GetDatalakeStatusCommandOutput} for command's `response` shape. + * @param GetDataLakeSourcesCommandInput - {@link GetDataLakeSourcesCommandInput} + * @returns {@link GetDataLakeSourcesCommandOutput} + * @see {@link GetDataLakeSourcesCommandInput} for command's `input` shape. + * @see {@link GetDataLakeSourcesCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -84,25 +87,32 @@ export interface GetDatalakeStatusCommandOutput extends GetDatalakeStatusRespons * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class GetDatalakeStatusCommand extends $Command< - GetDatalakeStatusCommandInput, - GetDatalakeStatusCommandOutput, +export class GetDataLakeSourcesCommand extends $Command< + GetDataLakeSourcesCommandInput, + GetDataLakeSourcesCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -120,7 +130,7 @@ export class GetDatalakeStatusCommand extends $Command< /** * @public */ - constructor(readonly input: GetDatalakeStatusCommandInput) { + constructor(readonly input: GetDataLakeSourcesCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -133,17 +143,17 @@ export class GetDatalakeStatusCommand extends $Command< clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( - getEndpointPlugin(configuration, GetDatalakeStatusCommand.getEndpointParameterInstructions()) + getEndpointPlugin(configuration, GetDataLakeSourcesCommand.getEndpointParameterInstructions()) ); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "GetDatalakeStatusCommand"; + const commandName = "GetDataLakeSourcesCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -162,15 +172,15 @@ export class GetDatalakeStatusCommand extends $Command< /** * @internal */ - private serialize(input: GetDatalakeStatusCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_GetDatalakeStatusCommand(input, context); + private serialize(input: GetDataLakeSourcesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_GetDataLakeSourcesCommand(input, context); } /** * @internal */ - private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { - return de_GetDatalakeStatusCommand(output, context); + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_GetDataLakeSourcesCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/GetDatalakeAutoEnableCommand.ts b/clients/client-securitylake/src/commands/GetDatalakeAutoEnableCommand.ts deleted file mode 100644 index 091a2edff95d..000000000000 --- a/clients/client-securitylake/src/commands/GetDatalakeAutoEnableCommand.ts +++ /dev/null @@ -1,167 +0,0 @@ -// smithy-typescript generated code -import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; -import { getSerdePlugin } from "@aws-sdk/middleware-serde"; -import { Command as $Command } from "@aws-sdk/smithy-client"; -import { - FinalizeHandlerArguments, - Handler, - HandlerExecutionContext, - HttpHandlerOptions as __HttpHandlerOptions, - MetadataBearer as __MetadataBearer, - MiddlewareStack, -} from "@aws-sdk/types"; -import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; -import { SerdeContext as __SerdeContext } from "@smithy/types"; - -import { GetDatalakeAutoEnableRequest, GetDatalakeAutoEnableResponse } from "../models/models_0"; -import { de_GetDatalakeAutoEnableCommand, se_GetDatalakeAutoEnableCommand } from "../protocols/Aws_restJson1"; -import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; - -/** - * @public - */ -export { __MetadataBearer, $Command }; -/** - * @public - * - * The input for {@link GetDatalakeAutoEnableCommand}. - */ -export interface GetDatalakeAutoEnableCommandInput extends GetDatalakeAutoEnableRequest {} -/** - * @public - * - * The output of {@link GetDatalakeAutoEnableCommand}. - */ -export interface GetDatalakeAutoEnableCommandOutput extends GetDatalakeAutoEnableResponse, __MetadataBearer {} - -/** - * @public - *

Retrieves the configuration that will be automatically set up for accounts added to the - * organization after the organization has onboarded to Amazon Security Lake. This API does not take - * input parameters.

- * @example - * Use a bare-bones client and the command you need to make an API call. - * ```javascript - * import { SecurityLakeClient, GetDatalakeAutoEnableCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, GetDatalakeAutoEnableCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import - * const client = new SecurityLakeClient(config); - * const input = {}; - * const command = new GetDatalakeAutoEnableCommand(input); - * const response = await client.send(command); - * // { // GetDatalakeAutoEnableResponse - * // autoEnableNewAccounts: [ // AutoEnableNewRegionConfigurationList // required - * // { // AutoEnableNewRegionConfiguration - * // region: "STRING_VALUE", // required - * // sources: [ // AwsSourceTypeList // required - * // "STRING_VALUE", - * // ], - * // }, - * // ], - * // }; - * - * ``` - * - * @param GetDatalakeAutoEnableCommandInput - {@link GetDatalakeAutoEnableCommandInput} - * @returns {@link GetDatalakeAutoEnableCommandOutput} - * @see {@link GetDatalakeAutoEnableCommandInput} for command's `input` shape. - * @see {@link GetDatalakeAutoEnableCommandOutput} for command's `response` shape. - * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. - * - * @throws {@link AccessDeniedException} (client fault) - *

You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization - * request. An explicit denial occurs when a policy contains a Deny statement for the specific - * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also - * no applicable Allow statement.

- * - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

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

Your signing certificate could not be validated.

- * - * @throws {@link SecurityLakeServiceException} - *

Base exception class for all service exceptions from SecurityLake service.

- * - */ -export class GetDatalakeAutoEnableCommand extends $Command< - GetDatalakeAutoEnableCommandInput, - GetDatalakeAutoEnableCommandOutput, - SecurityLakeClientResolvedConfig -> { - // 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: GetDatalakeAutoEnableCommandInput) { - // Start section: command_constructor - super(); - // End section: command_constructor - } - - /** - * @internal - */ - resolveMiddleware( - clientStack: MiddlewareStack, - configuration: SecurityLakeClientResolvedConfig, - options?: __HttpHandlerOptions - ): Handler { - this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); - this.middlewareStack.use( - getEndpointPlugin(configuration, GetDatalakeAutoEnableCommand.getEndpointParameterInstructions()) - ); - - const stack = clientStack.concat(this.middlewareStack); - - const { logger } = configuration; - const clientName = "SecurityLakeClient"; - const commandName = "GetDatalakeAutoEnableCommand"; - const handlerExecutionContext: HandlerExecutionContext = { - logger, - clientName, - commandName, - inputFilterSensitiveLog: (_: any) => _, - outputFilterSensitiveLog: (_: any) => _, - }; - const { requestHandler } = configuration; - return stack.resolve( - (request: FinalizeHandlerArguments) => - requestHandler.handle(request.request as __HttpRequest, options || {}), - handlerExecutionContext - ); - } - - /** - * @internal - */ - private serialize(input: GetDatalakeAutoEnableCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_GetDatalakeAutoEnableCommand(input, context); - } - - /** - * @internal - */ - private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { - return de_GetDatalakeAutoEnableCommand(output, context); - } - - // Start section: command_body_extra - // End section: command_body_extra -} diff --git a/clients/client-securitylake/src/commands/GetDatalakeExceptionsExpiryCommand.ts b/clients/client-securitylake/src/commands/GetDatalakeExceptionsExpiryCommand.ts deleted file mode 100644 index aac74b54b9cf..000000000000 --- a/clients/client-securitylake/src/commands/GetDatalakeExceptionsExpiryCommand.ts +++ /dev/null @@ -1,168 +0,0 @@ -// smithy-typescript generated code -import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; -import { getSerdePlugin } from "@aws-sdk/middleware-serde"; -import { Command as $Command } from "@aws-sdk/smithy-client"; -import { - FinalizeHandlerArguments, - Handler, - HandlerExecutionContext, - HttpHandlerOptions as __HttpHandlerOptions, - MetadataBearer as __MetadataBearer, - MiddlewareStack, -} from "@aws-sdk/types"; -import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; -import { SerdeContext as __SerdeContext } from "@smithy/types"; - -import { GetDatalakeExceptionsExpiryRequest, GetDatalakeExceptionsExpiryResponse } from "../models/models_0"; -import { - de_GetDatalakeExceptionsExpiryCommand, - se_GetDatalakeExceptionsExpiryCommand, -} from "../protocols/Aws_restJson1"; -import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; - -/** - * @public - */ -export { __MetadataBearer, $Command }; -/** - * @public - * - * The input for {@link GetDatalakeExceptionsExpiryCommand}. - */ -export interface GetDatalakeExceptionsExpiryCommandInput extends GetDatalakeExceptionsExpiryRequest {} -/** - * @public - * - * The output of {@link GetDatalakeExceptionsExpiryCommand}. - */ -export interface GetDatalakeExceptionsExpiryCommandOutput - extends GetDatalakeExceptionsExpiryResponse, - __MetadataBearer {} - -/** - * @public - *

Retrieves the expiration period and time-to-live (TTL) for which the exception message - * will remain. Exceptions are stored by default, for 2 weeks from when a record was created - * in Amazon Security Lake. This API does not take input parameters.

- * @example - * Use a bare-bones client and the command you need to make an API call. - * ```javascript - * import { SecurityLakeClient, GetDatalakeExceptionsExpiryCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, GetDatalakeExceptionsExpiryCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import - * const client = new SecurityLakeClient(config); - * const input = {}; - * const command = new GetDatalakeExceptionsExpiryCommand(input); - * const response = await client.send(command); - * // { // GetDatalakeExceptionsExpiryResponse - * // exceptionMessageExpiry: Number("long"), // required - * // }; - * - * ``` - * - * @param GetDatalakeExceptionsExpiryCommandInput - {@link GetDatalakeExceptionsExpiryCommandInput} - * @returns {@link GetDatalakeExceptionsExpiryCommandOutput} - * @see {@link GetDatalakeExceptionsExpiryCommandInput} for command's `input` shape. - * @see {@link GetDatalakeExceptionsExpiryCommandOutput} for command's `response` shape. - * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. - * - * @throws {@link AccessDeniedException} (client fault) - *

You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization - * request. An explicit denial occurs when a policy contains a Deny statement for the specific - * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also - * no applicable Allow statement.

- * - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

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

Your signing certificate could not be validated.

- * - * @throws {@link SecurityLakeServiceException} - *

Base exception class for all service exceptions from SecurityLake service.

- * - */ -export class GetDatalakeExceptionsExpiryCommand extends $Command< - GetDatalakeExceptionsExpiryCommandInput, - GetDatalakeExceptionsExpiryCommandOutput, - SecurityLakeClientResolvedConfig -> { - // 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: GetDatalakeExceptionsExpiryCommandInput) { - // Start section: command_constructor - super(); - // End section: command_constructor - } - - /** - * @internal - */ - resolveMiddleware( - clientStack: MiddlewareStack, - configuration: SecurityLakeClientResolvedConfig, - options?: __HttpHandlerOptions - ): Handler { - this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); - this.middlewareStack.use( - getEndpointPlugin(configuration, GetDatalakeExceptionsExpiryCommand.getEndpointParameterInstructions()) - ); - - const stack = clientStack.concat(this.middlewareStack); - - const { logger } = configuration; - const clientName = "SecurityLakeClient"; - const commandName = "GetDatalakeExceptionsExpiryCommand"; - const handlerExecutionContext: HandlerExecutionContext = { - logger, - clientName, - commandName, - inputFilterSensitiveLog: (_: any) => _, - outputFilterSensitiveLog: (_: any) => _, - }; - const { requestHandler } = configuration; - return stack.resolve( - (request: FinalizeHandlerArguments) => - requestHandler.handle(request.request as __HttpRequest, options || {}), - handlerExecutionContext - ); - } - - /** - * @internal - */ - private serialize(input: GetDatalakeExceptionsExpiryCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_GetDatalakeExceptionsExpiryCommand(input, context); - } - - /** - * @internal - */ - private deserialize( - output: __HttpResponse, - context: __SerdeContext - ): Promise { - return de_GetDatalakeExceptionsExpiryCommand(output, context); - } - - // Start section: command_body_extra - // End section: command_body_extra -} diff --git a/clients/client-securitylake/src/commands/GetSubscriberCommand.ts b/clients/client-securitylake/src/commands/GetSubscriberCommand.ts index 9b9b44c33018..94a680dfb13d 100644 --- a/clients/client-securitylake/src/commands/GetSubscriberCommand.ts +++ b/clients/client-securitylake/src/commands/GetSubscriberCommand.ts @@ -45,36 +45,52 @@ export interface GetSubscriberCommandOutput extends GetSubscriberResponse, __Met * // const { SecurityLakeClient, GetSubscriberCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); * const input = { // GetSubscriberRequest - * id: "STRING_VALUE", // required + * subscriberId: "STRING_VALUE", // required * }; * const command = new GetSubscriberCommand(input); * const response = await client.send(command); * // { // GetSubscriberResponse * // subscriber: { // SubscriberResource - * // subscriptionId: "STRING_VALUE", // required - * // sourceTypes: [ // SourceTypeList // required - * // { // SourceType Union: only one key present - * // awsSourceType: "STRING_VALUE", - * // customSourceType: "STRING_VALUE", + * // subscriberId: "STRING_VALUE", // required + * // subscriberArn: "STRING_VALUE", // required + * // subscriberIdentity: { // AwsIdentity + * // principal: "STRING_VALUE", // required + * // externalId: "STRING_VALUE", // required + * // }, + * // subscriberName: "STRING_VALUE", // required + * // subscriberDescription: "STRING_VALUE", + * // sources: [ // LogSourceResourceList // required + * // { // LogSourceResource Union: only one key present + * // awsLogSource: { // AwsLogSourceResource + * // sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", + * // sourceVersion: "STRING_VALUE", + * // }, + * // customLogSource: { // CustomLogSourceResource + * // sourceName: "STRING_VALUE", + * // sourceVersion: "STRING_VALUE", + * // provider: { // CustomLogSourceProvider + * // roleArn: "STRING_VALUE", + * // location: "STRING_VALUE", + * // }, + * // attributes: { // CustomLogSourceAttributes + * // crawlerArn: "STRING_VALUE", + * // databaseArn: "STRING_VALUE", + * // tableArn: "STRING_VALUE", + * // }, + * // }, * // }, * // ], - * // accountId: "STRING_VALUE", // required - * // subscriberName: "STRING_VALUE", - * // subscriberDescription: "STRING_VALUE", - * // subscriptionStatus: "STRING_VALUE", - * // roleArn: "STRING_VALUE", - * // snsArn: "STRING_VALUE", - * // s3BucketArn: "STRING_VALUE", * // accessTypes: [ // AccessTypeList - * // "STRING_VALUE", + * // "LAKEFORMATION" || "S3", * // ], - * // subscriptionEndpoint: "STRING_VALUE", - * // subscriptionProtocol: "STRING_VALUE", - * // externalId: "STRING_VALUE", - * // createdAt: new Date("TIMESTAMP"), - * // updatedAt: new Date("TIMESTAMP"), + * // roleArn: "STRING_VALUE", + * // s3BucketArn: "STRING_VALUE", + * // subscriberEndpoint: "STRING_VALUE", + * // subscriberStatus: "ACTIVE" || "DEACTIVATED" || "PENDING" || "READY", * // resourceShareArn: "STRING_VALUE", * // resourceShareName: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // updatedAt: new Date("TIMESTAMP"), * // }, * // }; * @@ -92,22 +108,25 @@ export interface GetSubscriberCommandOutput extends GetSubscriberResponse, __Met * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

- * - * @throws {@link InvalidInputException} (client fault) - *

The request was rejected because a value that's not valid or is out of range was - * supplied for an input parameter.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

The limit on the number of requests per second was exceeded.

+ * * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* diff --git a/clients/client-securitylake/src/commands/ListDatalakeExceptionsCommand.ts b/clients/client-securitylake/src/commands/ListDataLakeExceptionsCommand.ts similarity index 61% rename from clients/client-securitylake/src/commands/ListDatalakeExceptionsCommand.ts rename to clients/client-securitylake/src/commands/ListDataLakeExceptionsCommand.ts index ccdb68d19e4d..fa7e7c9bb0ec 100644 --- a/clients/client-securitylake/src/commands/ListDatalakeExceptionsCommand.ts +++ b/clients/client-securitylake/src/commands/ListDataLakeExceptionsCommand.ts @@ -13,8 +13,8 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; -import { ListDatalakeExceptionsRequest, ListDatalakeExceptionsResponse } from "../models/models_0"; -import { de_ListDatalakeExceptionsCommand, se_ListDatalakeExceptionsCommand } from "../protocols/Aws_restJson1"; +import { ListDataLakeExceptionsRequest, ListDataLakeExceptionsResponse } from "../models/models_0"; +import { de_ListDataLakeExceptionsCommand, se_ListDataLakeExceptionsCommand } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; /** @@ -24,15 +24,15 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link ListDatalakeExceptionsCommand}. + * The input for {@link ListDataLakeExceptionsCommand}. */ -export interface ListDatalakeExceptionsCommandInput extends ListDatalakeExceptionsRequest {} +export interface ListDataLakeExceptionsCommandInput extends ListDataLakeExceptionsRequest {} /** * @public * - * The output of {@link ListDatalakeExceptionsCommand}. + * The output of {@link ListDataLakeExceptionsCommand}. */ -export interface ListDatalakeExceptionsCommandOutput extends ListDatalakeExceptionsResponse, __MetadataBearer {} +export interface ListDataLakeExceptionsCommandOutput extends ListDataLakeExceptionsResponse, __MetadataBearer {} /** * @public @@ -41,29 +41,25 @@ export interface ListDatalakeExceptionsCommandOutput extends ListDatalakeExcepti * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, ListDatalakeExceptionsCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, ListDatalakeExceptionsCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, ListDataLakeExceptionsCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, ListDataLakeExceptionsCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = { // ListDatalakeExceptionsRequest - * regionSet: [ // RegionSet + * const input = { // ListDataLakeExceptionsRequest + * regions: [ // RegionList * "STRING_VALUE", * ], - * maxFailures: Number("int"), + * maxResults: Number("int"), * nextToken: "STRING_VALUE", * }; - * const command = new ListDatalakeExceptionsCommand(input); + * const command = new ListDataLakeExceptionsCommand(input); * const response = await client.send(command); - * // { // ListDatalakeExceptionsResponse - * // nonRetryableFailures: [ // FailuresResponseList // required - * // { // FailuresResponse + * // { // ListDataLakeExceptionsResponse + * // exceptions: [ // DataLakeExceptionList + * // { // DataLakeException * // region: "STRING_VALUE", - * // failures: [ // Failureslist - * // { // Failures - * // exceptionMessage: "STRING_VALUE", // required - * // remediation: "STRING_VALUE", // required - * // timestamp: new Date("TIMESTAMP"), // required - * // }, - * // ], + * // exception: "STRING_VALUE", + * // remediation: "STRING_VALUE", + * // timestamp: new Date("TIMESTAMP"), * // }, * // ], * // nextToken: "STRING_VALUE", @@ -71,10 +67,10 @@ export interface ListDatalakeExceptionsCommandOutput extends ListDatalakeExcepti * * ``` * - * @param ListDatalakeExceptionsCommandInput - {@link ListDatalakeExceptionsCommandInput} - * @returns {@link ListDatalakeExceptionsCommandOutput} - * @see {@link ListDatalakeExceptionsCommandInput} for command's `input` shape. - * @see {@link ListDatalakeExceptionsCommandOutput} for command's `response` shape. + * @param ListDataLakeExceptionsCommandInput - {@link ListDataLakeExceptionsCommandInput} + * @returns {@link ListDataLakeExceptionsCommandOutput} + * @see {@link ListDataLakeExceptionsCommandInput} for command's `input` shape. + * @see {@link ListDataLakeExceptionsCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -83,25 +79,32 @@ export interface ListDatalakeExceptionsCommandOutput extends ListDatalakeExcepti * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class ListDatalakeExceptionsCommand extends $Command< - ListDatalakeExceptionsCommandInput, - ListDatalakeExceptionsCommandOutput, +export class ListDataLakeExceptionsCommand extends $Command< + ListDataLakeExceptionsCommandInput, + ListDataLakeExceptionsCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -119,7 +122,7 @@ export class ListDatalakeExceptionsCommand extends $Command< /** * @public */ - constructor(readonly input: ListDatalakeExceptionsCommandInput) { + constructor(readonly input: ListDataLakeExceptionsCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -132,17 +135,17 @@ export class ListDatalakeExceptionsCommand extends $Command< clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( - getEndpointPlugin(configuration, ListDatalakeExceptionsCommand.getEndpointParameterInstructions()) + getEndpointPlugin(configuration, ListDataLakeExceptionsCommand.getEndpointParameterInstructions()) ); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "ListDatalakeExceptionsCommand"; + const commandName = "ListDataLakeExceptionsCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -161,15 +164,15 @@ export class ListDatalakeExceptionsCommand extends $Command< /** * @internal */ - private serialize(input: ListDatalakeExceptionsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_ListDatalakeExceptionsCommand(input, context); + private serialize(input: ListDataLakeExceptionsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_ListDataLakeExceptionsCommand(input, context); } /** * @internal */ - private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { - return de_ListDatalakeExceptionsCommand(output, context); + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_ListDataLakeExceptionsCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/GetDatalakeCommand.ts b/clients/client-securitylake/src/commands/ListDataLakesCommand.ts similarity index 51% rename from clients/client-securitylake/src/commands/GetDatalakeCommand.ts rename to clients/client-securitylake/src/commands/ListDataLakesCommand.ts index 2cf463589db1..8274be5a9293 100644 --- a/clients/client-securitylake/src/commands/GetDatalakeCommand.ts +++ b/clients/client-securitylake/src/commands/ListDataLakesCommand.ts @@ -13,8 +13,8 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; -import { GetDatalakeRequest, GetDatalakeResponse } from "../models/models_0"; -import { de_GetDatalakeCommand, se_GetDatalakeCommand } from "../protocols/Aws_restJson1"; +import { ListDataLakesRequest, ListDataLakesResponse } from "../models/models_0"; +import { de_ListDataLakesCommand, se_ListDataLakesCommand } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; /** @@ -24,66 +24,78 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link GetDatalakeCommand}. + * The input for {@link ListDataLakesCommand}. */ -export interface GetDatalakeCommandInput extends GetDatalakeRequest {} +export interface ListDataLakesCommandInput extends ListDataLakesRequest {} /** * @public * - * The output of {@link GetDatalakeCommand}. + * The output of {@link ListDataLakesCommand}. */ -export interface GetDatalakeCommandOutput extends GetDatalakeResponse, __MetadataBearer {} +export interface ListDataLakesCommandOutput extends ListDataLakesResponse, __MetadataBearer {} /** * @public - *

Retrieves the Amazon Security Lake configuration object for the specified Amazon Web Services account ID. You can use the GetDatalake API to know whether - * Security Lake is enabled for the current Region. This API does not take input parameters.

+ *

Retrieves the Amazon Security Lake configuration object for the specified Amazon Web Services account ID. You can use the ListDataLakes API to know whether + * Security Lake is enabled for any region.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, GetDatalakeCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, GetDatalakeCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, ListDataLakesCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, ListDataLakesCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = {}; - * const command = new GetDatalakeCommand(input); + * const input = { // ListDataLakesRequest + * regions: [ // RegionList + * "STRING_VALUE", + * ], + * }; + * const command = new ListDataLakesCommand(input); * const response = await client.send(command); - * // { // GetDatalakeResponse - * // configurations: { // LakeConfigurationResponseMap // required - * // "": { // LakeConfigurationResponse - * // encryptionKey: "STRING_VALUE", - * // retentionSettings: [ // RetentionSettingList - * // { // RetentionSetting - * // storageClass: "STRING_VALUE", - * // retentionPeriod: Number("int"), + * // { // ListDataLakesResponse + * // dataLakes: [ // DataLakeResourceList + * // { // DataLakeResource + * // dataLakeArn: "STRING_VALUE", // required + * // region: "STRING_VALUE", // required + * // s3BucketArn: "STRING_VALUE", + * // encryptionConfiguration: { // DataLakeEncryptionConfiguration + * // kmsKeyId: "STRING_VALUE", + * // }, + * // lifecycleConfiguration: { // DataLakeLifecycleConfiguration + * // expiration: { // DataLakeLifecycleExpiration + * // days: Number("int"), * // }, - * // ], - * // tagsMap: { // TagsMap - * // "": "STRING_VALUE", + * // transitions: [ // DataLakeLifecycleTransitionList + * // { // DataLakeLifecycleTransition + * // storageClass: "STRING_VALUE", + * // days: Number("int"), + * // }, + * // ], * // }, - * // replicationDestinationRegions: [ // RegionSet - * // "STRING_VALUE", - * // ], - * // replicationRoleArn: "STRING_VALUE", - * // s3BucketArn: "STRING_VALUE", - * // status: "STRING_VALUE", - * // updateStatus: { // UpdateStatus - * // lastUpdateRequestId: "STRING_VALUE", - * // lastUpdateStatus: "STRING_VALUE", - * // lastUpdateFailure: { // LastUpdateFailure + * // replicationConfiguration: { // DataLakeReplicationConfiguration + * // regions: [ // RegionList + * // "STRING_VALUE", + * // ], + * // roleArn: "STRING_VALUE", + * // }, + * // createStatus: "INITIALIZED" || "PENDING" || "COMPLETED" || "FAILED", + * // updateStatus: { // DataLakeUpdateStatus + * // requestId: "STRING_VALUE", + * // status: "INITIALIZED" || "PENDING" || "COMPLETED" || "FAILED", + * // exception: { // DataLakeUpdateException * // reason: "STRING_VALUE", * // code: "STRING_VALUE", * // }, * // }, * // }, - * // }, + * // ], * // }; * * ``` * - * @param GetDatalakeCommandInput - {@link GetDatalakeCommandInput} - * @returns {@link GetDatalakeCommandOutput} - * @see {@link GetDatalakeCommandInput} for command's `input` shape. - * @see {@link GetDatalakeCommandOutput} for command's `response` shape. + * @param ListDataLakesCommandInput - {@link ListDataLakesCommandInput} + * @returns {@link ListDataLakesCommandOutput} + * @see {@link ListDataLakesCommandInput} for command's `input` shape. + * @see {@link ListDataLakesCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -92,28 +104,32 @@ export interface GetDatalakeCommandOutput extends GetDatalakeResponse, __Metadat * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class GetDatalakeCommand extends $Command< - GetDatalakeCommandInput, - GetDatalakeCommandOutput, +export class ListDataLakesCommand extends $Command< + ListDataLakesCommandInput, + ListDataLakesCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -131,7 +147,7 @@ export class GetDatalakeCommand extends $Command< /** * @public */ - constructor(readonly input: GetDatalakeCommandInput) { + constructor(readonly input: ListDataLakesCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -144,15 +160,15 @@ export class GetDatalakeCommand extends $Command< clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); - this.middlewareStack.use(getEndpointPlugin(configuration, GetDatalakeCommand.getEndpointParameterInstructions())); + this.middlewareStack.use(getEndpointPlugin(configuration, ListDataLakesCommand.getEndpointParameterInstructions())); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "GetDatalakeCommand"; + const commandName = "ListDataLakesCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -171,15 +187,15 @@ export class GetDatalakeCommand extends $Command< /** * @internal */ - private serialize(input: GetDatalakeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_GetDatalakeCommand(input, context); + private serialize(input: ListDataLakesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_ListDataLakesCommand(input, context); } /** * @internal */ - private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { - return de_GetDatalakeCommand(output, context); + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_ListDataLakesCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/ListLogSourcesCommand.ts b/clients/client-securitylake/src/commands/ListLogSourcesCommand.ts index 81f2bcee7544..63ca4018546a 100644 --- a/clients/client-securitylake/src/commands/ListLogSourcesCommand.ts +++ b/clients/client-securitylake/src/commands/ListLogSourcesCommand.ts @@ -36,7 +36,7 @@ export interface ListLogSourcesCommandOutput extends ListLogSourcesResponse, __M /** * @public - *

Retrieves the log sources in the current Amazon Web Services Region.

+ *

Retrieves the log sources in the current Amazon Web Services Region.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -44,37 +44,64 @@ export interface ListLogSourcesCommandOutput extends ListLogSourcesResponse, __M * // const { SecurityLakeClient, ListLogSourcesCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); * const input = { // ListLogSourcesRequest - * inputOrder: [ // DimensionSet + * accounts: [ // AccountList * "STRING_VALUE", * ], - * listAllDimensions: { // AllDimensionsMap - * "": { // TwoDimensionsMap - * "": [ // ValueSet - * "STRING_VALUE", - * ], - * }, - * }, - * listTwoDimensions: { - * "": [ - * "STRING_VALUE", - * ], - * }, - * listSingleDimension: [ // InputSet + * regions: [ // RegionList * "STRING_VALUE", * ], + * sources: [ // LogSourceResourceList + * { // LogSourceResource Union: only one key present + * awsLogSource: { // AwsLogSourceResource + * sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", + * sourceVersion: "STRING_VALUE", + * }, + * customLogSource: { // CustomLogSourceResource + * sourceName: "STRING_VALUE", + * sourceVersion: "STRING_VALUE", + * provider: { // CustomLogSourceProvider + * roleArn: "STRING_VALUE", + * location: "STRING_VALUE", + * }, + * attributes: { // CustomLogSourceAttributes + * crawlerArn: "STRING_VALUE", + * databaseArn: "STRING_VALUE", + * tableArn: "STRING_VALUE", + * }, + * }, + * }, + * ], * maxResults: Number("int"), * nextToken: "STRING_VALUE", * }; * const command = new ListLogSourcesCommand(input); * const response = await client.send(command); * // { // ListLogSourcesResponse - * // regionSourceTypesAccountsList: [ // RegionSourceTypesAccountsList // required - * // { // AllDimensionsMap - * // "": { // TwoDimensionsMap - * // "": [ // ValueSet - * // "STRING_VALUE", - * // ], - * // }, + * // sources: [ // LogSourceList + * // { // LogSource + * // account: "STRING_VALUE", + * // region: "STRING_VALUE", + * // sources: [ // LogSourceResourceList + * // { // LogSourceResource Union: only one key present + * // awsLogSource: { // AwsLogSourceResource + * // sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", + * // sourceVersion: "STRING_VALUE", + * // }, + * // customLogSource: { // CustomLogSourceResource + * // sourceName: "STRING_VALUE", + * // sourceVersion: "STRING_VALUE", + * // provider: { // CustomLogSourceProvider + * // roleArn: "STRING_VALUE", + * // location: "STRING_VALUE", + * // }, + * // attributes: { // CustomLogSourceAttributes + * // crawlerArn: "STRING_VALUE", + * // databaseArn: "STRING_VALUE", + * // tableArn: "STRING_VALUE", + * // }, + * // }, + * // }, + * // ], * // }, * // ], * // nextToken: "STRING_VALUE", @@ -94,20 +121,24 @@ export interface ListLogSourcesCommandOutput extends ListLogSourcesResponse, __M * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

diff --git a/clients/client-securitylake/src/commands/ListSubscribersCommand.ts b/clients/client-securitylake/src/commands/ListSubscribersCommand.ts index b40e66807c82..50be160c598a 100644 --- a/clients/client-securitylake/src/commands/ListSubscribersCommand.ts +++ b/clients/client-securitylake/src/commands/ListSubscribersCommand.ts @@ -51,32 +51,48 @@ export interface ListSubscribersCommandOutput extends ListSubscribersResponse, _ * const command = new ListSubscribersCommand(input); * const response = await client.send(command); * // { // ListSubscribersResponse - * // subscribers: [ // SubscriberList // required + * // subscribers: [ // SubscriberResourceList * // { // SubscriberResource - * // subscriptionId: "STRING_VALUE", // required - * // sourceTypes: [ // SourceTypeList // required - * // { // SourceType Union: only one key present - * // awsSourceType: "STRING_VALUE", - * // customSourceType: "STRING_VALUE", + * // subscriberId: "STRING_VALUE", // required + * // subscriberArn: "STRING_VALUE", // required + * // subscriberIdentity: { // AwsIdentity + * // principal: "STRING_VALUE", // required + * // externalId: "STRING_VALUE", // required + * // }, + * // subscriberName: "STRING_VALUE", // required + * // subscriberDescription: "STRING_VALUE", + * // sources: [ // LogSourceResourceList // required + * // { // LogSourceResource Union: only one key present + * // awsLogSource: { // AwsLogSourceResource + * // sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", + * // sourceVersion: "STRING_VALUE", + * // }, + * // customLogSource: { // CustomLogSourceResource + * // sourceName: "STRING_VALUE", + * // sourceVersion: "STRING_VALUE", + * // provider: { // CustomLogSourceProvider + * // roleArn: "STRING_VALUE", + * // location: "STRING_VALUE", + * // }, + * // attributes: { // CustomLogSourceAttributes + * // crawlerArn: "STRING_VALUE", + * // databaseArn: "STRING_VALUE", + * // tableArn: "STRING_VALUE", + * // }, + * // }, * // }, * // ], - * // accountId: "STRING_VALUE", // required - * // subscriberName: "STRING_VALUE", - * // subscriberDescription: "STRING_VALUE", - * // subscriptionStatus: "STRING_VALUE", - * // roleArn: "STRING_VALUE", - * // snsArn: "STRING_VALUE", - * // s3BucketArn: "STRING_VALUE", * // accessTypes: [ // AccessTypeList - * // "STRING_VALUE", + * // "LAKEFORMATION" || "S3", * // ], - * // subscriptionEndpoint: "STRING_VALUE", - * // subscriptionProtocol: "STRING_VALUE", - * // externalId: "STRING_VALUE", - * // createdAt: new Date("TIMESTAMP"), - * // updatedAt: new Date("TIMESTAMP"), + * // roleArn: "STRING_VALUE", + * // s3BucketArn: "STRING_VALUE", + * // subscriberEndpoint: "STRING_VALUE", + * // subscriberStatus: "ACTIVE" || "DEACTIVATED" || "PENDING" || "READY", * // resourceShareArn: "STRING_VALUE", * // resourceShareName: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // updatedAt: new Date("TIMESTAMP"), * // }, * // ], * // nextToken: "STRING_VALUE", @@ -96,24 +112,24 @@ export interface ListSubscribersCommandOutput extends ListSubscribersResponse, _ * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

- * - * @throws {@link InvalidInputException} (client fault) - *

The request was rejected because a value that's not valid or is out of range was - * supplied for an input parameter.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

diff --git a/clients/client-securitylake/src/commands/CreateDatalakeDelegatedAdminCommand.ts b/clients/client-securitylake/src/commands/RegisterDataLakeDelegatedAdministratorCommand.ts similarity index 57% rename from clients/client-securitylake/src/commands/CreateDatalakeDelegatedAdminCommand.ts rename to clients/client-securitylake/src/commands/RegisterDataLakeDelegatedAdministratorCommand.ts index edaedd99755e..3aa156ff0109 100644 --- a/clients/client-securitylake/src/commands/CreateDatalakeDelegatedAdminCommand.ts +++ b/clients/client-securitylake/src/commands/RegisterDataLakeDelegatedAdministratorCommand.ts @@ -13,10 +13,13 @@ import { import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { SerdeContext as __SerdeContext } from "@smithy/types"; -import { CreateDatalakeDelegatedAdminRequest, CreateDatalakeDelegatedAdminResponse } from "../models/models_0"; import { - de_CreateDatalakeDelegatedAdminCommand, - se_CreateDatalakeDelegatedAdminCommand, + RegisterDataLakeDelegatedAdministratorRequest, + RegisterDataLakeDelegatedAdministratorResponse, +} from "../models/models_0"; +import { + de_RegisterDataLakeDelegatedAdministratorCommand, + se_RegisterDataLakeDelegatedAdministratorCommand, } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; @@ -27,16 +30,17 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link CreateDatalakeDelegatedAdminCommand}. + * The input for {@link RegisterDataLakeDelegatedAdministratorCommand}. */ -export interface CreateDatalakeDelegatedAdminCommandInput extends CreateDatalakeDelegatedAdminRequest {} +export interface RegisterDataLakeDelegatedAdministratorCommandInput + extends RegisterDataLakeDelegatedAdministratorRequest {} /** * @public * - * The output of {@link CreateDatalakeDelegatedAdminCommand}. + * The output of {@link RegisterDataLakeDelegatedAdministratorCommand}. */ -export interface CreateDatalakeDelegatedAdminCommandOutput - extends CreateDatalakeDelegatedAdminResponse, +export interface RegisterDataLakeDelegatedAdministratorCommandOutput + extends RegisterDataLakeDelegatedAdministratorResponse, __MetadataBearer {} /** @@ -47,22 +51,22 @@ export interface CreateDatalakeDelegatedAdminCommandOutput * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, CreateDatalakeDelegatedAdminCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, CreateDatalakeDelegatedAdminCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, RegisterDataLakeDelegatedAdministratorCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, RegisterDataLakeDelegatedAdministratorCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = { // CreateDatalakeDelegatedAdminRequest - * account: "STRING_VALUE", // required + * const input = { // RegisterDataLakeDelegatedAdministratorRequest + * accountId: "STRING_VALUE", // required * }; - * const command = new CreateDatalakeDelegatedAdminCommand(input); + * const command = new RegisterDataLakeDelegatedAdministratorCommand(input); * const response = await client.send(command); * // {}; * * ``` * - * @param CreateDatalakeDelegatedAdminCommandInput - {@link CreateDatalakeDelegatedAdminCommandInput} - * @returns {@link CreateDatalakeDelegatedAdminCommandOutput} - * @see {@link CreateDatalakeDelegatedAdminCommandInput} for command's `input` shape. - * @see {@link CreateDatalakeDelegatedAdminCommandOutput} for command's `response` shape. + * @param RegisterDataLakeDelegatedAdministratorCommandInput - {@link RegisterDataLakeDelegatedAdministratorCommandInput} + * @returns {@link RegisterDataLakeDelegatedAdministratorCommandOutput} + * @see {@link RegisterDataLakeDelegatedAdministratorCommandInput} for command's `input` shape. + * @see {@link RegisterDataLakeDelegatedAdministratorCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -71,23 +75,32 @@ export interface CreateDatalakeDelegatedAdminCommandOutput * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The limit on the number of requests per second was exceeded.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class CreateDatalakeDelegatedAdminCommand extends $Command< - CreateDatalakeDelegatedAdminCommandInput, - CreateDatalakeDelegatedAdminCommandOutput, +export class RegisterDataLakeDelegatedAdministratorCommand extends $Command< + RegisterDataLakeDelegatedAdministratorCommandInput, + RegisterDataLakeDelegatedAdministratorCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -105,7 +118,7 @@ export class CreateDatalakeDelegatedAdminCommand extends $Command< /** * @public */ - constructor(readonly input: CreateDatalakeDelegatedAdminCommandInput) { + constructor(readonly input: RegisterDataLakeDelegatedAdministratorCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -118,17 +131,17 @@ export class CreateDatalakeDelegatedAdminCommand extends $Command< clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( - getEndpointPlugin(configuration, CreateDatalakeDelegatedAdminCommand.getEndpointParameterInstructions()) + getEndpointPlugin(configuration, RegisterDataLakeDelegatedAdministratorCommand.getEndpointParameterInstructions()) ); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "CreateDatalakeDelegatedAdminCommand"; + const commandName = "RegisterDataLakeDelegatedAdministratorCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -147,8 +160,11 @@ export class CreateDatalakeDelegatedAdminCommand extends $Command< /** * @internal */ - private serialize(input: CreateDatalakeDelegatedAdminCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_CreateDatalakeDelegatedAdminCommand(input, context); + private serialize( + input: RegisterDataLakeDelegatedAdministratorCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return se_RegisterDataLakeDelegatedAdministratorCommand(input, context); } /** @@ -157,8 +173,8 @@ export class CreateDatalakeDelegatedAdminCommand extends $Command< private deserialize( output: __HttpResponse, context: __SerdeContext - ): Promise { - return de_CreateDatalakeDelegatedAdminCommand(output, context); + ): Promise { + return de_RegisterDataLakeDelegatedAdministratorCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/UpdateDataLakeCommand.ts b/clients/client-securitylake/src/commands/UpdateDataLakeCommand.ts new file mode 100644 index 000000000000..73c6e828ca7a --- /dev/null +++ b/clients/client-securitylake/src/commands/UpdateDataLakeCommand.ts @@ -0,0 +1,227 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, +} from "@aws-sdk/types"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { SerdeContext as __SerdeContext } from "@smithy/types"; + +import { UpdateDataLakeRequest, UpdateDataLakeResponse } from "../models/models_0"; +import { de_UpdateDataLakeCommand, se_UpdateDataLakeCommand } from "../protocols/Aws_restJson1"; +import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link UpdateDataLakeCommand}. + */ +export interface UpdateDataLakeCommandInput extends UpdateDataLakeRequest {} +/** + * @public + * + * The output of {@link UpdateDataLakeCommand}. + */ +export interface UpdateDataLakeCommandOutput extends UpdateDataLakeResponse, __MetadataBearer {} + +/** + * @public + *

Specifies where to store your security data and for how long. You can add a rollup + * Region to consolidate data from multiple Amazon Web Services Regions.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { SecurityLakeClient, UpdateDataLakeCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, UpdateDataLakeCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * const client = new SecurityLakeClient(config); + * const input = { // UpdateDataLakeRequest + * configurations: [ // DataLakeConfigurationList // required + * { // DataLakeConfiguration + * region: "STRING_VALUE", // required + * encryptionConfiguration: { // DataLakeEncryptionConfiguration + * kmsKeyId: "STRING_VALUE", + * }, + * lifecycleConfiguration: { // DataLakeLifecycleConfiguration + * expiration: { // DataLakeLifecycleExpiration + * days: Number("int"), + * }, + * transitions: [ // DataLakeLifecycleTransitionList + * { // DataLakeLifecycleTransition + * storageClass: "STRING_VALUE", + * days: Number("int"), + * }, + * ], + * }, + * replicationConfiguration: { // DataLakeReplicationConfiguration + * regions: [ // RegionList + * "STRING_VALUE", + * ], + * roleArn: "STRING_VALUE", + * }, + * }, + * ], + * }; + * const command = new UpdateDataLakeCommand(input); + * const response = await client.send(command); + * // { // UpdateDataLakeResponse + * // dataLakes: [ // DataLakeResourceList + * // { // DataLakeResource + * // dataLakeArn: "STRING_VALUE", // required + * // region: "STRING_VALUE", // required + * // s3BucketArn: "STRING_VALUE", + * // encryptionConfiguration: { // DataLakeEncryptionConfiguration + * // kmsKeyId: "STRING_VALUE", + * // }, + * // lifecycleConfiguration: { // DataLakeLifecycleConfiguration + * // expiration: { // DataLakeLifecycleExpiration + * // days: Number("int"), + * // }, + * // transitions: [ // DataLakeLifecycleTransitionList + * // { // DataLakeLifecycleTransition + * // storageClass: "STRING_VALUE", + * // days: Number("int"), + * // }, + * // ], + * // }, + * // replicationConfiguration: { // DataLakeReplicationConfiguration + * // regions: [ // RegionList + * // "STRING_VALUE", + * // ], + * // roleArn: "STRING_VALUE", + * // }, + * // createStatus: "INITIALIZED" || "PENDING" || "COMPLETED" || "FAILED", + * // updateStatus: { // DataLakeUpdateStatus + * // requestId: "STRING_VALUE", + * // status: "INITIALIZED" || "PENDING" || "COMPLETED" || "FAILED", + * // exception: { // DataLakeUpdateException + * // reason: "STRING_VALUE", + * // code: "STRING_VALUE", + * // }, + * // }, + * // }, + * // ], + * // }; + * + * ``` + * + * @param UpdateDataLakeCommandInput - {@link UpdateDataLakeCommandInput} + * @returns {@link UpdateDataLakeCommandOutput} + * @see {@link UpdateDataLakeCommandInput} for command's `input` shape. + * @see {@link UpdateDataLakeCommandOutput} for command's `response` shape. + * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization + * request. An explicit denial occurs when a policy contains a Deny statement for the specific + * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also + * no applicable Allow statement.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start + * troubleshooting, perform the operation again.

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

The resource could not be found.

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

The limit on the number of requests per second was exceeded.

+ * + * @throws {@link SecurityLakeServiceException} + *

Base exception class for all service exceptions from SecurityLake service.

+ * + */ +export class UpdateDataLakeCommand extends $Command< + UpdateDataLakeCommandInput, + UpdateDataLakeCommandOutput, + SecurityLakeClientResolvedConfig +> { + // 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: UpdateDataLakeCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SecurityLakeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, UpdateDataLakeCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SecurityLakeClient"; + const commandName = "UpdateDataLakeCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: UpdateDataLakeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_UpdateDataLakeCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_UpdateDataLakeCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-securitylake/src/commands/UpdateDatalakeExceptionsSubscriptionCommand.ts b/clients/client-securitylake/src/commands/UpdateDataLakeExceptionSubscriptionCommand.ts similarity index 57% rename from clients/client-securitylake/src/commands/UpdateDatalakeExceptionsSubscriptionCommand.ts rename to clients/client-securitylake/src/commands/UpdateDataLakeExceptionSubscriptionCommand.ts index a0ef94ce2d1e..a176e79d955a 100644 --- a/clients/client-securitylake/src/commands/UpdateDatalakeExceptionsSubscriptionCommand.ts +++ b/clients/client-securitylake/src/commands/UpdateDataLakeExceptionSubscriptionCommand.ts @@ -14,12 +14,12 @@ import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@s import { SerdeContext as __SerdeContext } from "@smithy/types"; import { - UpdateDatalakeExceptionsSubscriptionRequest, - UpdateDatalakeExceptionsSubscriptionResponse, + UpdateDataLakeExceptionSubscriptionRequest, + UpdateDataLakeExceptionSubscriptionResponse, } from "../models/models_0"; import { - de_UpdateDatalakeExceptionsSubscriptionCommand, - se_UpdateDatalakeExceptionsSubscriptionCommand, + de_UpdateDataLakeExceptionSubscriptionCommand, + se_UpdateDataLakeExceptionSubscriptionCommand, } from "../protocols/Aws_restJson1"; import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; @@ -30,16 +30,16 @@ export { __MetadataBearer, $Command }; /** * @public * - * The input for {@link UpdateDatalakeExceptionsSubscriptionCommand}. + * The input for {@link UpdateDataLakeExceptionSubscriptionCommand}. */ -export interface UpdateDatalakeExceptionsSubscriptionCommandInput extends UpdateDatalakeExceptionsSubscriptionRequest {} +export interface UpdateDataLakeExceptionSubscriptionCommandInput extends UpdateDataLakeExceptionSubscriptionRequest {} /** * @public * - * The output of {@link UpdateDatalakeExceptionsSubscriptionCommand}. + * The output of {@link UpdateDataLakeExceptionSubscriptionCommand}. */ -export interface UpdateDatalakeExceptionsSubscriptionCommandOutput - extends UpdateDatalakeExceptionsSubscriptionResponse, +export interface UpdateDataLakeExceptionSubscriptionCommandOutput + extends UpdateDataLakeExceptionSubscriptionResponse, __MetadataBearer {} /** @@ -49,23 +49,24 @@ export interface UpdateDatalakeExceptionsSubscriptionCommandOutput * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript - * import { SecurityLakeClient, UpdateDatalakeExceptionsSubscriptionCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, UpdateDatalakeExceptionsSubscriptionCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * import { SecurityLakeClient, UpdateDataLakeExceptionSubscriptionCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, UpdateDataLakeExceptionSubscriptionCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); - * const input = { // UpdateDatalakeExceptionsSubscriptionRequest + * const input = { // UpdateDataLakeExceptionSubscriptionRequest * subscriptionProtocol: "STRING_VALUE", // required * notificationEndpoint: "STRING_VALUE", // required + * exceptionTimeToLive: Number("long"), * }; - * const command = new UpdateDatalakeExceptionsSubscriptionCommand(input); + * const command = new UpdateDataLakeExceptionSubscriptionCommand(input); * const response = await client.send(command); * // {}; * * ``` * - * @param UpdateDatalakeExceptionsSubscriptionCommandInput - {@link UpdateDatalakeExceptionsSubscriptionCommandInput} - * @returns {@link UpdateDatalakeExceptionsSubscriptionCommandOutput} - * @see {@link UpdateDatalakeExceptionsSubscriptionCommandInput} for command's `input` shape. - * @see {@link UpdateDatalakeExceptionsSubscriptionCommandOutput} for command's `response` shape. + * @param UpdateDataLakeExceptionSubscriptionCommandInput - {@link UpdateDataLakeExceptionSubscriptionCommandInput} + * @returns {@link UpdateDataLakeExceptionSubscriptionCommandOutput} + * @see {@link UpdateDataLakeExceptionSubscriptionCommandInput} for command's `input` shape. + * @see {@link UpdateDataLakeExceptionSubscriptionCommandOutput} for command's `response` shape. * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) @@ -74,25 +75,32 @@ export interface UpdateDatalakeExceptionsSubscriptionCommandOutput * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

* */ -export class UpdateDatalakeExceptionsSubscriptionCommand extends $Command< - UpdateDatalakeExceptionsSubscriptionCommandInput, - UpdateDatalakeExceptionsSubscriptionCommandOutput, +export class UpdateDataLakeExceptionSubscriptionCommand extends $Command< + UpdateDataLakeExceptionSubscriptionCommandInput, + UpdateDataLakeExceptionSubscriptionCommandOutput, SecurityLakeClientResolvedConfig > { // Start section: command_properties @@ -110,7 +118,7 @@ export class UpdateDatalakeExceptionsSubscriptionCommand extends $Command< /** * @public */ - constructor(readonly input: UpdateDatalakeExceptionsSubscriptionCommandInput) { + constructor(readonly input: UpdateDataLakeExceptionSubscriptionCommandInput) { // Start section: command_constructor super(); // End section: command_constructor @@ -123,17 +131,17 @@ export class UpdateDatalakeExceptionsSubscriptionCommand extends $Command< clientStack: MiddlewareStack, configuration: SecurityLakeClientResolvedConfig, options?: __HttpHandlerOptions - ): Handler { + ): Handler { this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); this.middlewareStack.use( - getEndpointPlugin(configuration, UpdateDatalakeExceptionsSubscriptionCommand.getEndpointParameterInstructions()) + getEndpointPlugin(configuration, UpdateDataLakeExceptionSubscriptionCommand.getEndpointParameterInstructions()) ); const stack = clientStack.concat(this.middlewareStack); const { logger } = configuration; const clientName = "SecurityLakeClient"; - const commandName = "UpdateDatalakeExceptionsSubscriptionCommand"; + const commandName = "UpdateDataLakeExceptionSubscriptionCommand"; const handlerExecutionContext: HandlerExecutionContext = { logger, clientName, @@ -153,10 +161,10 @@ export class UpdateDatalakeExceptionsSubscriptionCommand extends $Command< * @internal */ private serialize( - input: UpdateDatalakeExceptionsSubscriptionCommandInput, + input: UpdateDataLakeExceptionSubscriptionCommandInput, context: __SerdeContext ): Promise<__HttpRequest> { - return se_UpdateDatalakeExceptionsSubscriptionCommand(input, context); + return se_UpdateDataLakeExceptionSubscriptionCommand(input, context); } /** @@ -165,8 +173,8 @@ export class UpdateDatalakeExceptionsSubscriptionCommand extends $Command< private deserialize( output: __HttpResponse, context: __SerdeContext - ): Promise { - return de_UpdateDatalakeExceptionsSubscriptionCommand(output, context); + ): Promise { + return de_UpdateDataLakeExceptionSubscriptionCommand(output, context); } // Start section: command_body_extra diff --git a/clients/client-securitylake/src/commands/UpdateDatalakeCommand.ts b/clients/client-securitylake/src/commands/UpdateDatalakeCommand.ts deleted file mode 100644 index cc61e93aaa80..000000000000 --- a/clients/client-securitylake/src/commands/UpdateDatalakeCommand.ts +++ /dev/null @@ -1,177 +0,0 @@ -// smithy-typescript generated code -import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; -import { getSerdePlugin } from "@aws-sdk/middleware-serde"; -import { Command as $Command } from "@aws-sdk/smithy-client"; -import { - FinalizeHandlerArguments, - Handler, - HandlerExecutionContext, - HttpHandlerOptions as __HttpHandlerOptions, - MetadataBearer as __MetadataBearer, - MiddlewareStack, -} from "@aws-sdk/types"; -import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; -import { SerdeContext as __SerdeContext } from "@smithy/types"; - -import { UpdateDatalakeRequest, UpdateDatalakeResponse } from "../models/models_0"; -import { de_UpdateDatalakeCommand, se_UpdateDatalakeCommand } from "../protocols/Aws_restJson1"; -import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; - -/** - * @public - */ -export { __MetadataBearer, $Command }; -/** - * @public - * - * The input for {@link UpdateDatalakeCommand}. - */ -export interface UpdateDatalakeCommandInput extends UpdateDatalakeRequest {} -/** - * @public - * - * The output of {@link UpdateDatalakeCommand}. - */ -export interface UpdateDatalakeCommandOutput extends UpdateDatalakeResponse, __MetadataBearer {} - -/** - * @public - *

Specifies where to store your security data and for how long. You can add a rollup - * Region to consolidate data from multiple Amazon Web Services Regions.

- * @example - * Use a bare-bones client and the command you need to make an API call. - * ```javascript - * import { SecurityLakeClient, UpdateDatalakeCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, UpdateDatalakeCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import - * const client = new SecurityLakeClient(config); - * const input = { // UpdateDatalakeRequest - * configurations: { // LakeConfigurationRequestMap // required - * "": { // LakeConfigurationRequest - * encryptionKey: "STRING_VALUE", - * retentionSettings: [ // RetentionSettingList - * { // RetentionSetting - * storageClass: "STRING_VALUE", - * retentionPeriod: Number("int"), - * }, - * ], - * tagsMap: { // TagsMap - * "": "STRING_VALUE", - * }, - * replicationDestinationRegions: [ // RegionSet - * "STRING_VALUE", - * ], - * replicationRoleArn: "STRING_VALUE", - * }, - * }, - * }; - * const command = new UpdateDatalakeCommand(input); - * const response = await client.send(command); - * // {}; - * - * ``` - * - * @param UpdateDatalakeCommandInput - {@link UpdateDatalakeCommandInput} - * @returns {@link UpdateDatalakeCommandOutput} - * @see {@link UpdateDatalakeCommandInput} for command's `input` shape. - * @see {@link UpdateDatalakeCommandOutput} for command's `response` shape. - * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. - * - * @throws {@link AccessDeniedException} (client fault) - *

You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization - * request. An explicit denial occurs when a policy contains a Deny statement for the specific - * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also - * no applicable Allow statement.

- * - * @throws {@link EventBridgeException} (client fault) - *

Represents an error interacting with the Amazon EventBridge service.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

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

The resource could not be found.

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

Your signing certificate could not be validated.

- * - * @throws {@link SecurityLakeServiceException} - *

Base exception class for all service exceptions from SecurityLake service.

- * - */ -export class UpdateDatalakeCommand extends $Command< - UpdateDatalakeCommandInput, - UpdateDatalakeCommandOutput, - SecurityLakeClientResolvedConfig -> { - // 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: UpdateDatalakeCommandInput) { - // Start section: command_constructor - super(); - // End section: command_constructor - } - - /** - * @internal - */ - resolveMiddleware( - clientStack: MiddlewareStack, - configuration: SecurityLakeClientResolvedConfig, - options?: __HttpHandlerOptions - ): Handler { - this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); - this.middlewareStack.use( - getEndpointPlugin(configuration, UpdateDatalakeCommand.getEndpointParameterInstructions()) - ); - - const stack = clientStack.concat(this.middlewareStack); - - const { logger } = configuration; - const clientName = "SecurityLakeClient"; - const commandName = "UpdateDatalakeCommand"; - const handlerExecutionContext: HandlerExecutionContext = { - logger, - clientName, - commandName, - inputFilterSensitiveLog: (_: any) => _, - outputFilterSensitiveLog: (_: any) => _, - }; - const { requestHandler } = configuration; - return stack.resolve( - (request: FinalizeHandlerArguments) => - requestHandler.handle(request.request as __HttpRequest, options || {}), - handlerExecutionContext - ); - } - - /** - * @internal - */ - private serialize(input: UpdateDatalakeCommandInput, context: __SerdeContext): Promise<__HttpRequest> { - return se_UpdateDatalakeCommand(input, context); - } - - /** - * @internal - */ - private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { - return de_UpdateDatalakeCommand(output, context); - } - - // Start section: command_body_extra - // End section: command_body_extra -} diff --git a/clients/client-securitylake/src/commands/UpdateDatalakeExceptionsExpiryCommand.ts b/clients/client-securitylake/src/commands/UpdateDatalakeExceptionsExpiryCommand.ts deleted file mode 100644 index bb6cd08514ff..000000000000 --- a/clients/client-securitylake/src/commands/UpdateDatalakeExceptionsExpiryCommand.ts +++ /dev/null @@ -1,171 +0,0 @@ -// smithy-typescript generated code -import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; -import { getSerdePlugin } from "@aws-sdk/middleware-serde"; -import { Command as $Command } from "@aws-sdk/smithy-client"; -import { - FinalizeHandlerArguments, - Handler, - HandlerExecutionContext, - HttpHandlerOptions as __HttpHandlerOptions, - MetadataBearer as __MetadataBearer, - MiddlewareStack, -} from "@aws-sdk/types"; -import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; -import { SerdeContext as __SerdeContext } from "@smithy/types"; - -import { UpdateDatalakeExceptionsExpiryRequest, UpdateDatalakeExceptionsExpiryResponse } from "../models/models_0"; -import { - de_UpdateDatalakeExceptionsExpiryCommand, - se_UpdateDatalakeExceptionsExpiryCommand, -} from "../protocols/Aws_restJson1"; -import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; - -/** - * @public - */ -export { __MetadataBearer, $Command }; -/** - * @public - * - * The input for {@link UpdateDatalakeExceptionsExpiryCommand}. - */ -export interface UpdateDatalakeExceptionsExpiryCommandInput extends UpdateDatalakeExceptionsExpiryRequest {} -/** - * @public - * - * The output of {@link UpdateDatalakeExceptionsExpiryCommand}. - */ -export interface UpdateDatalakeExceptionsExpiryCommandOutput - extends UpdateDatalakeExceptionsExpiryResponse, - __MetadataBearer {} - -/** - * @public - *

Update the expiration period for the exception message to your preferred time, and - * control the time-to-live (TTL) for the exception message to remain. Exceptions are stored - * by default for 2 weeks from when a record was created in Amazon Security Lake.

- * @example - * Use a bare-bones client and the command you need to make an API call. - * ```javascript - * import { SecurityLakeClient, UpdateDatalakeExceptionsExpiryCommand } from "@aws-sdk/client-securitylake"; // ES Modules import - * // const { SecurityLakeClient, UpdateDatalakeExceptionsExpiryCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import - * const client = new SecurityLakeClient(config); - * const input = { // UpdateDatalakeExceptionsExpiryRequest - * exceptionMessageExpiry: Number("long"), // required - * }; - * const command = new UpdateDatalakeExceptionsExpiryCommand(input); - * const response = await client.send(command); - * // {}; - * - * ``` - * - * @param UpdateDatalakeExceptionsExpiryCommandInput - {@link UpdateDatalakeExceptionsExpiryCommandInput} - * @returns {@link UpdateDatalakeExceptionsExpiryCommandOutput} - * @see {@link UpdateDatalakeExceptionsExpiryCommandInput} for command's `input` shape. - * @see {@link UpdateDatalakeExceptionsExpiryCommandOutput} for command's `response` shape. - * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. - * - * @throws {@link AccessDeniedException} (client fault) - *

You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization - * request. An explicit denial occurs when a policy contains a Deny statement for the specific - * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also - * no applicable Allow statement.

- * - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

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

Your signing certificate could not be validated.

- * - * @throws {@link SecurityLakeServiceException} - *

Base exception class for all service exceptions from SecurityLake service.

- * - */ -export class UpdateDatalakeExceptionsExpiryCommand extends $Command< - UpdateDatalakeExceptionsExpiryCommandInput, - UpdateDatalakeExceptionsExpiryCommandOutput, - SecurityLakeClientResolvedConfig -> { - // 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: UpdateDatalakeExceptionsExpiryCommandInput) { - // Start section: command_constructor - super(); - // End section: command_constructor - } - - /** - * @internal - */ - resolveMiddleware( - clientStack: MiddlewareStack, - configuration: SecurityLakeClientResolvedConfig, - options?: __HttpHandlerOptions - ): Handler { - this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); - this.middlewareStack.use( - getEndpointPlugin(configuration, UpdateDatalakeExceptionsExpiryCommand.getEndpointParameterInstructions()) - ); - - const stack = clientStack.concat(this.middlewareStack); - - const { logger } = configuration; - const clientName = "SecurityLakeClient"; - const commandName = "UpdateDatalakeExceptionsExpiryCommand"; - const handlerExecutionContext: HandlerExecutionContext = { - logger, - clientName, - commandName, - inputFilterSensitiveLog: (_: any) => _, - outputFilterSensitiveLog: (_: any) => _, - }; - const { requestHandler } = configuration; - return stack.resolve( - (request: FinalizeHandlerArguments) => - requestHandler.handle(request.request as __HttpRequest, options || {}), - handlerExecutionContext - ); - } - - /** - * @internal - */ - private serialize( - input: UpdateDatalakeExceptionsExpiryCommandInput, - context: __SerdeContext - ): Promise<__HttpRequest> { - return se_UpdateDatalakeExceptionsExpiryCommand(input, context); - } - - /** - * @internal - */ - private deserialize( - output: __HttpResponse, - context: __SerdeContext - ): Promise { - return de_UpdateDatalakeExceptionsExpiryCommand(output, context); - } - - // Start section: command_body_extra - // End section: command_body_extra -} diff --git a/clients/client-securitylake/src/commands/UpdateSubscriberCommand.ts b/clients/client-securitylake/src/commands/UpdateSubscriberCommand.ts index 806e9eb70152..fd40026e7d0b 100644 --- a/clients/client-securitylake/src/commands/UpdateSubscriberCommand.ts +++ b/clients/client-securitylake/src/commands/UpdateSubscriberCommand.ts @@ -37,7 +37,7 @@ export interface UpdateSubscriberCommandOutput extends UpdateSubscriberResponse, /** * @public *

Updates an existing subscription for the given Amazon Security Lake account ID. You can update - * a subscriber by changing the sources that the subscriber consumes data from.

+ * a subscriber by changing the sources that the subscriber consumes data from.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -45,45 +45,79 @@ export interface UpdateSubscriberCommandOutput extends UpdateSubscriberResponse, * // const { SecurityLakeClient, UpdateSubscriberCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import * const client = new SecurityLakeClient(config); * const input = { // UpdateSubscriberRequest - * id: "STRING_VALUE", // required - * sourceTypes: [ // SourceTypeList // required - * { // SourceType Union: only one key present - * awsSourceType: "STRING_VALUE", - * customSourceType: "STRING_VALUE", - * }, - * ], - * externalId: "STRING_VALUE", + * subscriberId: "STRING_VALUE", // required + * subscriberIdentity: { // AwsIdentity + * principal: "STRING_VALUE", // required + * externalId: "STRING_VALUE", // required + * }, * subscriberName: "STRING_VALUE", * subscriberDescription: "STRING_VALUE", + * sources: [ // LogSourceResourceList + * { // LogSourceResource Union: only one key present + * awsLogSource: { // AwsLogSourceResource + * sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", + * sourceVersion: "STRING_VALUE", + * }, + * customLogSource: { // CustomLogSourceResource + * sourceName: "STRING_VALUE", + * sourceVersion: "STRING_VALUE", + * provider: { // CustomLogSourceProvider + * roleArn: "STRING_VALUE", + * location: "STRING_VALUE", + * }, + * attributes: { // CustomLogSourceAttributes + * crawlerArn: "STRING_VALUE", + * databaseArn: "STRING_VALUE", + * tableArn: "STRING_VALUE", + * }, + * }, + * }, + * ], * }; * const command = new UpdateSubscriberCommand(input); * const response = await client.send(command); * // { // UpdateSubscriberResponse * // subscriber: { // SubscriberResource - * // subscriptionId: "STRING_VALUE", // required - * // sourceTypes: [ // SourceTypeList // required - * // { // SourceType Union: only one key present - * // awsSourceType: "STRING_VALUE", - * // customSourceType: "STRING_VALUE", + * // subscriberId: "STRING_VALUE", // required + * // subscriberArn: "STRING_VALUE", // required + * // subscriberIdentity: { // AwsIdentity + * // principal: "STRING_VALUE", // required + * // externalId: "STRING_VALUE", // required + * // }, + * // subscriberName: "STRING_VALUE", // required + * // subscriberDescription: "STRING_VALUE", + * // sources: [ // LogSourceResourceList // required + * // { // LogSourceResource Union: only one key present + * // awsLogSource: { // AwsLogSourceResource + * // sourceName: "ROUTE53" || "VPC_FLOW" || "SH_FINDINGS" || "CLOUD_TRAIL_MGMT" || "LAMBDA_EXECUTION" || "S3_DATA", + * // sourceVersion: "STRING_VALUE", + * // }, + * // customLogSource: { // CustomLogSourceResource + * // sourceName: "STRING_VALUE", + * // sourceVersion: "STRING_VALUE", + * // provider: { // CustomLogSourceProvider + * // roleArn: "STRING_VALUE", + * // location: "STRING_VALUE", + * // }, + * // attributes: { // CustomLogSourceAttributes + * // crawlerArn: "STRING_VALUE", + * // databaseArn: "STRING_VALUE", + * // tableArn: "STRING_VALUE", + * // }, + * // }, * // }, * // ], - * // accountId: "STRING_VALUE", // required - * // subscriberName: "STRING_VALUE", - * // subscriberDescription: "STRING_VALUE", - * // subscriptionStatus: "STRING_VALUE", - * // roleArn: "STRING_VALUE", - * // snsArn: "STRING_VALUE", - * // s3BucketArn: "STRING_VALUE", * // accessTypes: [ // AccessTypeList - * // "STRING_VALUE", + * // "LAKEFORMATION" || "S3", * // ], - * // subscriptionEndpoint: "STRING_VALUE", - * // subscriptionProtocol: "STRING_VALUE", - * // externalId: "STRING_VALUE", - * // createdAt: new Date("TIMESTAMP"), - * // updatedAt: new Date("TIMESTAMP"), + * // roleArn: "STRING_VALUE", + * // s3BucketArn: "STRING_VALUE", + * // subscriberEndpoint: "STRING_VALUE", + * // subscriberStatus: "ACTIVE" || "DEACTIVATED" || "PENDING" || "READY", * // resourceShareArn: "STRING_VALUE", * // resourceShareName: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // updatedAt: new Date("TIMESTAMP"), * // }, * // }; * @@ -101,27 +135,24 @@ export interface UpdateSubscriberCommandOutput extends UpdateSubscriberResponse, * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also * no applicable Allow statement.

* - * @throws {@link AccountNotFoundException} (client fault) - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

- * - * @throws {@link ConcurrentModificationException} (client fault) - *

More than one process tried to modify a resource at the same time.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

* - * @throws {@link ConflictSubscriptionException} (client fault) - *

A conflicting subscription exception operation is in progress.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

* - * @throws {@link InvalidInputException} (client fault) - *

The request was rejected because a value that's not valid or is out of range was - * supplied for an input parameter.

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

The resource could not be found.

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

Your signing certificate could not be validated.

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

The limit on the number of requests per second was exceeded.

* * @throws {@link SecurityLakeServiceException} *

Base exception class for all service exceptions from SecurityLake service.

diff --git a/clients/client-securitylake/src/commands/UpdateSubscriberNotificationCommand.ts b/clients/client-securitylake/src/commands/UpdateSubscriberNotificationCommand.ts new file mode 100644 index 000000000000..03b441e8a026 --- /dev/null +++ b/clients/client-securitylake/src/commands/UpdateSubscriberNotificationCommand.ts @@ -0,0 +1,186 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint"; +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, +} from "@aws-sdk/types"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { SerdeContext as __SerdeContext } from "@smithy/types"; + +import { UpdateSubscriberNotificationRequest, UpdateSubscriberNotificationResponse } from "../models/models_0"; +import { + de_UpdateSubscriberNotificationCommand, + se_UpdateSubscriberNotificationCommand, +} from "../protocols/Aws_restJson1"; +import { SecurityLakeClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../SecurityLakeClient"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link UpdateSubscriberNotificationCommand}. + */ +export interface UpdateSubscriberNotificationCommandInput extends UpdateSubscriberNotificationRequest {} +/** + * @public + * + * The output of {@link UpdateSubscriberNotificationCommand}. + */ +export interface UpdateSubscriberNotificationCommandOutput + extends UpdateSubscriberNotificationResponse, + __MetadataBearer {} + +/** + * @public + *

Updates an existing notification method for the subscription (SQS or HTTPs endpoint) or + * switches the notification subscription endpoint for a subscriber.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { SecurityLakeClient, UpdateSubscriberNotificationCommand } from "@aws-sdk/client-securitylake"; // ES Modules import + * // const { SecurityLakeClient, UpdateSubscriberNotificationCommand } = require("@aws-sdk/client-securitylake"); // CommonJS import + * const client = new SecurityLakeClient(config); + * const input = { // UpdateSubscriberNotificationRequest + * subscriberId: "STRING_VALUE", // required + * configuration: { // NotificationConfiguration Union: only one key present + * sqsNotificationConfiguration: {}, + * httpsNotificationConfiguration: { // HttpsNotificationConfiguration + * endpoint: "STRING_VALUE", // required + * authorizationApiKeyName: "STRING_VALUE", + * authorizationApiKeyValue: "STRING_VALUE", + * httpMethod: "POST" || "PUT", + * targetRoleArn: "STRING_VALUE", // required + * }, + * }, + * }; + * const command = new UpdateSubscriberNotificationCommand(input); + * const response = await client.send(command); + * // { // UpdateSubscriberNotificationResponse + * // subscriberEndpoint: "STRING_VALUE", + * // }; + * + * ``` + * + * @param UpdateSubscriberNotificationCommandInput - {@link UpdateSubscriberNotificationCommandInput} + * @returns {@link UpdateSubscriberNotificationCommandOutput} + * @see {@link UpdateSubscriberNotificationCommandInput} for command's `input` shape. + * @see {@link UpdateSubscriberNotificationCommandOutput} for command's `response` shape. + * @see {@link SecurityLakeClientResolvedConfig | config} for SecurityLakeClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action. Access denied errors appear when Amazon Security Lake explicitly or implicitly denies an authorization + * request. An explicit denial occurs when a policy contains a Deny statement for the specific + * Amazon Web Services action. An implicit denial occurs when there is no applicable Deny statement and also + * no applicable Allow statement.

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

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

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

Occurs when a conflict with a previous successful write is detected. This generally + * occurs when the previous write did not have time to propagate to the host serving the + * current request. A retry (with appropriate backoff logic) is the recommended response to + * this exception.

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

Internal service exceptions are sometimes caused by transient issues. Before you start + * troubleshooting, perform the operation again.

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

The resource could not be found.

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

The limit on the number of requests per second was exceeded.

+ * + * @throws {@link SecurityLakeServiceException} + *

Base exception class for all service exceptions from SecurityLake service.

+ * + */ +export class UpdateSubscriberNotificationCommand extends $Command< + UpdateSubscriberNotificationCommandInput, + UpdateSubscriberNotificationCommandOutput, + SecurityLakeClientResolvedConfig +> { + // 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: UpdateSubscriberNotificationCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: SecurityLakeClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, UpdateSubscriberNotificationCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "SecurityLakeClient"; + const commandName = "UpdateSubscriberNotificationCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: UpdateSubscriberNotificationCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_UpdateSubscriberNotificationCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_UpdateSubscriberNotificationCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-securitylake/src/commands/index.ts b/clients/client-securitylake/src/commands/index.ts index 597e3596624d..1c94e57030a1 100644 --- a/clients/client-securitylake/src/commands/index.ts +++ b/clients/client-securitylake/src/commands/index.ts @@ -1,31 +1,29 @@ // smithy-typescript generated code export * from "./CreateAwsLogSourceCommand"; export * from "./CreateCustomLogSourceCommand"; -export * from "./CreateDatalakeAutoEnableCommand"; -export * from "./CreateDatalakeCommand"; -export * from "./CreateDatalakeDelegatedAdminCommand"; -export * from "./CreateDatalakeExceptionsSubscriptionCommand"; +export * from "./CreateDataLakeCommand"; +export * from "./CreateDataLakeExceptionSubscriptionCommand"; +export * from "./CreateDataLakeOrganizationConfigurationCommand"; export * from "./CreateSubscriberCommand"; -export * from "./CreateSubscriptionNotificationConfigurationCommand"; +export * from "./CreateSubscriberNotificationCommand"; export * from "./DeleteAwsLogSourceCommand"; export * from "./DeleteCustomLogSourceCommand"; -export * from "./DeleteDatalakeAutoEnableCommand"; -export * from "./DeleteDatalakeCommand"; -export * from "./DeleteDatalakeDelegatedAdminCommand"; -export * from "./DeleteDatalakeExceptionsSubscriptionCommand"; +export * from "./DeleteDataLakeCommand"; +export * from "./DeleteDataLakeExceptionSubscriptionCommand"; +export * from "./DeleteDataLakeOrganizationConfigurationCommand"; export * from "./DeleteSubscriberCommand"; -export * from "./DeleteSubscriptionNotificationConfigurationCommand"; -export * from "./GetDatalakeAutoEnableCommand"; -export * from "./GetDatalakeCommand"; -export * from "./GetDatalakeExceptionsExpiryCommand"; -export * from "./GetDatalakeExceptionsSubscriptionCommand"; -export * from "./GetDatalakeStatusCommand"; +export * from "./DeleteSubscriberNotificationCommand"; +export * from "./DeregisterDataLakeDelegatedAdministratorCommand"; +export * from "./GetDataLakeExceptionSubscriptionCommand"; +export * from "./GetDataLakeOrganizationConfigurationCommand"; +export * from "./GetDataLakeSourcesCommand"; export * from "./GetSubscriberCommand"; -export * from "./ListDatalakeExceptionsCommand"; +export * from "./ListDataLakeExceptionsCommand"; +export * from "./ListDataLakesCommand"; export * from "./ListLogSourcesCommand"; export * from "./ListSubscribersCommand"; -export * from "./UpdateDatalakeCommand"; -export * from "./UpdateDatalakeExceptionsExpiryCommand"; -export * from "./UpdateDatalakeExceptionsSubscriptionCommand"; +export * from "./RegisterDataLakeDelegatedAdministratorCommand"; +export * from "./UpdateDataLakeCommand"; +export * from "./UpdateDataLakeExceptionSubscriptionCommand"; export * from "./UpdateSubscriberCommand"; -export * from "./UpdateSubscriptionNotificationConfigurationCommand"; +export * from "./UpdateSubscriberNotificationCommand"; diff --git a/clients/client-securitylake/src/index.ts b/clients/client-securitylake/src/index.ts index f7477ed3bd01..91f290ca4ca4 100644 --- a/clients/client-securitylake/src/index.ts +++ b/clients/client-securitylake/src/index.ts @@ -1,14 +1,9 @@ // smithy-typescript generated code /* eslint-disable */ /** - * - *

Amazon Security Lake is in preview release. Your use of the Security Lake preview is subject to - * Section 2 of the Amazon Web Services Service - * Terms("Betas and Previews").

- *
- *

Amazon Security Lake is a fully managed security data lake service. You can use Security Lake to + *

Amazon Security Lake is a fully managed security data lake service. You can use Security Lake to * automatically centralize security data from cloud, on-premises, and custom sources into a - * data lake that's stored in your Amazon Web Servicesaccount. Amazon Web Services Organizations + * data lake that's stored in your Amazon Web Services account. Amazon Web Services Organizations * is an account management service that lets you consolidate multiple Amazon Web Services * accounts into an organization that you create and centrally manage. With Organizations, you * can create member accounts and invite existing accounts to join your organization. @@ -16,9 +11,9 @@ * security posture across the entire organization. It can also help you improve the * protection of your workloads, applications, and data.

*

The data lake is backed by Amazon Simple Storage Service (Amazon S3) buckets, and you - * retain ownership over your data.

+ * retain ownership over your data.

*

Amazon Security Lake integrates with CloudTrail, a service that provides a record of - * actions taken by a user, role, or an Amazon Web Services service in Security Lake CloudTrail captures API calls for Security Lake as events. The calls captured include calls + * actions taken by a user, role, or an Amazon Web Services service. In Security Lake, CloudTrail captures API calls for Security Lake as events. The calls captured include calls * from the Security Lake console and code calls to the Security Lake API operations. If you create a * trail, you can enable continuous delivery of CloudTrail events to an Amazon S3 bucket, including events for Security Lake. If you don't configure a trail, you can still * view the most recent events in the CloudTrail console in Event history. Using the diff --git a/clients/client-securitylake/src/models/models_0.ts b/clients/client-securitylake/src/models/models_0.ts index e09c6f97090c..135a0731e0ad 100644 --- a/clients/client-securitylake/src/models/models_0.ts +++ b/clients/client-securitylake/src/models/models_0.ts @@ -48,222 +48,97 @@ export type AccessType = (typeof AccessType)[keyof typeof AccessType]; /** * @public - *

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you - * specified, or the account whose credentials you used to make this request isn't a member of - * an organization.

+ *

The AWS identity.

*/ -export class AccountNotFoundException extends __BaseException { - readonly name: "AccountNotFoundException" = "AccountNotFoundException"; - readonly $fault: "client" = "client"; +export interface AwsIdentity { /** - * @internal + *

The AWS identity principal.

*/ - constructor(opts: __ExceptionOptionType) { - super({ - name: "AccountNotFoundException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, AccountNotFoundException.prototype); - } -} + principal: string | undefined; -/** - * @public - * @enum - */ -export const OcsfEventClass = { - ACCESS_ACTIVITY: "ACCESS_ACTIVITY", - ACCOUNT_CHANGE: "ACCOUNT_CHANGE", - AUTHENTICATION: "AUTHENTICATION", - AUTHORIZATION: "AUTHORIZATION", - CLOUD_API: "CLOUD_API", - CLOUD_STORAGE: "CLOUD_STORAGE", - CONFIG_STATE: "CONFIG_STATE", - CONTAINER_LIFECYCLE: "CONTAINER_LIFECYCLE", - DATABASE_LIFECYCLE: "DATABASE_LIFECYCLE", - DHCP_ACTIVITY: "DHCP_ACTIVITY", - DNS_ACTIVITY: "DNS_ACTIVITY", - ENTITY_MANAGEMENT_AUDIT: "ENTITY_MANAGEMENT_AUDIT", - FILE_ACTIVITY: "FILE_ACTIVITY", - FTP_ACTIVITY: "FTP_ACTIVITY", - HTTP_ACTIVITY: "HTTP_ACTIVITY", - INVENTORY_INFO: "INVENTORY_INFO", - KERNEL_ACTIVITY: "KERNEL_ACTIVITY", - KERNEL_EXTENSION: "KERNEL_EXTENSION", - MEMORY_ACTIVITY: "MEMORY_ACTIVITY", - MODULE_ACTIVITY: "MODULE_ACTIVITY", - NETWORK_ACTIVITY: "NETWORK_ACTIVITY", - PROCESS_ACTIVITY: "PROCESS_ACTIVITY", - RDP_ACTIVITY: "RDP_ACTIVITY", - REGISTRY_KEY_ACTIVITY: "REGISTRY_KEY_ACTIVITY", - REGISTRY_VALUE_ACTIVITY: "REGISTRY_VALUE_ACTIVITY", - RESOURCE_ACTIVITY: "RESOURCE_ACTIVITY", - RFB_ACTIVITY: "RFB_ACTIVITY", - SCHEDULED_JOB_ACTIVITY: "SCHEDULED_JOB_ACTIVITY", - SECURITY_FINDING: "SECURITY_FINDING", - SMB_ACTIVITY: "SMB_ACTIVITY", - SMTP_ACTIVITY: "SMTP_ACTIVITY", - SSH_ACTIVITY: "SSH_ACTIVITY", - VIRTUAL_MACHINE_ACTIVITY: "VIRTUAL_MACHINE_ACTIVITY", -} as const; - -/** - * @public - */ -export type OcsfEventClass = (typeof OcsfEventClass)[keyof typeof OcsfEventClass]; + /** + *

The external ID used to estalish trust relationship with the AWS identity.

+ */ + externalId: string | undefined; +} /** * @public * @enum */ -export const SourceStatus = { - ACTIVE: "ACTIVE", - DEACTIVATED: "DEACTIVATED", - PENDING: "PENDING", +export const AwsLogSourceName = { + CLOUD_TRAIL_MGMT: "CLOUD_TRAIL_MGMT", + LAMBDA_EXECUTION: "LAMBDA_EXECUTION", + ROUTE53: "ROUTE53", + S3_DATA: "S3_DATA", + SH_FINDINGS: "SH_FINDINGS", + VPC_FLOW: "VPC_FLOW", } as const; /** * @public */ -export type SourceStatus = (typeof SourceStatus)[keyof typeof SourceStatus]; - -/** - * @public - *

Retrieves the Logs status for the Amazon Security Lake account.

- */ -export interface LogsStatus { - /** - *

Defines path the stored logs are available which has information on your systems, - * applications, and services.

- */ - pathToLogs: string | undefined; - - /** - *

The health status of services, including error codes and patterns.

- */ - healthStatus: SourceStatus | string | undefined; -} +export type AwsLogSourceName = (typeof AwsLogSourceName)[keyof typeof AwsLogSourceName]; /** * @public - *

Amazon Security Lake collects logs and events from supported Amazon Web Services and - * custom sources. For the list of supported Amazon Web Services, see the Amazon Security Lake User Guide.

+ *

The Security Lake logs source configuration file describes the information needed to generate Security Lake logs.

*/ -export interface AccountSources { +export interface AwsLogSourceConfiguration { /** - *

The ID of the Security Lake account for which logs are collected.

+ *

Specify the Amazon Web Services account information where you want to enable Security Lake.

*/ - account: string | undefined; + accounts?: string[]; /** - *

The supported Amazon Web Services from which logs and events are collected. - * Amazon Security Lake supports log and event collection for natively supported Amazon Web Services.

+ *

Specify the Regions where you want to enable Security Lake.

*/ - sourceType: string | undefined; + regions: string[] | undefined; /** - *

The log status for the Security Lake account.

+ *

The name for a Amazon Web Services source. This must be a Regionally unique value.

*/ - logsStatus?: LogsStatus[]; + sourceName: AwsLogSourceName | string | undefined; /** - *

Initializes a new instance of the Event class.

+ *

The version for a Amazon Web Services source. This must be a Regionally unique value.

*/ - eventClass?: OcsfEventClass | string; + sourceVersion?: string; } /** * @public - * @enum - */ -export const Region = { - AP_NORTHEAST_1: "ap-northeast-1", - AP_SOUTHEAST_2: "ap-southeast-2", - EU_CENTRAL_1: "eu-central-1", - EU_WEST_1: "eu-west-1", - US_EAST_1: "us-east-1", - US_EAST_2: "us-east-2", - US_WEST_2: "us-west-2", -} as const; - -/** - * @public - */ -export type Region = (typeof Region)[keyof typeof Region]; - -/** - * @public - * @enum - */ -export const AwsLogSourceType = { - CLOUD_TRAIL: "CLOUD_TRAIL", - ROUTE53: "ROUTE53", - SH_FINDINGS: "SH_FINDINGS", - VPC_FLOW: "VPC_FLOW", -} as const; - -/** - * @public + *

Amazon Security Lake can collect logs and events from natively-supported Amazon Web Services services.

*/ -export type AwsLogSourceType = (typeof AwsLogSourceType)[keyof typeof AwsLogSourceType]; - -/** - * @public - *

Automatically enable new organization accounts as member accounts from an Amazon Security Lake - * administrator account.

- */ -export interface AutoEnableNewRegionConfiguration { - /** - *

The Amazon Web Services Regions where Security Lake is automatically enabled.

- */ - region: Region | string | undefined; - +export interface AwsLogSourceResource { /** - *

The Amazon Web Services sources that are automatically enabled in Security Lake.

+ *

The name for a Amazon Web Services source. This must be a Regionally unique value.

*/ - sources: (AwsLogSourceType | string)[] | undefined; -} + sourceName?: AwsLogSourceName | string; -/** - * @public - *

Amazon Security Lake generally returns 404 errors if the requested object is missing from the - * bucket.

- */ -export class BucketNotFoundException extends __BaseException { - readonly name: "BucketNotFoundException" = "BucketNotFoundException"; - readonly $fault: "client" = "client"; /** - * @internal + *

The version for a Amazon Web Services source. This must be a Regionally unique value.

*/ - constructor(opts: __ExceptionOptionType) { - super({ - name: "BucketNotFoundException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, BucketNotFoundException.prototype); - } + sourceVersion?: string; } /** * @public - *

More than one process tried to modify a resource at the same time.

+ *

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

*/ -export class ConcurrentModificationException extends __BaseException { - readonly name: "ConcurrentModificationException" = "ConcurrentModificationException"; +export class BadRequestException extends __BaseException { + readonly name: "BadRequestException" = "BadRequestException"; readonly $fault: "client" = "client"; - $retryable = {}; /** * @internal */ - constructor(opts: __ExceptionOptionType) { + constructor(opts: __ExceptionOptionType) { super({ - name: "ConcurrentModificationException", + name: "BadRequestException", $fault: "client", ...opts, }); - Object.setPrototypeOf(this, ConcurrentModificationException.prototype); + Object.setPrototypeOf(this, BadRequestException.prototype); } } @@ -278,14 +153,14 @@ export class ConflictException extends __BaseException { readonly name: "ConflictException" = "ConflictException"; readonly $fault: "client" = "client"; /** - *

A conflict occurred when prompting for the Resource ID.

+ *

The resource name.

*/ - resourceId: string | undefined; + resourceName?: string; /** - *

The resource type.

+ *

The resource type.

*/ - resourceType: string | undefined; + resourceType?: string; /** * @internal @@ -297,104 +172,25 @@ export class ConflictException extends __BaseException { ...opts, }); Object.setPrototypeOf(this, ConflictException.prototype); - this.resourceId = opts.resourceId; + this.resourceName = opts.resourceName; this.resourceType = opts.resourceType; } } -/** - * @public - *

There was a conflict when you attempted to modify a Security Lake source name.

- */ -export class ConflictSourceNamesException extends __BaseException { - readonly name: "ConflictSourceNamesException" = "ConflictSourceNamesException"; - readonly $fault: "client" = "client"; - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ConflictSourceNamesException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ConflictSourceNamesException.prototype); - } -} - -/** - * @public - *

A conflicting subscription exception operation is in progress.

- */ -export class ConflictSubscriptionException extends __BaseException { - readonly name: "ConflictSubscriptionException" = "ConflictSubscriptionException"; - readonly $fault: "client" = "client"; - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ConflictSubscriptionException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ConflictSubscriptionException.prototype); - } -} - -/** - * @public - * @enum - */ -export const Dimension = { - MEMBER: "MEMBER", - REGION: "REGION", - SOURCE_TYPE: "SOURCE_TYPE", -} as const; - -/** - * @public - */ -export type Dimension = (typeof Dimension)[keyof typeof Dimension]; - /** * @public */ export interface CreateAwsLogSourceRequest { /** - *

Specifies the input order to enable dimensions in Security Lake, namely Region, source type, - * and member account.

- */ - inputOrder: (Dimension | string)[] | undefined; - - /** - *

Enables data collection from specific Amazon Web Services sources in all specific - * accounts and specific Regions.

+ *

Specify the natively-supported Amazon Web Services service to add as a source in Security Lake.

*/ - enableAllDimensions?: Record>; - - /** - *

Enables data collection from specific Amazon Web Services sources in specific accounts or - * Regions.

- */ - enableTwoDimensions?: Record; - - /** - *

Enables data collection from all Amazon Web Services sources in specific accounts or - * Regions.

- */ - enableSingleDimension?: string[]; + sources: AwsLogSourceConfiguration[] | undefined; } /** * @public */ export interface CreateAwsLogSourceResponse { - /** - *

Lists the accounts that are in the process of enabling a natively supported Amazon Web Service as a Security Lake source.

- */ - processing?: string[]; - /** *

Lists all accounts in which enabling a natively supported Amazon Web Service as * a Security Lake source failed. The failure occurred as these accounts are not part of an @@ -406,17 +202,12 @@ export interface CreateAwsLogSourceResponse { /** * @public *

Internal service exceptions are sometimes caused by transient issues. Before you start - * troubleshooting, perform the operation again.

+ * troubleshooting, perform the operation again.

*/ export class InternalServerException extends __BaseException { readonly name: "InternalServerException" = "InternalServerException"; readonly $fault: "server" = "server"; $retryable = {}; - /** - *

Retry the request after the specified time.

- */ - retryAfterSeconds?: number; - /** * @internal */ @@ -427,7 +218,6 @@ export class InternalServerException extends __BaseException { ...opts, }); Object.setPrototypeOf(this, InternalServerException.prototype); - this.retryAfterSeconds = opts.retryAfterSeconds; } } @@ -439,14 +229,14 @@ export class ResourceNotFoundException extends __BaseException { readonly name: "ResourceNotFoundException" = "ResourceNotFoundException"; readonly $fault: "client" = "client"; /** - *

The ID of the resource for which the type of resource could not be found.

+ *

The name of the resource that could not be found.

*/ - resourceId: string | undefined; + resourceName?: string; /** *

The type of the resource that could not be found.

*/ - resourceType: string | undefined; + resourceType?: string; /** * @internal @@ -458,113 +248,57 @@ export class ResourceNotFoundException extends __BaseException { ...opts, }); Object.setPrototypeOf(this, ResourceNotFoundException.prototype); - this.resourceId = opts.resourceId; + this.resourceName = opts.resourceName; this.resourceType = opts.resourceType; } } /** * @public - *

Provides an extension of the AmazonServiceException for errors reported by Amazon S3 while processing a request. In particular, this class provides access to the - * Amazon S3 extended request ID. If Amazon S3 is incorrectly handling a - * request and you need to contact Amazon, this extended request ID may provide useful - * debugging information.

+ *

The limit on the number of requests per second was exceeded.

*/ -export class S3Exception extends __BaseException { - readonly name: "S3Exception" = "S3Exception"; +export class ThrottlingException extends __BaseException { + readonly name: "ThrottlingException" = "ThrottlingException"; readonly $fault: "client" = "client"; + $retryable = { + throttling: true, + }; /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "S3Exception", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, S3Exception.prototype); - } -} - -/** - * @public - *

The input fails to meet the constraints specified in Amazon Security Lake.

- */ -export interface ValidationExceptionField { - /** - *

Name of the validation exception.

- */ - name: string | undefined; - - /** - *

Describes the error encountered.

+ *

The code for the service in Service Quotas.

*/ - message: string | undefined; -} - -/** - * @public - * @enum - */ -export const ValidationExceptionReason = { - CANNOT_PARSE: "cannotParse", - FIELD_VALIDATION_FAILED: "fieldValidationFailed", - OTHER: "other", - UNKNOWN_OPERATION: "unknownOperation", -} as const; - -/** - * @public - */ -export type ValidationExceptionReason = (typeof ValidationExceptionReason)[keyof typeof ValidationExceptionReason]; + serviceCode?: string; -/** - * @public - *

Your signing certificate could not be validated.

- */ -export class ValidationException extends __BaseException { - readonly name: "ValidationException" = "ValidationException"; - readonly $fault: "client" = "client"; /** - *

The reason for the validation exception.

+ *

That the rate of requests to Security Lake is exceeding the request quotas for your Amazon Web Services account.

*/ - reason: ValidationExceptionReason | string | undefined; + quotaCode?: string; /** - *

The list of parameters that failed to validate.

+ *

Retry the request after the specified time.

*/ - fieldList?: ValidationExceptionField[]; + retryAfterSeconds?: number; /** * @internal */ - constructor(opts: __ExceptionOptionType) { + constructor(opts: __ExceptionOptionType) { super({ - name: "ValidationException", + name: "ThrottlingException", $fault: "client", ...opts, }); - Object.setPrototypeOf(this, ValidationException.prototype); - this.reason = opts.reason; - this.fieldList = opts.fieldList; + Object.setPrototypeOf(this, ThrottlingException.prototype); + this.serviceCode = opts.serviceCode; + this.quotaCode = opts.quotaCode; + this.retryAfterSeconds = opts.retryAfterSeconds; } } /** * @public + *

The configuration for the Glue Crawler for the third-party custom source.

*/ -export interface CreateCustomLogSourceRequest { - /** - *

The name for a third-party custom source. This must be a Regionally unique value.

- */ - customSourceName: string | undefined; - - /** - *

The Open Cybersecurity Schema Framework (OCSF) event class which describes the type of - * data that the custom source will send to Security Lake.

- */ - eventClass: OcsfEventClass | string | undefined; - +export interface CustomLogSourceCrawlerConfiguration { /** *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role * to be used by the Glue crawler. The recommended IAM policies @@ -579,336 +313,597 @@ export interface CreateCustomLogSourceRequest { * * */ - glueInvocationRoleArn: string | undefined; - - /** - *

The Amazon Web Services account ID of the custom source that will write logs and events - * into the Amazon S3 Data Lake.

- */ - logProviderAccountId: string | undefined; -} - -/** - * @public - */ -export interface CreateCustomLogSourceResponse { - /** - *

The location of the partition in the Amazon S3 bucket for Security Lake.

- */ - customDataLocation: string | undefined; - - /** - *

The name of the Glue crawler.

- */ - glueCrawlerName: string | undefined; - - /** - *

The table name of the Glue crawler.

- */ - glueTableName: string | undefined; - - /** - *

The Glue database where results are written, such as: - * arn:aws:daylight:us-east-1::database/sometable/*.

- */ - glueDatabaseName: string | undefined; - - /** - *

The ARN of the IAM role to be used by the entity putting logs into your - * custom source partition. Security Lake will apply the correct access policies to this role, but - * you must first manually create the trust policy for this role. The IAM role - * name must start with the text 'Security Lake'. The IAM role must trust the - * logProviderAccountId to assume the role.

- */ - logProviderAccessRoleArn: string | undefined; + roleArn: string | undefined; } /** * @public - * @enum - */ -export const StorageClass = { - DEEP_ARCHIVE: "DEEP_ARCHIVE", - EXPIRE: "EXPIRE", - GLACIER: "GLACIER", - GLACIER_IR: "GLACIER_IR", - INTELLIGENT_TIERING: "INTELLIGENT_TIERING", - ONEZONE_IA: "ONEZONE_IA", - STANDARD_IA: "STANDARD_IA", -} as const; - -/** - * @public - */ -export type StorageClass = (typeof StorageClass)[keyof typeof StorageClass]; - -/** - * @public - *

Retention settings for the destination Amazon S3 buckets in Amazon Security Lake.

+ *

The configuration for the third-party custom source.

*/ -export interface RetentionSetting { +export interface CustomLogSourceConfiguration { /** - *

The range of storage classes that you can choose from based on the data access, - * resiliency, and cost requirements of your workloads.

+ *

The configuration for the Glue Crawler for the third-party custom source.

*/ - storageClass?: StorageClass | string; + crawlerConfiguration: CustomLogSourceCrawlerConfiguration | undefined; /** - *

The retention period specifies a fixed period of time during which the Security Lake object - * remains locked. You can specify the retention period in days for one or more sources.

+ *

The identity of the log provider for the third-party custom source.

*/ - retentionPeriod?: number; + providerIdentity: AwsIdentity | undefined; } /** * @public - *

Provides details of Amazon Security Lake configuration object.

*/ -export interface LakeConfigurationRequest { - /** - *

The type of encryption key used by Amazon Security Lake to encrypt the Security Lake configuration - * object.

- */ - encryptionKey?: string; - - /** - *

Retention settings for the destination Amazon S3 buckets.

- */ - retentionSettings?: RetentionSetting[]; - +export interface CreateCustomLogSourceRequest { /** - *

A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an - * optional value, both of which you define.

+ *

Specify the name for a third-party custom source. This must be a Regionally unique + * value.

*/ - tagsMap?: Record; + sourceName: string | undefined; /** - *

Replication enables automatic, asynchronous copying of objects across Amazon S3 - * buckets. Amazon S3 buckets that are configured for object replication can be owned - * by the same Amazon Web Services account or by different accounts. You can replicate objects - * to a single destination bucket or to multiple destination buckets. The destination buckets - * can be in different Amazon Web Services Regions or within the same Region as the source - * bucket.

- *

Set up one or more rollup Regions by providing the Region or Regions that should - * contribute to the central rollup Region.

+ *

Specify the source version for the third-party custom source, to limit log collection to + * a specific version of custom data source.

*/ - replicationDestinationRegions?: (Region | string)[]; + sourceVersion?: string; /** - *

Replication settings for the Amazon S3 buckets. This parameter uses the Identity and Access Management (IAM) role you created that is managed by Security Lake, to - * ensure the replication setting is correct.

- */ - replicationRoleArn?: string; -} - + *

The Open Cybersecurity Schema Framework (OCSF) event classes which describes the type of + * data that the custom source will send to Security Lake. The supported event classes are:

+ *
    + *
  • + *

    + * ACCESS_ACTIVITY + *

    + *
  • + *
  • + *

    + * FILE_ACTIVITY + *

    + *
  • + *
  • + *

    + * KERNEL_ACTIVITY + *

    + *
  • + *
  • + *

    + * KERNEL_EXTENSION + *

    + *
  • + *
  • + *

    + * MEMORY_ACTIVITY + *

    + *
  • + *
  • + *

    + * MODULE_ACTIVITY + *

    + *
  • + *
  • + *

    + * PROCESS_ACTIVITY + *

    + *
  • + *
  • + *

    + * REGISTRY_KEY_ACTIVITY + *

    + *
  • + *
  • + *

    + * REGISTRY_VALUE_ACTIVITY + *

    + *
  • + *
  • + *

    + * RESOURCE_ACTIVITY + *

    + *
  • + *
  • + *

    + * SCHEDULED_JOB_ACTIVITY + *

    + *
  • + *
  • + *

    + * SECURITY_FINDING + *

    + *
  • + *
  • + *

    + * ACCOUNT_CHANGE + *

    + *
  • + *
  • + *

    + * AUTHENTICATION + *

    + *
  • + *
  • + *

    + * AUTHORIZATION + *

    + *
  • + *
  • + *

    + * ENTITY_MANAGEMENT_AUDIT + *

    + *
  • + *
  • + *

    + * DHCP_ACTIVITY + *

    + *
  • + *
  • + *

    + * NETWORK_ACTIVITY + *

    + *
  • + *
  • + *

    + * DNS_ACTIVITY + *

    + *
  • + *
  • + *

    + * FTP_ACTIVITY + *

    + *
  • + *
  • + *

    + * HTTP_ACTIVITY + *

    + *
  • + *
  • + *

    + * RDP_ACTIVITY + *

    + *
  • + *
  • + *

    + * SMB_ACTIVITY + *

    + *
  • + *
  • + *

    + * SSH_ACTIVITY + *

    + *
  • + *
  • + *

    + * CONFIG_STATE + *

    + *
  • + *
  • + *

    + * INVENTORY_INFO + *

    + *
  • + *
  • + *

    + * EMAIL_ACTIVITY + *

    + *
  • + *
  • + *

    + * API_ACTIVITY + *

    + *
  • + *
  • + *

    + * CLOUD_API + *

    + *
  • + *
+ */ + eventClasses?: string[]; + + /** + *

The configuration for the third-party custom source.

+ */ + configuration?: CustomLogSourceConfiguration; +} + /** * @public + *

The attributes of a third-party custom source.

*/ -export interface CreateDatalakeRequest { +export interface CustomLogSourceAttributes { /** - *

Enable Security Lake in the specified Regions. To enable Security Lake in specific Amazon Web Services Regions, such as us-east-1 or ap-northeast-3, provide the Region codes. For a - * list of Region codes, see Amazon Security Lake endpoints in the - * Amazon Web Services General Reference.

+ *

The ARN of the Glue crawler.

*/ - regions?: (Region | string)[]; + crawlerArn?: string; /** - *

Specify the Region or Regions that will contribute data to the rollup region.

+ *

The ARN of the Glue database where results are written, such as: + * arn:aws:daylight:us-east-1::database/sometable/*.

*/ - configurations?: Record; + databaseArn?: string; /** - *

Enable Security Lake in all Regions.

+ *

The ARN of the Glue table.

*/ - enableAll?: boolean; + tableArn?: string; +} +/** + * @public + *

The details of the log provider for a third-party custom source.

+ */ +export interface CustomLogSourceProvider { /** - *

The Amazon Resource Name (ARN) used to create and update the Glue table. - * This table contains partitions generated by the ingestion and normalization of Amazon Web Services log sources and custom sources.

+ *

The ARN of the IAM role to be used by the entity putting logs into your + * custom source partition. Security Lake will apply the correct access policies to this role, but + * you must first manually create the trust policy for this role. The IAM role + * name must start with the text 'Security Lake'. The IAM role must trust the + * logProviderAccountId to assume the role.

+ */ + roleArn?: string; + + /** + *

The location of the partition in the Amazon S3 bucket for Security Lake.

*/ - metaStoreManagerRoleArn?: string; + location?: string; } /** * @public + *

Amazon Security Lake can collect logs and events from third-party custom sources.

*/ -export interface CreateDatalakeResponse {} +export interface CustomLogSourceResource { + /** + *

The name for a third-party custom source. This must be a Regionally unique value.

+ */ + sourceName?: string; + + /** + *

The version for a third-party custom source. This must be a Regionally unique value.

+ */ + sourceVersion?: string; + + /** + *

The details of the log provider for a third-party custom source.

+ */ + provider?: CustomLogSourceProvider; + + /** + *

The attributes of a third-party custom source.

+ */ + attributes?: CustomLogSourceAttributes; +} /** * @public - *

You have exceeded your service quota. To perform the requested action, remove some of - * the relevant resources, or use Service Quotas to request a service quota increase.

*/ -export class ServiceQuotaExceededException extends __BaseException { - readonly name: "ServiceQuotaExceededException" = "ServiceQuotaExceededException"; - readonly $fault: "client" = "client"; +export interface CreateCustomLogSourceResponse { /** - *

The ID of the resource that exceeds the service quota.

+ *

The created third-party custom source.

*/ - resourceId: string | undefined; + source?: CustomLogSourceResource; +} +/** + * @public + *

Provides encryption details of Amazon Security Lake object.

+ */ +export interface DataLakeEncryptionConfiguration { /** - *

The type of the resource that exceeds the service quota.

+ *

The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake + * object.

*/ - resourceType: string | undefined; + kmsKeyId?: string; +} +/** + * @public + *

Provide expiration lifecycle details of Amazon Security Lake object.

+ */ +export interface DataLakeLifecycleExpiration { /** - *

The code for the service in Service Quotas.

+ *

Number of days before data expires in the Amazon Security Lake object.

*/ - serviceCode: string | undefined; + days?: number; +} +/** + * @public + *

Provide transition lifecycle details of Amazon Security Lake object.

+ */ +export interface DataLakeLifecycleTransition { /** - *

That the rate of requests to Security Lake is exceeding the request quotas for your Amazon Web Services account.

+ *

The range of storage classes that you can choose from based on the data access, + * resiliency, and cost requirements of your workloads.

*/ - quotaCode: string | undefined; + storageClass?: string; /** - * @internal + *

Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object.

*/ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ServiceQuotaExceededException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ServiceQuotaExceededException.prototype); - this.resourceId = opts.resourceId; - this.resourceType = opts.resourceType; - this.serviceCode = opts.serviceCode; - this.quotaCode = opts.quotaCode; - } + days?: number; } /** * @public - *

The limit on the number of requests per second was exceeded.

+ *

Provides lifecycle details of Amazon Security Lake object.

*/ -export class ThrottlingException extends __BaseException { - readonly name: "ThrottlingException" = "ThrottlingException"; - readonly $fault: "client" = "client"; - $retryable = { - throttling: true, - }; +export interface DataLakeLifecycleConfiguration { /** - *

The code for the service in Service Quotas.

+ *

Provides data expiration details of Amazon Security Lake object.

*/ - serviceCode?: string; + expiration?: DataLakeLifecycleExpiration; /** - *

That the rate of requests to Security Lake is exceeding the request quotas for your Amazon Web Services account.

+ *

Provides data storage transition details of Amazon Security Lake object.

*/ - quotaCode?: string; + transitions?: DataLakeLifecycleTransition[]; +} +/** + * @public + *

Provides replication details of Amazon Security Lake object.

+ */ +export interface DataLakeReplicationConfiguration { /** - *

Retry the request after the specified time.

+ *

Replication enables automatic, asynchronous copying of objects across Amazon S3 + * buckets. Amazon S3 buckets that are configured for object replication can be owned + * by the same Amazon Web Services account or by different accounts. You can replicate objects + * to a single destination bucket or to multiple destination buckets. The destination buckets + * can be in different Amazon Web Services Regions or within the same Region as the source + * bucket.

+ *

Set up one or more rollup Regions by providing the Region or Regions that should + * contribute to the central rollup Region.

*/ - retryAfterSeconds?: number; + regions?: string[]; /** - * @internal + *

Replication settings for the Amazon S3 buckets. This parameter uses the Identity and Access Management (IAM) role you created that is managed by Security Lake, to + * ensure the replication setting is correct.

*/ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ThrottlingException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ThrottlingException.prototype); - this.serviceCode = opts.serviceCode; - this.quotaCode = opts.quotaCode; - this.retryAfterSeconds = opts.retryAfterSeconds; - } + roleArn?: string; +} + +/** + * @public + *

Provides details of Amazon Security Lake object.

+ */ +export interface DataLakeConfiguration { + /** + *

The Amazon Web Services Regions where Security Lake is automatically enabled.

+ */ + region: string | undefined; + + /** + *

Provides encryption details of Amazon Security Lake object.

+ */ + encryptionConfiguration?: DataLakeEncryptionConfiguration; + + /** + *

Provides lifecycle details of Amazon Security Lake object.

+ */ + lifecycleConfiguration?: DataLakeLifecycleConfiguration; + + /** + *

Provides replication details of Amazon Security Lake object.

+ */ + replicationConfiguration?: DataLakeReplicationConfiguration; } /** * @public */ -export interface CreateDatalakeAutoEnableRequest { +export interface CreateDataLakeRequest { + /** + *

Specify the Region or Regions that will contribute data to the rollup region.

+ */ + configurations: DataLakeConfiguration[] | undefined; + /** - *

Enable Security Lake with the specified configuration settings to begin collecting security - * data for new accounts in your organization.

+ *

The Amazon Resource Name (ARN) used to create and update the Glue table. + * This table contains partitions generated by the ingestion and normalization of + * Amazon Web Services log sources and custom sources.

*/ - configurationForNewAccounts: AutoEnableNewRegionConfiguration[] | undefined; + metaStoreManagerRoleArn: string | undefined; } +/** + * @public + * @enum + */ +export const DataLakeStatus = { + COMPLETED: "COMPLETED", + FAILED: "FAILED", + INITIALIZED: "INITIALIZED", + PENDING: "PENDING", +} as const; + /** * @public */ -export interface CreateDatalakeAutoEnableResponse {} +export type DataLakeStatus = (typeof DataLakeStatus)[keyof typeof DataLakeStatus]; /** * @public + *

The details of the last UpdateDataLake or DeleteDataLake + * API request which failed.

*/ -export interface CreateDatalakeDelegatedAdminRequest { +export interface DataLakeUpdateException { /** - *

The Amazon Web Services account ID of the Security Lake delegated administrator.

+ *

The reason for the exception of the last UpdateDataLakeor + * DeleteDataLake API request.

+ */ + reason?: string; + + /** + *

The reason code for the exception of the last UpdateDataLake or + * DeleteDataLake API request.

*/ - account: string | undefined; + code?: string; } /** * @public + *

The status of the last UpdateDataLake or DeleteDataLake API + * request. This is set to Completed after the configuration is updated, or removed if + * deletion of the data lake is successful.

*/ -export interface CreateDatalakeDelegatedAdminResponse {} +export interface DataLakeUpdateStatus { + /** + *

The unique ID for the last UpdateDataLake or DeleteDataLake API + * request.

+ */ + requestId?: string; + + /** + *

The status of the last UpdateDataLake or DeleteDataLake API + * request that was requested.

+ */ + status?: DataLakeStatus | string; + + /** + *

The details of the last UpdateDataLakeor DeleteDataLake API + * request which failed.

+ */ + exception?: DataLakeUpdateException; +} /** * @public - * @enum + *

Provides details of Amazon Security Lake object.

*/ -export const SubscriptionProtocolType = { - APP: "APP", - EMAIL: "EMAIL", - EMAIL_JSON: "EMAIL_JSON", - FIREHOSE: "FIREHOSE", - HTTP: "HTTP", - HTTPS: "HTTPS", - LAMBDA: "LAMBDA", - SMS: "SMS", - SQS: "SQS", -} as const; +export interface DataLakeResource { + /** + *

The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about ARNs and how to use them in policies, see the Amazon Security Lake User Guide.

+ */ + dataLakeArn: string | undefined; + + /** + *

The Amazon Web Services Regions where Security Lake is enabled.

+ */ + region: string | undefined; + + /** + *

The ARN for the Amazon Security Lake Amazon S3 bucket.

+ */ + s3BucketArn?: string; + + /** + *

Provides encryption details of Amazon Security Lake object.

+ */ + encryptionConfiguration?: DataLakeEncryptionConfiguration; + + /** + *

Provides lifecycle details of Amazon Security Lake object.

+ */ + lifecycleConfiguration?: DataLakeLifecycleConfiguration; + + /** + *

Provides replication details of Amazon Security Lake object.

+ */ + replicationConfiguration?: DataLakeReplicationConfiguration; + + /** + *

Retrieves the status of the configuration operation for an account in Amazon Security Lake.

+ */ + createStatus?: DataLakeStatus | string; + + /** + *

The status of the last UpdateDataLake or DeleteDataLake API + * request.

+ */ + updateStatus?: DataLakeUpdateStatus; +} /** * @public */ -export type SubscriptionProtocolType = (typeof SubscriptionProtocolType)[keyof typeof SubscriptionProtocolType]; +export interface CreateDataLakeResponse { + /** + *

The created Security Lake configuration object.

+ */ + dataLakes?: DataLakeResource[]; +} /** * @public */ -export interface CreateDatalakeExceptionsSubscriptionRequest { +export interface CreateDataLakeExceptionSubscriptionRequest { /** - *

The subscription protocol to which exception notifications are posted.

+ *

The subscription protocol to which exception notifications are posted.

*/ - subscriptionProtocol: SubscriptionProtocolType | string | undefined; + subscriptionProtocol: string | undefined; /** *

The Amazon Web Services account where you want to receive exception notifications.

*/ notificationEndpoint: string | undefined; + + /** + *

The expiration period and time-to-live (TTL).

+ */ + exceptionTimeToLive?: number; } /** * @public */ -export interface CreateDatalakeExceptionsSubscriptionResponse {} +export interface CreateDataLakeExceptionSubscriptionResponse {} + +/** + * @public + *

Automatically enable new organization accounts as member accounts from an Amazon Security Lake + * administrator account.

+ */ +export interface DataLakeAutoEnableNewAccountConfiguration { + /** + *

The Amazon Web Services Regions where Security Lake is automatically enabled.

+ */ + region: string | undefined; + + /** + *

The Amazon Web Services sources that are automatically enabled in Security Lake.

+ */ + sources: AwsLogSourceResource[] | undefined; +} + +/** + * @public + */ +export interface CreateDataLakeOrganizationConfigurationRequest { + /** + *

Enable Security Lake with the specified configuration settings, to begin collecting security + * data for new accounts in your organization.

+ */ + autoEnableNewAccount: DataLakeAutoEnableNewAccountConfiguration[] | undefined; +} + +/** + * @public + */ +export interface CreateDataLakeOrganizationConfigurationResponse {} /** * @public *

The supported source types from which logs and events are collected in Amazon Security Lake. * For the list of supported Amazon Web Services, see the Amazon Security Lake User Guide.

*/ -export type SourceType = SourceType.AwsSourceTypeMember | SourceType.CustomSourceTypeMember | SourceType.$UnknownMember; +export type LogSourceResource = + | LogSourceResource.AwsLogSourceMember + | LogSourceResource.CustomLogSourceMember + | LogSourceResource.$UnknownMember; /** * @public */ -export namespace SourceType { +export namespace LogSourceResource { /** - *

Amazon Security Lake supports log and event collection for natively supported Amazon Web Services.

+ *

Amazon Security Lake supports log and event collection for natively supported Amazon Web Services.

*/ - export interface AwsSourceTypeMember { - awsSourceType: AwsLogSourceType | string; - customSourceType?: never; + export interface AwsLogSourceMember { + awsLogSource: AwsLogSourceResource; + customLogSource?: never; $unknown?: never; } @@ -916,27 +911,27 @@ export namespace SourceType { *

Amazon Security Lake supports custom source types. For a detailed list, see the Amazon Security Lake * User Guide.

*/ - export interface CustomSourceTypeMember { - awsSourceType?: never; - customSourceType: string; + export interface CustomLogSourceMember { + awsLogSource?: never; + customLogSource: CustomLogSourceResource; $unknown?: never; } export interface $UnknownMember { - awsSourceType?: never; - customSourceType?: never; + awsLogSource?: never; + customLogSource?: never; $unknown: [string, any]; } export interface Visitor { - awsSourceType: (value: AwsLogSourceType | string) => T; - customSourceType: (value: string) => T; + awsLogSource: (value: AwsLogSourceResource) => T; + customLogSource: (value: CustomLogSourceResource) => T; _: (name: string, value: any) => T; } - export const visit = (value: SourceType, visitor: Visitor): T => { - if (value.awsSourceType !== undefined) return visitor.awsSourceType(value.awsSourceType); - if (value.customSourceType !== undefined) return visitor.customSourceType(value.customSourceType); + export const visit = (value: LogSourceResource, visitor: Visitor): T => { + if (value.awsLogSource !== undefined) return visitor.awsLogSource(value.awsLogSource); + if (value.customLogSource !== undefined) return visitor.customLogSource(value.customLogSource); return visitor._(value.$unknown[0], value.$unknown[1]); }; } @@ -946,103 +941,157 @@ export namespace SourceType { */ export interface CreateSubscriberRequest { /** - *

The supported Amazon Web Services from which logs and events are collected. - * Security Lake supports log and event collection for natively supported Amazon Web Services.

+ *

The AWS identity used to access your data.

*/ - sourceTypes: SourceType[] | undefined; + subscriberIdentity: AwsIdentity | undefined; /** - *

The Amazon Web Services account ID used to access your data.

+ *

The name of your Security Lake subscriber account.

*/ - accountId: string | undefined; + subscriberName: string | undefined; /** - *

The external ID of the subscriber. This lets the user that is assuming the role assert - * the circumstances in which they are operating. It also provides a way for the account owner - * to permit the role to be assumed only under specific circumstances.

+ *

The description for your subscriber account in Security Lake.

*/ - externalId: string | undefined; + subscriberDescription?: string; + + /** + *

The supported Amazon Web Services from which logs and events are collected. + * Security Lake supports log and event collection for natively supported Amazon Web Services.

+ */ + sources: LogSourceResource[] | undefined; /** *

The Amazon S3 or Lake Formation access type.

*/ accessTypes?: (AccessType | string)[]; +} + +/** + * @public + * @enum + */ +export const SubscriberStatus = { + ACTIVE: "ACTIVE", + DEACTIVATED: "DEACTIVATED", + PENDING: "PENDING", + READY: "READY", +} as const; + +/** + * @public + */ +export type SubscriberStatus = (typeof SubscriberStatus)[keyof typeof SubscriberStatus]; + +/** + * @public + *

Provides details about the Amazon Security Lake account subscription. Subscribers are notified + * of new objects for a source as the data is written to your Amazon S3 bucket for + * Security Lake.

+ */ +export interface SubscriberResource { + /** + *

The subscriber ID of the Amazon Security Lake subscriber account.

+ */ + subscriberId: string | undefined; /** - *

The name of your Security Lake subscriber account.

+ *

The subscriber ARN of the Amazon Security Lake subscriber account.

+ */ + subscriberArn: string | undefined; + + /** + *

The AWS identity used to access your data.

+ */ + subscriberIdentity: AwsIdentity | undefined; + + /** + *

The name of your Amazon Security Lake subscriber account.

*/ subscriberName: string | undefined; /** - *

The description for your subscriber account in Security Lake.

+ *

The subscriber descriptions for a subscriber account. The description for a subscriber + * includes subscriberName, accountID, externalID, and + * subscriberId.

*/ subscriberDescription?: string; -} -/** - * @public - */ -export interface CreateSubscriberResponse { /** - *

The subscriptionId created by the CreateSubscriber API - * call.

+ *

Amazon Security Lake supports log and event collection for natively supported Amazon Web Services. For more information, see the Amazon Security Lake User Guide.

*/ - subscriptionId: string | undefined; + sources: LogSourceResource[] | undefined; /** - *

The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more - * information about ARNs and how to use them in policies, see Amazon Security Lake User - * Guide.

+ *

You can choose to notify subscribers of new objects with an Amazon Simple Queue Service + * (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the + * subscriber.

+ *

Subscribers can consume data by directly querying Lake Formation tables in your + * Amazon S3 bucket through services like Amazon Athena. This subscription + * type is defined as LAKEFORMATION.

*/ - roleArn?: string; + accessTypes?: (AccessType | string)[]; /** - *

The ARN for the Amazon Simple Notification Service.

+ *

The Amazon Resource Name (ARN) specifying the role of the subscriber.

*/ - snsArn?: string; + roleArn?: string; /** - *

The ARN for the Amazon S3 bucket.

+ *

The ARN for the Amazon S3 bucket.

*/ s3BucketArn?: string; /** - *

The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before accepting the RAM resource share invitation, you can view details related to the RAM resource share.

+ *

The subscriber endpoint to which exception messages are posted.

+ */ + subscriberEndpoint?: string; + + /** + *

The subscriber status of the Amazon Security Lake subscriber account.

+ */ + subscriberStatus?: SubscriberStatus | string; + + /** + *

The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before + * accepting the RAM resource share invitation, you can view details related to the RAM + * resource share.

+ *

This field is available only for Lake Formation subscribers created after March 8, 2023.

*/ resourceShareArn?: string; /** - *

The name of the resource share.

+ *

The name of the resource share.

+ */ + resourceShareName?: string; + + /** + *

The date and time when the subscriber was created.

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

The date and time when the subscriber was last updated.

*/ - resourceShareName?: string; + updatedAt?: Date; } /** * @public - *

The request was rejected because a value that's not valid or is out of range was - * supplied for an input parameter.

*/ -export class InvalidInputException extends __BaseException { - readonly name: "InvalidInputException" = "InvalidInputException"; - readonly $fault: "client" = "client"; +export interface CreateSubscriberResponse { /** - * @internal + *

Retrieve information about the subscriber created using the + * CreateSubscriber API.

*/ - constructor(opts: __ExceptionOptionType) { - super({ - name: "InvalidInputException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, InvalidInputException.prototype); - } + subscriber?: SubscriberResource; } /** * @public * @enum */ -export const HttpsMethod = { +export const HttpMethod = { POST: "POST", PUT: "PUT", } as const; @@ -1050,517 +1099,557 @@ export const HttpsMethod = { /** * @public */ -export type HttpsMethod = (typeof HttpsMethod)[keyof typeof HttpsMethod]; +export type HttpMethod = (typeof HttpMethod)[keyof typeof HttpMethod]; /** * @public + *

The configurations for HTTPS subscriber notification.

*/ -export interface CreateSubscriptionNotificationConfigurationRequest { - /** - *

The subscription ID for the notification subscription.

- */ - subscriptionId: string | undefined; - +export interface HttpsNotificationConfiguration { /** *

The subscription endpoint in Security Lake. If you prefer notification with an HTTPs * endpoint, populate this field.

*/ - subscriptionEndpoint?: string; + endpoint: string | undefined; /** *

The key name for the notification subscription.

*/ - httpsApiKeyName?: string; + authorizationApiKeyName?: string; /** *

The key value for the notification subscription.

*/ - httpsApiKeyValue?: string; + authorizationApiKeyValue?: string; /** - *

The HTTPS method used for the notification subscription.

+ *

The HTTPS method used for the notification subscription.

*/ - httpsMethod?: HttpsMethod | string; - - /** - *

Create an Amazon Simple Queue Service queue.

- */ - createSqs?: boolean; + httpMethod?: HttpMethod | string; /** *

The Amazon Resource Name (ARN) of the EventBridge API destinations IAM role that you * created. For more information about ARNs and how to use them in policies, see Managing data access and Amazon Web Services * Managed Policies in the Amazon Security Lake User Guide.

*/ - roleArn?: string; + targetRoleArn: string | undefined; } /** * @public + *

The configurations for SQS subscriber notification.

*/ -export interface CreateSubscriptionNotificationConfigurationResponse { - /** - *

Returns the Amazon Resource Name (ARN) of the queue.

- */ - queueArn?: string; -} +export interface SqsNotificationConfiguration {} /** * @public + *

Specify the configurations you want to use for subscriber notification to notify the + * subscriber when new data is written to the data lake for sources that the subscriber + * consumes in Security Lake.

*/ -export interface DeleteAwsLogSourceRequest { - /** - *

This is a mandatory input. Specify the input order to disable dimensions in Security Lake, - * namely Region (Amazon Web Services Region code, source type, and member (account ID of a - * specific Amazon Web Services account).

- */ - inputOrder: (Dimension | string)[] | undefined; +export type NotificationConfiguration = + | NotificationConfiguration.HttpsNotificationConfigurationMember + | NotificationConfiguration.SqsNotificationConfigurationMember + | NotificationConfiguration.$UnknownMember; +/** + * @public + */ +export namespace NotificationConfiguration { /** - *

Removes the specific Amazon Web Services sources from specific accounts and specific - * Regions.

+ *

The configurations for SQS subscriber notification.

*/ - disableAllDimensions?: Record>; + export interface SqsNotificationConfigurationMember { + sqsNotificationConfiguration: SqsNotificationConfiguration; + httpsNotificationConfiguration?: never; + $unknown?: never; + } /** - *

Remove a specific Amazon Web Services source from specific accounts or Regions.

+ *

The configurations for HTTPS subscriber notification.

*/ - disableTwoDimensions?: Record; + export interface HttpsNotificationConfigurationMember { + sqsNotificationConfiguration?: never; + httpsNotificationConfiguration: HttpsNotificationConfiguration; + $unknown?: never; + } - /** - *

Removes all Amazon Web Services sources from specific accounts or Regions.

- */ - disableSingleDimension?: string[]; + export interface $UnknownMember { + sqsNotificationConfiguration?: never; + httpsNotificationConfiguration?: never; + $unknown: [string, any]; + } + + export interface Visitor { + sqsNotificationConfiguration: (value: SqsNotificationConfiguration) => T; + httpsNotificationConfiguration: (value: HttpsNotificationConfiguration) => T; + _: (name: string, value: any) => T; + } + + export const visit = (value: NotificationConfiguration, visitor: Visitor): T => { + if (value.sqsNotificationConfiguration !== undefined) + return visitor.sqsNotificationConfiguration(value.sqsNotificationConfiguration); + if (value.httpsNotificationConfiguration !== undefined) + return visitor.httpsNotificationConfiguration(value.httpsNotificationConfiguration); + return visitor._(value.$unknown[0], value.$unknown[1]); + }; } /** * @public */ -export interface DeleteAwsLogSourceResponse { +export interface CreateSubscriberNotificationRequest { /** - *

Deletion of the Amazon Web Services sources is in progress.

+ *

The subscriber ID for the notification subscription.

*/ - processing?: string[]; + subscriberId: string | undefined; /** - *

Deletion of the Amazon Web Services sources failed as the account is not a part of the organization.

+ *

Specify the configuration using which you want to create the subscriber + * notification.

*/ - failed?: string[]; + configuration: NotificationConfiguration | undefined; } /** * @public */ -export interface DeleteCustomLogSourceRequest { +export interface CreateSubscriberNotificationResponse { /** - *

The custom source name for the custom log source.

+ *

The subscriber endpoint to which exception messages are posted.

*/ - customSourceName: string | undefined; + subscriberEndpoint?: string; } /** * @public */ -export interface DeleteCustomLogSourceResponse { +export interface DeleteAwsLogSourceRequest { /** - *

The location of the partition in the Amazon S3 bucket for Security Lake.

+ *

Specify the natively-supported Amazon Web Services service to remove as a source in + * Security Lake.

*/ - customDataLocation: string | undefined; + sources: AwsLogSourceConfiguration[] | undefined; } /** * @public */ -export interface DeleteDatalakeRequest {} - -/** - * @public - */ -export interface DeleteDatalakeResponse {} - -/** - * @public - */ -export interface DeleteDatalakeAutoEnableRequest { +export interface DeleteAwsLogSourceResponse { /** - *

Remove automatic enablement of configuration settings for new member accounts in - * Security Lake.

+ *

Deletion of the Amazon Web Services sources failed as the account is not a part of the organization.

*/ - removeFromConfigurationForNewAccounts: AutoEnableNewRegionConfiguration[] | undefined; + failed?: string[]; } /** * @public */ -export interface DeleteDatalakeAutoEnableResponse {} +export interface DeleteCustomLogSourceRequest { + /** + *

The source name of custom log source that you want to delete.

+ */ + sourceName: string | undefined; -/** - * @public - */ -export interface DeleteDatalakeDelegatedAdminRequest { /** - *

The account ID the Security Lake delegated administrator.

+ *

The source version for the third-party custom source. You can limit the custom source + * removal to the specified source version.

*/ - account: string | undefined; + sourceVersion?: string; } /** * @public */ -export interface DeleteDatalakeDelegatedAdminResponse {} - -/** - * @public - */ -export interface DeleteDatalakeExceptionsSubscriptionRequest {} +export interface DeleteCustomLogSourceResponse {} /** * @public */ -export interface DeleteDatalakeExceptionsSubscriptionResponse { - /** - *

Retrieves the status of the delete Security Lake operation for an account.

- */ - status: string | undefined; -} - -/** - * @public - */ -export interface DeleteSubscriberRequest { +export interface DeleteDataLakeRequest { /** - *

A value created by Security Lake that uniquely identifies your DeleteSubscriber API request.

+ *

The list of Regions where Security Lake is enabled.

*/ - id: string | undefined; + regions: string[] | undefined; } /** * @public */ -export interface DeleteSubscriberResponse {} +export interface DeleteDataLakeResponse {} /** * @public */ -export interface DeleteSubscriptionNotificationConfigurationRequest { +export interface DeleteDataLakeOrganizationConfigurationRequest { /** - *

The ID of the Security Lake subscriber account.

+ *

Removes the automatic enablement of configuration settings for new member accounts in + * Security Lake.

*/ - subscriptionId: string | undefined; + autoEnableNewAccount: DataLakeAutoEnableNewAccountConfiguration[] | undefined; } /** * @public */ -export interface DeleteSubscriptionNotificationConfigurationResponse {} - -/** - * @public - * @enum - */ -export const EndpointProtocol = { - HTTPS: "HTTPS", - SQS: "SQS", -} as const; +export interface DeleteDataLakeOrganizationConfigurationResponse {} /** * @public */ -export type EndpointProtocol = (typeof EndpointProtocol)[keyof typeof EndpointProtocol]; +export interface GetDataLakeOrganizationConfigurationRequest {} /** * @public - *

Represents an error interacting with the Amazon EventBridge service.

*/ -export class EventBridgeException extends __BaseException { - readonly name: "EventBridgeException" = "EventBridgeException"; - readonly $fault: "client" = "client"; +export interface GetDataLakeOrganizationConfigurationResponse { /** - * @internal + *

The configuration for new accounts.

*/ - constructor(opts: __ExceptionOptionType) { - super({ - name: "EventBridgeException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, EventBridgeException.prototype); - } + autoEnableNewAccount?: DataLakeAutoEnableNewAccountConfiguration[]; } /** * @public - *

List of all failures.

*/ -export interface Failures { +export interface GetDataLakeSourcesRequest { /** - *

List of all exception messages.

- */ - exceptionMessage: string | undefined; - - /** - *

List of all remediation steps for failures.

- */ - remediation: string | undefined; - - /** - *

This error can occur if you configure the wrong timestamp format, or if the subset of entries used for validation had errors or missing values.

+ *

The Amazon Web Services account ID for which a static snapshot of the current Amazon Web Services Region, including enabled accounts and log sources, is retrieved.

*/ - timestamp: Date | undefined; -} + accounts?: string[]; -/** - * @public - *

Response element for actions that make changes, namely create, update, or delete - * actions.

- */ -export interface FailuresResponse { /** - *

List of Amazon Web Services Regions where the failure occurred.

+ *

The maximum limit of accounts for which the static snapshot of the current Region, + * including enabled accounts and log sources, is retrieved.

*/ - region?: string; + maxResults?: number; /** - *

List of all failures.

+ *

Lists if there are more results available. The value of nextToken is a unique pagination + * token for each page. Repeat the call using the returned token to retrieve the next page. + * Keep all other arguments unchanged.

+ *

Each pagination token expires after 24 hours. Using an expired pagination token will + * return an HTTP 400 InvalidToken error.

*/ - failures?: Failures[]; + nextToken?: string; } -/** - * @public - */ -export interface GetDatalakeRequest {} - /** * @public * @enum */ -export const SettingsStatus = { - COMPLETED: "COMPLETED", - FAILED: "FAILED", - INITIALIZED: "INITIALIZED", - PENDING: "PENDING", +export const SourceCollectionStatus = { + COLLECTING: "COLLECTING", + MISCONFIGURED: "MISCONFIGURED", + NOT_COLLECTING: "NOT_COLLECTING", } as const; /** * @public */ -export type SettingsStatus = (typeof SettingsStatus)[keyof typeof SettingsStatus]; +export type SourceCollectionStatus = (typeof SourceCollectionStatus)[keyof typeof SourceCollectionStatus]; /** * @public - *

The details of the last UpdateDatalake or DeleteDatalake - * API request which failed.

+ *

Retrieves the Logs status for the Amazon Security Lake account.

*/ -export interface LastUpdateFailure { +export interface DataLakeSourceStatus { /** - *

The reason for the failure of the last UpdateDatalakeor - * DeleteDatalake API request.

+ *

Defines path the stored logs are available which has information on your systems, + * applications, and services.

*/ - reason?: string; + resource?: string; /** - *

The reason code for the failure of the last UpdateDatalake or - * DeleteDatalake API request.

+ *

The health status of services, including error codes and patterns.

*/ - code?: string; + status?: SourceCollectionStatus | string; } /** * @public - *

The status of the last UpdateDatalake or DeleteDatalake API - * request. This is set to Completed after the configuration is updated, or removed if - * deletion of the data lake is successful.

+ *

Amazon Security Lake collects logs and events from supported Amazon Web Services and + * custom sources. For the list of supported Amazon Web Services, see the Amazon Security Lake User Guide.

*/ -export interface UpdateStatus { +export interface DataLakeSource { /** - *

The unique ID for the UpdateDatalake or DeleteDatalake API - * request.

+ *

The ID of the Security Lake account for which logs are collected.

*/ - lastUpdateRequestId?: string; + account?: string; /** - *

The status of the last UpdateDatalake or DeleteDatalake API - * request that was requested.

+ *

The supported Amazon Web Services from which logs and events are collected. + * Amazon Security Lake supports log and event collection for natively supported Amazon Web Services.

*/ - lastUpdateStatus?: SettingsStatus | string; + sourceName?: string; /** - *

The details of the last UpdateDatalakeor DeleteDatalake API - * request which failed.

+ *

The Open Cybersecurity Schema Framework (OCSF) event classes which describes the type of + * data that the custom source will send to Security Lake. The supported event classes are:

+ *
    + *
  • + *

    + * ACCESS_ACTIVITY + *

    + *
  • + *
  • + *

    + * FILE_ACTIVITY + *

    + *
  • + *
  • + *

    + * KERNEL_ACTIVITY + *

    + *
  • + *
  • + *

    + * KERNEL_EXTENSION + *

    + *
  • + *
  • + *

    + * MEMORY_ACTIVITY + *

    + *
  • + *
  • + *

    + * MODULE_ACTIVITY + *

    + *
  • + *
  • + *

    + * PROCESS_ACTIVITY + *

    + *
  • + *
  • + *

    + * REGISTRY_KEY_ACTIVITY + *

    + *
  • + *
  • + *

    + * REGISTRY_VALUE_ACTIVITY + *

    + *
  • + *
  • + *

    + * RESOURCE_ACTIVITY + *

    + *
  • + *
  • + *

    + * SCHEDULED_JOB_ACTIVITY + *

    + *
  • + *
  • + *

    + * SECURITY_FINDING + *

    + *
  • + *
  • + *

    + * ACCOUNT_CHANGE + *

    + *
  • + *
  • + *

    + * AUTHENTICATION + *

    + *
  • + *
  • + *

    + * AUTHORIZATION + *

    + *
  • + *
  • + *

    + * ENTITY_MANAGEMENT_AUDIT + *

    + *
  • + *
  • + *

    + * DHCP_ACTIVITY + *

    + *
  • + *
  • + *

    + * NETWORK_ACTIVITY + *

    + *
  • + *
  • + *

    + * DNS_ACTIVITY + *

    + *
  • + *
  • + *

    + * FTP_ACTIVITY + *

    + *
  • + *
  • + *

    + * HTTP_ACTIVITY + *

    + *
  • + *
  • + *

    + * RDP_ACTIVITY + *

    + *
  • + *
  • + *

    + * SMB_ACTIVITY + *

    + *
  • + *
  • + *

    + * SSH_ACTIVITY + *

    + *
  • + *
  • + *

    + * CONFIG_STATE + *

    + *
  • + *
  • + *

    + * INVENTORY_INFO + *

    + *
  • + *
  • + *

    + * EMAIL_ACTIVITY + *

    + *
  • + *
  • + *

    + * API_ACTIVITY + *

    + *
  • + *
  • + *

    + * CLOUD_API + *

    + *
  • + *
+ */ + eventClasses?: string[]; + + /** + *

The log status for the Security Lake account.

*/ - lastUpdateFailure?: LastUpdateFailure; + sourceStatuses?: DataLakeSourceStatus[]; } /** * @public - *

Provides details of Amazon Security Lake lake configuration object.

*/ -export interface LakeConfigurationResponse { - /** - *

The type of encryption key used by secure the Security Lake configuration object.

- */ - encryptionKey?: string; - - /** - *

Retention settings for the destination Amazon S3 buckets.

- */ - retentionSettings?: RetentionSetting[]; - - /** - *

A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an - * optional value, both of which you define.

- */ - tagsMap?: Record; - - /** - *

Replication enables automatic, asynchronous copying of objects across Amazon S3 - * buckets. Amazon S3 buckets that are configured for object replication can be owned - * by the same Amazon Web Services account or by different accounts. You can replicate objects - * to a single destination bucket or to multiple destination buckets. The destination buckets - * can be in different Amazon Web Services Regions or within the same Region as the source - * bucket.

- *

Set up one or more rollup Regions by providing the Region or Regions that should - * contribute to the central rollup Region.

- */ - replicationDestinationRegions?: (Region | string)[]; - +export interface GetDataLakeSourcesResponse { /** - *

Replication settings for the Amazon S3 buckets. This parameter uses the IAM role you created that is managed by Security Lake, to ensure the replication - * setting is correct.

+ *

The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about ARNs and how to use them in policies, see the Amazon Security Lake User Guide.

*/ - replicationRoleArn?: string; - - /** - *

Amazon Resource Names (ARNs) uniquely identify Amazon Web Services resources. Security Lake - * requires an ARN when you need to specify a resource unambiguously across all of Amazon Web Services, such as in IAM policies, Amazon Relational Database Service (Amazon RDS) tags, and API calls.

- */ - s3BucketArn?: string; + dataLakeArn?: string; /** - *

Retrieves the status of the configuration operation for an account in Amazon Security Lake.

+ *

The list of enabled accounts and enabled sources.

*/ - status?: SettingsStatus | string; + dataLakeSources?: DataLakeSource[]; /** - *

The status of the last UpdateDatalake or DeleteDatalake API - * request.

+ *

Lists if there are more results available. The value of nextToken is a unique pagination + * token for each page. Repeat the call using the returned token to retrieve the next page. + * Keep all other arguments unchanged.

+ *

Each pagination token expires after 24 hours. Using an expired pagination token will + * return an HTTP 400 InvalidToken error.

*/ - updateStatus?: UpdateStatus; + nextToken?: string; } /** * @public */ -export interface GetDatalakeResponse { +export interface ListDataLakesRequest { /** - *

Retrieves the Security Lake configuration object.

+ *

The list of regions where Security Lake is enabled.

*/ - configurations: Record | undefined; + regions?: string[]; } /** * @public */ -export interface GetDatalakeAutoEnableRequest {} - -/** - * @public - */ -export interface GetDatalakeAutoEnableResponse { +export interface ListDataLakesResponse { /** - *

The configuration for new accounts.

+ *

Retrieves the Security Lake configuration object.

*/ - autoEnableNewAccounts: AutoEnableNewRegionConfiguration[] | undefined; + dataLakes?: DataLakeResource[]; } /** * @public */ -export interface GetDatalakeExceptionsExpiryRequest {} - -/** - * @public - */ -export interface GetDatalakeExceptionsExpiryResponse { +export interface ListLogSourcesRequest { /** - *

The expiration period and time-to-live (TTL).

+ *

The list of Amazon Web Services accounts for which log sources are displayed.

*/ - exceptionMessageExpiry: number | undefined; -} + accounts?: string[]; -/** - * @public - */ -export interface GetDatalakeExceptionsSubscriptionRequest {} + /** + *

The list of regions for which log sources are displayed.

+ */ + regions?: string[]; -/** - * @public - *

Protocol used in Amazon Security Lake that dictates how notifications are posted at the - * endpoint.

- */ -export interface ProtocolAndNotificationEndpoint { /** - *

The protocol to which notification messages are posted.

+ *

The list of sources for which log sources are displayed.

*/ - protocol?: string; + sources?: LogSourceResource[]; /** - *

The account that is subscribed to receive exception notifications.

+ *

The maximum number of accounts for which the log sources are displayed.

*/ - endpoint?: string; -} + maxResults?: number; -/** - * @public - */ -export interface GetDatalakeExceptionsSubscriptionResponse { /** - *

Retrieves the exception notification subscription information.

+ *

If nextToken is returned, there are more results available. You can repeat the call + * using the returned token to retrieve the next page.

*/ - protocolAndNotificationEndpoint: ProtocolAndNotificationEndpoint | undefined; + nextToken?: string; } /** * @public + *

Amazon Security Lake can collect logs and events from natively-supported Amazon Web Services services and custom sources.

*/ -export interface GetDatalakeStatusRequest { +export interface LogSource { /** - *

The Amazon Web Services account ID for which a static snapshot of the current Amazon Web Services Region, including enabled accounts and log sources, is retrieved.

+ *

Specify the account from which you want to collect logs.

*/ - accountSet?: string[]; + account?: string; /** - *

The maximum limit of accounts for which the static snapshot of the current Region, - * including enabled accounts and log sources, is retrieved.

+ *

Specify the Regions from which you want to collect logs.

*/ - maxAccountResults?: number; + region?: string; /** - *

Lists if there are more results available. The value of nextToken is a unique pagination - * token for each page. Repeat the call using the returned token to retrieve the next page. - * Keep all other arguments unchanged.

- *

Each pagination token expires after 24 hours. Using an expired pagination token will - * return an HTTP 400 InvalidToken error.

+ *

Specify the sources from which you want to collect logs.

*/ - nextToken?: string; + sources?: LogSourceResource[]; } /** * @public */ -export interface GetDatalakeStatusResponse { +export interface ListLogSourcesResponse { /** - *

The list of enabled accounts and enabled sources.

+ *

The list of log sources in your organization that send data to the data lake.

*/ - accountSourcesList: AccountSources[] | undefined; + sources?: LogSource[]; /** - *

Lists if there are more results available. The value of nextToken is a unique pagination - * token for each page. Repeat the call using the returned token to retrieve the next page. - * Keep all other arguments unchanged.

- *

Each pagination token expires after 24 hours. Using an expired pagination token will - * return an HTTP 400 InvalidToken error.

+ *

If nextToken is returned, there are more results available. You can repeat the call + * using the returned token to retrieve the next page.

*/ nextToken?: string; } @@ -1568,134 +1657,133 @@ export interface GetDatalakeStatusResponse { /** * @public */ -export interface GetSubscriberRequest { +export interface UpdateDataLakeRequest { /** - *

A value created by Amazon Security Lake that uniquely identifies your - * GetSubscriber API request.

+ *

Specify the Region or Regions that will contribute data to the rollup region.

*/ - id: string | undefined; + configurations: DataLakeConfiguration[] | undefined; } -/** - * @public - * @enum - */ -export const SubscriptionStatus = { - ACTIVE: "ACTIVE", - DEACTIVATED: "DEACTIVATED", - PENDING: "PENDING", - READY: "READY", -} as const; - /** * @public */ -export type SubscriptionStatus = (typeof SubscriptionStatus)[keyof typeof SubscriptionStatus]; +export interface UpdateDataLakeResponse { + /** + *

The created Security Lake configuration object.

+ */ + dataLakes?: DataLakeResource[]; +} /** * @public - *

Provides details about the Amazon Security Lake account subscription. Subscribers are notified - * of new objects for a source as the data is written to your Amazon S3 bucket for - * Security Lake.

+ *

The details for a Security Lake exception

*/ -export interface SubscriberResource { +export interface DataLakeException { /** - *

The subscription ID of the Amazon Security Lake subscriber account.

+ *

The Amazon Web Services Regions where the exception occurred.

*/ - subscriptionId: string | undefined; + region?: string; /** - *

Amazon Security Lake supports log and event collection for natively supported Amazon Web Services. For more information, see the Amazon Security Lake User Guide.

+ *

The underlying exception of a Security Lake exception.

*/ - sourceTypes: SourceType[] | undefined; + exception?: string; /** - *

The Amazon Web Services account ID you are using to create your Amazon Security Lake - * account.

+ *

List of all remediation steps for a Security Lake exception.

*/ - accountId: string | undefined; + remediation?: string; /** - *

The name of your Amazon Security Lake subscriber account.

+ *

This error can occur if you configure the wrong timestamp format, or if the subset of entries used for validation had errors or missing values.

*/ - subscriberName?: string; + timestamp?: Date; +} - /** - *

The subscriber descriptions for a subscriber account. The description for a subscriber - * includes subscriberName, accountID, externalID, and - * subscriptionId.

- */ - subscriberDescription?: string; +/** + * @public + */ +export interface DeleteDataLakeExceptionSubscriptionRequest {} - /** - *

The subscription status of the Amazon Security Lake subscriber account.

- */ - subscriptionStatus?: SubscriptionStatus | string; +/** + * @public + */ +export interface DeleteDataLakeExceptionSubscriptionResponse {} +/** + * @public + */ +export interface DeleteSubscriberRequest { /** - *

The Amazon Resource Name (ARN) specifying the role of the subscriber.

+ *

A value created by Security Lake that uniquely identifies your DeleteSubscriber API request.

*/ - roleArn?: string; + subscriberId: string | undefined; +} - /** - *

The ARN for the Amazon Simple Notification Service.

- */ - snsArn?: string; +/** + * @public + */ +export interface DeleteSubscriberResponse {} +/** + * @public + */ +export interface DeleteSubscriberNotificationRequest { /** - *

The ARN for the Amazon S3 bucket.

+ *

The ID of the Security Lake subscriber account.

*/ - s3BucketArn?: string; + subscriberId: string | undefined; +} - /** - *

You can choose to notify subscribers of new objects with an Amazon Simple Queue Service - * (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the - * subscriber.

- *

Subscribers can consume data by directly querying Lake Formation tables in your - * Amazon S3 bucket through services like Amazon Athena. This subscription - * type is defined as LAKEFORMATION.

- */ - accessTypes?: (AccessType | string)[]; +/** + * @public + */ +export interface DeleteSubscriberNotificationResponse {} - /** - *

The subscription endpoint to which exception messages are posted.

- */ - subscriptionEndpoint?: string; +/** + * @public + */ +export interface DeregisterDataLakeDelegatedAdministratorRequest {} - /** - *

The subscription protocol to which exception messages are posted.

- */ - subscriptionProtocol?: EndpointProtocol | string; +/** + * @public + */ +export interface DeregisterDataLakeDelegatedAdministratorResponse {} - /** - *

The external ID of the subscriber. The external ID lets the user that is assuming the - * role assert the circumstances in which they are operating. It also provides a way for the - * account owner to permit the role to be assumed only under specific circumstances.

- */ - externalId?: string; +/** + * @public + */ +export interface GetDataLakeExceptionSubscriptionRequest {} +/** + * @public + */ +export interface GetDataLakeExceptionSubscriptionResponse { /** - *

The date and time when the subscription was created.

+ *

The subscription protocol to which exception notifications are posted.

*/ - createdAt?: Date; + subscriptionProtocol?: string; /** - *

The date and time when the subscription was created.

+ *

The Amazon Web Services account where you receive exception notifications.

*/ - updatedAt?: Date; + notificationEndpoint?: string; /** - *

The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before - * accepting the RAM resource share invitation, you can view details related to the RAM - * resource share.

- *

This field is available only for Lake Formation subscribers created after March 8, 2023.

+ *

The expiration period and time-to-live (TTL).

*/ - resourceShareArn?: string; + exceptionTimeToLive?: number; +} +/** + * @public + */ +export interface GetSubscriberRequest { /** - *

The name of the resource share.

+ *

A value created by Amazon Security Lake that uniquely identifies your + * GetSubscriber API request.

*/ - resourceShareName?: string; + subscriberId: string | undefined; } /** @@ -1703,7 +1791,7 @@ export interface SubscriberResource { */ export interface GetSubscriberResponse { /** - *

The subscription information for the specified subscription ID.

+ *

The subscriber information for the specified subscriber ID.

*/ subscriber?: SubscriberResource; } @@ -1711,21 +1799,21 @@ export interface GetSubscriberResponse { /** * @public */ -export interface ListDatalakeExceptionsRequest { +export interface ListDataLakeExceptionsRequest { /** *

List the Amazon Web Services Regions from which exceptions are retrieved.

*/ - regionSet?: (Region | string)[]; + regions?: string[]; /** *

List the maximum number of failures in Security Lake.

*/ - maxFailures?: number; + maxResults?: number; /** *

List if there are more results available. The value of nextToken is a unique pagination * token for each page. Repeat the call using the returned token to retrieve the next page. - * Keep all other arguments unchanged.

+ * Keep all other arguments unchanged.

*

Each pagination token expires after 24 hours. Using an expired pagination token will * return an HTTP 400 InvalidToken error.

*/ @@ -1735,76 +1823,22 @@ export interface ListDatalakeExceptionsRequest { /** * @public */ -export interface ListDatalakeExceptionsResponse { +export interface ListDataLakeExceptionsResponse { /** *

Lists the failures that cannot be retried in the current Region.

*/ - nonRetryableFailures: FailuresResponse[] | undefined; + exceptions?: DataLakeException[]; /** *

List if there are more results available. The value of nextToken is a unique pagination * token for each page. Repeat the call using the returned token to retrieve the next page. - * Keep all other arguments unchanged.

+ * Keep all other arguments unchanged.

*

Each pagination token expires after 24 hours. Using an expired pagination token will * return an HTTP 400 InvalidToken error.

*/ nextToken?: string; } -/** - * @public - */ -export interface ListLogSourcesRequest { - /** - *

Lists the log sources in input order, namely Region, source - * type, and member account.

- */ - inputOrder?: (Dimension | string)[]; - - /** - *

List the view of log sources for enabled Amazon Security Lake accounts for specific Amazon Web Services sources from specific accounts and specific Regions.

- */ - listAllDimensions?: Record>; - - /** - *

Lists the view of log sources for enabled Security Lake accounts for specific Amazon Web Services sources from specific accounts or specific Regions.

- */ - listTwoDimensions?: Record; - - /** - *

List the view of log sources for enabled Security Lake accounts for all Amazon Web Services - * sources from specific accounts or specific Regions.

- */ - listSingleDimension?: string[]; - - /** - *

The maximum number of accounts for which the log sources are displayed.

- */ - maxResults?: number; - - /** - *

If nextToken is returned, there are more results available. You can repeat the call - * using the returned token to retrieve the next page.

- */ - nextToken?: string; -} - -/** - * @public - */ -export interface ListLogSourcesResponse { - /** - *

Lists the log sources by Regions for enabled Security Lake accounts.

- */ - regionSourceTypesAccountsList: Record>[] | undefined; - - /** - *

If nextToken is returned, there are more results available. You can repeat the call - * using the returned token to retrieve the next page.

- */ - nextToken?: string; -} - /** * @public */ @@ -1828,7 +1862,7 @@ export interface ListSubscribersResponse { /** *

The subscribers available for the specified Security Lake account ID.

*/ - subscribers: SubscriberResource[] | undefined; + subscribers?: SubscriberResource[]; /** *

If nextToken is returned, there are more results available. You can repeat the call @@ -1840,82 +1874,47 @@ export interface ListSubscribersResponse { /** * @public */ -export interface UpdateDatalakeRequest { +export interface RegisterDataLakeDelegatedAdministratorRequest { /** - *

Specify the Region or Regions that will contribute data to the rollup region.

+ *

The Amazon Web Services account ID of the Security Lake delegated administrator.

*/ - configurations: Record | undefined; + accountId: string | undefined; } /** * @public */ -export interface UpdateDatalakeResponse {} +export interface RegisterDataLakeDelegatedAdministratorResponse {} /** * @public */ -export interface UpdateDatalakeExceptionsExpiryRequest { +export interface UpdateSubscriberRequest { /** - *

The time-to-live (TTL) for the exception message to remain.

+ *

A value created by Security Lake that uniquely identifies your subscription.

*/ - exceptionMessageExpiry: number | undefined; -} - -/** - * @public - */ -export interface UpdateDatalakeExceptionsExpiryResponse {} + subscriberId: string | undefined; -/** - * @public - */ -export interface UpdateDatalakeExceptionsSubscriptionRequest { /** - *

The subscription protocol to which exception messages are posted.

+ *

The AWS identity used to access your data.

*/ - subscriptionProtocol: SubscriptionProtocolType | string | undefined; + subscriberIdentity?: AwsIdentity; /** - *

The account that is subscribed to receive exception notifications.

+ *

The name of the Security Lake account subscriber.

*/ - notificationEndpoint: string | undefined; -} - -/** - * @public - */ -export interface UpdateDatalakeExceptionsSubscriptionResponse {} + subscriberName?: string; -/** - * @public - */ -export interface UpdateSubscriberRequest { /** - *

A value created by Security Lake that uniquely identifies your subscription.

+ *

The description of the Security Lake account subscriber.

*/ - id: string | undefined; + subscriberDescription?: string; /** *

The supported Amazon Web Services from which logs and events are collected. For * the list of supported Amazon Web Services, see the Amazon Security Lake User Guide.

*/ - sourceTypes: SourceType[] | undefined; - - /** - *

The external ID of the Security Lake account.

- */ - externalId?: string; - - /** - *

The name of the Security Lake account subscriber.

- */ - subscriberName?: string; - - /** - *

The description of the Security Lake account subscriber.

- */ - subscriberDescription?: string; + sources?: LogSourceResource[]; } /** @@ -1923,7 +1922,7 @@ export interface UpdateSubscriberRequest { */ export interface UpdateSubscriberResponse { /** - *

The account of the subscriber.

+ *

The updated subscriber information.

*/ subscriber?: SubscriberResource; } @@ -1931,51 +1930,49 @@ export interface UpdateSubscriberResponse { /** * @public */ -export interface UpdateSubscriptionNotificationConfigurationRequest { - /** - *

The subscription ID for which the subscription notification is specified.

- */ - subscriptionId: string | undefined; - +export interface UpdateSubscriberNotificationRequest { /** - *

The subscription endpoint in Security Lake.

+ *

The subscription ID for which the subscription notification is specified.

*/ - subscriptionEndpoint?: string; + subscriberId: string | undefined; /** - *

The key name for the subscription notification.

+ *

The configuration for subscriber notification.

*/ - httpsApiKeyName?: string; + configuration: NotificationConfiguration | undefined; +} +/** + * @public + */ +export interface UpdateSubscriberNotificationResponse { /** - *

The key value for the subscription notification.

+ *

The subscriber endpoint to which exception messages are posted.

*/ - httpsApiKeyValue?: string; + subscriberEndpoint?: string; +} +/** + * @public + */ +export interface UpdateDataLakeExceptionSubscriptionRequest { /** - *

The HTTPS method used for the subscription notification.

+ *

The subscription protocol to which exception messages are posted.

*/ - httpsMethod?: HttpsMethod | string; + subscriptionProtocol: string | undefined; /** - *

Create a new subscription notification for the specified subscription ID in - * Amazon Security Lake.

+ *

The account that is subscribed to receive exception notifications.

*/ - createSqs?: boolean; + notificationEndpoint: string | undefined; /** - *

The Amazon Resource Name (ARN) specifying the role of the subscriber. For more information about ARNs and how to use them in policies, see, see the Managing data access and Amazon Web Services Managed Policiesin the Amazon Security Lake User - * Guide.

+ *

The time-to-live (TTL) for the exception message to remain.

*/ - roleArn?: string; + exceptionTimeToLive?: number; } /** * @public */ -export interface UpdateSubscriptionNotificationConfigurationResponse { - /** - *

Returns the ARN of the queue.

- */ - queueArn?: string; -} +export interface UpdateDataLakeExceptionSubscriptionResponse {} diff --git a/clients/client-securitylake/src/pagination/GetDatalakeStatusPaginator.ts b/clients/client-securitylake/src/pagination/GetDataLakeSourcesPaginator.ts similarity index 67% rename from clients/client-securitylake/src/pagination/GetDatalakeStatusPaginator.ts rename to clients/client-securitylake/src/pagination/GetDataLakeSourcesPaginator.ts index f8b35bcf4b86..a3821f34df1d 100644 --- a/clients/client-securitylake/src/pagination/GetDatalakeStatusPaginator.ts +++ b/clients/client-securitylake/src/pagination/GetDataLakeSourcesPaginator.ts @@ -2,10 +2,10 @@ import { Paginator } from "@aws-sdk/types"; import { - GetDatalakeStatusCommand, - GetDatalakeStatusCommandInput, - GetDatalakeStatusCommandOutput, -} from "../commands/GetDatalakeStatusCommand"; + GetDataLakeSourcesCommand, + GetDataLakeSourcesCommandInput, + GetDataLakeSourcesCommandOutput, +} from "../commands/GetDataLakeSourcesCommand"; import { SecurityLakeClient } from "../SecurityLakeClient"; import { SecurityLakePaginationConfiguration } from "./Interfaces"; @@ -14,27 +14,27 @@ import { SecurityLakePaginationConfiguration } from "./Interfaces"; */ const makePagedClientRequest = async ( client: SecurityLakeClient, - input: GetDatalakeStatusCommandInput, + input: GetDataLakeSourcesCommandInput, ...args: any -): Promise => { +): Promise => { // @ts-ignore - return await client.send(new GetDatalakeStatusCommand(input), ...args); + return await client.send(new GetDataLakeSourcesCommand(input), ...args); }; /** * @public */ -export async function* paginateGetDatalakeStatus( +export async function* paginateGetDataLakeSources( config: SecurityLakePaginationConfiguration, - input: GetDatalakeStatusCommandInput, + input: GetDataLakeSourcesCommandInput, ...additionalArguments: any -): Paginator { +): Paginator { // ToDo: replace with actual type instead of typeof input.nextToken let token: typeof input.nextToken | undefined = config.startingToken || undefined; let hasNext = true; - let page: GetDatalakeStatusCommandOutput; + let page: GetDataLakeSourcesCommandOutput; while (hasNext) { input.nextToken = token; - input["maxAccountResults"] = config.pageSize; + input["maxResults"] = config.pageSize; if (config.client instanceof SecurityLakeClient) { page = await makePagedClientRequest(config.client, input, ...additionalArguments); } else { diff --git a/clients/client-securitylake/src/pagination/ListDatalakeExceptionsPaginator.ts b/clients/client-securitylake/src/pagination/ListDataLakeExceptionsPaginator.ts similarity index 66% rename from clients/client-securitylake/src/pagination/ListDatalakeExceptionsPaginator.ts rename to clients/client-securitylake/src/pagination/ListDataLakeExceptionsPaginator.ts index 20ee85441fb5..96e0450944a2 100644 --- a/clients/client-securitylake/src/pagination/ListDatalakeExceptionsPaginator.ts +++ b/clients/client-securitylake/src/pagination/ListDataLakeExceptionsPaginator.ts @@ -2,10 +2,10 @@ import { Paginator } from "@aws-sdk/types"; import { - ListDatalakeExceptionsCommand, - ListDatalakeExceptionsCommandInput, - ListDatalakeExceptionsCommandOutput, -} from "../commands/ListDatalakeExceptionsCommand"; + ListDataLakeExceptionsCommand, + ListDataLakeExceptionsCommandInput, + ListDataLakeExceptionsCommandOutput, +} from "../commands/ListDataLakeExceptionsCommand"; import { SecurityLakeClient } from "../SecurityLakeClient"; import { SecurityLakePaginationConfiguration } from "./Interfaces"; @@ -14,27 +14,27 @@ import { SecurityLakePaginationConfiguration } from "./Interfaces"; */ const makePagedClientRequest = async ( client: SecurityLakeClient, - input: ListDatalakeExceptionsCommandInput, + input: ListDataLakeExceptionsCommandInput, ...args: any -): Promise => { +): Promise => { // @ts-ignore - return await client.send(new ListDatalakeExceptionsCommand(input), ...args); + return await client.send(new ListDataLakeExceptionsCommand(input), ...args); }; /** * @public */ -export async function* paginateListDatalakeExceptions( +export async function* paginateListDataLakeExceptions( config: SecurityLakePaginationConfiguration, - input: ListDatalakeExceptionsCommandInput, + input: ListDataLakeExceptionsCommandInput, ...additionalArguments: any -): Paginator { +): Paginator { // ToDo: replace with actual type instead of typeof input.nextToken let token: typeof input.nextToken | undefined = config.startingToken || undefined; let hasNext = true; - let page: ListDatalakeExceptionsCommandOutput; + let page: ListDataLakeExceptionsCommandOutput; while (hasNext) { input.nextToken = token; - input["maxFailures"] = config.pageSize; + input["maxResults"] = config.pageSize; if (config.client instanceof SecurityLakeClient) { page = await makePagedClientRequest(config.client, input, ...additionalArguments); } else { diff --git a/clients/client-securitylake/src/pagination/index.ts b/clients/client-securitylake/src/pagination/index.ts index f92fb2676665..4cc4560d2346 100644 --- a/clients/client-securitylake/src/pagination/index.ts +++ b/clients/client-securitylake/src/pagination/index.ts @@ -1,6 +1,6 @@ -export * from "./GetDatalakeStatusPaginator"; +export * from "./GetDataLakeSourcesPaginator"; // smithy-typescript generated code export * from "./Interfaces"; -export * from "./ListDatalakeExceptionsPaginator"; +export * from "./ListDataLakeExceptionsPaginator"; export * from "./ListLogSourcesPaginator"; export * from "./ListSubscribersPaginator"; diff --git a/clients/client-securitylake/src/protocols/Aws_restJson1.ts b/clients/client-securitylake/src/protocols/Aws_restJson1.ts index 7ace1ceae0be..e45209c50351 100644 --- a/clients/client-securitylake/src/protocols/Aws_restJson1.ts +++ b/clients/client-securitylake/src/protocols/Aws_restJson1.ts @@ -23,109 +23,103 @@ import { CreateCustomLogSourceCommandInput, CreateCustomLogSourceCommandOutput, } from "../commands/CreateCustomLogSourceCommand"; +import { CreateDataLakeCommandInput, CreateDataLakeCommandOutput } from "../commands/CreateDataLakeCommand"; import { - CreateDatalakeAutoEnableCommandInput, - CreateDatalakeAutoEnableCommandOutput, -} from "../commands/CreateDatalakeAutoEnableCommand"; -import { CreateDatalakeCommandInput, CreateDatalakeCommandOutput } from "../commands/CreateDatalakeCommand"; + CreateDataLakeExceptionSubscriptionCommandInput, + CreateDataLakeExceptionSubscriptionCommandOutput, +} from "../commands/CreateDataLakeExceptionSubscriptionCommand"; import { - CreateDatalakeDelegatedAdminCommandInput, - CreateDatalakeDelegatedAdminCommandOutput, -} from "../commands/CreateDatalakeDelegatedAdminCommand"; -import { - CreateDatalakeExceptionsSubscriptionCommandInput, - CreateDatalakeExceptionsSubscriptionCommandOutput, -} from "../commands/CreateDatalakeExceptionsSubscriptionCommand"; + CreateDataLakeOrganizationConfigurationCommandInput, + CreateDataLakeOrganizationConfigurationCommandOutput, +} from "../commands/CreateDataLakeOrganizationConfigurationCommand"; import { CreateSubscriberCommandInput, CreateSubscriberCommandOutput } from "../commands/CreateSubscriberCommand"; import { - CreateSubscriptionNotificationConfigurationCommandInput, - CreateSubscriptionNotificationConfigurationCommandOutput, -} from "../commands/CreateSubscriptionNotificationConfigurationCommand"; + CreateSubscriberNotificationCommandInput, + CreateSubscriberNotificationCommandOutput, +} from "../commands/CreateSubscriberNotificationCommand"; import { DeleteAwsLogSourceCommandInput, DeleteAwsLogSourceCommandOutput } from "../commands/DeleteAwsLogSourceCommand"; import { DeleteCustomLogSourceCommandInput, DeleteCustomLogSourceCommandOutput, } from "../commands/DeleteCustomLogSourceCommand"; +import { DeleteDataLakeCommandInput, DeleteDataLakeCommandOutput } from "../commands/DeleteDataLakeCommand"; import { - DeleteDatalakeAutoEnableCommandInput, - DeleteDatalakeAutoEnableCommandOutput, -} from "../commands/DeleteDatalakeAutoEnableCommand"; -import { DeleteDatalakeCommandInput, DeleteDatalakeCommandOutput } from "../commands/DeleteDatalakeCommand"; -import { - DeleteDatalakeDelegatedAdminCommandInput, - DeleteDatalakeDelegatedAdminCommandOutput, -} from "../commands/DeleteDatalakeDelegatedAdminCommand"; + DeleteDataLakeExceptionSubscriptionCommandInput, + DeleteDataLakeExceptionSubscriptionCommandOutput, +} from "../commands/DeleteDataLakeExceptionSubscriptionCommand"; import { - DeleteDatalakeExceptionsSubscriptionCommandInput, - DeleteDatalakeExceptionsSubscriptionCommandOutput, -} from "../commands/DeleteDatalakeExceptionsSubscriptionCommand"; + DeleteDataLakeOrganizationConfigurationCommandInput, + DeleteDataLakeOrganizationConfigurationCommandOutput, +} from "../commands/DeleteDataLakeOrganizationConfigurationCommand"; import { DeleteSubscriberCommandInput, DeleteSubscriberCommandOutput } from "../commands/DeleteSubscriberCommand"; import { - DeleteSubscriptionNotificationConfigurationCommandInput, - DeleteSubscriptionNotificationConfigurationCommandOutput, -} from "../commands/DeleteSubscriptionNotificationConfigurationCommand"; + DeleteSubscriberNotificationCommandInput, + DeleteSubscriberNotificationCommandOutput, +} from "../commands/DeleteSubscriberNotificationCommand"; import { - GetDatalakeAutoEnableCommandInput, - GetDatalakeAutoEnableCommandOutput, -} from "../commands/GetDatalakeAutoEnableCommand"; -import { GetDatalakeCommandInput, GetDatalakeCommandOutput } from "../commands/GetDatalakeCommand"; + DeregisterDataLakeDelegatedAdministratorCommandInput, + DeregisterDataLakeDelegatedAdministratorCommandOutput, +} from "../commands/DeregisterDataLakeDelegatedAdministratorCommand"; import { - GetDatalakeExceptionsExpiryCommandInput, - GetDatalakeExceptionsExpiryCommandOutput, -} from "../commands/GetDatalakeExceptionsExpiryCommand"; + GetDataLakeExceptionSubscriptionCommandInput, + GetDataLakeExceptionSubscriptionCommandOutput, +} from "../commands/GetDataLakeExceptionSubscriptionCommand"; import { - GetDatalakeExceptionsSubscriptionCommandInput, - GetDatalakeExceptionsSubscriptionCommandOutput, -} from "../commands/GetDatalakeExceptionsSubscriptionCommand"; -import { GetDatalakeStatusCommandInput, GetDatalakeStatusCommandOutput } from "../commands/GetDatalakeStatusCommand"; + GetDataLakeOrganizationConfigurationCommandInput, + GetDataLakeOrganizationConfigurationCommandOutput, +} from "../commands/GetDataLakeOrganizationConfigurationCommand"; +import { GetDataLakeSourcesCommandInput, GetDataLakeSourcesCommandOutput } from "../commands/GetDataLakeSourcesCommand"; import { GetSubscriberCommandInput, GetSubscriberCommandOutput } from "../commands/GetSubscriberCommand"; import { - ListDatalakeExceptionsCommandInput, - ListDatalakeExceptionsCommandOutput, -} from "../commands/ListDatalakeExceptionsCommand"; + ListDataLakeExceptionsCommandInput, + ListDataLakeExceptionsCommandOutput, +} from "../commands/ListDataLakeExceptionsCommand"; +import { ListDataLakesCommandInput, ListDataLakesCommandOutput } from "../commands/ListDataLakesCommand"; import { ListLogSourcesCommandInput, ListLogSourcesCommandOutput } from "../commands/ListLogSourcesCommand"; import { ListSubscribersCommandInput, ListSubscribersCommandOutput } from "../commands/ListSubscribersCommand"; -import { UpdateDatalakeCommandInput, UpdateDatalakeCommandOutput } from "../commands/UpdateDatalakeCommand"; import { - UpdateDatalakeExceptionsExpiryCommandInput, - UpdateDatalakeExceptionsExpiryCommandOutput, -} from "../commands/UpdateDatalakeExceptionsExpiryCommand"; + RegisterDataLakeDelegatedAdministratorCommandInput, + RegisterDataLakeDelegatedAdministratorCommandOutput, +} from "../commands/RegisterDataLakeDelegatedAdministratorCommand"; +import { UpdateDataLakeCommandInput, UpdateDataLakeCommandOutput } from "../commands/UpdateDataLakeCommand"; import { - UpdateDatalakeExceptionsSubscriptionCommandInput, - UpdateDatalakeExceptionsSubscriptionCommandOutput, -} from "../commands/UpdateDatalakeExceptionsSubscriptionCommand"; + UpdateDataLakeExceptionSubscriptionCommandInput, + UpdateDataLakeExceptionSubscriptionCommandOutput, +} from "../commands/UpdateDataLakeExceptionSubscriptionCommand"; import { UpdateSubscriberCommandInput, UpdateSubscriberCommandOutput } from "../commands/UpdateSubscriberCommand"; import { - UpdateSubscriptionNotificationConfigurationCommandInput, - UpdateSubscriptionNotificationConfigurationCommandOutput, -} from "../commands/UpdateSubscriptionNotificationConfigurationCommand"; + UpdateSubscriberNotificationCommandInput, + UpdateSubscriberNotificationCommandOutput, +} from "../commands/UpdateSubscriberNotificationCommand"; import { AccessDeniedException, AccessType, - AccountNotFoundException, - AutoEnableNewRegionConfiguration, - AwsLogSourceType, - BucketNotFoundException, - ConcurrentModificationException, + AwsIdentity, + AwsLogSourceConfiguration, + AwsLogSourceResource, + BadRequestException, ConflictException, - ConflictSourceNamesException, - ConflictSubscriptionException, - Dimension, - EventBridgeException, - Failures, - FailuresResponse, + CustomLogSourceAttributes, + CustomLogSourceConfiguration, + CustomLogSourceCrawlerConfiguration, + CustomLogSourceProvider, + CustomLogSourceResource, + DataLakeAutoEnableNewAccountConfiguration, + DataLakeConfiguration, + DataLakeEncryptionConfiguration, + DataLakeException, + DataLakeLifecycleConfiguration, + DataLakeLifecycleExpiration, + DataLakeLifecycleTransition, + DataLakeReplicationConfiguration, + HttpsNotificationConfiguration, InternalServerException, - InvalidInputException, - LakeConfigurationRequest, - Region, + LogSourceResource, + NotificationConfiguration, ResourceNotFoundException, - RetentionSetting, - S3Exception, - ServiceQuotaExceededException, - SourceType, + SqsNotificationConfiguration, SubscriberResource, ThrottlingException, - ValidationException, } from "../models/models_0"; import { SecurityLakeServiceException as __BaseException } from "../models/SecurityLakeServiceException"; @@ -140,14 +134,12 @@ export const se_CreateAwsLogSourceCommand = async ( const headers: any = { "content-type": "application/json", }; - const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/logsources/aws"; + const resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/logsources/aws"; let body: any; body = JSON.stringify( take(input, { - enableAllDimensions: (_) => _json(_), - enableSingleDimension: (_) => _json(_), - enableTwoDimensions: (_) => _json(_), - inputOrder: (_) => _json(_), + sources: (_) => _json(_), }) ); return new __HttpRequest({ @@ -172,14 +164,15 @@ export const se_CreateCustomLogSourceCommand = async ( const headers: any = { "content-type": "application/json", }; - const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/logsources/custom"; + const resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/logsources/custom"; let body: any; body = JSON.stringify( take(input, { - customSourceName: [], - eventClass: [], - glueInvocationRoleArn: [], - logProviderAccountId: [], + configuration: (_) => _json(_), + eventClasses: (_) => _json(_), + sourceName: [], + sourceVersion: [], }) ); return new __HttpRequest({ @@ -194,10 +187,10 @@ export const se_CreateCustomLogSourceCommand = async ( }; /** - * serializeAws_restJson1CreateDatalakeCommand + * serializeAws_restJson1CreateDataLakeCommand */ -export const se_CreateDatalakeCommand = async ( - input: CreateDatalakeCommandInput, +export const se_CreateDataLakeCommand = async ( + input: CreateDataLakeCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); @@ -209,9 +202,7 @@ export const se_CreateDatalakeCommand = async ( body = JSON.stringify( take(input, { configurations: (_) => _json(_), - enableAll: [], metaStoreManagerRoleArn: [], - regions: (_) => _json(_), }) ); return new __HttpRequest({ @@ -226,10 +217,10 @@ export const se_CreateDatalakeCommand = async ( }; /** - * serializeAws_restJson1CreateDatalakeAutoEnableCommand + * serializeAws_restJson1CreateDataLakeExceptionSubscriptionCommand */ -export const se_CreateDatalakeAutoEnableCommand = async ( - input: CreateDatalakeAutoEnableCommandInput, +export const se_CreateDataLakeExceptionSubscriptionCommand = async ( + input: CreateDataLakeExceptionSubscriptionCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); @@ -237,40 +228,13 @@ export const se_CreateDatalakeAutoEnableCommand = async ( "content-type": "application/json", }; const resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/autoenable"; - let body: any; - body = JSON.stringify( - take(input, { - configurationForNewAccounts: (_) => _json(_), - }) - ); - return new __HttpRequest({ - protocol, - hostname, - port, - method: "POST", - headers, - path: resolvedPath, - body, - }); -}; - -/** - * serializeAws_restJson1CreateDatalakeDelegatedAdminCommand - */ -export const se_CreateDatalakeDelegatedAdminCommand = async ( - input: CreateDatalakeDelegatedAdminCommandInput, - context: __SerdeContext -): Promise<__HttpRequest> => { - const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", - }; - const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/delegate"; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/exceptions/subscription"; let body: any; body = JSON.stringify( take(input, { - account: [], + exceptionTimeToLive: [], + notificationEndpoint: [], + subscriptionProtocol: [], }) ); return new __HttpRequest({ @@ -285,10 +249,10 @@ export const se_CreateDatalakeDelegatedAdminCommand = async ( }; /** - * serializeAws_restJson1CreateDatalakeExceptionsSubscriptionCommand + * serializeAws_restJson1CreateDataLakeOrganizationConfigurationCommand */ -export const se_CreateDatalakeExceptionsSubscriptionCommand = async ( - input: CreateDatalakeExceptionsSubscriptionCommandInput, +export const se_CreateDataLakeOrganizationConfigurationCommand = async ( + input: CreateDataLakeOrganizationConfigurationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); @@ -296,12 +260,11 @@ export const se_CreateDatalakeExceptionsSubscriptionCommand = async ( "content-type": "application/json", }; const resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/exceptions/subscription"; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/organization/configuration"; let body: any; body = JSON.stringify( take(input, { - notificationEndpoint: [], - subscriptionProtocol: [], + autoEnableNewAccount: (_) => _json(_), }) ); return new __HttpRequest({ @@ -331,10 +294,9 @@ export const se_CreateSubscriberCommand = async ( body = JSON.stringify( take(input, { accessTypes: (_) => _json(_), - accountId: [], - externalId: [], - sourceTypes: (_) => _json(_), + sources: (_) => _json(_), subscriberDescription: [], + subscriberIdentity: (_) => _json(_), subscriberName: [], }) ); @@ -350,10 +312,10 @@ export const se_CreateSubscriberCommand = async ( }; /** - * serializeAws_restJson1CreateSubscriptionNotificationConfigurationCommand + * serializeAws_restJson1CreateSubscriberNotificationCommand */ -export const se_CreateSubscriptionNotificationConfigurationCommand = async ( - input: CreateSubscriptionNotificationConfigurationCommandInput, +export const se_CreateSubscriberNotificationCommand = async ( + input: CreateSubscriberNotificationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); @@ -362,24 +324,19 @@ export const se_CreateSubscriptionNotificationConfigurationCommand = async ( }; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/subscription-notifications/{subscriptionId}"; + "/v1/subscribers/{subscriberId}/notification"; resolvedPath = __resolvedPath( resolvedPath, input, - "subscriptionId", - () => input.subscriptionId!, - "{subscriptionId}", + "subscriberId", + () => input.subscriberId!, + "{subscriberId}", false ); let body: any; body = JSON.stringify( take(input, { - createSqs: [], - httpsApiKeyName: [], - httpsApiKeyValue: [], - httpsMethod: [], - roleArn: [], - subscriptionEndpoint: [], + configuration: (_) => _json(_), }) ); return new __HttpRequest({ @@ -405,14 +362,11 @@ export const se_DeleteAwsLogSourceCommand = async ( "content-type": "application/json", }; const resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/logsources/aws/delete"; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/logsources/aws/delete"; let body: any; body = JSON.stringify( take(input, { - disableAllDimensions: (_) => _json(_), - disableSingleDimension: (_) => _json(_), - disableTwoDimensions: (_) => _json(_), - inputOrder: (_) => _json(_), + sources: (_) => _json(_), }) ); return new __HttpRequest({ @@ -435,9 +389,12 @@ export const se_DeleteCustomLogSourceCommand = async ( ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; - const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/logsources/custom"; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/v1/datalake/logsources/custom/{sourceName}"; + resolvedPath = __resolvedPath(resolvedPath, input, "sourceName", () => input.sourceName!, "{sourceName}", false); const query: any = map({ - customSourceName: [, __expectNonNull(input.customSourceName!, `customSourceName`)], + sourceVersion: [, input.sourceVersion!], }); let body: any; return new __HttpRequest({ @@ -453,47 +410,21 @@ export const se_DeleteCustomLogSourceCommand = async ( }; /** - * serializeAws_restJson1DeleteDatalakeCommand - */ -export const se_DeleteDatalakeCommand = async ( - input: DeleteDatalakeCommandInput, - context: __SerdeContext -): Promise<__HttpRequest> => { - const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", - }; - const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake"; - let body: any; - body = ""; - return new __HttpRequest({ - protocol, - hostname, - port, - method: "DELETE", - headers, - path: resolvedPath, - body, - }); -}; - -/** - * serializeAws_restJson1DeleteDatalakeAutoEnableCommand + * serializeAws_restJson1DeleteDataLakeCommand */ -export const se_DeleteDatalakeAutoEnableCommand = async ( - input: DeleteDatalakeAutoEnableCommandInput, +export const se_DeleteDataLakeCommand = async ( + input: DeleteDataLakeCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = { "content-type": "application/json", }; - const resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/autoenable/delete"; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/delete"; let body: any; body = JSON.stringify( take(input, { - removeFromConfigurationForNewAccounts: (_) => _json(_), + regions: (_) => _json(_), }) ); return new __HttpRequest({ @@ -508,18 +439,20 @@ export const se_DeleteDatalakeAutoEnableCommand = async ( }; /** - * serializeAws_restJson1DeleteDatalakeDelegatedAdminCommand + * serializeAws_restJson1DeleteDataLakeExceptionSubscriptionCommand */ -export const se_DeleteDatalakeDelegatedAdminCommand = async ( - input: DeleteDatalakeDelegatedAdminCommandInput, +export const se_DeleteDataLakeExceptionSubscriptionCommand = async ( + input: DeleteDataLakeExceptionSubscriptionCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = {}; - let resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/delegate/{account}"; - resolvedPath = __resolvedPath(resolvedPath, input, "account", () => input.account!, "{account}", false); + const headers: any = { + "content-type": "application/json", + }; + const resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/exceptions/subscription"; let body: any; + body = ""; return new __HttpRequest({ protocol, hostname, @@ -532,10 +465,10 @@ export const se_DeleteDatalakeDelegatedAdminCommand = async ( }; /** - * serializeAws_restJson1DeleteDatalakeExceptionsSubscriptionCommand + * serializeAws_restJson1DeleteDataLakeOrganizationConfigurationCommand */ -export const se_DeleteDatalakeExceptionsSubscriptionCommand = async ( - input: DeleteDatalakeExceptionsSubscriptionCommandInput, +export const se_DeleteDataLakeOrganizationConfigurationCommand = async ( + input: DeleteDataLakeOrganizationConfigurationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); @@ -543,14 +476,19 @@ export const se_DeleteDatalakeExceptionsSubscriptionCommand = async ( "content-type": "application/json", }; const resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/exceptions/subscription"; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/v1/datalake/organization/configuration/delete"; let body: any; - body = ""; + body = JSON.stringify( + take(input, { + autoEnableNewAccount: (_) => _json(_), + }) + ); return new __HttpRequest({ protocol, hostname, port, - method: "DELETE", + method: "POST", headers, path: resolvedPath, body, @@ -566,10 +504,16 @@ export const se_DeleteSubscriberCommand = async ( ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; - const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/subscribers"; - const query: any = map({ - id: [, __expectNonNull(input.id!, `id`)], - }); + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/subscribers/{subscriberId}"; + resolvedPath = __resolvedPath( + resolvedPath, + input, + "subscriberId", + () => input.subscriberId!, + "{subscriberId}", + false + ); let body: any; return new __HttpRequest({ protocol, @@ -578,29 +522,28 @@ export const se_DeleteSubscriberCommand = async ( method: "DELETE", headers, path: resolvedPath, - query, body, }); }; /** - * serializeAws_restJson1DeleteSubscriptionNotificationConfigurationCommand + * serializeAws_restJson1DeleteSubscriberNotificationCommand */ -export const se_DeleteSubscriptionNotificationConfigurationCommand = async ( - input: DeleteSubscriptionNotificationConfigurationCommandInput, +export const se_DeleteSubscriberNotificationCommand = async ( + input: DeleteSubscriberNotificationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/subscription-notifications/{subscriptionId}"; + "/v1/subscribers/{subscriberId}/notification"; resolvedPath = __resolvedPath( resolvedPath, input, - "subscriptionId", - () => input.subscriptionId!, - "{subscriptionId}", + "subscriberId", + () => input.subscriberId!, + "{subscriberId}", false ); let body: any; @@ -616,50 +559,24 @@ export const se_DeleteSubscriptionNotificationConfigurationCommand = async ( }; /** - * serializeAws_restJson1GetDatalakeCommand - */ -export const se_GetDatalakeCommand = async ( - input: GetDatalakeCommandInput, - context: __SerdeContext -): Promise<__HttpRequest> => { - const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); - const headers: any = { - "content-type": "application/json", - }; - const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake"; - let body: any; - body = ""; - return new __HttpRequest({ - protocol, - hostname, - port, - method: "GET", - headers, - path: resolvedPath, - body, - }); -}; - -/** - * serializeAws_restJson1GetDatalakeAutoEnableCommand + * serializeAws_restJson1DeregisterDataLakeDelegatedAdministratorCommand */ -export const se_GetDatalakeAutoEnableCommand = async ( - input: GetDatalakeAutoEnableCommandInput, +export const se_DeregisterDataLakeDelegatedAdministratorCommand = async ( + input: DeregisterDataLakeDelegatedAdministratorCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = { "content-type": "application/json", }; - const resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/autoenable"; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/delegate"; let body: any; body = ""; return new __HttpRequest({ protocol, hostname, port, - method: "GET", + method: "DELETE", headers, path: resolvedPath, body, @@ -667,10 +584,10 @@ export const se_GetDatalakeAutoEnableCommand = async ( }; /** - * serializeAws_restJson1GetDatalakeExceptionsExpiryCommand + * serializeAws_restJson1GetDataLakeExceptionSubscriptionCommand */ -export const se_GetDatalakeExceptionsExpiryCommand = async ( - input: GetDatalakeExceptionsExpiryCommandInput, +export const se_GetDataLakeExceptionSubscriptionCommand = async ( + input: GetDataLakeExceptionSubscriptionCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); @@ -678,7 +595,7 @@ export const se_GetDatalakeExceptionsExpiryCommand = async ( "content-type": "application/json", }; const resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/exceptions/expiry"; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/exceptions/subscription"; let body: any; body = ""; return new __HttpRequest({ @@ -693,10 +610,10 @@ export const se_GetDatalakeExceptionsExpiryCommand = async ( }; /** - * serializeAws_restJson1GetDatalakeExceptionsSubscriptionCommand + * serializeAws_restJson1GetDataLakeOrganizationConfigurationCommand */ -export const se_GetDatalakeExceptionsSubscriptionCommand = async ( - input: GetDatalakeExceptionsSubscriptionCommandInput, +export const se_GetDataLakeOrganizationConfigurationCommand = async ( + input: GetDataLakeOrganizationConfigurationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); @@ -704,7 +621,7 @@ export const se_GetDatalakeExceptionsSubscriptionCommand = async ( "content-type": "application/json", }; const resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/exceptions/subscription"; + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/organization/configuration"; let body: any; body = ""; return new __HttpRequest({ @@ -719,22 +636,22 @@ export const se_GetDatalakeExceptionsSubscriptionCommand = async ( }; /** - * serializeAws_restJson1GetDatalakeStatusCommand + * serializeAws_restJson1GetDataLakeSourcesCommand */ -export const se_GetDatalakeStatusCommand = async ( - input: GetDatalakeStatusCommandInput, +export const se_GetDataLakeSourcesCommand = async ( + input: GetDataLakeSourcesCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = { "content-type": "application/json", }; - const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/status"; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/sources"; let body: any; body = JSON.stringify( take(input, { - accountSet: (_) => _json(_), - maxAccountResults: [], + accounts: (_) => _json(_), + maxResults: [], nextToken: [], }) ); @@ -758,8 +675,16 @@ export const se_GetSubscriberCommand = async ( ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = {}; - let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/subscribers/{id}"; - resolvedPath = __resolvedPath(resolvedPath, input, "id", () => input.id!, "{id}", false); + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/subscribers/{subscriberId}"; + resolvedPath = __resolvedPath( + resolvedPath, + input, + "subscriberId", + () => input.subscriberId!, + "{subscriberId}", + false + ); let body: any; return new __HttpRequest({ protocol, @@ -773,10 +698,10 @@ export const se_GetSubscriberCommand = async ( }; /** - * serializeAws_restJson1ListDatalakeExceptionsCommand + * serializeAws_restJson1ListDataLakeExceptionsCommand */ -export const se_ListDatalakeExceptionsCommand = async ( - input: ListDatalakeExceptionsCommandInput, +export const se_ListDataLakeExceptionsCommand = async ( + input: ListDataLakeExceptionsCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); @@ -788,9 +713,9 @@ export const se_ListDatalakeExceptionsCommand = async ( let body: any; body = JSON.stringify( take(input, { - maxFailures: [], + maxResults: [], nextToken: [], - regionSet: (_) => _json(_), + regions: (_) => _json(_), }) ); return new __HttpRequest({ @@ -804,6 +729,32 @@ export const se_ListDatalakeExceptionsCommand = async ( }); }; +/** + * serializeAws_restJson1ListDataLakesCommand + */ +export const se_ListDataLakesCommand = async ( + input: ListDataLakesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalakes"; + const query: any = map({ + regions: [() => input.regions !== void 0, () => (input.regions! || []).map((_entry) => _entry as any)], + }); + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + /** * serializeAws_restJson1ListLogSourcesCommand */ @@ -815,16 +766,16 @@ export const se_ListLogSourcesCommand = async ( const headers: any = { "content-type": "application/json", }; - const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/logsources/list"; + const resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/logsources/list"; let body: any; body = JSON.stringify( take(input, { - inputOrder: (_) => _json(_), - listAllDimensions: (_) => _json(_), - listSingleDimension: (_) => _json(_), - listTwoDimensions: (_) => _json(_), + accounts: (_) => _json(_), maxResults: [], nextToken: [], + regions: (_) => _json(_), + sources: (_) => _json(_), }) ); return new __HttpRequest({ @@ -866,28 +817,28 @@ export const se_ListSubscribersCommand = async ( }; /** - * serializeAws_restJson1UpdateDatalakeCommand + * serializeAws_restJson1RegisterDataLakeDelegatedAdministratorCommand */ -export const se_UpdateDatalakeCommand = async ( - input: UpdateDatalakeCommandInput, +export const se_RegisterDataLakeDelegatedAdministratorCommand = async ( + input: RegisterDataLakeDelegatedAdministratorCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = { "content-type": "application/json", }; - const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake"; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/delegate"; let body: any; body = JSON.stringify( take(input, { - configurations: (_) => _json(_), + accountId: [], }) ); return new __HttpRequest({ protocol, hostname, port, - method: "PUT", + method: "POST", headers, path: resolvedPath, body, @@ -895,22 +846,21 @@ export const se_UpdateDatalakeCommand = async ( }; /** - * serializeAws_restJson1UpdateDatalakeExceptionsExpiryCommand + * serializeAws_restJson1UpdateDataLakeCommand */ -export const se_UpdateDatalakeExceptionsExpiryCommand = async ( - input: UpdateDatalakeExceptionsExpiryCommandInput, +export const se_UpdateDataLakeCommand = async ( + input: UpdateDataLakeCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); const headers: any = { "content-type": "application/json", }; - const resolvedPath = - `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake/exceptions/expiry"; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/datalake"; let body: any; body = JSON.stringify( take(input, { - exceptionMessageExpiry: [], + configurations: (_) => _json(_), }) ); return new __HttpRequest({ @@ -925,10 +875,10 @@ export const se_UpdateDatalakeExceptionsExpiryCommand = async ( }; /** - * serializeAws_restJson1UpdateDatalakeExceptionsSubscriptionCommand + * serializeAws_restJson1UpdateDataLakeExceptionSubscriptionCommand */ -export const se_UpdateDatalakeExceptionsSubscriptionCommand = async ( - input: UpdateDatalakeExceptionsSubscriptionCommandInput, +export const se_UpdateDataLakeExceptionSubscriptionCommand = async ( + input: UpdateDataLakeExceptionSubscriptionCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); @@ -940,6 +890,7 @@ export const se_UpdateDatalakeExceptionsSubscriptionCommand = async ( let body: any; body = JSON.stringify( take(input, { + exceptionTimeToLive: [], notificationEndpoint: [], subscriptionProtocol: [], }) @@ -966,14 +917,22 @@ export const se_UpdateSubscriberCommand = async ( const headers: any = { "content-type": "application/json", }; - let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/subscribers/{id}"; - resolvedPath = __resolvedPath(resolvedPath, input, "id", () => input.id!, "{id}", false); + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/v1/subscribers/{subscriberId}"; + resolvedPath = __resolvedPath( + resolvedPath, + input, + "subscriberId", + () => input.subscriberId!, + "{subscriberId}", + false + ); let body: any; body = JSON.stringify( take(input, { - externalId: [], - sourceTypes: (_) => _json(_), + sources: (_) => _json(_), subscriberDescription: [], + subscriberIdentity: (_) => _json(_), subscriberName: [], }) ); @@ -989,10 +948,10 @@ export const se_UpdateSubscriberCommand = async ( }; /** - * serializeAws_restJson1UpdateSubscriptionNotificationConfigurationCommand + * serializeAws_restJson1UpdateSubscriberNotificationCommand */ -export const se_UpdateSubscriptionNotificationConfigurationCommand = async ( - input: UpdateSubscriptionNotificationConfigurationCommandInput, +export const se_UpdateSubscriberNotificationCommand = async ( + input: UpdateSubscriberNotificationCommandInput, context: __SerdeContext ): Promise<__HttpRequest> => { const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); @@ -1001,24 +960,19 @@ export const se_UpdateSubscriptionNotificationConfigurationCommand = async ( }; let resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + - "/subscription-notifications/{subscriptionId}"; + "/v1/subscribers/{subscriberId}/notification"; resolvedPath = __resolvedPath( resolvedPath, input, - "subscriptionId", - () => input.subscriptionId!, - "{subscriptionId}", + "subscriberId", + () => input.subscriberId!, + "{subscriberId}", false ); let body: any; body = JSON.stringify( take(input, { - createSqs: [], - httpsApiKeyName: [], - httpsApiKeyValue: [], - httpsMethod: [], - roleArn: [], - subscriptionEndpoint: [], + configuration: (_) => _json(_), }) ); return new __HttpRequest({ @@ -1048,7 +1002,6 @@ export const de_CreateAwsLogSourceCommand = async ( const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { failed: _json, - processing: _json, }); Object.assign(contents, doc); return contents; @@ -1070,21 +1023,21 @@ const de_CreateAwsLogSourceCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "S3Exception": - case "com.amazonaws.securitylake#S3Exception": - throw await de_S3ExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1110,11 +1063,7 @@ export const de_CreateCustomLogSourceCommand = async ( }); const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { - customDataLocation: __expectString, - glueCrawlerName: __expectString, - glueDatabaseName: __expectString, - glueTableName: __expectString, - logProviderAccessRoleArn: __expectString, + source: _json, }); Object.assign(contents, doc); return contents; @@ -1136,24 +1085,21 @@ const de_CreateCustomLogSourceCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); - case "BucketNotFoundException": - case "com.amazonaws.securitylake#BucketNotFoundException": - throw await de_BucketNotFoundExceptionRes(parsedOutput, context); - case "ConflictSourceNamesException": - case "com.amazonaws.securitylake#ConflictSourceNamesException": - throw await de_ConflictSourceNamesExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1165,29 +1111,33 @@ const de_CreateCustomLogSourceCommandError = async ( }; /** - * deserializeAws_restJson1CreateDatalakeCommand + * deserializeAws_restJson1CreateDataLakeCommand */ -export const de_CreateDatalakeCommand = async ( +export const de_CreateDataLakeCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CreateDatalakeCommandError(output, context); + return de_CreateDataLakeCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); - await collectBody(output.body, context); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + dataLakes: _json, + }); + Object.assign(contents, doc); return contents; }; /** - * deserializeAws_restJson1CreateDatalakeCommandError + * deserializeAws_restJson1CreateDataLakeCommandError */ -const de_CreateDatalakeCommandError = async ( +const de_CreateDataLakeCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -1197,6 +1147,9 @@ const de_CreateDatalakeCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); case "ConflictException": case "com.amazonaws.securitylake#ConflictException": throw await de_ConflictExceptionRes(parsedOutput, context); @@ -1206,67 +1159,9 @@ const de_CreateDatalakeCommandError = async ( case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ServiceQuotaExceededException": - case "com.amazonaws.securitylake#ServiceQuotaExceededException": - throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context); case "ThrottlingException": case "com.amazonaws.securitylake#ThrottlingException": throw await de_ThrottlingExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); - default: - const parsedBody = parsedOutput.body; - return throwDefaultError({ - output, - parsedBody, - errorCode, - }); - } -}; - -/** - * deserializeAws_restJson1CreateDatalakeAutoEnableCommand - */ -export const de_CreateDatalakeAutoEnableCommand = async ( - output: __HttpResponse, - context: __SerdeContext -): Promise => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CreateDatalakeAutoEnableCommandError(output, context); - } - const contents: any = map({ - $metadata: deserializeMetadata(output), - }); - await collectBody(output.body, context); - return contents; -}; - -/** - * deserializeAws_restJson1CreateDatalakeAutoEnableCommandError - */ -const de_CreateDatalakeAutoEnableCommandError = async ( - output: __HttpResponse, - context: __SerdeContext -): Promise => { - const parsedOutput: any = { - ...output, - body: await parseErrorBody(output.body, context), - }; - const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.securitylake#AccessDeniedException": - throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); - case "InternalServerException": - case "com.amazonaws.securitylake#InternalServerException": - throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1278,14 +1173,14 @@ const de_CreateDatalakeAutoEnableCommandError = async ( }; /** - * deserializeAws_restJson1CreateDatalakeDelegatedAdminCommand + * deserializeAws_restJson1CreateDataLakeExceptionSubscriptionCommand */ -export const de_CreateDatalakeDelegatedAdminCommand = async ( +export const de_CreateDataLakeExceptionSubscriptionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CreateDatalakeDelegatedAdminCommandError(output, context); + return de_CreateDataLakeExceptionSubscriptionCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), @@ -1295,12 +1190,12 @@ export const de_CreateDatalakeDelegatedAdminCommand = async ( }; /** - * deserializeAws_restJson1CreateDatalakeDelegatedAdminCommandError + * deserializeAws_restJson1CreateDataLakeExceptionSubscriptionCommandError */ -const de_CreateDatalakeDelegatedAdminCommandError = async ( +const de_CreateDataLakeExceptionSubscriptionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -1310,15 +1205,21 @@ const de_CreateDatalakeDelegatedAdminCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); case "ThrottlingException": case "com.amazonaws.securitylake#ThrottlingException": throw await de_ThrottlingExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1330,14 +1231,14 @@ const de_CreateDatalakeDelegatedAdminCommandError = async ( }; /** - * deserializeAws_restJson1CreateDatalakeExceptionsSubscriptionCommand + * deserializeAws_restJson1CreateDataLakeOrganizationConfigurationCommand */ -export const de_CreateDatalakeExceptionsSubscriptionCommand = async ( +export const de_CreateDataLakeOrganizationConfigurationCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CreateDatalakeExceptionsSubscriptionCommandError(output, context); + return de_CreateDataLakeOrganizationConfigurationCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), @@ -1347,12 +1248,12 @@ export const de_CreateDatalakeExceptionsSubscriptionCommand = async ( }; /** - * deserializeAws_restJson1CreateDatalakeExceptionsSubscriptionCommandError + * deserializeAws_restJson1CreateDataLakeOrganizationConfigurationCommandError */ -const de_CreateDatalakeExceptionsSubscriptionCommandError = async ( +const de_CreateDataLakeOrganizationConfigurationCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -1362,15 +1263,21 @@ const de_CreateDatalakeExceptionsSubscriptionCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1396,12 +1303,7 @@ export const de_CreateSubscriberCommand = async ( }); const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { - resourceShareArn: __expectString, - resourceShareName: __expectString, - roleArn: __expectString, - s3BucketArn: __expectString, - snsArn: __expectString, - subscriptionId: __expectString, + subscriber: (_) => de_SubscriberResource(_, context), }); Object.assign(contents, doc); return contents; @@ -1423,27 +1325,21 @@ const de_CreateSubscriberCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); - case "BucketNotFoundException": - case "com.amazonaws.securitylake#BucketNotFoundException": - throw await de_BucketNotFoundExceptionRes(parsedOutput, context); - case "ConflictSubscriptionException": - case "com.amazonaws.securitylake#ConflictSubscriptionException": - throw await de_ConflictSubscriptionExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "InvalidInputException": - case "com.amazonaws.securitylake#InvalidInputException": - throw await de_InvalidInputExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1455,33 +1351,33 @@ const de_CreateSubscriberCommandError = async ( }; /** - * deserializeAws_restJson1CreateSubscriptionNotificationConfigurationCommand + * deserializeAws_restJson1CreateSubscriberNotificationCommand */ -export const de_CreateSubscriptionNotificationConfigurationCommand = async ( +export const de_CreateSubscriberNotificationCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_CreateSubscriptionNotificationConfigurationCommandError(output, context); + return de_CreateSubscriberNotificationCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { - queueArn: __expectString, + subscriberEndpoint: __expectString, }); Object.assign(contents, doc); return contents; }; /** - * deserializeAws_restJson1CreateSubscriptionNotificationConfigurationCommandError + * deserializeAws_restJson1CreateSubscriberNotificationCommandError */ -const de_CreateSubscriptionNotificationConfigurationCommandError = async ( +const de_CreateSubscriberNotificationCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -1491,24 +1387,21 @@ const de_CreateSubscriptionNotificationConfigurationCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); - case "ConcurrentModificationException": - case "com.amazonaws.securitylake#ConcurrentModificationException": - throw await de_ConcurrentModificationExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "InvalidInputException": - case "com.amazonaws.securitylake#InvalidInputException": - throw await de_InvalidInputExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1535,7 +1428,6 @@ export const de_DeleteAwsLogSourceCommand = async ( const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { failed: _json, - processing: _json, }); Object.assign(contents, doc); return contents; @@ -1557,15 +1449,21 @@ const de_DeleteAwsLogSourceCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1589,11 +1487,7 @@ export const de_DeleteCustomLogSourceCommand = async ( const contents: any = map({ $metadata: deserializeMetadata(output), }); - const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - const doc = take(data, { - customDataLocation: __expectString, - }); - Object.assign(contents, doc); + await collectBody(output.body, context); return contents; }; @@ -1613,24 +1507,21 @@ const de_DeleteCustomLogSourceCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); - case "BucketNotFoundException": - case "com.amazonaws.securitylake#BucketNotFoundException": - throw await de_BucketNotFoundExceptionRes(parsedOutput, context); - case "ConflictSourceNamesException": - case "com.amazonaws.securitylake#ConflictSourceNamesException": - throw await de_ConflictSourceNamesExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1642,14 +1533,14 @@ const de_DeleteCustomLogSourceCommandError = async ( }; /** - * deserializeAws_restJson1DeleteDatalakeCommand + * deserializeAws_restJson1DeleteDataLakeCommand */ -export const de_DeleteDatalakeCommand = async ( +export const de_DeleteDataLakeCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_DeleteDatalakeCommandError(output, context); + return de_DeleteDataLakeCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), @@ -1659,12 +1550,12 @@ export const de_DeleteDatalakeCommand = async ( }; /** - * deserializeAws_restJson1DeleteDatalakeCommandError + * deserializeAws_restJson1DeleteDataLakeCommandError */ -const de_DeleteDatalakeCommandError = async ( +const de_DeleteDataLakeCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -1674,6 +1565,9 @@ const de_DeleteDatalakeCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); case "ConflictException": case "com.amazonaws.securitylake#ConflictException": throw await de_ConflictExceptionRes(parsedOutput, context); @@ -1683,15 +1577,9 @@ const de_DeleteDatalakeCommandError = async ( case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ServiceQuotaExceededException": - case "com.amazonaws.securitylake#ServiceQuotaExceededException": - throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context); case "ThrottlingException": case "com.amazonaws.securitylake#ThrottlingException": throw await de_ThrottlingExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1703,14 +1591,14 @@ const de_DeleteDatalakeCommandError = async ( }; /** - * deserializeAws_restJson1DeleteDatalakeAutoEnableCommand + * deserializeAws_restJson1DeleteDataLakeExceptionSubscriptionCommand */ -export const de_DeleteDatalakeAutoEnableCommand = async ( +export const de_DeleteDataLakeExceptionSubscriptionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_DeleteDatalakeAutoEnableCommandError(output, context); + return de_DeleteDataLakeExceptionSubscriptionCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), @@ -1720,12 +1608,12 @@ export const de_DeleteDatalakeAutoEnableCommand = async ( }; /** - * deserializeAws_restJson1DeleteDatalakeAutoEnableCommandError + * deserializeAws_restJson1DeleteDataLakeExceptionSubscriptionCommandError */ -const de_DeleteDatalakeAutoEnableCommandError = async ( +const de_DeleteDataLakeExceptionSubscriptionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -1735,15 +1623,21 @@ const de_DeleteDatalakeAutoEnableCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1755,14 +1649,14 @@ const de_DeleteDatalakeAutoEnableCommandError = async ( }; /** - * deserializeAws_restJson1DeleteDatalakeDelegatedAdminCommand + * deserializeAws_restJson1DeleteDataLakeOrganizationConfigurationCommand */ -export const de_DeleteDatalakeDelegatedAdminCommand = async ( +export const de_DeleteDataLakeOrganizationConfigurationCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_DeleteDatalakeDelegatedAdminCommandError(output, context); + return de_DeleteDataLakeOrganizationConfigurationCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), @@ -1772,12 +1666,12 @@ export const de_DeleteDatalakeDelegatedAdminCommand = async ( }; /** - * deserializeAws_restJson1DeleteDatalakeDelegatedAdminCommandError + * deserializeAws_restJson1DeleteDataLakeOrganizationConfigurationCommandError */ -const de_DeleteDatalakeDelegatedAdminCommandError = async ( +const de_DeleteDataLakeOrganizationConfigurationCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -1787,71 +1681,21 @@ const de_DeleteDatalakeDelegatedAdminCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); case "ThrottlingException": case "com.amazonaws.securitylake#ThrottlingException": throw await de_ThrottlingExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); - default: - const parsedBody = parsedOutput.body; - return throwDefaultError({ - output, - parsedBody, - errorCode, - }); - } -}; - -/** - * deserializeAws_restJson1DeleteDatalakeExceptionsSubscriptionCommand - */ -export const de_DeleteDatalakeExceptionsSubscriptionCommand = async ( - output: __HttpResponse, - context: __SerdeContext -): Promise => { - if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_DeleteDatalakeExceptionsSubscriptionCommandError(output, context); - } - const contents: any = map({ - $metadata: deserializeMetadata(output), - }); - const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - const doc = take(data, { - status: __expectString, - }); - Object.assign(contents, doc); - return contents; -}; - -/** - * deserializeAws_restJson1DeleteDatalakeExceptionsSubscriptionCommandError - */ -const de_DeleteDatalakeExceptionsSubscriptionCommandError = async ( - output: __HttpResponse, - context: __SerdeContext -): Promise => { - const parsedOutput: any = { - ...output, - body: await parseErrorBody(output.body, context), - }; - const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); - switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.securitylake#AccessDeniedException": - throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); - case "InternalServerException": - case "com.amazonaws.securitylake#InternalServerException": - throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1895,27 +1739,21 @@ const de_DeleteSubscriberCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); - case "BucketNotFoundException": - case "com.amazonaws.securitylake#BucketNotFoundException": - throw await de_BucketNotFoundExceptionRes(parsedOutput, context); - case "ConcurrentModificationException": - case "com.amazonaws.securitylake#ConcurrentModificationException": - throw await de_ConcurrentModificationExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "InvalidInputException": - case "com.amazonaws.securitylake#InvalidInputException": - throw await de_InvalidInputExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1927,14 +1765,14 @@ const de_DeleteSubscriberCommandError = async ( }; /** - * deserializeAws_restJson1DeleteSubscriptionNotificationConfigurationCommand + * deserializeAws_restJson1DeleteSubscriberNotificationCommand */ -export const de_DeleteSubscriptionNotificationConfigurationCommand = async ( +export const de_DeleteSubscriberNotificationCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_DeleteSubscriptionNotificationConfigurationCommandError(output, context); + return de_DeleteSubscriberNotificationCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), @@ -1944,12 +1782,12 @@ export const de_DeleteSubscriptionNotificationConfigurationCommand = async ( }; /** - * deserializeAws_restJson1DeleteSubscriptionNotificationConfigurationCommandError + * deserializeAws_restJson1DeleteSubscriberNotificationCommandError */ -const de_DeleteSubscriptionNotificationConfigurationCommandError = async ( +const de_DeleteSubscriberNotificationCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -1959,24 +1797,21 @@ const de_DeleteSubscriptionNotificationConfigurationCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); - case "ConcurrentModificationException": - case "com.amazonaws.securitylake#ConcurrentModificationException": - throw await de_ConcurrentModificationExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "InvalidInputException": - case "com.amazonaws.securitylake#InvalidInputException": - throw await de_InvalidInputExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -1988,33 +1823,29 @@ const de_DeleteSubscriptionNotificationConfigurationCommandError = async ( }; /** - * deserializeAws_restJson1GetDatalakeCommand + * deserializeAws_restJson1DeregisterDataLakeDelegatedAdministratorCommand */ -export const de_GetDatalakeCommand = async ( +export const de_DeregisterDataLakeDelegatedAdministratorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_GetDatalakeCommandError(output, context); + return de_DeregisterDataLakeDelegatedAdministratorCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); - const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); - const doc = take(data, { - configurations: _json, - }); - Object.assign(contents, doc); + await collectBody(output.body, context); return contents; }; /** - * deserializeAws_restJson1GetDatalakeCommandError + * deserializeAws_restJson1DeregisterDataLakeDelegatedAdministratorCommandError */ -const de_GetDatalakeCommandError = async ( +const de_DeregisterDataLakeDelegatedAdministratorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -2024,18 +1855,21 @@ const de_GetDatalakeCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2047,33 +1881,35 @@ const de_GetDatalakeCommandError = async ( }; /** - * deserializeAws_restJson1GetDatalakeAutoEnableCommand + * deserializeAws_restJson1GetDataLakeExceptionSubscriptionCommand */ -export const de_GetDatalakeAutoEnableCommand = async ( +export const de_GetDataLakeExceptionSubscriptionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_GetDatalakeAutoEnableCommandError(output, context); + return de_GetDataLakeExceptionSubscriptionCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { - autoEnableNewAccounts: _json, + exceptionTimeToLive: __expectLong, + notificationEndpoint: __expectString, + subscriptionProtocol: __expectString, }); Object.assign(contents, doc); return contents; }; /** - * deserializeAws_restJson1GetDatalakeAutoEnableCommandError + * deserializeAws_restJson1GetDataLakeExceptionSubscriptionCommandError */ -const de_GetDatalakeAutoEnableCommandError = async ( +const de_GetDataLakeExceptionSubscriptionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -2083,15 +1919,21 @@ const de_GetDatalakeAutoEnableCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2103,33 +1945,33 @@ const de_GetDatalakeAutoEnableCommandError = async ( }; /** - * deserializeAws_restJson1GetDatalakeExceptionsExpiryCommand + * deserializeAws_restJson1GetDataLakeOrganizationConfigurationCommand */ -export const de_GetDatalakeExceptionsExpiryCommand = async ( +export const de_GetDataLakeOrganizationConfigurationCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_GetDatalakeExceptionsExpiryCommandError(output, context); + return de_GetDataLakeOrganizationConfigurationCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { - exceptionMessageExpiry: __expectLong, + autoEnableNewAccount: _json, }); Object.assign(contents, doc); return contents; }; /** - * deserializeAws_restJson1GetDatalakeExceptionsExpiryCommandError + * deserializeAws_restJson1GetDataLakeOrganizationConfigurationCommandError */ -const de_GetDatalakeExceptionsExpiryCommandError = async ( +const de_GetDataLakeOrganizationConfigurationCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -2139,15 +1981,21 @@ const de_GetDatalakeExceptionsExpiryCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2159,33 +2007,35 @@ const de_GetDatalakeExceptionsExpiryCommandError = async ( }; /** - * deserializeAws_restJson1GetDatalakeExceptionsSubscriptionCommand + * deserializeAws_restJson1GetDataLakeSourcesCommand */ -export const de_GetDatalakeExceptionsSubscriptionCommand = async ( +export const de_GetDataLakeSourcesCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_GetDatalakeExceptionsSubscriptionCommandError(output, context); + return de_GetDataLakeSourcesCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { - protocolAndNotificationEndpoint: _json, + dataLakeArn: __expectString, + dataLakeSources: _json, + nextToken: __expectString, }); Object.assign(contents, doc); return contents; }; /** - * deserializeAws_restJson1GetDatalakeExceptionsSubscriptionCommandError + * deserializeAws_restJson1GetDataLakeSourcesCommandError */ -const de_GetDatalakeExceptionsSubscriptionCommandError = async ( +const de_GetDataLakeSourcesCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -2195,15 +2045,21 @@ const de_GetDatalakeExceptionsSubscriptionCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2215,34 +2071,33 @@ const de_GetDatalakeExceptionsSubscriptionCommandError = async ( }; /** - * deserializeAws_restJson1GetDatalakeStatusCommand + * deserializeAws_restJson1GetSubscriberCommand */ -export const de_GetDatalakeStatusCommand = async ( +export const de_GetSubscriberCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_GetDatalakeStatusCommandError(output, context); + return de_GetSubscriberCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { - accountSourcesList: _json, - nextToken: __expectString, + subscriber: (_) => de_SubscriberResource(_, context), }); Object.assign(contents, doc); return contents; }; /** - * deserializeAws_restJson1GetDatalakeStatusCommandError + * deserializeAws_restJson1GetSubscriberCommandError */ -const de_GetDatalakeStatusCommandError = async ( +const de_GetSubscriberCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -2252,15 +2107,21 @@ const de_GetDatalakeStatusCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2272,33 +2133,34 @@ const de_GetDatalakeStatusCommandError = async ( }; /** - * deserializeAws_restJson1GetSubscriberCommand + * deserializeAws_restJson1ListDataLakeExceptionsCommand */ -export const de_GetSubscriberCommand = async ( +export const de_ListDataLakeExceptionsCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_GetSubscriberCommandError(output, context); + return de_ListDataLakeExceptionsCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { - subscriber: (_) => de_SubscriberResource(_, context), + exceptions: (_) => de_DataLakeExceptionList(_, context), + nextToken: __expectString, }); Object.assign(contents, doc); return contents; }; /** - * deserializeAws_restJson1GetSubscriberCommandError + * deserializeAws_restJson1ListDataLakeExceptionsCommandError */ -const de_GetSubscriberCommandError = async ( +const de_ListDataLakeExceptionsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -2308,18 +2170,21 @@ const de_GetSubscriberCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "InvalidInputException": - case "com.amazonaws.securitylake#InvalidInputException": - throw await de_InvalidInputExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2331,34 +2196,33 @@ const de_GetSubscriberCommandError = async ( }; /** - * deserializeAws_restJson1ListDatalakeExceptionsCommand + * deserializeAws_restJson1ListDataLakesCommand */ -export const de_ListDatalakeExceptionsCommand = async ( +export const de_ListDataLakesCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_ListDatalakeExceptionsCommandError(output, context); + return de_ListDataLakesCommandError(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, - nonRetryableFailures: (_) => de_FailuresResponseList(_, context), + dataLakes: _json, }); Object.assign(contents, doc); return contents; }; /** - * deserializeAws_restJson1ListDatalakeExceptionsCommandError + * deserializeAws_restJson1ListDataLakesCommandError */ -const de_ListDatalakeExceptionsCommandError = async ( +const de_ListDataLakesCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -2368,15 +2232,21 @@ const de_ListDatalakeExceptionsCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2403,7 +2273,7 @@ export const de_ListLogSourcesCommand = async ( const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { nextToken: __expectString, - regionSourceTypesAccountsList: _json, + sources: _json, }); Object.assign(contents, doc); return contents; @@ -2425,18 +2295,21 @@ const de_ListLogSourcesCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2463,7 +2336,7 @@ export const de_ListSubscribersCommand = async ( const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { nextToken: __expectString, - subscribers: (_) => de_SubscriberList(_, context), + subscribers: (_) => de_SubscriberResourceList(_, context), }); Object.assign(contents, doc); return contents; @@ -2485,21 +2358,21 @@ const de_ListSubscribersCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "InvalidInputException": - case "com.amazonaws.securitylake#InvalidInputException": - throw await de_InvalidInputExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2511,14 +2384,14 @@ const de_ListSubscribersCommandError = async ( }; /** - * deserializeAws_restJson1UpdateDatalakeCommand + * deserializeAws_restJson1RegisterDataLakeDelegatedAdministratorCommand */ -export const de_UpdateDatalakeCommand = async ( +export const de_RegisterDataLakeDelegatedAdministratorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_UpdateDatalakeCommandError(output, context); + return de_RegisterDataLakeDelegatedAdministratorCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), @@ -2528,12 +2401,12 @@ export const de_UpdateDatalakeCommand = async ( }; /** - * deserializeAws_restJson1UpdateDatalakeCommandError + * deserializeAws_restJson1RegisterDataLakeDelegatedAdministratorCommandError */ -const de_UpdateDatalakeCommandError = async ( +const de_RegisterDataLakeDelegatedAdministratorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -2543,18 +2416,21 @@ const de_UpdateDatalakeCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "EventBridgeException": - case "com.amazonaws.securitylake#EventBridgeException": - throw await de_EventBridgeExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2566,29 +2442,33 @@ const de_UpdateDatalakeCommandError = async ( }; /** - * deserializeAws_restJson1UpdateDatalakeExceptionsExpiryCommand + * deserializeAws_restJson1UpdateDataLakeCommand */ -export const de_UpdateDatalakeExceptionsExpiryCommand = async ( +export const de_UpdateDataLakeCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_UpdateDatalakeExceptionsExpiryCommandError(output, context); + return de_UpdateDataLakeCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); - await collectBody(output.body, context); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + dataLakes: _json, + }); + Object.assign(contents, doc); return contents; }; /** - * deserializeAws_restJson1UpdateDatalakeExceptionsExpiryCommandError + * deserializeAws_restJson1UpdateDataLakeCommandError */ -const de_UpdateDatalakeExceptionsExpiryCommandError = async ( +const de_UpdateDataLakeCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -2598,15 +2478,21 @@ const de_UpdateDatalakeExceptionsExpiryCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2618,14 +2504,14 @@ const de_UpdateDatalakeExceptionsExpiryCommandError = async ( }; /** - * deserializeAws_restJson1UpdateDatalakeExceptionsSubscriptionCommand + * deserializeAws_restJson1UpdateDataLakeExceptionSubscriptionCommand */ -export const de_UpdateDatalakeExceptionsSubscriptionCommand = async ( +export const de_UpdateDataLakeExceptionSubscriptionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_UpdateDatalakeExceptionsSubscriptionCommandError(output, context); + return de_UpdateDataLakeExceptionSubscriptionCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), @@ -2635,12 +2521,12 @@ export const de_UpdateDatalakeExceptionsSubscriptionCommand = async ( }; /** - * deserializeAws_restJson1UpdateDatalakeExceptionsSubscriptionCommandError + * deserializeAws_restJson1UpdateDataLakeExceptionSubscriptionCommandError */ -const de_UpdateDatalakeExceptionsSubscriptionCommandError = async ( +const de_UpdateDataLakeExceptionSubscriptionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -2650,15 +2536,21 @@ const de_UpdateDatalakeExceptionsSubscriptionCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2706,24 +2598,21 @@ const de_UpdateSubscriberCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); - case "ConcurrentModificationException": - case "com.amazonaws.securitylake#ConcurrentModificationException": - throw await de_ConcurrentModificationExceptionRes(parsedOutput, context); - case "ConflictSubscriptionException": - case "com.amazonaws.securitylake#ConflictSubscriptionException": - throw await de_ConflictSubscriptionExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "InvalidInputException": - case "com.amazonaws.securitylake#InvalidInputException": - throw await de_InvalidInputExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.securitylake#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2735,33 +2624,33 @@ const de_UpdateSubscriberCommandError = async ( }; /** - * deserializeAws_restJson1UpdateSubscriptionNotificationConfigurationCommand + * deserializeAws_restJson1UpdateSubscriberNotificationCommand */ -export const de_UpdateSubscriptionNotificationConfigurationCommand = async ( +export const de_UpdateSubscriberNotificationCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode !== 200 && output.statusCode >= 300) { - return de_UpdateSubscriptionNotificationConfigurationCommandError(output, context); + return de_UpdateSubscriberNotificationCommandError(output, context); } const contents: any = map({ $metadata: deserializeMetadata(output), }); const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { - queueArn: __expectString, + subscriberEndpoint: __expectString, }); Object.assign(contents, doc); return contents; }; /** - * deserializeAws_restJson1UpdateSubscriptionNotificationConfigurationCommandError + * deserializeAws_restJson1UpdateSubscriberNotificationCommandError */ -const de_UpdateSubscriptionNotificationConfigurationCommandError = async ( +const de_UpdateSubscriberNotificationCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseErrorBody(output.body, context), @@ -2771,24 +2660,21 @@ const de_UpdateSubscriptionNotificationConfigurationCommandError = async ( case "AccessDeniedException": case "com.amazonaws.securitylake#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "AccountNotFoundException": - case "com.amazonaws.securitylake#AccountNotFoundException": - throw await de_AccountNotFoundExceptionRes(parsedOutput, context); - case "ConcurrentModificationException": - case "com.amazonaws.securitylake#ConcurrentModificationException": - throw await de_ConcurrentModificationExceptionRes(parsedOutput, context); + case "BadRequestException": + case "com.amazonaws.securitylake#BadRequestException": + throw await de_BadRequestExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.securitylake#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.securitylake#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); - case "InvalidInputException": - case "com.amazonaws.securitylake#InvalidInputException": - throw await de_InvalidInputExceptionRes(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.securitylake#ResourceNotFoundException": throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); - case "ValidationException": - case "com.amazonaws.securitylake#ValidationException": - throw await de_ValidationExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.securitylake#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); default: const parsedBody = parsedOutput.body; return throwDefaultError({ @@ -2822,59 +2708,16 @@ const de_AccessDeniedExceptionRes = async ( }; /** - * deserializeAws_restJson1AccountNotFoundExceptionRes - */ -const de_AccountNotFoundExceptionRes = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const contents: any = map({}); - const data: any = parsedOutput.body; - const doc = take(data, { - message: __expectString, - }); - Object.assign(contents, doc); - const exception = new AccountNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents, - }); - return __decorateServiceException(exception, parsedOutput.body); -}; - -/** - * deserializeAws_restJson1BucketNotFoundExceptionRes + * deserializeAws_restJson1BadRequestExceptionRes */ -const de_BucketNotFoundExceptionRes = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { +const de_BadRequestExceptionRes = async (parsedOutput: any, context: __SerdeContext): Promise => { const contents: any = map({}); const data: any = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); - const exception = new BucketNotFoundException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents, - }); - return __decorateServiceException(exception, parsedOutput.body); -}; - -/** - * deserializeAws_restJson1ConcurrentModificationExceptionRes - */ -const de_ConcurrentModificationExceptionRes = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const contents: any = map({}); - const data: any = parsedOutput.body; - const doc = take(data, { - message: __expectString, - }); - Object.assign(contents, doc); - const exception = new ConcurrentModificationException({ + const exception = new BadRequestException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); @@ -2889,7 +2732,7 @@ const de_ConflictExceptionRes = async (parsedOutput: any, context: __SerdeContex const data: any = parsedOutput.body; const doc = take(data, { message: __expectString, - resourceId: __expectString, + resourceName: __expectString, resourceType: __expectString, }); Object.assign(contents, doc); @@ -2900,66 +2743,6 @@ const de_ConflictExceptionRes = async (parsedOutput: any, context: __SerdeContex return __decorateServiceException(exception, parsedOutput.body); }; -/** - * deserializeAws_restJson1ConflictSourceNamesExceptionRes - */ -const de_ConflictSourceNamesExceptionRes = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const contents: any = map({}); - const data: any = parsedOutput.body; - const doc = take(data, { - message: __expectString, - }); - Object.assign(contents, doc); - const exception = new ConflictSourceNamesException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents, - }); - return __decorateServiceException(exception, parsedOutput.body); -}; - -/** - * deserializeAws_restJson1ConflictSubscriptionExceptionRes - */ -const de_ConflictSubscriptionExceptionRes = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const contents: any = map({}); - const data: any = parsedOutput.body; - const doc = take(data, { - message: __expectString, - }); - Object.assign(contents, doc); - const exception = new ConflictSubscriptionException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents, - }); - return __decorateServiceException(exception, parsedOutput.body); -}; - -/** - * deserializeAws_restJson1EventBridgeExceptionRes - */ -const de_EventBridgeExceptionRes = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const contents: any = map({}); - const data: any = parsedOutput.body; - const doc = take(data, { - message: __expectString, - }); - Object.assign(contents, doc); - const exception = new EventBridgeException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents, - }); - return __decorateServiceException(exception, parsedOutput.body); -}; - /** * deserializeAws_restJson1InternalServerExceptionRes */ @@ -2967,38 +2750,13 @@ const de_InternalServerExceptionRes = async ( parsedOutput: any, context: __SerdeContext ): Promise => { - const contents: any = map({ - retryAfterSeconds: [ - () => void 0 !== parsedOutput.headers["retry-after"], - () => __strictParseInt32(parsedOutput.headers["retry-after"]), - ], - }); - const data: any = parsedOutput.body; - const doc = take(data, { - message: __expectString, - }); - Object.assign(contents, doc); - const exception = new InternalServerException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents, - }); - return __decorateServiceException(exception, parsedOutput.body); -}; - -/** - * deserializeAws_restJson1InvalidInputExceptionRes - */ -const de_InvalidInputExceptionRes = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { const contents: any = map({}); const data: any = parsedOutput.body; const doc = take(data, { message: __expectString, }); Object.assign(contents, doc); - const exception = new InvalidInputException({ + const exception = new InternalServerException({ $metadata: deserializeMetadata(parsedOutput), ...contents, }); @@ -3016,7 +2774,7 @@ const de_ResourceNotFoundExceptionRes = async ( const data: any = parsedOutput.body; const doc = take(data, { message: __expectString, - resourceId: __expectString, + resourceName: __expectString, resourceType: __expectString, }); Object.assign(contents, doc); @@ -3027,47 +2785,6 @@ const de_ResourceNotFoundExceptionRes = async ( return __decorateServiceException(exception, parsedOutput.body); }; -/** - * deserializeAws_restJson1S3ExceptionRes - */ -const de_S3ExceptionRes = async (parsedOutput: any, context: __SerdeContext): Promise => { - const contents: any = map({}); - const data: any = parsedOutput.body; - const doc = take(data, { - message: __expectString, - }); - Object.assign(contents, doc); - const exception = new S3Exception({ - $metadata: deserializeMetadata(parsedOutput), - ...contents, - }); - return __decorateServiceException(exception, parsedOutput.body); -}; - -/** - * deserializeAws_restJson1ServiceQuotaExceededExceptionRes - */ -const de_ServiceQuotaExceededExceptionRes = async ( - parsedOutput: any, - context: __SerdeContext -): Promise => { - const contents: any = map({}); - const data: any = parsedOutput.body; - const doc = take(data, { - message: __expectString, - quotaCode: __expectString, - resourceId: __expectString, - resourceType: __expectString, - serviceCode: __expectString, - }); - Object.assign(contents, doc); - const exception = new ServiceQuotaExceededException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents, - }); - return __decorateServiceException(exception, parsedOutput.body); -}; - /** * deserializeAws_restJson1ThrottlingExceptionRes */ @@ -3092,155 +2809,147 @@ const de_ThrottlingExceptionRes = async (parsedOutput: any, context: __SerdeCont return __decorateServiceException(exception, parsedOutput.body); }; -/** - * deserializeAws_restJson1ValidationExceptionRes - */ -const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeContext): Promise => { - const contents: any = map({}); - const data: any = parsedOutput.body; - const doc = take(data, { - fieldList: _json, - message: __expectString, - reason: __expectString, - }); - Object.assign(contents, doc); - const exception = new ValidationException({ - $metadata: deserializeMetadata(parsedOutput), - ...contents, - }); - return __decorateServiceException(exception, parsedOutput.body); -}; - // se_AccessTypeList omitted. -// se_AllDimensionsMap omitted. +// se_AccountList omitted. + +// se_AwsIdentity omitted. + +// se_AwsLogSourceConfiguration omitted. + +// se_AwsLogSourceConfigurationList omitted. + +// se_AwsLogSourceResource omitted. -// se_AutoEnableNewRegionConfiguration omitted. +// se_AwsLogSourceResourceList omitted. -// se_AutoEnableNewRegionConfigurationList omitted. +// se_CustomLogSourceAttributes omitted. -// se_AwsSourceTypeList omitted. +// se_CustomLogSourceConfiguration omitted. -// se_DimensionSet omitted. +// se_CustomLogSourceCrawlerConfiguration omitted. -// se_InputSet omitted. +// se_CustomLogSourceProvider omitted. -// se_LakeConfigurationRequest omitted. +// se_CustomLogSourceResource omitted. -// se_LakeConfigurationRequestMap omitted. +// se_DataLakeAutoEnableNewAccountConfiguration omitted. -// se_RegionSet omitted. +// se_DataLakeAutoEnableNewAccountConfigurationList omitted. -// se_RetentionSetting omitted. +// se_DataLakeConfiguration omitted. -// se_RetentionSettingList omitted. +// se_DataLakeConfigurationList omitted. -// se_SourceType omitted. +// se_DataLakeEncryptionConfiguration omitted. -// se_SourceTypeList omitted. +// se_DataLakeLifecycleConfiguration omitted. -// se_TagsMap omitted. +// se_DataLakeLifecycleExpiration omitted. -// se_TwoDimensionsMap omitted. +// se_DataLakeLifecycleTransition omitted. -// se_ValueSet omitted. +// se_DataLakeLifecycleTransitionList omitted. + +// se_DataLakeReplicationConfiguration omitted. + +// se_HttpsNotificationConfiguration omitted. + +// se_LogSourceResource omitted. + +// se_LogSourceResourceList omitted. + +// se_NotificationConfiguration omitted. + +// se_OcsfEventClassList omitted. + +// se_RegionList omitted. + +// se_SqsNotificationConfiguration omitted. // de_AccessTypeList omitted. // de_AccountList omitted. -// de_AccountSources omitted. +// de_AwsIdentity omitted. + +// de_AwsLogSourceResource omitted. + +// de_AwsLogSourceResourceList omitted. + +// de_CustomLogSourceAttributes omitted. -// de_AccountSourcesList omitted. +// de_CustomLogSourceProvider omitted. -// de_AllDimensionsMap omitted. +// de_CustomLogSourceResource omitted. -// de_AutoEnableNewRegionConfiguration omitted. +// de_DataLakeAutoEnableNewAccountConfiguration omitted. -// de_AutoEnableNewRegionConfigurationList omitted. +// de_DataLakeAutoEnableNewAccountConfigurationList omitted. -// de_AwsSourceTypeList omitted. +// de_DataLakeEncryptionConfiguration omitted. /** - * deserializeAws_restJson1Failures + * deserializeAws_restJson1DataLakeException */ -const de_Failures = (output: any, context: __SerdeContext): Failures => { +const de_DataLakeException = (output: any, context: __SerdeContext): DataLakeException => { return take(output, { - exceptionMessage: __expectString, + exception: __expectString, + region: __expectString, remediation: __expectString, timestamp: (_: any) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)), }) as any; }; /** - * deserializeAws_restJson1Failureslist + * deserializeAws_restJson1DataLakeExceptionList */ -const de_Failureslist = (output: any, context: __SerdeContext): Failures[] => { +const de_DataLakeExceptionList = (output: any, context: __SerdeContext): DataLakeException[] => { const retVal = (output || []) .filter((e: any) => e != null) .map((entry: any) => { - return de_Failures(entry, context); + return de_DataLakeException(entry, context); }); return retVal; }; -/** - * deserializeAws_restJson1FailuresResponse - */ -const de_FailuresResponse = (output: any, context: __SerdeContext): FailuresResponse => { - return take(output, { - failures: (_: any) => de_Failureslist(_, context), - region: __expectString, - }) as any; -}; +// de_DataLakeLifecycleConfiguration omitted. -/** - * deserializeAws_restJson1FailuresResponseList - */ -const de_FailuresResponseList = (output: any, context: __SerdeContext): FailuresResponse[] => { - const retVal = (output || []) - .filter((e: any) => e != null) - .map((entry: any) => { - return de_FailuresResponse(entry, context); - }); - return retVal; -}; +// de_DataLakeLifecycleExpiration omitted. -// de_LakeConfigurationResponse omitted. +// de_DataLakeLifecycleTransition omitted. -// de_LakeConfigurationResponseMap omitted. +// de_DataLakeLifecycleTransitionList omitted. -// de_LastUpdateFailure omitted. +// de_DataLakeReplicationConfiguration omitted. -// de_LogsStatus omitted. +// de_DataLakeResource omitted. -// de_LogsStatusList omitted. +// de_DataLakeResourceList omitted. -// de_ProtocolAndNotificationEndpoint omitted. +// de_DataLakeSource omitted. -// de_RegionSet omitted. +// de_DataLakeSourceList omitted. -// de_RegionSourceTypesAccountsList omitted. +// de_DataLakeSourceStatus omitted. -// de_RetentionSetting omitted. +// de_DataLakeSourceStatusList omitted. -// de_RetentionSettingList omitted. +// de_DataLakeUpdateException omitted. -// de_SourceType omitted. +// de_DataLakeUpdateStatus omitted. -// de_SourceTypeList omitted. +// de_LogSource omitted. -/** - * deserializeAws_restJson1SubscriberList - */ -const de_SubscriberList = (output: any, context: __SerdeContext): SubscriberResource[] => { - const retVal = (output || []) - .filter((e: any) => e != null) - .map((entry: any) => { - return de_SubscriberResource(entry, context); - }); - return retVal; -}; +// de_LogSourceList omitted. + +// de_LogSourceResource omitted. + +// de_LogSourceResourceList omitted. + +// de_OcsfEventClassList omitted. + +// de_RegionList omitted. /** * deserializeAws_restJson1SubscriberResource @@ -3248,36 +2957,34 @@ const de_SubscriberList = (output: any, context: __SerdeContext): SubscriberReso const de_SubscriberResource = (output: any, context: __SerdeContext): SubscriberResource => { return take(output, { accessTypes: _json, - accountId: __expectString, createdAt: (_: any) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)), - externalId: __expectString, resourceShareArn: __expectString, resourceShareName: __expectString, roleArn: __expectString, s3BucketArn: __expectString, - snsArn: __expectString, - sourceTypes: _json, + sources: _json, + subscriberArn: __expectString, subscriberDescription: __expectString, + subscriberEndpoint: __expectString, + subscriberId: __expectString, + subscriberIdentity: _json, subscriberName: __expectString, - subscriptionEndpoint: __expectString, - subscriptionId: __expectString, - subscriptionProtocol: __expectString, - subscriptionStatus: __expectString, + subscriberStatus: __expectString, updatedAt: (_: any) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)), }) as any; }; -// de_TagsMap omitted. - -// de_TwoDimensionsMap omitted. - -// de_UpdateStatus omitted. - -// de_ValidationExceptionField omitted. - -// de_ValidationExceptionFieldList omitted. - -// de_ValueSet omitted. +/** + * deserializeAws_restJson1SubscriberResourceList + */ +const de_SubscriberResourceList = (output: any, context: __SerdeContext): SubscriberResource[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_SubscriberResource(entry, context); + }); + return retVal; +}; const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({ httpStatusCode: output.statusCode, diff --git a/codegen/sdk-codegen/aws-models/securitylake.json b/codegen/sdk-codegen/aws-models/securitylake.json index a26b94ab7d3a..56069911e354 100644 --- a/codegen/sdk-codegen/aws-models/securitylake.json +++ b/codegen/sdk-codegen/aws-models/securitylake.json @@ -5,10 +5,7 @@ "type": "structure", "members": { "message": { - "target": "smithy.api#String", - "traits": { - "smithy.api#required": {} - } + "target": "smithy.api#String" }, "errorCode": { "target": "smithy.api#String", @@ -24,18 +21,20 @@ } }, "com.amazonaws.securitylake#AccessType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "LAKEFORMATION", - "name": "LAKEFORMATION" - }, - { - "value": "S3", - "name": "S3" + "type": "enum", + "members": { + "LAKEFORMATION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LAKEFORMATION" + } + }, + "S3": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "S3" } - ] + } } }, "com.amazonaws.securitylake#AccessTypeList": { @@ -47,202 +46,210 @@ "com.amazonaws.securitylake#AccountList": { "type": "list", "member": { - "target": "smithy.api#String" + "target": "com.amazonaws.securitylake#AwsAccountId" }, "traits": { "smithy.api#uniqueItems": {} } }, - "com.amazonaws.securitylake#AccountNotFoundException": { + "com.amazonaws.securitylake#AmazonResourceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1011 + }, + "smithy.api#pattern": "^arn:aws:securitylake:[A-za-z0-9_/.\\-]{0,63}:[A-za-z0-9_/.\\-]{0,63}:[A-Za-z0-9][A-za-z0-9_/.\\-]{0,127}$" + } + }, + "com.amazonaws.securitylake#AwsAccountId": { + "type": "string", + "traits": { + "aws.api#data": "account", + "smithy.api#length": { + "min": 12, + "max": 12 + }, + "smithy.api#pattern": "^[0-9]{12}$" + } + }, + "com.amazonaws.securitylake#AwsIdentity": { "type": "structure", "members": { - "message": { - "target": "smithy.api#String", + "principal": { + "target": "com.amazonaws.securitylake#AwsPrincipal", + "traits": { + "smithy.api#documentation": "

The AWS identity principal.

", + "smithy.api#required": {} + } + }, + "externalId": { + "target": "com.amazonaws.securitylake#ExternalId", "traits": { + "smithy.api#documentation": "

The external ID used to estalish trust relationship with the AWS identity.

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

Amazon Security Lake cannot find an Amazon Web Services account with the accountID that you\n specified, or the account whose credentials you used to make this request isn't a member of\n an organization.

", - "smithy.api#error": "client", - "smithy.api#httpError": 403 + "smithy.api#documentation": "

The AWS identity.

" } }, - "com.amazonaws.securitylake#AccountSources": { + "com.amazonaws.securitylake#AwsLogSourceConfiguration": { "type": "structure", "members": { - "account": { - "target": "smithy.api#String", + "accounts": { + "target": "com.amazonaws.securitylake#AccountList", "traits": { - "smithy.api#documentation": "

The ID of the Security Lake account for which logs are collected.

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

Specify the Amazon Web Services account information where you want to enable Security Lake.

" } }, - "sourceType": { - "target": "smithy.api#String", + "regions": { + "target": "com.amazonaws.securitylake#RegionList", "traits": { - "smithy.api#documentation": "

The supported Amazon Web Services from which logs and events are collected.\n Amazon Security Lake supports log and event collection for natively supported Amazon Web Services.

", + "smithy.api#documentation": "

Specify the Regions where you want to enable Security Lake.

", "smithy.api#required": {} } }, - "logsStatus": { - "target": "com.amazonaws.securitylake#LogsStatusList", + "sourceName": { + "target": "com.amazonaws.securitylake#AwsLogSourceName", "traits": { - "smithy.api#documentation": "

The log status for the Security Lake account.

" + "smithy.api#documentation": "

The name for a Amazon Web Services source. This must be a Regionally unique value.

", + "smithy.api#required": {} } }, - "eventClass": { - "target": "com.amazonaws.securitylake#OcsfEventClass", + "sourceVersion": { + "target": "com.amazonaws.securitylake#AwsLogSourceVersion", "traits": { - "smithy.api#documentation": "

Initializes a new instance of the Event class.

" + "smithy.api#default": "latest", + "smithy.api#documentation": "

The version for a Amazon Web Services source. This must be a Regionally unique value.

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

Amazon Security Lake collects logs and events from supported Amazon Web Services and\n custom sources. For the list of supported Amazon Web Services, see the Amazon Security Lake User Guide.

" + "smithy.api#documentation": "

The Security Lake logs source configuration file describes the information needed to generate Security Lake logs.

" } }, - "com.amazonaws.securitylake#AccountSourcesList": { + "com.amazonaws.securitylake#AwsLogSourceConfigurationList": { "type": "list", "member": { - "target": "com.amazonaws.securitylake#AccountSources" + "target": "com.amazonaws.securitylake#AwsLogSourceConfiguration" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 50 + } } }, - "com.amazonaws.securitylake#AllDimensionsMap": { - "type": "map", - "key": { - "target": "smithy.api#String" - }, - "value": { - "target": "com.amazonaws.securitylake#TwoDimensionsMap" + "com.amazonaws.securitylake#AwsLogSourceName": { + "type": "enum", + "members": { + "ROUTE53": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROUTE53" + } + }, + "VPC_FLOW": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VPC_FLOW" + } + }, + "SH_FINDINGS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SH_FINDINGS" + } + }, + "CLOUD_TRAIL_MGMT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CLOUD_TRAIL_MGMT" + } + }, + "LAMBDA_EXECUTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LAMBDA_EXECUTION" + } + }, + "S3_DATA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "S3_DATA" + } + } } }, - "com.amazonaws.securitylake#AutoEnableNewRegionConfiguration": { + "com.amazonaws.securitylake#AwsLogSourceResource": { "type": "structure", "members": { - "region": { - "target": "com.amazonaws.securitylake#Region", + "sourceName": { + "target": "com.amazonaws.securitylake#AwsLogSourceName", "traits": { - "smithy.api#documentation": "

The Amazon Web Services Regions where Security Lake is automatically enabled.

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

The name for a Amazon Web Services source. This must be a Regionally unique value.

" } }, - "sources": { - "target": "com.amazonaws.securitylake#AwsSourceTypeList", + "sourceVersion": { + "target": "com.amazonaws.securitylake#AwsLogSourceVersion", "traits": { - "smithy.api#documentation": "

The Amazon Web Services sources that are automatically enabled in Security Lake.

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

The version for a Amazon Web Services source. This must be a Regionally unique value.

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

Automatically enable new organization accounts as member accounts from an Amazon Security Lake\n administrator account.

" + "smithy.api#documentation": "

Amazon Security Lake can collect logs and events from natively-supported Amazon Web Services services.

" } }, - "com.amazonaws.securitylake#AutoEnableNewRegionConfigurationList": { + "com.amazonaws.securitylake#AwsLogSourceResourceList": { "type": "list", "member": { - "target": "com.amazonaws.securitylake#AutoEnableNewRegionConfiguration" + "target": "com.amazonaws.securitylake#AwsLogSourceResource" } }, - "com.amazonaws.securitylake#AwsAccountId": { + "com.amazonaws.securitylake#AwsLogSourceVersion": { "type": "string", "traits": { - "aws.api#data": "account", - "smithy.api#length": { - "min": 12, - "max": 12 - }, - "smithy.api#pattern": "^\\d+$" + "smithy.api#pattern": "^(latest|[0-9]\\.[0-9])$" } }, - "com.amazonaws.securitylake#AwsLogSourceType": { + "com.amazonaws.securitylake#AwsPrincipal": { "type": "string", "traits": { - "smithy.api#enum": [ - { - "value": "ROUTE53", - "name": "ROUTE53" - }, - { - "value": "VPC_FLOW", - "name": "VPC_FLOW" - }, - { - "value": "CLOUD_TRAIL", - "name": "CLOUD_TRAIL" - }, - { - "value": "SH_FINDINGS", - "name": "SH_FINDINGS" - } - ] - } - }, - "com.amazonaws.securitylake#AwsSourceTypeList": { - "type": "list", - "member": { - "target": "com.amazonaws.securitylake#AwsLogSourceType" - }, - "traits": { - "smithy.api#uniqueItems": {} - } - }, - "com.amazonaws.securitylake#BucketNotFoundException": { - "type": "structure", - "members": { - "message": { - "target": "smithy.api#String", - "traits": { - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

Amazon Security Lake generally returns 404 errors if the requested object is missing from the\n bucket.

", - "smithy.api#error": "client", - "smithy.api#httpError": 409 + "smithy.api#pattern": "^([0-9]{12}|[a-z0-9\\.\\-]*\\.(amazonaws|amazon)\\.com)$" } }, - "com.amazonaws.securitylake#ConcurrentModificationException": { + "com.amazonaws.securitylake#BadRequestException": { "type": "structure", "members": { "message": { - "target": "smithy.api#String", - "traits": { - "smithy.api#required": {} - } + "target": "smithy.api#String" } }, "traits": { - "smithy.api#documentation": "

More than one process tried to modify a resource at the same time.

", + "smithy.api#documentation": "

The request is malformed or contains an error such as an invalid parameter value or a missing required parameter.

", "smithy.api#error": "client", - "smithy.api#httpError": 409, - "smithy.api#retryable": {} + "smithy.api#httpError": 400 } }, "com.amazonaws.securitylake#ConflictException": { "type": "structure", "members": { "message": { - "target": "smithy.api#String", - "traits": { - "smithy.api#required": {} - } + "target": "smithy.api#String" }, - "resourceId": { + "resourceName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

A conflict occurred when prompting for the Resource ID.

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

The resource name.

" } }, "resourceType": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The resource type.

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

The resource type.

" } } }, @@ -252,38 +259,6 @@ "smithy.api#httpError": 409 } }, - "com.amazonaws.securitylake#ConflictSourceNamesException": { - "type": "structure", - "members": { - "message": { - "target": "smithy.api#String", - "traits": { - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

There was a conflict when you attempted to modify a Security Lake source name.

", - "smithy.api#error": "client", - "smithy.api#httpError": 400 - } - }, - "com.amazonaws.securitylake#ConflictSubscriptionException": { - "type": "structure", - "members": { - "message": { - "target": "smithy.api#String", - "traits": { - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

A conflicting subscription exception operation is in progress.

", - "smithy.api#error": "client", - "smithy.api#httpError": 400 - } - }, "com.amazonaws.securitylake#CreateAwsLogSource": { "type": "operation", "input": { @@ -297,26 +272,36 @@ "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" }, { - "target": "com.amazonaws.securitylake#InternalServerException" + "target": "com.amazonaws.securitylake#ConflictException" }, { - "target": "com.amazonaws.securitylake#ResourceNotFoundException" + "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#S3Exception" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Adds a natively supported Amazon Web Service as an Amazon Security Lake source. Enables\n source types for member accounts in required Amazon Web Services Regions, based on the\n parameters you specify. You can choose any source type in any Region for either accounts\n that are part of a trusted organization or standalone accounts. At least one of the three\n dimensions is a mandatory input to this API. However, you can supply any combination of the\n three dimensions to this API.

\n

By default, a dimension refers to the entire set. When you don't provide a dimension,\n Security Lake assumes that the missing dimension refers to the entire set. This is overridden\n when you supply any one of the inputs. For instance, when you do not specify members, the\n API enables all Security Lake member accounts for all sources. Similarly, when you do not\n specify Regions, Security Lake is enabled for all the Regions where Security Lake is available as a\n service.

\n

You can use this API only to enable natively supported Amazon Web Services as a\n source. Use CreateCustomLogSource to enable data collection from a custom\n source.

", + "aws.iam#actionPermissionDescription": "Grants permission to enable any source type in any region for accounts that are either part of a trusted organization or standalone account", + "aws.iam#requiredActions": [ + "iam:CreateServiceLinkedRole", + "kms:DescribeKey", + "kms:CreateGrant", + "glue:GetTable", + "glue:GetDatabase", + "glue:CreateTable", + "glue:CreateDatabase" + ], + "smithy.api#documentation": "

Adds a natively supported Amazon Web Service as an Amazon Security Lake source. Enables\n source types for member accounts in required Amazon Web Services Regions, based on the\n parameters you specify. You can choose any source type in any Region for either accounts\n that are part of a trusted organization or standalone accounts. Once you add an Amazon Web Service as a source, Security Lake starts collecting logs and events from it,

\n

You can use this API only to enable natively supported Amazon Web Services as a\n source. Use CreateCustomLogSource to enable data collection from a custom\n source.

", "smithy.api#http": { "method": "POST", - "uri": "/v1/logsources/aws", + "uri": "/v1/datalake/logsources/aws", "code": 200 } } @@ -324,48 +309,30 @@ "com.amazonaws.securitylake#CreateAwsLogSourceRequest": { "type": "structure", "members": { - "inputOrder": { - "target": "com.amazonaws.securitylake#DimensionSet", + "sources": { + "target": "com.amazonaws.securitylake#AwsLogSourceConfigurationList", "traits": { - "smithy.api#documentation": "

Specifies the input order to enable dimensions in Security Lake, namely Region, source type,\n and member account.

", + "smithy.api#documentation": "

Specify the natively-supported Amazon Web Services service to add as a source in Security Lake.

", "smithy.api#required": {} } - }, - "enableAllDimensions": { - "target": "com.amazonaws.securitylake#AllDimensionsMap", - "traits": { - "smithy.api#documentation": "

Enables data collection from specific Amazon Web Services sources in all specific\n accounts and specific Regions.

" - } - }, - "enableTwoDimensions": { - "target": "com.amazonaws.securitylake#TwoDimensionsMap", - "traits": { - "smithy.api#documentation": "

Enables data collection from specific Amazon Web Services sources in specific accounts or\n Regions.

" - } - }, - "enableSingleDimension": { - "target": "com.amazonaws.securitylake#InputSet", - "traits": { - "smithy.api#documentation": "

Enables data collection from all Amazon Web Services sources in specific accounts or\n Regions.

" - } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.securitylake#CreateAwsLogSourceResponse": { "type": "structure", "members": { - "processing": { - "target": "com.amazonaws.securitylake#AccountList", - "traits": { - "smithy.api#documentation": "

Lists the accounts that are in the process of enabling a natively supported Amazon Web Service as a Security Lake source.

" - } - }, "failed": { "target": "com.amazonaws.securitylake#AccountList", "traits": { "smithy.api#documentation": "

Lists all accounts in which enabling a natively supported Amazon Web Service as\n a Security Lake source failed. The failure occurred as these accounts are not part of an\n organization.

" } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.securitylake#CreateCustomLogSource": { @@ -381,13 +348,10 @@ "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" }, { - "target": "com.amazonaws.securitylake#BucketNotFoundException" - }, - { - "target": "com.amazonaws.securitylake#ConflictSourceNamesException" + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" @@ -396,47 +360,63 @@ "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Adds a third-party custom source in Amazon Security Lake, from the Amazon Web Services Region\n where you want to create a custom source. Security Lake can collect logs and events from\n third-party custom sources. After creating the appropriate IAM role to\n invoke Glue crawler, use this API to add a custom source name in Security Lake. This\n operation creates a partition in the Amazon S3 bucket for Security Lake as the target\n location for log files from the custom source in addition to an associated Glue table and an Glue crawler.

", + "aws.iam#actionPermissionDescription": "Grants permission to add a custom source", + "aws.iam#requiredActions": [ + "iam:GetRole", + "iam:PutRolePolicy", + "iam:DeleteRolePolicy", + "iam:PassRole", + "s3:PutObject", + "s3:ListBucket", + "lakeformation:RegisterResource", + "lakeformation:GrantPermissions", + "kms:DescribeKey", + "kms:CreateGrant", + "kms:GenerateDataKey", + "glue:CreateCrawler", + "glue:StartCrawlerSchedule", + "glue:CreateTable", + "glue:CreateDatabase" + ], + "smithy.api#documentation": "

Adds a third-party custom source in Amazon Security Lake, from the Amazon Web Services Region\n where you want to create a custom source. Security Lake can collect logs and events from\n third-party custom sources. After creating the appropriate IAM role to\n invoke Glue crawler, use this API to add a custom source name in Security Lake. This\n operation creates a partition in the Amazon S3 bucket for Security Lake as the target\n location for log files from the custom source. In addition, this operation also creates an\n associated Glue table and an Glue crawler.

", "smithy.api#http": { "method": "POST", - "uri": "/v1/logsources/custom", + "uri": "/v1/datalake/logsources/custom", "code": 200 - } + }, + "smithy.api#idempotent": {} } }, "com.amazonaws.securitylake#CreateCustomLogSourceRequest": { "type": "structure", "members": { - "customSourceName": { - "target": "com.amazonaws.securitylake#CustomSourceType", + "sourceName": { + "target": "com.amazonaws.securitylake#CustomLogSourceName", "traits": { - "smithy.api#documentation": "

The name for a third-party custom source. This must be a Regionally unique value.

", + "smithy.api#documentation": "

Specify the name for a third-party custom source. This must be a Regionally unique\n value.

", "smithy.api#required": {} } }, - "eventClass": { - "target": "com.amazonaws.securitylake#OcsfEventClass", + "sourceVersion": { + "target": "com.amazonaws.securitylake#CustomLogSourceVersion", "traits": { - "smithy.api#documentation": "

The Open Cybersecurity Schema Framework (OCSF) event class which describes the type of\n data that the custom source will send to Security Lake.

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

Specify the source version for the third-party custom source, to limit log collection to\n a specific version of custom data source.

" } }, - "glueInvocationRoleArn": { - "target": "com.amazonaws.securitylake#RoleArn", + "eventClasses": { + "target": "com.amazonaws.securitylake#OcsfEventClassList", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role\n to be used by the Glue crawler. The recommended IAM policies\n are:

\n
    \n
  • \n

    The managed policy AWSGlueServiceRole\n

    \n
  • \n
  • \n

    A custom policy granting access to your Amazon S3 Data Lake

    \n
  • \n
", - "smithy.api#required": {} + "smithy.api#documentation": "

The Open Cybersecurity Schema Framework (OCSF) event classes which describes the type of\n data that the custom source will send to Security Lake. The supported event classes are:

\n
    \n
  • \n

    \n ACCESS_ACTIVITY\n

    \n
  • \n
  • \n

    \n FILE_ACTIVITY\n

    \n
  • \n
  • \n

    \n KERNEL_ACTIVITY\n

    \n
  • \n
  • \n

    \n KERNEL_EXTENSION\n

    \n
  • \n
  • \n

    \n MEMORY_ACTIVITY\n

    \n
  • \n
  • \n

    \n MODULE_ACTIVITY\n

    \n
  • \n
  • \n

    \n PROCESS_ACTIVITY\n

    \n
  • \n
  • \n

    \n REGISTRY_KEY_ACTIVITY\n

    \n
  • \n
  • \n

    \n REGISTRY_VALUE_ACTIVITY\n

    \n
  • \n
  • \n

    \n RESOURCE_ACTIVITY\n

    \n
  • \n
  • \n

    \n SCHEDULED_JOB_ACTIVITY\n

    \n
  • \n
  • \n

    \n SECURITY_FINDING\n

    \n
  • \n
  • \n

    \n ACCOUNT_CHANGE\n

    \n
  • \n
  • \n

    \n AUTHENTICATION\n

    \n
  • \n
  • \n

    \n AUTHORIZATION\n

    \n
  • \n
  • \n

    \n ENTITY_MANAGEMENT_AUDIT\n

    \n
  • \n
  • \n

    \n DHCP_ACTIVITY\n

    \n
  • \n
  • \n

    \n NETWORK_ACTIVITY\n

    \n
  • \n
  • \n

    \n DNS_ACTIVITY\n

    \n
  • \n
  • \n

    \n FTP_ACTIVITY\n

    \n
  • \n
  • \n

    \n HTTP_ACTIVITY\n

    \n
  • \n
  • \n

    \n RDP_ACTIVITY\n

    \n
  • \n
  • \n

    \n SMB_ACTIVITY\n

    \n
  • \n
  • \n

    \n SSH_ACTIVITY\n

    \n
  • \n
  • \n

    \n CONFIG_STATE\n

    \n
  • \n
  • \n

    \n INVENTORY_INFO\n

    \n
  • \n
  • \n

    \n EMAIL_ACTIVITY\n

    \n
  • \n
  • \n

    \n API_ACTIVITY\n

    \n
  • \n
  • \n

    \n CLOUD_API\n

    \n
  • \n
" } }, - "logProviderAccountId": { - "target": "com.amazonaws.securitylake#AwsAccountId", + "configuration": { + "target": "com.amazonaws.securitylake#CustomLogSourceConfiguration", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account ID of the custom source that will write logs and events\n into the Amazon S3 Data Lake.

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

The configuration for the third-party custom source.

" } } }, @@ -447,39 +427,10 @@ "com.amazonaws.securitylake#CreateCustomLogSourceResponse": { "type": "structure", "members": { - "customDataLocation": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The location of the partition in the Amazon S3 bucket for Security Lake.

", - "smithy.api#required": {} - } - }, - "glueCrawlerName": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The name of the Glue crawler.

", - "smithy.api#required": {} - } - }, - "glueTableName": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The table name of the Glue crawler.

", - "smithy.api#required": {} - } - }, - "glueDatabaseName": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The Glue database where results are written, such as:\n arn:aws:daylight:us-east-1::database/sometable/*.

", - "smithy.api#required": {} - } - }, - "logProviderAccessRoleArn": { - "target": "smithy.api#String", + "source": { + "target": "com.amazonaws.securitylake#CustomLogSourceResource", "traits": { - "smithy.api#documentation": "

The ARN of the IAM role to be used by the entity putting logs into your\n custom source partition. Security Lake will apply the correct access policies to this role, but\n you must first manually create the trust policy for this role. The IAM role\n name must start with the text 'Security Lake'. The IAM role must trust the\n logProviderAccountId to assume the role.

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

The created third-party custom source.

" } } }, @@ -487,18 +438,21 @@ "smithy.api#output": {} } }, - "com.amazonaws.securitylake#CreateDatalake": { + "com.amazonaws.securitylake#CreateDataLake": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#CreateDatalakeRequest" + "target": "com.amazonaws.securitylake#CreateDataLakeRequest" }, "output": { - "target": "com.amazonaws.securitylake#CreateDatalakeResponse" + "target": "com.amazonaws.securitylake#CreateDataLakeResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, + { + "target": "com.amazonaws.securitylake#BadRequestException" + }, { "target": "com.amazonaws.securitylake#ConflictException" }, @@ -508,18 +462,39 @@ { "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, - { - "target": "com.amazonaws.securitylake#ServiceQuotaExceededException" - }, { "target": "com.amazonaws.securitylake#ThrottlingException" - }, - { - "target": "com.amazonaws.securitylake#ValidationException" } ], "traits": { - "smithy.api#documentation": "

Initializes an Amazon Security Lake instance with the provided (or default) configuration. You\n can enable Security Lake in Amazon Web Services Regions with customized settings before enabling\n log collection in Regions. You can either use the enableAll parameter to\n specify all Regions or specify the Regions where you want to enable Security Lake. To specify\n particular Regions, use the Regions parameter and then configure these Regions\n using the configurations parameter. If you have already enabled Security Lake in a\n Region when you call this command, the command will update the Region if you provide new\n configuration parameters. If you have not already enabled Security Lake in the Region when you\n call this API, it will set up the data lake in the Region with the specified\n configurations.

\n

When you enable Security Lake, it starts ingesting security data after the\n CreateAwsLogSource call. This includes ingesting security data from\n sources, storing data, and making data accessible to subscribers. Security Lake also enables\n all the existing settings and resources that it stores or maintains for your Amazon Web Services account in the current Region, including security log and event data. For\n more information, see the Amazon Security Lake User\n Guide.

", + "aws.iam#actionPermissionDescription": "Grants permission to create a new security data lake", + "aws.iam#requiredActions": [ + "iam:CreateServiceLinkedRole", + "iam:GetRole", + "iam:PutRolePolicy", + "iam:DeleteRolePolicy", + "iam:PassRole", + "s3:PutBucketPolicy", + "s3:PutBucketPublicAccessBlock", + "s3:CreateBucket", + "s3:ListBucket", + "s3:PutBucketVersioning", + "s3:PutBucketVersioning", + "organizations:DescribeOrganization", + "organizations:ListDelegatedServicesForAccount", + "lakeformation:GetDataLakeSettings", + "lakeformation:PutDataLakeSettings", + "kms:DescribeKey", + "kms:CreateGrant", + "events:PutRule", + "events:PutTargets", + "sqs:CreateQueue", + "sqs:GetQueueAttributes", + "sqs:SetQueueAttributes", + "lambda:CreateFunction", + "lambda:CreateEventSourceMapping" + ], + "smithy.api#documentation": "

Initializes an Amazon Security Lake instance with the provided (or default) configuration. You\n can enable Security Lake in Amazon Web Services Regions with customized settings before enabling\n log collection in Regions. By default, the CreateDataLake Security Lake in all\n Regions. To specify particular Regions, configure these Regions using the\n configurations parameter. If you have already enabled Security Lake in a Region\n when you call this command, the command will update the Region if you provide new\n configuration parameters. If you have not already enabled Security Lake in the Region when you\n call this API, it will set up the data lake in the Region with the specified\n configurations.

\n

When you enable Security Lake, it starts ingesting security data after the\n CreateAwsLogSource call. This includes ingesting security data from\n sources, storing data, and making data accessible to subscribers. Security Lake also enables\n all the existing settings and resources that it stores or maintains for your Amazon Web Services account in the current Region, including security log and event data. For\n more information, see the Amazon Security Lake User\n Guide.

", "smithy.api#http": { "method": "POST", "uri": "/v1/datalake", @@ -527,97 +502,127 @@ } } }, - "com.amazonaws.securitylake#CreateDatalakeAutoEnable": { + "com.amazonaws.securitylake#CreateDataLakeExceptionSubscription": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#CreateDatalakeAutoEnableRequest" + "target": "com.amazonaws.securitylake#CreateDataLakeExceptionSubscriptionRequest" }, "output": { - "target": "com.amazonaws.securitylake#CreateDatalakeAutoEnableResponse" + "target": "com.amazonaws.securitylake#CreateDataLakeExceptionSubscriptionResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Automatically enables Amazon Security Lake for new member accounts in your organization.\n Security Lake is not automatically enabled for any existing member accounts in your\n organization.

", + "aws.iam#actionPermissionDescription": "Grants permission to get instant notifications about exceptions. Subscribes to the SNS topics for exception notifications", + "smithy.api#documentation": "

Creates the specified notification subscription in Amazon Security Lake for the organization\n you specify.

", "smithy.api#http": { "method": "POST", - "uri": "/v1/datalake/autoenable", + "uri": "/v1/datalake/exceptions/subscription", "code": 200 } } }, - "com.amazonaws.securitylake#CreateDatalakeAutoEnableRequest": { + "com.amazonaws.securitylake#CreateDataLakeExceptionSubscriptionRequest": { "type": "structure", "members": { - "configurationForNewAccounts": { - "target": "com.amazonaws.securitylake#AutoEnableNewRegionConfigurationList", + "subscriptionProtocol": { + "target": "com.amazonaws.securitylake#SubscriptionProtocol", + "traits": { + "smithy.api#documentation": "

The subscription protocol to which exception notifications are posted.

", + "smithy.api#required": {} + } + }, + "notificationEndpoint": { + "target": "com.amazonaws.securitylake#SafeString", "traits": { - "smithy.api#documentation": "

Enable Security Lake with the specified configuration settings to begin collecting security\n data for new accounts in your organization.

", + "smithy.api#documentation": "

The Amazon Web Services account where you want to receive exception notifications.

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

The expiration period and time-to-live (TTL).

", + "smithy.api#range": { + "min": 1 + } + } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.securitylake#CreateDatalakeAutoEnableResponse": { + "com.amazonaws.securitylake#CreateDataLakeExceptionSubscriptionResponse": { "type": "structure", "members": {}, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.securitylake#CreateDatalakeDelegatedAdmin": { + "com.amazonaws.securitylake#CreateDataLakeOrganizationConfiguration": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#CreateDatalakeDelegatedAdminRequest" + "target": "com.amazonaws.securitylake#CreateDataLakeOrganizationConfigurationRequest" }, "output": { - "target": "com.amazonaws.securitylake#CreateDatalakeDelegatedAdminResponse" + "target": "com.amazonaws.securitylake#CreateDataLakeOrganizationConfigurationResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, + { + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" + }, { "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#ThrottlingException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Designates the Amazon Security Lake delegated administrator account for the organization. This\n API can only be called by the organization management account. The organization management\n account cannot be the delegated administrator account.

", + "aws.iam#actionPermissionDescription": "Grants permission to automatically enable Amazon Security Lake for new member accounts in your organization. or Grants permission to automatically enable Amazon Security Lake for new organization accounts", + "smithy.api#documentation": "

Automatically enables Amazon Security Lake for new member accounts in your organization.\n Security Lake is not automatically enabled for any existing member accounts in your\n organization.

", "smithy.api#http": { "method": "POST", - "uri": "/v1/datalake/delegate", + "uri": "/v1/datalake/organization/configuration", "code": 200 } } }, - "com.amazonaws.securitylake#CreateDatalakeDelegatedAdminRequest": { + "com.amazonaws.securitylake#CreateDataLakeOrganizationConfigurationRequest": { "type": "structure", "members": { - "account": { - "target": "com.amazonaws.securitylake#SafeString", + "autoEnableNewAccount": { + "target": "com.amazonaws.securitylake#DataLakeAutoEnableNewAccountConfigurationList", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account ID of the Security Lake delegated administrator.

", + "smithy.api#documentation": "

Enable Security Lake with the specified configuration settings, to begin collecting security\n data for new accounts in your organization.

", "smithy.api#required": {} } } @@ -626,58 +631,173 @@ "smithy.api#input": {} } }, - "com.amazonaws.securitylake#CreateDatalakeDelegatedAdminResponse": { + "com.amazonaws.securitylake#CreateDataLakeOrganizationConfigurationResponse": { "type": "structure", "members": {}, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.securitylake#CreateDatalakeExceptionsSubscription": { + "com.amazonaws.securitylake#CreateDataLakeRequest": { + "type": "structure", + "members": { + "configurations": { + "target": "com.amazonaws.securitylake#DataLakeConfigurationList", + "traits": { + "smithy.api#documentation": "

Specify the Region or Regions that will contribute data to the rollup region.

", + "smithy.api#required": {} + } + }, + "metaStoreManagerRoleArn": { + "target": "com.amazonaws.securitylake#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) used to create and update the Glue table.\n This table contains partitions generated by the ingestion and normalization of\n Amazon Web Services log sources and custom sources.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.securitylake#CreateDataLakeResponse": { + "type": "structure", + "members": { + "dataLakes": { + "target": "com.amazonaws.securitylake#DataLakeResourceList", + "traits": { + "smithy.api#documentation": "

The created Security Lake configuration object.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.securitylake#CreateSubscriber": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#CreateDatalakeExceptionsSubscriptionRequest" + "target": "com.amazonaws.securitylake#CreateSubscriberRequest" }, "output": { - "target": "com.amazonaws.securitylake#CreateDatalakeExceptionsSubscriptionResponse" + "target": "com.amazonaws.securitylake#CreateSubscriberResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Creates the specified notification subscription in Amazon Security Lake for the organization\n you specify.

", + "aws.iam#actionPermissionDescription": "Grants permission to create a subscriber", + "aws.iam#requiredActions": [ + "iam:GetRole", + "iam:PutRolePolicy", + "iam:DeleteRolePolicy", + "iam:CreateRole", + "s3:PutObject", + "lakeformation:RegisterResource", + "lakeformation:GrantPermissions", + "lakeformation:RevokePermissions", + "lakeformation:ListPermissions", + "ram:GetResourceShareAssociations", + "ram:UpdateResourceShare", + "ram:GetResourceShares" + ], + "smithy.api#documentation": "

Creates a subscription permission for accounts that are already enabled in\n Amazon Security Lake. You can create a subscriber with access to data in the current Amazon Web Services Region.

", "smithy.api#http": { "method": "POST", - "uri": "/v1/datalake/exceptions/subscription", + "uri": "/v1/subscribers", "code": 200 } } }, - "com.amazonaws.securitylake#CreateDatalakeExceptionsSubscriptionRequest": { + "com.amazonaws.securitylake#CreateSubscriberNotification": { + "type": "operation", + "input": { + "target": "com.amazonaws.securitylake#CreateSubscriberNotificationRequest" + }, + "output": { + "target": "com.amazonaws.securitylake#CreateSubscriberNotificationResponse" + }, + "errors": [ + { + "target": "com.amazonaws.securitylake#AccessDeniedException" + }, + { + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" + }, + { + "target": "com.amazonaws.securitylake#InternalServerException" + }, + { + "target": "com.amazonaws.securitylake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.securitylake#ThrottlingException" + } + ], + "traits": { + "aws.iam#actionPermissionDescription": "Grants permission to create a webhook invocation to notify a client when there is new data in the data lake", + "aws.iam#requiredActions": [ + "iam:GetRole", + "iam:PassRole", + "iam:DeleteRolePolicy", + "s3:PutBucketNotification", + "s3:GetBucketNotification", + "events:CreateApiDestination", + "events:CreateConnection", + "events:ListApiDestinations", + "events:ListConnections", + "events:PutRule", + "events:DescribeRule", + "events:PutTargets", + "sqs:CreateQueue", + "sqs:DeleteQueue", + "sqs:GetQueueAttributes", + "sqs:GetQueueUrl", + "sqs:SetQueueAttributes" + ], + "smithy.api#documentation": "

Notifies the subscriber when new data is written to the data lake for the sources that\n the subscriber consumes in Security Lake. You can create only one subscriber notification per\n subscriber.

", + "smithy.api#http": { + "method": "POST", + "uri": "/v1/subscribers/{subscriberId}/notification", + "code": 200 + } + } + }, + "com.amazonaws.securitylake#CreateSubscriberNotificationRequest": { "type": "structure", "members": { - "subscriptionProtocol": { - "target": "com.amazonaws.securitylake#SubscriptionProtocolType", + "subscriberId": { + "target": "com.amazonaws.securitylake#UUID", "traits": { - "smithy.api#documentation": "

The subscription protocol to which exception notifications are posted.

", + "smithy.api#documentation": "

The subscriber ID for the notification subscription.

", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "notificationEndpoint": { - "target": "com.amazonaws.securitylake#SafeString", + "configuration": { + "target": "com.amazonaws.securitylake#NotificationConfiguration", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account where you want to receive exception notifications.

", + "smithy.api#documentation": "

Specify the configuration using which you want to create the subscriber\n notification.

", "smithy.api#required": {} } } @@ -686,38 +806,57 @@ "smithy.api#input": {} } }, - "com.amazonaws.securitylake#CreateDatalakeExceptionsSubscriptionResponse": { + "com.amazonaws.securitylake#CreateSubscriberNotificationResponse": { "type": "structure", - "members": {}, + "members": { + "subscriberEndpoint": { + "target": "com.amazonaws.securitylake#SafeString", + "traits": { + "smithy.api#documentation": "

The subscriber endpoint to which exception messages are posted.

" + } + } + }, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.securitylake#CreateDatalakeRequest": { + "com.amazonaws.securitylake#CreateSubscriberRequest": { "type": "structure", "members": { - "regions": { - "target": "com.amazonaws.securitylake#RegionSet", + "subscriberIdentity": { + "target": "com.amazonaws.securitylake#AwsIdentity", "traits": { - "smithy.api#documentation": "

Enable Security Lake in the specified Regions. To enable Security Lake in specific Amazon Web Services Regions, such as us-east-1 or ap-northeast-3, provide the Region codes. For a\n list of Region codes, see Amazon Security Lake endpoints in the\n Amazon Web Services General Reference.

" + "smithy.api#documentation": "

The AWS identity used to access your data.

", + "smithy.api#required": {} } }, - "configurations": { - "target": "com.amazonaws.securitylake#LakeConfigurationRequestMap", + "subscriberName": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Specify the Region or Regions that will contribute data to the rollup region.

" + "smithy.api#documentation": "

The name of your Security Lake subscriber account.

", + "smithy.api#length": { + "max": 64 + }, + "smithy.api#required": {} } }, - "enableAll": { - "target": "smithy.api#Boolean", + "subscriberDescription": { + "target": "com.amazonaws.securitylake#DescriptionString", "traits": { - "smithy.api#documentation": "

Enable Security Lake in all Regions.

" + "smithy.api#documentation": "

The description for your subscriber account in Security Lake.

" } }, - "metaStoreManagerRoleArn": { - "target": "com.amazonaws.securitylake#RoleArn", + "sources": { + "target": "com.amazonaws.securitylake#LogSourceResourceList", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) used to create and update the Glue table.\n This table contains partitions generated by the ingestion and normalization of Amazon Web Services log sources and custom sources.

" + "smithy.api#documentation": "

The supported Amazon Web Services from which logs and events are collected.\n Security Lake supports log and event collection for natively supported Amazon Web Services.

", + "smithy.api#required": {} + } + }, + "accessTypes": { + "target": "com.amazonaws.securitylake#AccessTypeList", + "traits": { + "smithy.api#documentation": "

The Amazon S3 or Lake Formation access type.

" } } }, @@ -725,251 +864,619 @@ "smithy.api#input": {} } }, - "com.amazonaws.securitylake#CreateDatalakeResponse": { + "com.amazonaws.securitylake#CreateSubscriberResponse": { "type": "structure", - "members": {}, + "members": { + "subscriber": { + "target": "com.amazonaws.securitylake#SubscriberResource", + "traits": { + "smithy.api#documentation": "

Retrieve information about the subscriber created using the\n CreateSubscriber API.

" + } + } + }, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.securitylake#CreateSubscriber": { - "type": "operation", - "input": { - "target": "com.amazonaws.securitylake#CreateSubscriberRequest" + "com.amazonaws.securitylake#CustomLogSourceAttributes": { + "type": "structure", + "members": { + "crawlerArn": { + "target": "com.amazonaws.securitylake#AmazonResourceName", + "traits": { + "smithy.api#documentation": "

The ARN of the Glue crawler.

" + } + }, + "databaseArn": { + "target": "com.amazonaws.securitylake#AmazonResourceName", + "traits": { + "smithy.api#documentation": "

The ARN of the Glue database where results are written, such as:\n arn:aws:daylight:us-east-1::database/sometable/*.

" + } + }, + "tableArn": { + "target": "com.amazonaws.securitylake#AmazonResourceName", + "traits": { + "smithy.api#documentation": "

The ARN of the Glue table.

" + } + } }, - "output": { - "target": "com.amazonaws.securitylake#CreateSubscriberResponse" + "traits": { + "smithy.api#documentation": "

The attributes of a third-party custom source.

" + } + }, + "com.amazonaws.securitylake#CustomLogSourceConfiguration": { + "type": "structure", + "members": { + "crawlerConfiguration": { + "target": "com.amazonaws.securitylake#CustomLogSourceCrawlerConfiguration", + "traits": { + "smithy.api#documentation": "

The configuration for the Glue Crawler for the third-party custom source.

", + "smithy.api#required": {} + } + }, + "providerIdentity": { + "target": "com.amazonaws.securitylake#AwsIdentity", + "traits": { + "smithy.api#documentation": "

The identity of the log provider for the third-party custom source.

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

The configuration for the third-party custom source.

" + } + }, + "com.amazonaws.securitylake#CustomLogSourceCrawlerConfiguration": { + "type": "structure", + "members": { + "roleArn": { + "target": "com.amazonaws.securitylake#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role\n to be used by the Glue crawler. The recommended IAM policies\n are:

\n
    \n
  • \n

    The managed policy AWSGlueServiceRole\n

    \n
  • \n
  • \n

    A custom policy granting access to your Amazon S3 Data Lake

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

The configuration for the Glue Crawler for the third-party custom source.

" + } + }, + "com.amazonaws.securitylake#CustomLogSourceName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 64 + }, + "smithy.api#pattern": "^[\\\\\\w\\-_:/.]*$" + } + }, + "com.amazonaws.securitylake#CustomLogSourceProvider": { + "type": "structure", + "members": { + "roleArn": { + "target": "com.amazonaws.securitylake#RoleArn", + "traits": { + "smithy.api#documentation": "

The ARN of the IAM role to be used by the entity putting logs into your\n custom source partition. Security Lake will apply the correct access policies to this role, but\n you must first manually create the trust policy for this role. The IAM role\n name must start with the text 'Security Lake'. The IAM role must trust the\n logProviderAccountId to assume the role.

" + } + }, + "location": { + "target": "com.amazonaws.securitylake#S3URI", + "traits": { + "smithy.api#documentation": "

The location of the partition in the Amazon S3 bucket for Security Lake.

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

The details of the log provider for a third-party custom source.

" + } + }, + "com.amazonaws.securitylake#CustomLogSourceResource": { + "type": "structure", + "members": { + "sourceName": { + "target": "com.amazonaws.securitylake#CustomLogSourceName", + "traits": { + "smithy.api#documentation": "

The name for a third-party custom source. This must be a Regionally unique value.

" + } + }, + "sourceVersion": { + "target": "com.amazonaws.securitylake#CustomLogSourceVersion", + "traits": { + "smithy.api#documentation": "

The version for a third-party custom source. This must be a Regionally unique value.

" + } + }, + "provider": { + "target": "com.amazonaws.securitylake#CustomLogSourceProvider", + "traits": { + "smithy.api#documentation": "

The details of the log provider for a third-party custom source.

" + } + }, + "attributes": { + "target": "com.amazonaws.securitylake#CustomLogSourceAttributes", + "traits": { + "smithy.api#documentation": "

The attributes of a third-party custom source.

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

Amazon Security Lake can collect logs and events from third-party custom sources.

" + } + }, + "com.amazonaws.securitylake#CustomLogSourceVersion": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 32 + }, + "smithy.api#pattern": "^[A-Za-z0-9\\-\\.\\_]*$" + } + }, + "com.amazonaws.securitylake#DataLake": { + "type": "resource", + "operations": [ { - "target": "com.amazonaws.securitylake#AccessDeniedException" + "target": "com.amazonaws.securitylake#CreateAwsLogSource" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#CreateCustomLogSource" }, { - "target": "com.amazonaws.securitylake#BucketNotFoundException" + "target": "com.amazonaws.securitylake#CreateDataLake" }, { - "target": "com.amazonaws.securitylake#ConflictSubscriptionException" + "target": "com.amazonaws.securitylake#CreateDataLakeOrganizationConfiguration" }, { - "target": "com.amazonaws.securitylake#InternalServerException" + "target": "com.amazonaws.securitylake#DeleteAwsLogSource" }, { - "target": "com.amazonaws.securitylake#InvalidInputException" + "target": "com.amazonaws.securitylake#DeleteCustomLogSource" }, { - "target": "com.amazonaws.securitylake#ResourceNotFoundException" + "target": "com.amazonaws.securitylake#DeleteDataLake" + }, + { + "target": "com.amazonaws.securitylake#DeleteDataLakeOrganizationConfiguration" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#GetDataLakeOrganizationConfiguration" + }, + { + "target": "com.amazonaws.securitylake#GetDataLakeSources" + }, + { + "target": "com.amazonaws.securitylake#ListDataLakes" + }, + { + "target": "com.amazonaws.securitylake#ListLogSources" + }, + { + "target": "com.amazonaws.securitylake#UpdateDataLake" } ], "traits": { - "smithy.api#documentation": "

Creates a subscription permission for accounts that are already enabled in\n Amazon Security Lake. You can create a subscriber with access to data in the current Amazon Web Services Region.

", - "smithy.api#http": { - "method": "POST", - "uri": "/v1/subscribers", - "code": 200 - } + "aws.api#arn": { + "template": "data-lake/default" + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "name": "data-lake" + }, + "smithy.api#documentation": "Represents a data lake resource that can collect logs from multiple aws or custom sources" } }, - "com.amazonaws.securitylake#CreateSubscriberRequest": { + "com.amazonaws.securitylake#DataLakeAutoEnableNewAccountConfiguration": { "type": "structure", "members": { - "sourceTypes": { - "target": "com.amazonaws.securitylake#SourceTypeList", + "region": { + "target": "com.amazonaws.securitylake#Region", "traits": { - "smithy.api#documentation": "

The supported Amazon Web Services from which logs and events are collected.\n Security Lake supports log and event collection for natively supported Amazon Web Services.

", + "smithy.api#documentation": "

The Amazon Web Services Regions where Security Lake is automatically enabled.

", "smithy.api#required": {} } }, - "accountId": { - "target": "com.amazonaws.securitylake#AwsAccountId", + "sources": { + "target": "com.amazonaws.securitylake#AwsLogSourceResourceList", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account ID used to access your data.

", + "smithy.api#documentation": "

The Amazon Web Services sources that are automatically enabled in Security Lake.

", "smithy.api#required": {} } - }, - "externalId": { - "target": "com.amazonaws.securitylake#SafeString", + } + }, + "traits": { + "smithy.api#documentation": "

Automatically enable new organization accounts as member accounts from an Amazon Security Lake\n administrator account.

" + } + }, + "com.amazonaws.securitylake#DataLakeAutoEnableNewAccountConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.securitylake#DataLakeAutoEnableNewAccountConfiguration" + } + }, + "com.amazonaws.securitylake#DataLakeConfiguration": { + "type": "structure", + "members": { + "region": { + "target": "com.amazonaws.securitylake#Region", "traits": { - "smithy.api#documentation": "

The external ID of the subscriber. This lets the user that is assuming the role assert\n the circumstances in which they are operating. It also provides a way for the account owner\n to permit the role to be assumed only under specific circumstances.

", + "smithy.api#documentation": "

The Amazon Web Services Regions where Security Lake is automatically enabled.

", "smithy.api#required": {} } }, - "accessTypes": { - "target": "com.amazonaws.securitylake#AccessTypeList", + "encryptionConfiguration": { + "target": "com.amazonaws.securitylake#DataLakeEncryptionConfiguration", "traits": { - "smithy.api#documentation": "

The Amazon S3 or Lake Formation access type.

" + "smithy.api#documentation": "

Provides encryption details of Amazon Security Lake object.

" } }, - "subscriberName": { - "target": "smithy.api#String", + "lifecycleConfiguration": { + "target": "com.amazonaws.securitylake#DataLakeLifecycleConfiguration", "traits": { - "smithy.api#documentation": "

The name of your Security Lake subscriber account.

", - "smithy.api#length": { - "max": 64 - }, - "smithy.api#required": {} + "smithy.api#documentation": "

Provides lifecycle details of Amazon Security Lake object.

" } }, - "subscriberDescription": { - "target": "com.amazonaws.securitylake#DescriptionString", + "replicationConfiguration": { + "target": "com.amazonaws.securitylake#DataLakeReplicationConfiguration", "traits": { - "smithy.api#documentation": "

The description for your subscriber account in Security Lake.

" + "smithy.api#documentation": "

Provides replication details of Amazon Security Lake object.

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

Provides details of Amazon Security Lake object.

" } }, - "com.amazonaws.securitylake#CreateSubscriberResponse": { + "com.amazonaws.securitylake#DataLakeConfigurationList": { + "type": "list", + "member": { + "target": "com.amazonaws.securitylake#DataLakeConfiguration" + } + }, + "com.amazonaws.securitylake#DataLakeEncryptionConfiguration": { "type": "structure", "members": { - "subscriptionId": { - "target": "com.amazonaws.securitylake#UUID", + "kmsKeyId": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The subscriptionId created by the CreateSubscriber API\n call.

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

The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake\n object.

" } - }, - "roleArn": { - "target": "com.amazonaws.securitylake#RoleArn", + } + }, + "traits": { + "smithy.api#documentation": "

Provides encryption details of Amazon Security Lake object.

" + } + }, + "com.amazonaws.securitylake#DataLakeException": { + "type": "structure", + "members": { + "region": { + "target": "com.amazonaws.securitylake#Region", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more\n information about ARNs and how to use them in policies, see Amazon Security Lake User\n Guide.

" + "smithy.api#documentation": "

The Amazon Web Services Regions where the exception occurred.

" } }, - "snsArn": { - "target": "com.amazonaws.securitylake#SnsTopicArn", + "exception": { + "target": "com.amazonaws.securitylake#SafeString", "traits": { - "smithy.api#documentation": "

The ARN for the Amazon Simple Notification Service.

" + "smithy.api#documentation": "

The underlying exception of a Security Lake exception.

" } }, - "s3BucketArn": { - "target": "com.amazonaws.securitylake#S3BucketArn", + "remediation": { + "target": "com.amazonaws.securitylake#SafeString", "traits": { - "smithy.api#documentation": "

The ARN for the Amazon S3 bucket.

" + "smithy.api#documentation": "

List of all remediation steps for a Security Lake exception.

" } }, - "resourceShareArn": { - "target": "com.amazonaws.securitylake#ResourceShareArn", + "timestamp": { + "target": "smithy.api#Timestamp", + "traits": { + "smithy.api#documentation": "

This error can occur if you configure the wrong timestamp format, or if the subset of entries used for validation had errors or missing values.

", + "smithy.api#timestampFormat": "date-time" + } + } + }, + "traits": { + "smithy.api#documentation": "

The details for a Security Lake exception

" + } + }, + "com.amazonaws.securitylake#DataLakeExceptionList": { + "type": "list", + "member": { + "target": "com.amazonaws.securitylake#DataLakeException" + } + }, + "com.amazonaws.securitylake#DataLakeLifecycleConfiguration": { + "type": "structure", + "members": { + "expiration": { + "target": "com.amazonaws.securitylake#DataLakeLifecycleExpiration", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before accepting the RAM resource share invitation, you can view details related to the RAM resource share.

" + "smithy.api#documentation": "

Provides data expiration details of Amazon Security Lake object.

" } }, - "resourceShareName": { - "target": "com.amazonaws.securitylake#ResourceShareName", + "transitions": { + "target": "com.amazonaws.securitylake#DataLakeLifecycleTransitionList", "traits": { - "smithy.api#documentation": "

The name of the resource share.

" + "smithy.api#documentation": "

Provides data storage transition details of Amazon Security Lake object.

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

Provides lifecycle details of Amazon Security Lake object.

" } }, - "com.amazonaws.securitylake#CreateSubscriptionNotificationConfiguration": { - "type": "operation", - "input": { - "target": "com.amazonaws.securitylake#CreateSubscriptionNotificationConfigurationRequest" + "com.amazonaws.securitylake#DataLakeLifecycleExpiration": { + "type": "structure", + "members": { + "days": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "

Number of days before data expires in the Amazon Security Lake object.

", + "smithy.api#range": { + "min": 1 + } + } + } }, - "output": { - "target": "com.amazonaws.securitylake#CreateSubscriptionNotificationConfigurationResponse" + "traits": { + "smithy.api#documentation": "

Provide expiration lifecycle details of Amazon Security Lake object.

" + } + }, + "com.amazonaws.securitylake#DataLakeLifecycleTransition": { + "type": "structure", + "members": { + "storageClass": { + "target": "com.amazonaws.securitylake#DataLakeStorageClass", + "traits": { + "smithy.api#documentation": "

The range of storage classes that you can choose from based on the data access,\n resiliency, and cost requirements of your workloads.

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

Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object.

", + "smithy.api#range": { + "min": 1 + } + } + } }, - "errors": [ - { - "target": "com.amazonaws.securitylake#AccessDeniedException" + "traits": { + "smithy.api#documentation": "

Provide transition lifecycle details of Amazon Security Lake object.

" + } + }, + "com.amazonaws.securitylake#DataLakeLifecycleTransitionList": { + "type": "list", + "member": { + "target": "com.amazonaws.securitylake#DataLakeLifecycleTransition" + } + }, + "com.amazonaws.securitylake#DataLakeReplicationConfiguration": { + "type": "structure", + "members": { + "regions": { + "target": "com.amazonaws.securitylake#RegionList", + "traits": { + "smithy.api#documentation": "

Replication enables automatic, asynchronous copying of objects across Amazon S3\n buckets. Amazon S3 buckets that are configured for object replication can be owned\n by the same Amazon Web Services account or by different accounts. You can replicate objects\n to a single destination bucket or to multiple destination buckets. The destination buckets\n can be in different Amazon Web Services Regions or within the same Region as the source\n bucket.

\n

Set up one or more rollup Regions by providing the Region or Regions that should\n contribute to the central rollup Region.

" + } }, - { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "roleArn": { + "target": "com.amazonaws.securitylake#RoleArn", + "traits": { + "smithy.api#documentation": "

Replication settings for the Amazon S3 buckets. This parameter uses the Identity and Access Management (IAM) role you created that is managed by Security Lake, to\n ensure the replication setting is correct.

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

Provides replication details of Amazon Security Lake object.

" + } + }, + "com.amazonaws.securitylake#DataLakeResource": { + "type": "structure", + "members": { + "dataLakeArn": { + "target": "com.amazonaws.securitylake#AmazonResourceName", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about ARNs and how to use them in policies, see the Amazon Security Lake User Guide.

", + "smithy.api#required": {} + } }, - { - "target": "com.amazonaws.securitylake#ConcurrentModificationException" + "region": { + "target": "com.amazonaws.securitylake#Region", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Regions where Security Lake is enabled.

", + "smithy.api#required": {} + } }, - { - "target": "com.amazonaws.securitylake#InternalServerException" + "s3BucketArn": { + "target": "com.amazonaws.securitylake#S3BucketArn", + "traits": { + "smithy.api#documentation": "

The ARN for the Amazon Security Lake Amazon S3 bucket.

" + } }, - { - "target": "com.amazonaws.securitylake#InvalidInputException" + "encryptionConfiguration": { + "target": "com.amazonaws.securitylake#DataLakeEncryptionConfiguration", + "traits": { + "smithy.api#documentation": "

Provides encryption details of Amazon Security Lake object.

" + } }, - { - "target": "com.amazonaws.securitylake#ResourceNotFoundException" + "lifecycleConfiguration": { + "target": "com.amazonaws.securitylake#DataLakeLifecycleConfiguration", + "traits": { + "smithy.api#documentation": "

Provides lifecycle details of Amazon Security Lake object.

" + } }, - { - "target": "com.amazonaws.securitylake#ValidationException" + "replicationConfiguration": { + "target": "com.amazonaws.securitylake#DataLakeReplicationConfiguration", + "traits": { + "smithy.api#documentation": "

Provides replication details of Amazon Security Lake object.

" + } + }, + "createStatus": { + "target": "com.amazonaws.securitylake#DataLakeStatus", + "traits": { + "smithy.api#documentation": "

Retrieves the status of the configuration operation for an account in Amazon Security Lake.

" + } + }, + "updateStatus": { + "target": "com.amazonaws.securitylake#DataLakeUpdateStatus", + "traits": { + "smithy.api#documentation": "

The status of the last UpdateDataLake or DeleteDataLake API\n request.

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

Notifies the subscriber when new data is written to the data lake for the sources that\n the subscriber consumes in Security Lake. You can create only one subscriber notification per\n subscriber.

", - "smithy.api#http": { - "method": "POST", - "uri": "/subscription-notifications/{subscriptionId}", - "code": 200 - } + "smithy.api#documentation": "

Provides details of Amazon Security Lake object.

" } }, - "com.amazonaws.securitylake#CreateSubscriptionNotificationConfigurationRequest": { + "com.amazonaws.securitylake#DataLakeResourceList": { + "type": "list", + "member": { + "target": "com.amazonaws.securitylake#DataLakeResource" + } + }, + "com.amazonaws.securitylake#DataLakeSource": { "type": "structure", "members": { - "subscriptionId": { - "target": "com.amazonaws.securitylake#UUID", + "account": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The subscription ID for the notification subscription.

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

The ID of the Security Lake account for which logs are collected.

" } }, - "subscriptionEndpoint": { + "sourceName": { "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The subscription endpoint in Security Lake. If you prefer notification with an HTTPs\n endpoint, populate this field.

", - "smithy.api#pattern": "^(arn:aws:.+$|https?://.+$)" + "smithy.api#documentation": "

The supported Amazon Web Services from which logs and events are collected.\n Amazon Security Lake supports log and event collection for natively supported Amazon Web Services.

" + } + }, + "eventClasses": { + "target": "com.amazonaws.securitylake#OcsfEventClassList", + "traits": { + "smithy.api#documentation": "

The Open Cybersecurity Schema Framework (OCSF) event classes which describes the type of\n data that the custom source will send to Security Lake. The supported event classes are:

\n
    \n
  • \n

    \n ACCESS_ACTIVITY\n

    \n
  • \n
  • \n

    \n FILE_ACTIVITY\n

    \n
  • \n
  • \n

    \n KERNEL_ACTIVITY\n

    \n
  • \n
  • \n

    \n KERNEL_EXTENSION\n

    \n
  • \n
  • \n

    \n MEMORY_ACTIVITY\n

    \n
  • \n
  • \n

    \n MODULE_ACTIVITY\n

    \n
  • \n
  • \n

    \n PROCESS_ACTIVITY\n

    \n
  • \n
  • \n

    \n REGISTRY_KEY_ACTIVITY\n

    \n
  • \n
  • \n

    \n REGISTRY_VALUE_ACTIVITY\n

    \n
  • \n
  • \n

    \n RESOURCE_ACTIVITY\n

    \n
  • \n
  • \n

    \n SCHEDULED_JOB_ACTIVITY\n

    \n
  • \n
  • \n

    \n SECURITY_FINDING\n

    \n
  • \n
  • \n

    \n ACCOUNT_CHANGE\n

    \n
  • \n
  • \n

    \n AUTHENTICATION\n

    \n
  • \n
  • \n

    \n AUTHORIZATION\n

    \n
  • \n
  • \n

    \n ENTITY_MANAGEMENT_AUDIT\n

    \n
  • \n
  • \n

    \n DHCP_ACTIVITY\n

    \n
  • \n
  • \n

    \n NETWORK_ACTIVITY\n

    \n
  • \n
  • \n

    \n DNS_ACTIVITY\n

    \n
  • \n
  • \n

    \n FTP_ACTIVITY\n

    \n
  • \n
  • \n

    \n HTTP_ACTIVITY\n

    \n
  • \n
  • \n

    \n RDP_ACTIVITY\n

    \n
  • \n
  • \n

    \n SMB_ACTIVITY\n

    \n
  • \n
  • \n

    \n SSH_ACTIVITY\n

    \n
  • \n
  • \n

    \n CONFIG_STATE\n

    \n
  • \n
  • \n

    \n INVENTORY_INFO\n

    \n
  • \n
  • \n

    \n EMAIL_ACTIVITY\n

    \n
  • \n
  • \n

    \n API_ACTIVITY\n

    \n
  • \n
  • \n

    \n CLOUD_API\n

    \n
  • \n
" + } + }, + "sourceStatuses": { + "target": "com.amazonaws.securitylake#DataLakeSourceStatusList", + "traits": { + "smithy.api#documentation": "

The log status for the Security Lake account.

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

Amazon Security Lake collects logs and events from supported Amazon Web Services and\n custom sources. For the list of supported Amazon Web Services, see the Amazon Security Lake User Guide.

" + } + }, + "com.amazonaws.securitylake#DataLakeSourceList": { + "type": "list", + "member": { + "target": "com.amazonaws.securitylake#DataLakeSource" + } + }, + "com.amazonaws.securitylake#DataLakeSourceStatus": { + "type": "structure", + "members": { + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

Defines path the stored logs are available which has information on your systems,\n applications, and services.

" + } + }, + "status": { + "target": "com.amazonaws.securitylake#SourceCollectionStatus", + "traits": { + "smithy.api#documentation": "

The health status of services, including error codes and patterns.

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

Retrieves the Logs status for the Amazon Security Lake account.

" + } + }, + "com.amazonaws.securitylake#DataLakeSourceStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.securitylake#DataLakeSourceStatus" + } + }, + "com.amazonaws.securitylake#DataLakeStatus": { + "type": "enum", + "members": { + "INITIALIZED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INITIALIZED" } }, - "httpsApiKeyName": { - "target": "smithy.api#String", + "PENDING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The key name for the notification subscription.

" + "smithy.api#enumValue": "PENDING" } }, - "httpsApiKeyValue": { - "target": "smithy.api#String", + "COMPLETED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The key value for the notification subscription.

" + "smithy.api#enumValue": "COMPLETED" } }, - "httpsMethod": { - "target": "com.amazonaws.securitylake#HttpsMethod", + "FAILED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The HTTPS method used for the notification subscription.

" + "smithy.api#enumValue": "FAILED" } - }, - "createSqs": { - "target": "smithy.api#Boolean", + } + } + }, + "com.amazonaws.securitylake#DataLakeStorageClass": { + "type": "string" + }, + "com.amazonaws.securitylake#DataLakeUpdateException": { + "type": "structure", + "members": { + "reason": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Create an Amazon Simple Queue Service queue.

" + "smithy.api#documentation": "

The reason for the exception of the last UpdateDataLakeor\n DeleteDataLake API request.

" } }, - "roleArn": { - "target": "com.amazonaws.securitylake#RoleArn", + "code": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the EventBridge API destinations IAM role that you\n created. For more information about ARNs and how to use them in policies, see Managing data access and Amazon Web Services\n Managed Policies in the Amazon Security Lake User Guide.

" + "smithy.api#documentation": "

The reason code for the exception of the last UpdateDataLake or\n DeleteDataLake API request.

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

The details of the last UpdateDataLake or DeleteDataLake\n API request which failed.

" } }, - "com.amazonaws.securitylake#CreateSubscriptionNotificationConfigurationResponse": { + "com.amazonaws.securitylake#DataLakeUpdateStatus": { "type": "structure", "members": { - "queueArn": { - "target": "com.amazonaws.securitylake#SafeString", + "requestId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "

The unique ID for the last UpdateDataLake or DeleteDataLake API\n request.

" + } + }, + "status": { + "target": "com.amazonaws.securitylake#DataLakeStatus", + "traits": { + "smithy.api#documentation": "

The status of the last UpdateDataLake or DeleteDataLake API\n request that was requested.

" + } + }, + "exception": { + "target": "com.amazonaws.securitylake#DataLakeUpdateException", "traits": { - "smithy.api#documentation": "

Returns the Amazon Resource Name (ARN) of the queue.

" + "smithy.api#documentation": "

The details of the last UpdateDataLakeor DeleteDataLake API\n request which failed.

" } } - } - }, - "com.amazonaws.securitylake#CustomSourceType": { - "type": "string", + }, "traits": { - "smithy.api#pattern": "^[\\\\\\w\\-_:/.]*$" + "smithy.api#documentation": "

The status of the last UpdateDataLake or DeleteDataLake API\n request. This is set to Completed after the configuration is updated, or removed if\n deletion of the data lake is successful.

" } }, "com.amazonaws.securitylake#DeleteAwsLogSource": { @@ -985,20 +1492,27 @@ "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Removes a natively supported Amazon Web Service as an Amazon Security Lake source. When\n you remove the source, Security Lake stops collecting data from that source, and subscribers\n can no longer consume new data from the source. Subscribers can still consume data that\n Security Lake collected from the source before disablement.

\n

You can choose any source type in any Amazon Web Services Region for either accounts that\n are part of a trusted organization or standalone accounts. At least one of the three\n dimensions is a mandatory input to this API. However, you can supply any combination of the\n three dimensions to this API.

\n

By default, a dimension refers to the entire set. This is overridden when you supply any\n one of the inputs. For instance, when you do not specify members, the API disables all\n Security Lake member accounts for sources. Similarly, when you do not specify Regions,\n Security Lake is disabled for all the Regions where Security Lake is available as a service.

\n

When you don't provide a dimension, Security Lake assumes that the missing dimension refers\n to the entire set. For example, if you don't provide specific accounts, the API applies to\n the entire set of accounts in your organization.

", + "aws.iam#actionPermissionDescription": "Grants permission to disable any source type in any region for accounts that are part of a trusted organization or standalone accounts", + "smithy.api#documentation": "

Removes a natively supported Amazon Web Service as an Amazon Security Lake source. You\n can remove a source for one or more Regions. When you remove the source, Security Lake stops\n collecting data from that source in the specified Regions and accounts, and subscribers can\n no longer consume new data from the source. However, subscribers can still consume data\n that Security Lake collected from the source before removal.

\n

You can choose any source type in any Amazon Web Services Region for either accounts that\n are part of a trusted organization or standalone accounts.

", "smithy.api#http": { "method": "POST", - "uri": "/v1/logsources/aws/delete", + "uri": "/v1/datalake/logsources/aws/delete", "code": 200 } } @@ -1006,30 +1520,12 @@ "com.amazonaws.securitylake#DeleteAwsLogSourceRequest": { "type": "structure", "members": { - "inputOrder": { - "target": "com.amazonaws.securitylake#DimensionSet", + "sources": { + "target": "com.amazonaws.securitylake#AwsLogSourceConfigurationList", "traits": { - "smithy.api#documentation": "

This is a mandatory input. Specify the input order to disable dimensions in Security Lake,\n namely Region (Amazon Web Services Region code, source type, and member (account ID of a\n specific Amazon Web Services account).

", + "smithy.api#documentation": "

Specify the natively-supported Amazon Web Services service to remove as a source in\n Security Lake.

", "smithy.api#required": {} } - }, - "disableAllDimensions": { - "target": "com.amazonaws.securitylake#AllDimensionsMap", - "traits": { - "smithy.api#documentation": "

Removes the specific Amazon Web Services sources from specific accounts and specific\n Regions.

" - } - }, - "disableTwoDimensions": { - "target": "com.amazonaws.securitylake#TwoDimensionsMap", - "traits": { - "smithy.api#documentation": "

Remove a specific Amazon Web Services source from specific accounts or Regions.

" - } - }, - "disableSingleDimension": { - "target": "com.amazonaws.securitylake#InputSet", - "traits": { - "smithy.api#documentation": "

Removes all Amazon Web Services sources from specific accounts or Regions.

" - } } }, "traits": { @@ -1039,12 +1535,6 @@ "com.amazonaws.securitylake#DeleteAwsLogSourceResponse": { "type": "structure", "members": { - "processing": { - "target": "com.amazonaws.securitylake#AccountList", - "traits": { - "smithy.api#documentation": "

Deletion of the Amazon Web Services sources is in progress.

" - } - }, "failed": { "target": "com.amazonaws.securitylake#AccountList", "traits": { @@ -1069,13 +1559,10 @@ "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" - }, - { - "target": "com.amazonaws.securitylake#BucketNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" }, { - "target": "com.amazonaws.securitylake#ConflictSourceNamesException" + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" @@ -1084,14 +1571,16 @@ "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Removes a custom log source from Amazon Security Lake.

", + "aws.iam#actionPermissionDescription": "Grants permission to remove a custom source", + "aws.iam#requiredActions": ["glue:StopCrawlerSchedule"], + "smithy.api#documentation": "

Removes a custom log source from Amazon Security Lake, to stop sending data from the custom\n source to Security Lake.

", "smithy.api#http": { "method": "DELETE", - "uri": "/v1/logsources/custom", + "uri": "/v1/datalake/logsources/custom/{sourceName}", "code": 200 }, "smithy.api#idempotent": {} @@ -1100,13 +1589,20 @@ "com.amazonaws.securitylake#DeleteCustomLogSourceRequest": { "type": "structure", "members": { - "customSourceName": { - "target": "smithy.api#String", + "sourceName": { + "target": "com.amazonaws.securitylake#CustomLogSourceName", "traits": { - "smithy.api#documentation": "

The custom source name for the custom log source.

", - "smithy.api#httpQuery": "customSourceName", + "smithy.api#documentation": "

The source name of custom log source that you want to delete.

", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "sourceVersion": { + "target": "com.amazonaws.securitylake#CustomLogSourceVersion", + "traits": { + "smithy.api#documentation": "

The source version for the third-party custom source. You can limit the custom source\n removal to the specified source version.

", + "smithy.api#httpQuery": "sourceVersion" + } } }, "traits": { @@ -1115,31 +1611,26 @@ }, "com.amazonaws.securitylake#DeleteCustomLogSourceResponse": { "type": "structure", - "members": { - "customDataLocation": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The location of the partition in the Amazon S3 bucket for Security Lake.

", - "smithy.api#required": {} - } - } - }, + "members": {}, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.securitylake#DeleteDatalake": { + "com.amazonaws.securitylake#DeleteDataLake": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#DeleteDatalakeRequest" + "target": "com.amazonaws.securitylake#DeleteDataLakeRequest" }, "output": { - "target": "com.amazonaws.securitylake#DeleteDatalakeResponse" + "target": "com.amazonaws.securitylake#DeleteDataLakeResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, + { + "target": "com.amazonaws.securitylake#BadRequestException" + }, { "target": "com.amazonaws.securitylake#ConflictException" }, @@ -1149,118 +1640,124 @@ { "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, - { - "target": "com.amazonaws.securitylake#ServiceQuotaExceededException" - }, { "target": "com.amazonaws.securitylake#ThrottlingException" - }, - { - "target": "com.amazonaws.securitylake#ValidationException" } ], "traits": { - "smithy.api#documentation": "

When you delete Amazon Security Lake from your account, Security Lake is disabled in all Amazon Web Services Regions. Also, this API automatically takes steps to remove the account from\n Security Lake .

\n

This operation disables security data collection from sources, deletes data stored, and\n stops making data accessible to subscribers. Security Lake also deletes all the existing\n settings and resources that it stores or maintains for your Amazon Web Services account in\n the current Region, including security log and event data. The DeleteDatalake\n operation does not delete the Amazon S3 bucket, which is owned by your Amazon Web Services account. For more information, see the Amazon Security Lake User\n Guide.

", + "aws.iam#actionPermissionDescription": "Grants permission to delete security data lake", + "aws.iam#requiredActions": [ + "organizations:DescribeOrganization", + "organizations:ListDelegatedServicesForAccount", + "organizations:ListDelegatedAdministrators" + ], + "smithy.api#documentation": "

When you disable Amazon Security Lake from your account, Security Lake is disabled in all Amazon Web Services Regions and it stops collecting data from your sources. Also, this API\n automatically takes steps to remove the account from Security Lake. However, Security Lake retains\n all of your existing settings and the resources that it created in your Amazon Web Services\n account in the current Amazon Web Services Region.

\n

The DeleteDataLake operation does not delete the data that is stored in\n your Amazon S3 bucket, which is owned by your Amazon Web Services account. For more\n information, see the Amazon Security Lake User\n Guide.

", "smithy.api#http": { - "method": "DELETE", - "uri": "/v1/datalake", + "method": "POST", + "uri": "/v1/datalake/delete", "code": 200 }, "smithy.api#idempotent": {} } }, - "com.amazonaws.securitylake#DeleteDatalakeAutoEnable": { + "com.amazonaws.securitylake#DeleteDataLakeExceptionSubscription": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#DeleteDatalakeAutoEnableRequest" + "target": "com.amazonaws.securitylake#DeleteDataLakeExceptionSubscriptionRequest" }, "output": { - "target": "com.amazonaws.securitylake#DeleteDatalakeAutoEnableResponse" + "target": "com.amazonaws.securitylake#DeleteDataLakeExceptionSubscriptionResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

\n DeleteDatalakeAutoEnable removes automatic enablement of configuration\n settings for new member accounts (but keeps settings for the delegated administrator) from\n Amazon Security Lake. You must run this API using credentials of the delegated administrator.\n When you run this API, new member accounts that are added after the organization enables\n Security Lake won't contribute to the data lake.

", + "aws.iam#actionPermissionDescription": "Grants permission to unsubscribe from SNS topics for exception notifications. Removes exception notifications for the SNS topic", + "smithy.api#documentation": "

Deletes the specified notification subscription in Amazon Security Lake for the organization\n you specify.

", "smithy.api#http": { - "method": "POST", - "uri": "/v1/datalake/autoenable/delete", + "method": "DELETE", + "uri": "/v1/datalake/exceptions/subscription", "code": 200 - } + }, + "smithy.api#idempotent": {} } }, - "com.amazonaws.securitylake#DeleteDatalakeAutoEnableRequest": { + "com.amazonaws.securitylake#DeleteDataLakeExceptionSubscriptionRequest": { "type": "structure", - "members": { - "removeFromConfigurationForNewAccounts": { - "target": "com.amazonaws.securitylake#AutoEnableNewRegionConfigurationList", - "traits": { - "smithy.api#documentation": "

Remove automatic enablement of configuration settings for new member accounts in\n Security Lake.

", - "smithy.api#required": {} - } - } - }, + "members": {}, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.securitylake#DeleteDatalakeAutoEnableResponse": { + "com.amazonaws.securitylake#DeleteDataLakeExceptionSubscriptionResponse": { "type": "structure", "members": {}, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.securitylake#DeleteDatalakeDelegatedAdmin": { + "com.amazonaws.securitylake#DeleteDataLakeOrganizationConfiguration": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#DeleteDatalakeDelegatedAdminRequest" + "target": "com.amazonaws.securitylake#DeleteDataLakeOrganizationConfigurationRequest" }, "output": { - "target": "com.amazonaws.securitylake#DeleteDatalakeDelegatedAdminResponse" + "target": "com.amazonaws.securitylake#DeleteDataLakeOrganizationConfigurationResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, + { + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" + }, { "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#ThrottlingException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Deletes the Amazon Security Lake delegated administrator account for the organization. This API\n can only be called by the organization management account. The organization management\n account cannot be the delegated administrator account.

", + "aws.iam#actionPermissionDescription": "Grants permission to remove the automatic enablement of Amazon Security Lake access for new organization accounts", + "smithy.api#documentation": "

Removes automatic the enablement of configuration settings for new member accounts (but\n retains the settings for the delegated administrator) from Amazon Security Lake. You must run this\n API using the credentials of the delegated administrator. When you run this API, new member\n accounts that are added after the organization enables Security Lake won't contribute to the\n data lake.

", "smithy.api#http": { - "method": "DELETE", - "uri": "/v1/datalake/delegate/{account}", + "method": "POST", + "uri": "/v1/datalake/organization/configuration/delete", "code": 200 } } }, - "com.amazonaws.securitylake#DeleteDatalakeDelegatedAdminRequest": { + "com.amazonaws.securitylake#DeleteDataLakeOrganizationConfigurationRequest": { "type": "structure", "members": { - "account": { - "target": "com.amazonaws.securitylake#SafeString", + "autoEnableNewAccount": { + "target": "com.amazonaws.securitylake#DataLakeAutoEnableNewAccountConfigurationList", "traits": { - "smithy.api#documentation": "

The account ID the Security Lake delegated administrator.

", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

Removes the automatic enablement of configuration settings for new member accounts in\n Security Lake.

", "smithy.api#required": {} } } @@ -1269,74 +1766,29 @@ "smithy.api#input": {} } }, - "com.amazonaws.securitylake#DeleteDatalakeDelegatedAdminResponse": { + "com.amazonaws.securitylake#DeleteDataLakeOrganizationConfigurationResponse": { "type": "structure", "members": {}, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.securitylake#DeleteDatalakeExceptionsSubscription": { - "type": "operation", - "input": { - "target": "com.amazonaws.securitylake#DeleteDatalakeExceptionsSubscriptionRequest" - }, - "output": { - "target": "com.amazonaws.securitylake#DeleteDatalakeExceptionsSubscriptionResponse" - }, - "errors": [ - { - "target": "com.amazonaws.securitylake#AccessDeniedException" - }, - { - "target": "com.amazonaws.securitylake#AccountNotFoundException" - }, - { - "target": "com.amazonaws.securitylake#InternalServerException" - }, - { - "target": "com.amazonaws.securitylake#ValidationException" - } - ], - "traits": { - "smithy.api#documentation": "

Deletes the specified notification subscription in Amazon Security Lake for the organization\n you specify.

", - "smithy.api#http": { - "method": "DELETE", - "uri": "/v1/datalake/exceptions/subscription", - "code": 200 - } - } - }, - "com.amazonaws.securitylake#DeleteDatalakeExceptionsSubscriptionRequest": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.securitylake#DeleteDatalakeExceptionsSubscriptionResponse": { + "com.amazonaws.securitylake#DeleteDataLakeRequest": { "type": "structure", "members": { - "status": { - "target": "com.amazonaws.securitylake#SafeString", + "regions": { + "target": "com.amazonaws.securitylake#RegionList", "traits": { - "smithy.api#documentation": "

Retrieves the status of the delete Security Lake operation for an account.

", + "smithy.api#documentation": "

The list of Regions where Security Lake is enabled.

", "smithy.api#required": {} } } }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.securitylake#DeleteDatalakeRequest": { - "type": "structure", - "members": {}, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.securitylake#DeleteDatalakeResponse": { + "com.amazonaws.securitylake#DeleteDataLakeResponse": { "type": "structure", "members": {}, "traits": { @@ -1356,99 +1808,108 @@ "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" }, { - "target": "com.amazonaws.securitylake#BucketNotFoundException" - }, - { - "target": "com.amazonaws.securitylake#ConcurrentModificationException" + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, - { - "target": "com.amazonaws.securitylake#InvalidInputException" - }, { "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Deletes the subscription permission for accounts that are already enabled in\n Amazon Security Lake. You can delete a subscriber and remove access to data in the current Amazon Web Services\n Region.

", + "aws.iam#actionPermissionDescription": "Grants permission to delete the specified subscriber", + "aws.iam#requiredActions": [ + "iam:GetRole", + "iam:ListRolePolicies", + "iam:DeleteRole", + "iam:DeleteRolePolicy", + "lakeformation:RevokePermissions", + "lakeformation:ListPermissions", + "events:DeleteApiDestination", + "events:DeleteConnection", + "events:DeleteRule", + "events:ListApiDestinations", + "events:ListTargetsByRule", + "events:DescribeRule", + "events:RemoveTargets", + "sqs:DeleteQueue", + "sqs:GetQueueUrl" + ], + "smithy.api#documentation": "

Deletes the subscription permission and all notification settings for accounts that are\n already enabled in Amazon Security Lake. When you run DeleteSubscriber, the\n subscriber will no longer consume data from Security Lake and the subscriber is removed. This\n operation deletes the subscriber and removes access to data in the current Amazon Web Services Region.

", "smithy.api#http": { "method": "DELETE", - "uri": "/v1/subscribers", + "uri": "/v1/subscribers/{subscriberId}", "code": 200 }, "smithy.api#idempotent": {} } }, - "com.amazonaws.securitylake#DeleteSubscriberRequest": { - "type": "structure", - "members": { - "id": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

A value created by Security Lake that uniquely identifies your DeleteSubscriber API request.

", - "smithy.api#httpQuery": "id", - "smithy.api#required": {} - } - } - } - }, - "com.amazonaws.securitylake#DeleteSubscriberResponse": { - "type": "structure", - "members": {} - }, - "com.amazonaws.securitylake#DeleteSubscriptionNotificationConfiguration": { + "com.amazonaws.securitylake#DeleteSubscriberNotification": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#DeleteSubscriptionNotificationConfigurationRequest" + "target": "com.amazonaws.securitylake#DeleteSubscriberNotificationRequest" }, "output": { - "target": "com.amazonaws.securitylake#DeleteSubscriptionNotificationConfigurationResponse" + "target": "com.amazonaws.securitylake#DeleteSubscriberNotificationResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" }, { - "target": "com.amazonaws.securitylake#ConcurrentModificationException" + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, - { - "target": "com.amazonaws.securitylake#InvalidInputException" - }, { "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { + "aws.iam#actionPermissionDescription": "Grants permission to remove a webhook invocation to notify a client when there is new data in the data lake", + "aws.iam#requiredActions": [ + "iam:GetRole", + "iam:ListRolePolicies", + "iam:DeleteRole", + "iam:DeleteRolePolicy", + "lakeformation:RevokePermissions", + "events:DeleteApiDestination", + "events:DeleteConnection", + "events:DeleteRule", + "events:ListApiDestinations", + "events:ListTargetsByRule", + "events:DescribeRule", + "events:RemoveTargets", + "sqs:DeleteQueue", + "sqs:GetQueueUrl" + ], "smithy.api#documentation": "

Deletes the specified notification subscription in Amazon Security Lake for the organization\n you specify.

", "smithy.api#http": { "method": "DELETE", - "uri": "/subscription-notifications/{subscriptionId}", + "uri": "/v1/subscribers/{subscriberId}/notification", "code": 200 }, "smithy.api#idempotent": {} } }, - "com.amazonaws.securitylake#DeleteSubscriptionNotificationConfigurationRequest": { + "com.amazonaws.securitylake#DeleteSubscriberNotificationRequest": { "type": "structure", "members": { - "subscriptionId": { + "subscriberId": { "target": "com.amazonaws.securitylake#UUID", "traits": { "smithy.api#documentation": "

The ID of the Security Lake subscriber account.

", @@ -1461,276 +1922,175 @@ "smithy.api#input": {} } }, - "com.amazonaws.securitylake#DeleteSubscriptionNotificationConfigurationResponse": { + "com.amazonaws.securitylake#DeleteSubscriberNotificationResponse": { "type": "structure", "members": {}, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.securitylake#DescriptionString": { - "type": "string", - "traits": { - "smithy.api#pattern": "^[\\\\\\w\\s\\-_:/,.@=+]*$" - } - }, - "com.amazonaws.securitylake#Dimension": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "REGION", - "name": "REGION" - }, - { - "value": "SOURCE_TYPE", - "name": "SOURCE_TYPE" - }, - { - "value": "MEMBER", - "name": "MEMBER" - } - ] - } - }, - "com.amazonaws.securitylake#DimensionSet": { - "type": "list", - "member": { - "target": "com.amazonaws.securitylake#Dimension" - }, - "traits": { - "smithy.api#uniqueItems": {} - } - }, - "com.amazonaws.securitylake#EndpointProtocol": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "HTTPS", - "name": "HTTPS" - }, - { - "value": "SQS", - "name": "SQS" - } - ] - } - }, - "com.amazonaws.securitylake#EventBridgeException": { - "type": "structure", - "members": { - "message": { - "target": "smithy.api#String", - "traits": { - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#documentation": "

Represents an error interacting with the Amazon EventBridge service.

", - "smithy.api#error": "client", - "smithy.api#httpError": 400 - } - }, - "com.amazonaws.securitylake#Failures": { + "com.amazonaws.securitylake#DeleteSubscriberRequest": { "type": "structure", "members": { - "exceptionMessage": { - "target": "com.amazonaws.securitylake#SafeString", - "traits": { - "smithy.api#documentation": "

List of all exception messages.

", - "smithy.api#required": {} - } - }, - "remediation": { - "target": "com.amazonaws.securitylake#SafeString", + "subscriberId": { + "target": "com.amazonaws.securitylake#UUID", "traits": { - "smithy.api#documentation": "

List of all remediation steps for failures.

", + "smithy.api#documentation": "

A value created by Security Lake that uniquely identifies your DeleteSubscriber API request.

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

This error can occur if you configure the wrong timestamp format, or if the subset of entries used for validation had errors or missing values.

", - "smithy.api#required": {}, - "smithy.api#timestampFormat": "date-time" - } - } - }, - "traits": { - "smithy.api#documentation": "

List of all failures.

" - } - }, - "com.amazonaws.securitylake#FailuresResponse": { - "type": "structure", - "members": { - "region": { - "target": "com.amazonaws.securitylake#SafeString", - "traits": { - "smithy.api#documentation": "

List of Amazon Web Services Regions where the failure occurred.

" - } - }, - "failures": { - "target": "com.amazonaws.securitylake#Failureslist", - "traits": { - "smithy.api#documentation": "

List of all failures.

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

Response element for actions that make changes, namely create, update, or delete\n actions.

" - } - }, - "com.amazonaws.securitylake#FailuresResponseList": { - "type": "list", - "member": { - "target": "com.amazonaws.securitylake#FailuresResponse" + "traits": { + "smithy.api#input": {} } }, - "com.amazonaws.securitylake#Failureslist": { - "type": "list", - "member": { - "target": "com.amazonaws.securitylake#Failures" + "com.amazonaws.securitylake#DeleteSubscriberResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} } }, - "com.amazonaws.securitylake#GetDatalake": { + "com.amazonaws.securitylake#DeregisterDataLakeDelegatedAdministrator": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#GetDatalakeRequest" + "target": "com.amazonaws.securitylake#DeregisterDataLakeDelegatedAdministratorRequest" }, "output": { - "target": "com.amazonaws.securitylake#GetDatalakeResponse" + "target": "com.amazonaws.securitylake#DeregisterDataLakeDelegatedAdministratorResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" - }, - { - "target": "com.amazonaws.securitylake#InternalServerException" - }, - { - "target": "com.amazonaws.securitylake#ResourceNotFoundException" - }, - { - "target": "com.amazonaws.securitylake#ValidationException" - } - ], - "traits": { - "smithy.api#documentation": "

Retrieves the Amazon Security Lake configuration object for the specified Amazon Web Services account ID. You can use the GetDatalake API to know whether\n Security Lake is enabled for the current Region. This API does not take input parameters.

", - "smithy.api#http": { - "method": "GET", - "uri": "/v1/datalake", - "code": 200 + "target": "com.amazonaws.securitylake#BadRequestException" }, - "smithy.api#readonly": {} - } - }, - "com.amazonaws.securitylake#GetDatalakeAutoEnable": { - "type": "operation", - "input": { - "target": "com.amazonaws.securitylake#GetDatalakeAutoEnableRequest" - }, - "output": { - "target": "com.amazonaws.securitylake#GetDatalakeAutoEnableResponse" - }, - "errors": [ { - "target": "com.amazonaws.securitylake#AccessDeniedException" + "target": "com.amazonaws.securitylake#ConflictException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#InternalServerException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Retrieves the configuration that will be automatically set up for accounts added to the\n organization after the organization has onboarded to Amazon Security Lake. This API does not take\n input parameters.

", + "aws.iam#actionPermissionDescription": "Grants permission to remove the Delegated Administrator account and disable Amazon Security Lake as a service for this organization", + "aws.iam#requiredActions": [ + "organizations:DescribeOrganization", + "organizations:DeregisterDelegatedAdministrator", + "organizations:ListDelegatedServicesForAccount" + ], + "smithy.api#documentation": "

Deletes the Amazon Security Lake delegated administrator account for the organization. This API\n can only be called by the organization management account. The organization management\n account cannot be the delegated administrator account.

", "smithy.api#http": { - "method": "GET", - "uri": "/v1/datalake/autoenable", + "method": "DELETE", + "uri": "/v1/datalake/delegate", "code": 200 }, - "smithy.api#readonly": {} + "smithy.api#idempotent": {} } }, - "com.amazonaws.securitylake#GetDatalakeAutoEnableRequest": { + "com.amazonaws.securitylake#DeregisterDataLakeDelegatedAdministratorRequest": { "type": "structure", "members": {}, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.securitylake#GetDatalakeAutoEnableResponse": { + "com.amazonaws.securitylake#DeregisterDataLakeDelegatedAdministratorResponse": { "type": "structure", - "members": { - "autoEnableNewAccounts": { - "target": "com.amazonaws.securitylake#AutoEnableNewRegionConfigurationList", - "traits": { - "smithy.api#documentation": "

The configuration for new accounts.

", - "smithy.api#required": {} - } - } - }, + "members": {}, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.securitylake#GetDatalakeExceptionsExpiry": { + "com.amazonaws.securitylake#DescriptionString": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[\\\\\\w\\s\\-_:/,.@=+]*$" + } + }, + "com.amazonaws.securitylake#ExternalId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 2, + "max": 1224 + }, + "smithy.api#pattern": "^[\\w+=,.@:\\/-]*$" + } + }, + "com.amazonaws.securitylake#GetDataLakeExceptionSubscription": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#GetDatalakeExceptionsExpiryRequest" + "target": "com.amazonaws.securitylake#GetDataLakeExceptionSubscriptionRequest" }, "output": { - "target": "com.amazonaws.securitylake#GetDatalakeExceptionsExpiryResponse" + "target": "com.amazonaws.securitylake#GetDataLakeExceptionSubscriptionResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Retrieves the expiration period and time-to-live (TTL) for which the exception message\n will remain. Exceptions are stored by default, for 2 weeks from when a record was created\n in Amazon Security Lake. This API does not take input parameters.

", + "aws.iam#actionPermissionDescription": "Grants permission to query the protocol and endpoint that were provided when subscribing to SNS topics for exception notifications", + "smithy.api#documentation": "

Retrieves the details of exception notifications for the account in Amazon Security Lake.

", "smithy.api#http": { "method": "GET", - "uri": "/v1/datalake/exceptions/expiry", + "uri": "/v1/datalake/exceptions/subscription", "code": 200 }, "smithy.api#readonly": {} } }, - "com.amazonaws.securitylake#GetDatalakeExceptionsExpiryRequest": { + "com.amazonaws.securitylake#GetDataLakeExceptionSubscriptionRequest": { "type": "structure", "members": {}, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.securitylake#GetDatalakeExceptionsExpiryResponse": { + "com.amazonaws.securitylake#GetDataLakeExceptionSubscriptionResponse": { "type": "structure", "members": { - "exceptionMessageExpiry": { + "subscriptionProtocol": { + "target": "com.amazonaws.securitylake#SubscriptionProtocol", + "traits": { + "smithy.api#documentation": "

The subscription protocol to which exception notifications are posted.

" + } + }, + "notificationEndpoint": { + "target": "com.amazonaws.securitylake#SafeString", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services account where you receive exception notifications.

" + } + }, + "exceptionTimeToLive": { "target": "smithy.api#Long", "traits": { - "smithy.api#documentation": "

The expiration period and time-to-live (TTL).

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

The expiration period and time-to-live (TTL).

" } } }, @@ -1738,75 +2098,60 @@ "smithy.api#output": {} } }, - "com.amazonaws.securitylake#GetDatalakeExceptionsSubscription": { + "com.amazonaws.securitylake#GetDataLakeOrganizationConfiguration": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#GetDatalakeExceptionsSubscriptionRequest" + "target": "com.amazonaws.securitylake#GetDataLakeOrganizationConfigurationRequest" }, "output": { - "target": "com.amazonaws.securitylake#GetDatalakeExceptionsSubscriptionResponse" + "target": "com.amazonaws.securitylake#GetDataLakeOrganizationConfigurationResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Retrieves the details of exception notifications for the account in Amazon Security Lake.

", + "aws.iam#actionPermissionDescription": "Grants permission to get an organization’s configuration setting for automatically enabling Amazon Security Lake access for new organization accounts", + "aws.iam#requiredActions": ["organizations:DescribeOrganization"], + "smithy.api#documentation": "

Retrieves the configuration that will be automatically set up for accounts added to the\n organization after the organization has onboarded to Amazon Security Lake. This API does not take\n input parameters.

", "smithy.api#http": { "method": "GET", - "uri": "/v1/datalake/exceptions/subscription", + "uri": "/v1/datalake/organization/configuration", "code": 200 }, "smithy.api#readonly": {} } }, - "com.amazonaws.securitylake#GetDatalakeExceptionsSubscriptionRequest": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.securitylake#GetDatalakeExceptionsSubscriptionResponse": { - "type": "structure", - "members": { - "protocolAndNotificationEndpoint": { - "target": "com.amazonaws.securitylake#ProtocolAndNotificationEndpoint", - "traits": { - "smithy.api#documentation": "

Retrieves the exception notification subscription information.

", - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.securitylake#GetDatalakeRequest": { + "com.amazonaws.securitylake#GetDataLakeOrganizationConfigurationRequest": { "type": "structure", "members": {}, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.securitylake#GetDatalakeResponse": { + "com.amazonaws.securitylake#GetDataLakeOrganizationConfigurationResponse": { "type": "structure", "members": { - "configurations": { - "target": "com.amazonaws.securitylake#LakeConfigurationResponseMap", + "autoEnableNewAccount": { + "target": "com.amazonaws.securitylake#DataLakeAutoEnableNewAccountConfigurationList", "traits": { - "smithy.api#documentation": "

Retrieves the Security Lake configuration object.

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

The configuration for new accounts.

" } } }, @@ -1814,63 +2159,70 @@ "smithy.api#output": {} } }, - "com.amazonaws.securitylake#GetDatalakeStatus": { + "com.amazonaws.securitylake#GetDataLakeSources": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#GetDatalakeStatusRequest" + "target": "com.amazonaws.securitylake#GetDataLakeSourcesRequest" }, "output": { - "target": "com.amazonaws.securitylake#GetDatalakeStatusResponse" + "target": "com.amazonaws.securitylake#GetDataLakeSourcesResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Retrieves a snapshot of the current Region, including whether Amazon Security Lake is enabled\n for those accounts and which sources Security Lake is collecting data from.

", + "aws.iam#actionPermissionDescription": "Grants permission to get a static snapshot of the security data lake in the current region. The snapshot includes enabled accounts and log sources", + "smithy.api#documentation": "

Retrieves a snapshot of the current Region, including whether Amazon Security Lake is enabled\n for those accounts and which sources Security Lake is collecting data from.

", "smithy.api#http": { "method": "POST", - "uri": "/v1/datalake/status", + "uri": "/v1/datalake/sources", "code": 200 }, "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", - "pageSize": "maxAccountResults", - "items": "accountSourcesList" - }, - "smithy.api#readonly": {} + "pageSize": "maxResults", + "items": "dataLakeSources" + } } }, - "com.amazonaws.securitylake#GetDatalakeStatusRequest": { + "com.amazonaws.securitylake#GetDataLakeSourcesRequest": { "type": "structure", "members": { - "accountSet": { - "target": "com.amazonaws.securitylake#InputSet", + "accounts": { + "target": "com.amazonaws.securitylake#AccountList", "traits": { "smithy.api#documentation": "

The Amazon Web Services account ID for which a static snapshot of the current Amazon Web Services Region, including enabled accounts and log sources, is retrieved.

" } }, - "maxAccountResults": { - "target": "smithy.api#Integer", + "maxResults": { + "target": "com.amazonaws.securitylake#MaxResults", "traits": { + "smithy.api#default": 50, "smithy.api#documentation": "

The maximum limit of accounts for which the static snapshot of the current Region,\n including enabled accounts and log sources, is retrieved.

" } }, "nextToken": { - "target": "com.amazonaws.securitylake#SafeString", + "target": "com.amazonaws.securitylake#NextToken", "traits": { - "smithy.api#documentation": "

Lists if there are more results available. The value of nextToken is a unique pagination\n token for each page. Repeat the call using the returned token to retrieve the next page.\n Keep all other arguments unchanged.

\n

Each pagination token expires after 24 hours. Using an expired pagination token will\n return an HTTP 400 InvalidToken error.

" + "smithy.api#documentation": "

Lists if there are more results available. The value of nextToken is a unique pagination\n token for each page. Repeat the call using the returned token to retrieve the next page.\n Keep all other arguments unchanged.

\n

Each pagination token expires after 24 hours. Using an expired pagination token will\n return an HTTP 400 InvalidToken error.

" } } }, @@ -1878,20 +2230,25 @@ "smithy.api#input": {} } }, - "com.amazonaws.securitylake#GetDatalakeStatusResponse": { + "com.amazonaws.securitylake#GetDataLakeSourcesResponse": { "type": "structure", "members": { - "accountSourcesList": { - "target": "com.amazonaws.securitylake#AccountSourcesList", + "dataLakeArn": { + "target": "com.amazonaws.securitylake#AmazonResourceName", "traits": { - "smithy.api#documentation": "

The list of enabled accounts and enabled sources.

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

The Amazon Resource Name (ARN) created by you to provide to the subscriber. For more information about ARNs and how to use them in policies, see the Amazon Security Lake User Guide.

" + } + }, + "dataLakeSources": { + "target": "com.amazonaws.securitylake#DataLakeSourceList", + "traits": { + "smithy.api#documentation": "

The list of enabled accounts and enabled sources.

" } }, "nextToken": { - "target": "com.amazonaws.securitylake#SafeString", + "target": "com.amazonaws.securitylake#NextToken", "traits": { - "smithy.api#documentation": "

Lists if there are more results available. The value of nextToken is a unique pagination\n token for each page. Repeat the call using the returned token to retrieve the next page.\n Keep all other arguments unchanged.

\n

Each pagination token expires after 24 hours. Using an expired pagination token will\n return an HTTP 400 InvalidToken error.

" + "smithy.api#documentation": "

Lists if there are more results available. The value of nextToken is a unique pagination\n token for each page. Repeat the call using the returned token to retrieve the next page.\n Keep all other arguments unchanged.

\n

Each pagination token expires after 24 hours. Using an expired pagination token will\n return an HTTP 400 InvalidToken error.

" } } }, @@ -1912,23 +2269,27 @@ "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" }, { - "target": "com.amazonaws.securitylake#InternalServerException" + "target": "com.amazonaws.securitylake#ConflictException" }, { - "target": "com.amazonaws.securitylake#InvalidInputException" + "target": "com.amazonaws.securitylake#InternalServerException" }, { "target": "com.amazonaws.securitylake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { + "aws.iam#actionPermissionDescription": "Grants permission to get information about subscriber that is already created", "smithy.api#documentation": "

Retrieves the subscription information for the specified subscription ID. You can get\n information about a specific subscriber.

", "smithy.api#http": { "method": "GET", - "uri": "/v1/subscribers/{id}", + "uri": "/v1/subscribers/{subscriberId}", "code": 200 }, "smithy.api#readonly": {} @@ -1937,14 +2298,17 @@ "com.amazonaws.securitylake#GetSubscriberRequest": { "type": "structure", "members": { - "id": { - "target": "smithy.api#String", + "subscriberId": { + "target": "com.amazonaws.securitylake#UUID", "traits": { "smithy.api#documentation": "

A value created by Amazon Security Lake that uniquely identifies your\n GetSubscriber API request.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.securitylake#GetSubscriberResponse": { @@ -1953,264 +2317,224 @@ "subscriber": { "target": "com.amazonaws.securitylake#SubscriberResource", "traits": { - "smithy.api#documentation": "

The subscription information for the specified subscription ID.

" + "smithy.api#documentation": "

The subscriber information for the specified subscriber ID.

" } } - } - }, - "com.amazonaws.securitylake#HttpsMethod": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "POST", - "name": "POST" - }, - { - "value": "PUT", - "name": "PUT" - } - ] - } - }, - "com.amazonaws.securitylake#InputSet": { - "type": "list", - "member": { - "target": "com.amazonaws.securitylake#SafeString" }, "traits": { - "smithy.api#uniqueItems": {} + "smithy.api#output": {} } }, - "com.amazonaws.securitylake#InternalServerException": { - "type": "structure", + "com.amazonaws.securitylake#HttpMethod": { + "type": "enum", "members": { - "message": { - "target": "smithy.api#String", + "POST": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#required": {} + "smithy.api#enumValue": "POST" } }, - "retryAfterSeconds": { - "target": "smithy.api#Integer", + "PUT": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Retry the request after the specified time.

", - "smithy.api#httpHeader": "Retry-After" + "smithy.api#enumValue": "PUT" } } - }, - "traits": { - "smithy.api#documentation": "

Internal service exceptions are sometimes caused by transient issues. Before you start\n troubleshooting, perform the operation again.

", - "smithy.api#error": "server", - "smithy.api#httpError": 500, - "smithy.api#retryable": {} } }, - "com.amazonaws.securitylake#InvalidInputException": { + "com.amazonaws.securitylake#HttpsNotificationConfiguration": { "type": "structure", "members": { - "message": { + "endpoint": { "target": "smithy.api#String", "traits": { + "smithy.api#documentation": "

The subscription endpoint in Security Lake. If you prefer notification with an HTTPs\n endpoint, populate this field.

", + "smithy.api#pattern": "^https?://.+$", "smithy.api#required": {} } - } - }, - "traits": { - "smithy.api#documentation": "

The request was rejected because a value that's not valid or is out of range was\n supplied for an input parameter.

", - "smithy.api#error": "client", - "smithy.api#httpError": 400 - } - }, - "com.amazonaws.securitylake#LakeConfigurationRequest": { - "type": "structure", - "members": { - "encryptionKey": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The type of encryption key used by Amazon Security Lake to encrypt the Security Lake configuration\n object.

" - } }, - "retentionSettings": { - "target": "com.amazonaws.securitylake#RetentionSettingList", + "authorizationApiKeyName": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

Retention settings for the destination Amazon S3 buckets.

" + "smithy.api#documentation": "

The key name for the notification subscription.

" } }, - "tagsMap": { - "target": "com.amazonaws.securitylake#TagsMap", + "authorizationApiKeyValue": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an\n optional value, both of which you define.

" + "smithy.api#documentation": "

The key value for the notification subscription.

" } }, - "replicationDestinationRegions": { - "target": "com.amazonaws.securitylake#RegionSet", + "httpMethod": { + "target": "com.amazonaws.securitylake#HttpMethod", "traits": { - "smithy.api#documentation": "

Replication enables automatic, asynchronous copying of objects across Amazon S3\n buckets. Amazon S3 buckets that are configured for object replication can be owned\n by the same Amazon Web Services account or by different accounts. You can replicate objects\n to a single destination bucket or to multiple destination buckets. The destination buckets\n can be in different Amazon Web Services Regions or within the same Region as the source\n bucket.

\n

Set up one or more rollup Regions by providing the Region or Regions that should\n contribute to the central rollup Region.

" + "smithy.api#documentation": "

The HTTPS method used for the notification subscription.

" } }, - "replicationRoleArn": { + "targetRoleArn": { "target": "com.amazonaws.securitylake#RoleArn", "traits": { - "smithy.api#documentation": "

Replication settings for the Amazon S3 buckets. This parameter uses the Identity and Access Management (IAM) role you created that is managed by Security Lake, to\n ensure the replication setting is correct.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the EventBridge API destinations IAM role that you\n created. For more information about ARNs and how to use them in policies, see Managing data access and Amazon Web Services\n Managed Policies in the Amazon Security Lake User Guide.

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

Provides details of Amazon Security Lake configuration object.

" + "smithy.api#documentation": "

The configurations for HTTPS subscriber notification.

" } }, - "com.amazonaws.securitylake#LakeConfigurationRequestMap": { - "type": "map", - "key": { - "target": "com.amazonaws.securitylake#Region" + "com.amazonaws.securitylake#InternalServerException": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String" + } }, - "value": { - "target": "com.amazonaws.securitylake#LakeConfigurationRequest" + "traits": { + "smithy.api#documentation": "

Internal service exceptions are sometimes caused by transient issues. Before you start\n troubleshooting, perform the operation again.

", + "smithy.api#error": "server", + "smithy.api#httpError": 500, + "smithy.api#retryable": {} } }, - "com.amazonaws.securitylake#LakeConfigurationResponse": { - "type": "structure", - "members": { - "encryptionKey": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The type of encryption key used by secure the Security Lake configuration object.

" - } + "com.amazonaws.securitylake#ListDataLakeExceptions": { + "type": "operation", + "input": { + "target": "com.amazonaws.securitylake#ListDataLakeExceptionsRequest" + }, + "output": { + "target": "com.amazonaws.securitylake#ListDataLakeExceptionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.securitylake#AccessDeniedException" }, - "retentionSettings": { - "target": "com.amazonaws.securitylake#RetentionSettingList", - "traits": { - "smithy.api#documentation": "

Retention settings for the destination Amazon S3 buckets.

" - } + { + "target": "com.amazonaws.securitylake#BadRequestException" }, - "tagsMap": { - "target": "com.amazonaws.securitylake#TagsMap", - "traits": { - "smithy.api#documentation": "

A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key and an\n optional value, both of which you define.

" - } + { + "target": "com.amazonaws.securitylake#ConflictException" }, - "replicationDestinationRegions": { - "target": "com.amazonaws.securitylake#RegionSet", - "traits": { - "smithy.api#documentation": "

Replication enables automatic, asynchronous copying of objects across Amazon S3\n buckets. Amazon S3 buckets that are configured for object replication can be owned\n by the same Amazon Web Services account or by different accounts. You can replicate objects\n to a single destination bucket or to multiple destination buckets. The destination buckets\n can be in different Amazon Web Services Regions or within the same Region as the source\n bucket.

\n

Set up one or more rollup Regions by providing the Region or Regions that should\n contribute to the central rollup Region.

" - } + { + "target": "com.amazonaws.securitylake#InternalServerException" }, - "replicationRoleArn": { - "target": "com.amazonaws.securitylake#RoleArn", - "traits": { - "smithy.api#documentation": "

Replication settings for the Amazon S3 buckets. This parameter uses the IAM role you created that is managed by Security Lake, to ensure the replication\n setting is correct.

" - } + { + "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, - "s3BucketArn": { - "target": "com.amazonaws.securitylake#S3BucketArn", + { + "target": "com.amazonaws.securitylake#ThrottlingException" + } + ], + "traits": { + "aws.iam#actionPermissionDescription": "Grants permission to get the list of all non-retryable failures", + "smithy.api#documentation": "

Lists the Amazon Security Lake exceptions that you can use to find the source of problems and\n fix them.

", + "smithy.api#http": { + "method": "POST", + "uri": "/v1/datalake/exceptions", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "exceptions" + } + } + }, + "com.amazonaws.securitylake#ListDataLakeExceptionsRequest": { + "type": "structure", + "members": { + "regions": { + "target": "com.amazonaws.securitylake#RegionList", "traits": { - "smithy.api#documentation": "

Amazon Resource Names (ARNs) uniquely identify Amazon Web Services resources. Security Lake\n requires an ARN when you need to specify a resource unambiguously across all of Amazon Web Services, such as in IAM policies, Amazon Relational Database Service (Amazon RDS) tags, and API calls.

" + "smithy.api#documentation": "

List the Amazon Web Services Regions from which exceptions are retrieved.

" } }, - "status": { - "target": "com.amazonaws.securitylake#settingsStatus", + "maxResults": { + "target": "com.amazonaws.securitylake#MaxResults", "traits": { - "smithy.api#documentation": "

Retrieves the status of the configuration operation for an account in Amazon Security Lake.

" + "smithy.api#default": 50, + "smithy.api#documentation": "

List the maximum number of failures in Security Lake.

" } }, - "updateStatus": { - "target": "com.amazonaws.securitylake#UpdateStatus", + "nextToken": { + "target": "com.amazonaws.securitylake#NextToken", "traits": { - "smithy.api#documentation": "

The status of the last UpdateDatalake or DeleteDatalake API\n request.

" + "smithy.api#documentation": "

List if there are more results available. The value of nextToken is a unique pagination\n token for each page. Repeat the call using the returned token to retrieve the next page.\n Keep all other arguments unchanged.

\n

Each pagination token expires after 24 hours. Using an expired pagination token will\n return an HTTP 400 InvalidToken error.

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

Provides details of Amazon Security Lake lake configuration object.

" - } - }, - "com.amazonaws.securitylake#LakeConfigurationResponseMap": { - "type": "map", - "key": { - "target": "com.amazonaws.securitylake#Region" - }, - "value": { - "target": "com.amazonaws.securitylake#LakeConfigurationResponse" + "smithy.api#input": {} } }, - "com.amazonaws.securitylake#LastUpdateFailure": { + "com.amazonaws.securitylake#ListDataLakeExceptionsResponse": { "type": "structure", "members": { - "reason": { - "target": "smithy.api#String", + "exceptions": { + "target": "com.amazonaws.securitylake#DataLakeExceptionList", "traits": { - "smithy.api#documentation": "

The reason for the failure of the last UpdateDatalakeor\n DeleteDatalake API request.

" + "smithy.api#documentation": "

Lists the failures that cannot be retried in the current Region.

" } }, - "code": { - "target": "smithy.api#String", + "nextToken": { + "target": "com.amazonaws.securitylake#NextToken", "traits": { - "smithy.api#documentation": "

The reason code for the failure of the last UpdateDatalake or\n DeleteDatalake API request.

" + "smithy.api#documentation": "

List if there are more results available. The value of nextToken is a unique pagination\n token for each page. Repeat the call using the returned token to retrieve the next page.\n Keep all other arguments unchanged.

\n

Each pagination token expires after 24 hours. Using an expired pagination token will\n return an HTTP 400 InvalidToken error.

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

The details of the last UpdateDatalake or DeleteDatalake\n API request which failed.

" + "smithy.api#output": {} } }, - "com.amazonaws.securitylake#ListDatalakeExceptions": { + "com.amazonaws.securitylake#ListDataLakes": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#ListDatalakeExceptionsRequest" + "target": "com.amazonaws.securitylake#ListDataLakesRequest" }, "output": { - "target": "com.amazonaws.securitylake#ListDatalakeExceptionsResponse" + "target": "com.amazonaws.securitylake#ListDataLakesResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Lists the Amazon Security Lake exceptions that you can use to find the source of problems and\n fix them.

", + "aws.iam#actionPermissionDescription": "Grants permission to get information about the security data lake", + "smithy.api#documentation": "

Retrieves the Amazon Security Lake configuration object for the specified Amazon Web Services account ID. You can use the ListDataLakes API to know whether\n Security Lake is enabled for any region.

", "smithy.api#http": { - "method": "POST", - "uri": "/v1/datalake/exceptions", + "method": "GET", + "uri": "/v1/datalakes", "code": 200 }, - "smithy.api#paginated": { - "inputToken": "nextToken", - "outputToken": "nextToken", - "pageSize": "maxFailures", - "items": "nonRetryableFailures" - }, "smithy.api#readonly": {} } }, - "com.amazonaws.securitylake#ListDatalakeExceptionsRequest": { + "com.amazonaws.securitylake#ListDataLakesRequest": { "type": "structure", "members": { - "regionSet": { - "target": "com.amazonaws.securitylake#RegionSet", - "traits": { - "smithy.api#documentation": "

List the Amazon Web Services Regions from which exceptions are retrieved.

" - } - }, - "maxFailures": { - "target": "smithy.api#Integer", - "traits": { - "smithy.api#documentation": "

List the maximum number of failures in Security Lake.

" - } - }, - "nextToken": { - "target": "com.amazonaws.securitylake#SafeString", + "regions": { + "target": "com.amazonaws.securitylake#RegionList", "traits": { - "smithy.api#documentation": "

List if there are more results available. The value of nextToken is a unique pagination\n token for each page. Repeat the call using the returned token to retrieve the next page.\n Keep all other arguments unchanged.

\n

Each pagination token expires after 24 hours. Using an expired pagination token will\n return an HTTP 400 InvalidToken error.

" + "smithy.api#documentation": "

The list of regions where Security Lake is enabled.

", + "smithy.api#httpQuery": "regions" } } }, @@ -2218,20 +2542,13 @@ "smithy.api#input": {} } }, - "com.amazonaws.securitylake#ListDatalakeExceptionsResponse": { + "com.amazonaws.securitylake#ListDataLakesResponse": { "type": "structure", "members": { - "nonRetryableFailures": { - "target": "com.amazonaws.securitylake#FailuresResponseList", + "dataLakes": { + "target": "com.amazonaws.securitylake#DataLakeResourceList", "traits": { - "smithy.api#documentation": "

Lists the failures that cannot be retried in the current Region.

", - "smithy.api#required": {} - } - }, - "nextToken": { - "target": "com.amazonaws.securitylake#SafeString", - "traits": { - "smithy.api#documentation": "

List if there are more results available. The value of nextToken is a unique pagination\n token for each page. Repeat the call using the returned token to retrieve the next page.\n Keep all other arguments unchanged.

\n

Each pagination token expires after 24 hours. Using an expired pagination token will\n return an HTTP 400 InvalidToken error.

" + "smithy.api#documentation": "

Retrieves the Security Lake configuration object.

" } } }, @@ -2252,7 +2569,10 @@ "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" @@ -2261,82 +2581,82 @@ "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Retrieves the log sources in the current Amazon Web Services Region.

", + "aws.iam#actionPermissionDescription": "Grants permission to view the enabled accounts. You can view the enabled sources in the enabled regions", + "smithy.api#documentation": "

Retrieves the log sources in the current Amazon Web Services Region.

", "smithy.api#http": { "method": "POST", - "uri": "/v1/logsources/list", + "uri": "/v1/datalake/logsources/list", "code": 200 }, "smithy.api#paginated": { "inputToken": "nextToken", "outputToken": "nextToken", "pageSize": "maxResults", - "items": "regionSourceTypesAccountsList" - }, - "smithy.api#readonly": {} + "items": "sources" + } } }, "com.amazonaws.securitylake#ListLogSourcesRequest": { "type": "structure", "members": { - "inputOrder": { - "target": "com.amazonaws.securitylake#DimensionSet", - "traits": { - "smithy.api#documentation": "

Lists the log sources in input order, namely Region, source\n type, and member account.

" - } - }, - "listAllDimensions": { - "target": "com.amazonaws.securitylake#AllDimensionsMap", + "accounts": { + "target": "com.amazonaws.securitylake#AccountList", "traits": { - "smithy.api#documentation": "

List the view of log sources for enabled Amazon Security Lake accounts for specific Amazon Web Services sources from specific accounts and specific Regions.

" + "smithy.api#documentation": "

The list of Amazon Web Services accounts for which log sources are displayed.

" } }, - "listTwoDimensions": { - "target": "com.amazonaws.securitylake#TwoDimensionsMap", + "regions": { + "target": "com.amazonaws.securitylake#RegionList", "traits": { - "smithy.api#documentation": "

Lists the view of log sources for enabled Security Lake accounts for specific Amazon Web Services sources from specific accounts or specific Regions.

" + "smithy.api#documentation": "

The list of regions for which log sources are displayed.

" } }, - "listSingleDimension": { - "target": "com.amazonaws.securitylake#InputSet", + "sources": { + "target": "com.amazonaws.securitylake#LogSourceResourceList", "traits": { - "smithy.api#documentation": "

List the view of log sources for enabled Security Lake accounts for all Amazon Web Services\n sources from specific accounts or specific Regions.

" + "smithy.api#documentation": "

The list of sources for which log sources are displayed.

" } }, "maxResults": { - "target": "smithy.api#Integer", + "target": "com.amazonaws.securitylake#MaxResults", "traits": { + "smithy.api#default": 50, "smithy.api#documentation": "

The maximum number of accounts for which the log sources are displayed.

" } }, "nextToken": { - "target": "com.amazonaws.securitylake#SafeString", + "target": "com.amazonaws.securitylake#NextToken", "traits": { "smithy.api#documentation": "

If nextToken is returned, there are more results available. You can repeat the call\n using the returned token to retrieve the next page.

" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.securitylake#ListLogSourcesResponse": { "type": "structure", "members": { - "regionSourceTypesAccountsList": { - "target": "com.amazonaws.securitylake#RegionSourceTypesAccountsList", + "sources": { + "target": "com.amazonaws.securitylake#LogSourceList", "traits": { - "smithy.api#documentation": "

Lists the log sources by Regions for enabled Security Lake accounts.

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

The list of log sources in your organization that send data to the data lake.

" } }, "nextToken": { - "target": "smithy.api#String", + "target": "com.amazonaws.securitylake#NextToken", "traits": { "smithy.api#documentation": "

If nextToken is returned, there are more results available. You can repeat the call\n using the returned token to retrieve the next page.

" } } + }, + "traits": { + "smithy.api#output": {} } }, "com.amazonaws.securitylake#ListSubscribers": { @@ -2352,22 +2672,23 @@ "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" }, { - "target": "com.amazonaws.securitylake#InternalServerException" + "target": "com.amazonaws.securitylake#ConflictException" }, { - "target": "com.amazonaws.securitylake#InvalidInputException" + "target": "com.amazonaws.securitylake#InternalServerException" }, { "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { + "aws.iam#actionPermissionDescription": "Grants permission to list all subscribers", "smithy.api#documentation": "

List all subscribers for the specific Amazon Security Lake account ID. You can retrieve a list\n of subscriptions associated with a specific organization or Amazon Web Services account.

", "smithy.api#http": { "method": "GET", @@ -2387,262 +2708,157 @@ "type": "structure", "members": { "nextToken": { - "target": "smithy.api#String", + "target": "com.amazonaws.securitylake#NextToken", "traits": { "smithy.api#documentation": "

If nextToken is returned, there are more results available. You can repeat the call\n using the returned token to retrieve the next page.

", "smithy.api#httpQuery": "nextToken" } }, "maxResults": { - "target": "smithy.api#Integer", + "target": "com.amazonaws.securitylake#MaxResults", "traits": { + "smithy.api#default": 50, "smithy.api#documentation": "

The maximum number of accounts for which the configuration is displayed.

", "smithy.api#httpQuery": "maxResults" } } + }, + "traits": { + "smithy.api#input": {} } }, "com.amazonaws.securitylake#ListSubscribersResponse": { "type": "structure", "members": { "subscribers": { - "target": "com.amazonaws.securitylake#SubscriberList", + "target": "com.amazonaws.securitylake#SubscriberResourceList", "traits": { - "smithy.api#documentation": "

The subscribers available for the specified Security Lake account ID.

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

The subscribers available for the specified Security Lake account ID.

" } }, "nextToken": { - "target": "smithy.api#String", + "target": "com.amazonaws.securitylake#NextToken", "traits": { "smithy.api#documentation": "

If nextToken is returned, there are more results available. You can repeat the call\n using the returned token to retrieve the next page.

" } } + }, + "traits": { + "smithy.api#output": {} } }, - "com.amazonaws.securitylake#LogsStatus": { + "com.amazonaws.securitylake#LogSource": { "type": "structure", "members": { - "pathToLogs": { - "target": "smithy.api#String", + "account": { + "target": "com.amazonaws.securitylake#AwsAccountId", "traits": { - "smithy.api#documentation": "

Defines path the stored logs are available which has information on your systems,\n applications, and services.

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

Specify the account from which you want to collect logs.

" } }, - "healthStatus": { - "target": "com.amazonaws.securitylake#SourceStatus", + "region": { + "target": "com.amazonaws.securitylake#Region", "traits": { - "smithy.api#documentation": "

The health status of services, including error codes and patterns.

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

Specify the Regions from which you want to collect logs.

" + } + }, + "sources": { + "target": "com.amazonaws.securitylake#LogSourceResourceList", + "traits": { + "smithy.api#documentation": "

Specify the sources from which you want to collect logs.

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

Retrieves the Logs status for the Amazon Security Lake account.

" + "smithy.api#documentation": "

Amazon Security Lake can collect logs and events from natively-supported Amazon Web Services services and custom sources.

" } }, - "com.amazonaws.securitylake#LogsStatusList": { + "com.amazonaws.securitylake#LogSourceList": { "type": "list", "member": { - "target": "com.amazonaws.securitylake#LogsStatus" + "target": "com.amazonaws.securitylake#LogSource" } }, - "com.amazonaws.securitylake#OcsfEventClass": { + "com.amazonaws.securitylake#LogSourceResource": { + "type": "union", + "members": { + "awsLogSource": { + "target": "com.amazonaws.securitylake#AwsLogSourceResource", + "traits": { + "smithy.api#documentation": "

Amazon Security Lake supports log and event collection for natively supported Amazon Web Services.

" + } + }, + "customLogSource": { + "target": "com.amazonaws.securitylake#CustomLogSourceResource", + "traits": { + "smithy.api#documentation": "

Amazon Security Lake supports custom source types. For a detailed list, see the Amazon Security Lake\n User Guide.

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

The supported source types from which logs and events are collected in Amazon Security Lake.\n For the list of supported Amazon Web Services, see the Amazon Security Lake User Guide.

" + } + }, + "com.amazonaws.securitylake#LogSourceResourceList": { + "type": "list", + "member": { + "target": "com.amazonaws.securitylake#LogSourceResource" + } + }, + "com.amazonaws.securitylake#MaxResults": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 100 + } + } + }, + "com.amazonaws.securitylake#NextToken": { "type": "string", "traits": { - "smithy.api#enum": [ - { - "value": "ACCESS_ACTIVITY", - "name": "ACCESS_ACTIVITY" - }, - { - "value": "FILE_ACTIVITY", - "name": "FILE_ACTIVITY" - }, - { - "value": "KERNEL_ACTIVITY", - "name": "KERNEL_ACTIVITY" - }, - { - "value": "KERNEL_EXTENSION", - "name": "KERNEL_EXTENSION" - }, - { - "value": "MEMORY_ACTIVITY", - "name": "MEMORY_ACTIVITY" - }, - { - "value": "MODULE_ACTIVITY", - "name": "MODULE_ACTIVITY" - }, - { - "value": "PROCESS_ACTIVITY", - "name": "PROCESS_ACTIVITY" - }, - { - "value": "REGISTRY_KEY_ACTIVITY", - "name": "REGISTRY_KEY_ACTIVITY" - }, - { - "value": "REGISTRY_VALUE_ACTIVITY", - "name": "REGISTRY_VALUE_ACTIVITY" - }, - { - "value": "RESOURCE_ACTIVITY", - "name": "RESOURCE_ACTIVITY" - }, - { - "value": "SCHEDULED_JOB_ACTIVITY", - "name": "SCHEDULED_JOB_ACTIVITY" - }, - { - "value": "SECURITY_FINDING", - "name": "SECURITY_FINDING" - }, - { - "value": "ACCOUNT_CHANGE", - "name": "ACCOUNT_CHANGE" - }, - { - "value": "AUTHENTICATION", - "name": "AUTHENTICATION" - }, - { - "value": "AUTHORIZATION", - "name": "AUTHORIZATION" - }, - { - "value": "ENTITY_MANAGEMENT_AUDIT", - "name": "ENTITY_MANAGEMENT_AUDIT" - }, - { - "value": "DHCP_ACTIVITY", - "name": "DHCP_ACTIVITY" - }, - { - "value": "NETWORK_ACTIVITY", - "name": "NETWORK_ACTIVITY" - }, - { - "value": "DNS_ACTIVITY", - "name": "DNS_ACTIVITY" - }, - { - "value": "FTP_ACTIVITY", - "name": "FTP_ACTIVITY" - }, - { - "value": "HTTP_ACTIVITY", - "name": "HTTP_ACTIVITY" - }, - { - "value": "RDP_ACTIVITY", - "name": "RDP_ACTIVITY" - }, - { - "value": "SMB_ACTIVITY", - "name": "SMB_ACTIVITY" - }, - { - "value": "SSH_ACTIVITY", - "name": "SSH_ACTIVITY" - }, - { - "value": "CLOUD_API", - "name": "CLOUD_API" - }, - { - "value": "CONTAINER_LIFECYCLE", - "name": "CONTAINER_LIFECYCLE" - }, - { - "value": "DATABASE_LIFECYCLE", - "name": "DATABASE_LIFECYCLE" - }, - { - "value": "CONFIG_STATE", - "name": "CONFIG_STATE" - }, - { - "value": "CLOUD_STORAGE", - "name": "CLOUD_STORAGE" - }, - { - "value": "INVENTORY_INFO", - "name": "INVENTORY_INFO" - }, - { - "value": "RFB_ACTIVITY", - "name": "RFB_ACTIVITY" - }, - { - "value": "SMTP_ACTIVITY", - "name": "SMTP_ACTIVITY" - }, - { - "value": "VIRTUAL_MACHINE_ACTIVITY", - "name": "VIRTUAL_MACHINE_ACTIVITY" - } - ] + "smithy.api#pattern": "^[\\\\\\w\\-_:/.@=+]*$" } }, - "com.amazonaws.securitylake#ProtocolAndNotificationEndpoint": { - "type": "structure", + "com.amazonaws.securitylake#NotificationConfiguration": { + "type": "union", "members": { - "protocol": { - "target": "com.amazonaws.securitylake#SafeString", + "sqsNotificationConfiguration": { + "target": "com.amazonaws.securitylake#SqsNotificationConfiguration", "traits": { - "smithy.api#documentation": "

The protocol to which notification messages are posted.

" + "smithy.api#documentation": "

The configurations for SQS subscriber notification.

" } }, - "endpoint": { - "target": "com.amazonaws.securitylake#SafeString", + "httpsNotificationConfiguration": { + "target": "com.amazonaws.securitylake#HttpsNotificationConfiguration", "traits": { - "smithy.api#documentation": "

The account that is subscribed to receive exception notifications.

" + "smithy.api#documentation": "

The configurations for HTTPS subscriber notification.

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

Protocol used in Amazon Security Lake that dictates how notifications are posted at the\n endpoint.

" + "smithy.api#documentation": "

Specify the configurations you want to use for subscriber notification to notify the\n subscriber when new data is written to the data lake for sources that the subscriber\n consumes in Security Lake.

" + } + }, + "com.amazonaws.securitylake#OcsfEventClass": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[A-Z\\_0-9]*$" + } + }, + "com.amazonaws.securitylake#OcsfEventClassList": { + "type": "list", + "member": { + "target": "com.amazonaws.securitylake#OcsfEventClass" } }, "com.amazonaws.securitylake#Region": { "type": "string", "traits": { - "smithy.api#enum": [ - { - "value": "us-east-1", - "name": "US_EAST_1" - }, - { - "value": "us-west-2", - "name": "US_WEST_2" - }, - { - "value": "eu-central-1", - "name": "EU_CENTRAL_1" - }, - { - "value": "us-east-2", - "name": "US_EAST_2" - }, - { - "value": "eu-west-1", - "name": "EU_WEST_1" - }, - { - "value": "ap-northeast-1", - "name": "AP_NORTHEAST_1" - }, - { - "value": "ap-southeast-2", - "name": "AP_SOUTHEAST_2" - } - ] + "smithy.api#pattern": "^(af|ap|ca|eu|me|sa|us)-(central|north|(north(?:east|west))|south|south(?:east|west)|east|west)-\\d+$" } }, - "com.amazonaws.securitylake#RegionSet": { + "com.amazonaws.securitylake#RegionList": { "type": "list", "member": { "target": "com.amazonaws.securitylake#Region" @@ -2651,89 +2867,117 @@ "smithy.api#uniqueItems": {} } }, - "com.amazonaws.securitylake#RegionSourceTypesAccountsList": { - "type": "list", - "member": { - "target": "com.amazonaws.securitylake#AllDimensionsMap" + "com.amazonaws.securitylake#RegisterDataLakeDelegatedAdministrator": { + "type": "operation", + "input": { + "target": "com.amazonaws.securitylake#RegisterDataLakeDelegatedAdministratorRequest" + }, + "output": { + "target": "com.amazonaws.securitylake#RegisterDataLakeDelegatedAdministratorResponse" + }, + "errors": [ + { + "target": "com.amazonaws.securitylake#AccessDeniedException" + }, + { + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" + }, + { + "target": "com.amazonaws.securitylake#InternalServerException" + }, + { + "target": "com.amazonaws.securitylake#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.securitylake#ThrottlingException" + } + ], + "traits": { + "aws.iam#actionPermissionDescription": "Grants permission to designate an account as the Amazon Security Lake administrator account for the organization", + "aws.iam#requiredActions": [ + "iam:CreateServiceLinkedRole", + "organizations:DescribeOrganization", + "organizations:ListDelegatedAdministrators", + "organizations:RegisterDelegatedAdministrator", + "organizations:EnableAWSServiceAccess", + "organizations:ListDelegatedServicesForAccount" + ], + "smithy.api#documentation": "

Designates the Amazon Security Lake delegated administrator account for the organization. This\n API can only be called by the organization management account. The organization management\n account cannot be the delegated administrator account.

", + "smithy.api#http": { + "method": "POST", + "uri": "/v1/datalake/delegate", + "code": 200 + } } }, - "com.amazonaws.securitylake#ResourceNotFoundException": { + "com.amazonaws.securitylake#RegisterDataLakeDelegatedAdministratorRequest": { "type": "structure", "members": { - "message": { - "target": "smithy.api#String", - "traits": { - "smithy.api#required": {} - } - }, - "resourceId": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The ID of the resource for which the type of resource could not be found.

", - "smithy.api#required": {} - } - }, - "resourceType": { - "target": "smithy.api#String", + "accountId": { + "target": "com.amazonaws.securitylake#SafeString", "traits": { - "smithy.api#documentation": "

The type of the resource that could not be found.

", + "smithy.api#documentation": "

The Amazon Web Services account ID of the Security Lake delegated administrator.

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

The resource could not be found.

", - "smithy.api#error": "client", - "smithy.api#httpError": 404 - } - }, - "com.amazonaws.securitylake#ResourceShareArn": { - "type": "string", - "traits": { - "aws.api#arnReference": { - "type": "AWS::RAM::ResourceShare" - } + "smithy.api#input": {} } }, - "com.amazonaws.securitylake#ResourceShareName": { - "type": "string", + "com.amazonaws.securitylake#RegisterDataLakeDelegatedAdministratorResponse": { + "type": "structure", + "members": {}, "traits": { - "smithy.api#pattern": "^LakeFormation(?:-V[0-9]+)-([a-zA-Z0-9]+)-([\\\\\\w\\-_:/.@=+]*)$" + "smithy.api#output": {} } }, - "com.amazonaws.securitylake#RetentionSetting": { + "com.amazonaws.securitylake#ResourceNotFoundException": { "type": "structure", "members": { - "storageClass": { - "target": "com.amazonaws.securitylake#StorageClass", + "message": { + "target": "smithy.api#String" + }, + "resourceName": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The range of storage classes that you can choose from based on the data access,\n resiliency, and cost requirements of your workloads.

" + "smithy.api#documentation": "

The name of the resource that could not be found.

" } }, - "retentionPeriod": { - "target": "smithy.api#Integer", + "resourceType": { + "target": "smithy.api#String", "traits": { - "smithy.api#documentation": "

The retention period specifies a fixed period of time during which the Security Lake object\n remains locked. You can specify the retention period in days for one or more sources.

", - "smithy.api#range": { - "min": 1 - } + "smithy.api#documentation": "

The type of the resource that could not be found.

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

Retention settings for the destination Amazon S3 buckets in Amazon Security Lake.

" + "smithy.api#documentation": "

The resource could not be found.

", + "smithy.api#error": "client", + "smithy.api#httpError": 404 + } + }, + "com.amazonaws.securitylake#ResourceShareArn": { + "type": "string", + "traits": { + "aws.api#arnReference": { + "type": "AWS::RAM::ResourceShare" + } } }, - "com.amazonaws.securitylake#RetentionSettingList": { - "type": "list", - "member": { - "target": "com.amazonaws.securitylake#RetentionSetting" + "com.amazonaws.securitylake#ResourceShareName": { + "type": "string", + "traits": { + "smithy.api#pattern": "^LakeFormation(?:-V[0-9]+)-([a-zA-Z0-9]+)-([\\\\\\w\\-_:/.@=+]*)$" } }, "com.amazonaws.securitylake#RoleArn": { "type": "string", "traits": { - "smithy.api#pattern": "^arn:.*" + "smithy.api#pattern": "^arn:.*$" } }, "com.amazonaws.securitylake#S3BucketArn": { @@ -2744,20 +2988,15 @@ } } }, - "com.amazonaws.securitylake#S3Exception": { - "type": "structure", - "members": { - "message": { - "target": "smithy.api#String", - "traits": { - "smithy.api#required": {} - } - } - }, + "com.amazonaws.securitylake#S3URI": { + "type": "string", "traits": { - "smithy.api#documentation": "

Provides an extension of the AmazonServiceException for errors reported by Amazon S3 while processing a request. In particular, this class provides access to the\n Amazon S3 extended request ID. If Amazon S3 is incorrectly handling a\n request and you need to contact Amazon, this extended request ID may provide useful\n debugging information.

", - "smithy.api#error": "client", - "smithy.api#httpError": 400 + "smithy.api#documentation": "A complete S3 URI pointing to a valid S3 object.", + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^s3[an]?://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/[^/].*)+$" } }, "com.amazonaws.securitylake#SafeString": { @@ -2771,94 +3010,33 @@ "version": "2018-05-10", "operations": [ { - "target": "com.amazonaws.securitylake#CreateAwsLogSource" - }, - { - "target": "com.amazonaws.securitylake#CreateCustomLogSource" - }, - { - "target": "com.amazonaws.securitylake#CreateDatalake" - }, - { - "target": "com.amazonaws.securitylake#CreateDatalakeAutoEnable" - }, - { - "target": "com.amazonaws.securitylake#CreateDatalakeDelegatedAdmin" - }, - { - "target": "com.amazonaws.securitylake#CreateDatalakeExceptionsSubscription" - }, - { - "target": "com.amazonaws.securitylake#CreateSubscriber" - }, - { - "target": "com.amazonaws.securitylake#CreateSubscriptionNotificationConfiguration" - }, - { - "target": "com.amazonaws.securitylake#DeleteAwsLogSource" - }, - { - "target": "com.amazonaws.securitylake#DeleteCustomLogSource" - }, - { - "target": "com.amazonaws.securitylake#DeleteDatalake" - }, - { - "target": "com.amazonaws.securitylake#DeleteDatalakeAutoEnable" - }, - { - "target": "com.amazonaws.securitylake#DeleteDatalakeDelegatedAdmin" - }, - { - "target": "com.amazonaws.securitylake#DeleteDatalakeExceptionsSubscription" - }, - { - "target": "com.amazonaws.securitylake#DeleteSubscriber" - }, - { - "target": "com.amazonaws.securitylake#DeleteSubscriptionNotificationConfiguration" - }, - { - "target": "com.amazonaws.securitylake#GetDatalake" - }, - { - "target": "com.amazonaws.securitylake#GetDatalakeAutoEnable" - }, - { - "target": "com.amazonaws.securitylake#GetDatalakeExceptionsExpiry" - }, - { - "target": "com.amazonaws.securitylake#GetDatalakeExceptionsSubscription" - }, - { - "target": "com.amazonaws.securitylake#GetDatalakeStatus" - }, - { - "target": "com.amazonaws.securitylake#GetSubscriber" + "target": "com.amazonaws.securitylake#CreateDataLakeExceptionSubscription" }, { - "target": "com.amazonaws.securitylake#ListDatalakeExceptions" + "target": "com.amazonaws.securitylake#DeleteDataLakeExceptionSubscription" }, { - "target": "com.amazonaws.securitylake#ListLogSources" + "target": "com.amazonaws.securitylake#DeregisterDataLakeDelegatedAdministrator" }, { - "target": "com.amazonaws.securitylake#ListSubscribers" + "target": "com.amazonaws.securitylake#GetDataLakeExceptionSubscription" }, { - "target": "com.amazonaws.securitylake#UpdateDatalake" + "target": "com.amazonaws.securitylake#ListDataLakeExceptions" }, { - "target": "com.amazonaws.securitylake#UpdateDatalakeExceptionsExpiry" + "target": "com.amazonaws.securitylake#RegisterDataLakeDelegatedAdministrator" }, { - "target": "com.amazonaws.securitylake#UpdateDatalakeExceptionsSubscription" - }, + "target": "com.amazonaws.securitylake#UpdateDataLakeExceptionSubscription" + } + ], + "resources": [ { - "target": "com.amazonaws.securitylake#UpdateSubscriber" + "target": "com.amazonaws.securitylake#DataLake" }, { - "target": "com.amazonaws.securitylake#UpdateSubscriptionNotificationConfiguration" + "target": "com.amazonaws.securitylake#Subscriber" } ], "traits": { @@ -2870,6 +3048,7 @@ "aws.auth#sigv4": { "name": "securitylake" }, + "aws.iam#supportedPrincipalTypes": ["Root", "IAMUser", "IAMRole", "FederatedUser"], "aws.protocols#restJson1": {}, "smithy.api#cors": { "additionalAllowedHeaders": [ @@ -2883,7 +3062,7 @@ "additionalExposedHeaders": ["x-amzn-errortype", "x-amzn-requestid", "x-amzn-trace-id"], "maxAge": 86400 }, - "smithy.api#documentation": "\n

Amazon Security Lake is in preview release. Your use of the Security Lake preview is subject to\n Section 2 of the Amazon Web Services Service\n Terms(\"Betas and Previews\").

\n
\n

Amazon Security Lake is a fully managed security data lake service. You can use Security Lake to\n automatically centralize security data from cloud, on-premises, and custom sources into a\n data lake that's stored in your Amazon Web Servicesaccount. Amazon Web Services Organizations\n is an account management service that lets you consolidate multiple Amazon Web Services\n accounts into an organization that you create and centrally manage. With Organizations, you\n can create member accounts and invite existing accounts to join your organization.\n Security Lake helps you analyze security data for a more complete understanding of your\n security posture across the entire organization. It can also help you improve the\n protection of your workloads, applications, and data.

\n

The data lake is backed by Amazon Simple Storage Service (Amazon S3) buckets, and you\n retain ownership over your data.

\n

Amazon Security Lake integrates with CloudTrail, a service that provides a record of\n actions taken by a user, role, or an Amazon Web Services service in Security Lake CloudTrail captures API calls for Security Lake as events. The calls captured include calls\n from the Security Lake console and code calls to the Security Lake API operations. If you create a\n trail, you can enable continuous delivery of CloudTrail events to an Amazon S3 bucket, including events for Security Lake. If you don't configure a trail, you can still\n view the most recent events in the CloudTrail console in Event history. Using the\n information collected by CloudTrail you can determine the request that was made to\n Security Lake, the IP address from which the request was made, who made the request, when it\n was made, and additional details. To learn more about Security Lake information in CloudTrail, see the Amazon Security Lake User Guide.

\n

Security Lake automates the collection of security-related log and event data from\n integrated Amazon Web Services and third-party services. It also helps you manage\n the lifecycle of data with customizable retention and replication settings. Security Lake\n converts ingested data into Apache Parquet format and a standard open-source schema called\n the Open Cybersecurity Schema Framework (OCSF).

\n

Other Amazon Web Services and third-party services can subscribe to the data that's stored in Security Lake for \n incident response and security data analytics.

", + "smithy.api#documentation": "

Amazon Security Lake is a fully managed security data lake service. You can use Security Lake to\n automatically centralize security data from cloud, on-premises, and custom sources into a\n data lake that's stored in your Amazon Web Services account. Amazon Web Services Organizations\n is an account management service that lets you consolidate multiple Amazon Web Services\n accounts into an organization that you create and centrally manage. With Organizations, you\n can create member accounts and invite existing accounts to join your organization.\n Security Lake helps you analyze security data for a more complete understanding of your\n security posture across the entire organization. It can also help you improve the\n protection of your workloads, applications, and data.

\n

The data lake is backed by Amazon Simple Storage Service (Amazon S3) buckets, and you\n retain ownership over your data.

\n

Amazon Security Lake integrates with CloudTrail, a service that provides a record of\n actions taken by a user, role, or an Amazon Web Services service. In Security Lake, CloudTrail captures API calls for Security Lake as events. The calls captured include calls\n from the Security Lake console and code calls to the Security Lake API operations. If you create a\n trail, you can enable continuous delivery of CloudTrail events to an Amazon S3 bucket, including events for Security Lake. If you don't configure a trail, you can still\n view the most recent events in the CloudTrail console in Event history. Using the\n information collected by CloudTrail you can determine the request that was made to\n Security Lake, the IP address from which the request was made, who made the request, when it\n was made, and additional details. To learn more about Security Lake information in CloudTrail, see the Amazon Security Lake User Guide.

\n

Security Lake automates the collection of security-related log and event data from\n integrated Amazon Web Services and third-party services. It also helps you manage\n the lifecycle of data with customizable retention and replication settings. Security Lake\n converts ingested data into Apache Parquet format and a standard open-source schema called\n the Open Cybersecurity Schema Framework (OCSF).

\n

Other Amazon Web Services and third-party services can subscribe to the data that's stored in Security Lake for \n incident response and security data analytics.

", "smithy.api#title": "Amazon Security Lake", "smithy.rules#endpointRuleSet": { "version": "1.0", @@ -3245,9 +3424,9 @@ } }, "params": { - "UseFIPS": true, + "UseDualStack": true, "Region": "us-gov-east-1", - "UseDualStack": true + "UseFIPS": true } }, { @@ -3258,9 +3437,9 @@ } }, "params": { - "UseFIPS": true, + "UseDualStack": false, "Region": "us-gov-east-1", - "UseDualStack": false + "UseFIPS": true } }, { @@ -3271,9 +3450,9 @@ } }, "params": { - "UseFIPS": false, + "UseDualStack": true, "Region": "us-gov-east-1", - "UseDualStack": true + "UseFIPS": false } }, { @@ -3284,9 +3463,9 @@ } }, "params": { - "UseFIPS": false, + "UseDualStack": false, "Region": "us-gov-east-1", - "UseDualStack": false + "UseFIPS": false } }, { @@ -3297,9 +3476,9 @@ } }, "params": { - "UseFIPS": true, + "UseDualStack": true, "Region": "cn-north-1", - "UseDualStack": true + "UseFIPS": true } }, { @@ -3310,9 +3489,9 @@ } }, "params": { - "UseFIPS": true, + "UseDualStack": false, "Region": "cn-north-1", - "UseDualStack": false + "UseFIPS": true } }, { @@ -3323,9 +3502,9 @@ } }, "params": { - "UseFIPS": false, + "UseDualStack": true, "Region": "cn-north-1", - "UseDualStack": true + "UseFIPS": false } }, { @@ -3336,9 +3515,9 @@ } }, "params": { - "UseFIPS": false, + "UseDualStack": false, "Region": "cn-north-1", - "UseDualStack": false + "UseFIPS": false } }, { @@ -3347,9 +3526,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, + "UseDualStack": true, "Region": "us-iso-east-1", - "UseDualStack": true + "UseFIPS": true } }, { @@ -3360,9 +3539,9 @@ } }, "params": { - "UseFIPS": true, + "UseDualStack": false, "Region": "us-iso-east-1", - "UseDualStack": false + "UseFIPS": true } }, { @@ -3371,9 +3550,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, + "UseDualStack": true, "Region": "us-iso-east-1", - "UseDualStack": true + "UseFIPS": false } }, { @@ -3384,9 +3563,9 @@ } }, "params": { - "UseFIPS": false, + "UseDualStack": false, "Region": "us-iso-east-1", - "UseDualStack": false + "UseFIPS": false } }, { @@ -3397,9 +3576,9 @@ } }, "params": { - "UseFIPS": true, + "UseDualStack": true, "Region": "us-east-1", - "UseDualStack": true + "UseFIPS": true } }, { @@ -3410,9 +3589,9 @@ } }, "params": { - "UseFIPS": true, + "UseDualStack": false, "Region": "us-east-1", - "UseDualStack": false + "UseFIPS": true } }, { @@ -3423,9 +3602,9 @@ } }, "params": { - "UseFIPS": false, + "UseDualStack": true, "Region": "us-east-1", - "UseDualStack": true + "UseFIPS": false } }, { @@ -3436,9 +3615,9 @@ } }, "params": { - "UseFIPS": false, + "UseDualStack": false, "Region": "us-east-1", - "UseDualStack": false + "UseFIPS": false } }, { @@ -3447,9 +3626,9 @@ "error": "FIPS and DualStack are enabled, but this partition does not support one or both" }, "params": { - "UseFIPS": true, + "UseDualStack": true, "Region": "us-isob-east-1", - "UseDualStack": true + "UseFIPS": true } }, { @@ -3460,9 +3639,9 @@ } }, "params": { - "UseFIPS": true, + "UseDualStack": false, "Region": "us-isob-east-1", - "UseDualStack": false + "UseFIPS": true } }, { @@ -3471,9 +3650,9 @@ "error": "DualStack is enabled but this partition does not support DualStack" }, "params": { - "UseFIPS": false, + "UseDualStack": true, "Region": "us-isob-east-1", - "UseDualStack": true + "UseFIPS": false } }, { @@ -3484,9 +3663,9 @@ } }, "params": { - "UseFIPS": false, + "UseDualStack": false, "Region": "us-isob-east-1", - "UseDualStack": false + "UseFIPS": false } }, { @@ -3497,9 +3676,9 @@ } }, "params": { - "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } }, @@ -3509,9 +3688,9 @@ "error": "Invalid Configuration: FIPS and custom endpoint are not supported" }, "params": { - "UseFIPS": true, - "Region": "us-east-1", "UseDualStack": false, + "Region": "us-east-1", + "UseFIPS": true, "Endpoint": "https://example.com" } }, @@ -3521,9 +3700,9 @@ "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" }, "params": { - "UseFIPS": false, - "Region": "us-east-1", "UseDualStack": true, + "Region": "us-east-1", + "UseFIPS": false, "Endpoint": "https://example.com" } } @@ -3532,345 +3711,231 @@ } } }, - "com.amazonaws.securitylake#ServiceQuotaExceededException": { - "type": "structure", + "com.amazonaws.securitylake#SourceCollectionStatus": { + "type": "enum", "members": { - "message": { - "target": "smithy.api#String", - "traits": { - "smithy.api#required": {} - } - }, - "resourceId": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The ID of the resource that exceeds the service quota.

", - "smithy.api#required": {} - } - }, - "resourceType": { - "target": "smithy.api#String", + "COLLECTING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The type of the resource that exceeds the service quota.

", - "smithy.api#required": {} + "smithy.api#enumValue": "COLLECTING" } }, - "serviceCode": { - "target": "smithy.api#String", + "MISCONFIGURED": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The code for the service in Service Quotas.

", - "smithy.api#required": {} + "smithy.api#enumValue": "MISCONFIGURED" } }, - "quotaCode": { - "target": "smithy.api#String", + "NOT_COLLECTING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

That the rate of requests to Security Lake is exceeding the request quotas for your Amazon Web Services account.

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

You have exceeded your service quota. To perform the requested action, remove some of\n the relevant resources, or use Service Quotas to request a service quota increase.

", - "smithy.api#error": "client", - "smithy.api#httpError": 402 - } - }, - "com.amazonaws.securitylake#SnsTopicArn": { - "type": "string", - "traits": { - "aws.api#arnReference": { - "type": "AWS::SNS::Topic" - } } }, - "com.amazonaws.securitylake#SourceStatus": { - "type": "string", + "com.amazonaws.securitylake#SqsNotificationConfiguration": { + "type": "structure", + "members": {}, "traits": { - "smithy.api#enum": [ - { - "value": "ACTIVE", - "name": "ACTIVE" - }, - { - "value": "DEACTIVATED", - "name": "DEACTIVATED" - }, - { - "value": "PENDING", - "name": "PENDING" - } - ] + "smithy.api#documentation": "

The configurations for SQS subscriber notification.

" } }, - "com.amazonaws.securitylake#SourceType": { - "type": "union", - "members": { - "awsSourceType": { - "target": "com.amazonaws.securitylake#AwsLogSourceType", - "traits": { - "smithy.api#documentation": "

Amazon Security Lake supports log and event collection for natively supported Amazon Web Services.

" - } - }, - "customSourceType": { - "target": "com.amazonaws.securitylake#CustomSourceType", - "traits": { - "smithy.api#documentation": "

Amazon Security Lake supports custom source types. For a detailed list, see the Amazon Security Lake\n User Guide.

" - } + "com.amazonaws.securitylake#Subscriber": { + "type": "resource", + "identifiers": { + "subscriberId": { + "target": "com.amazonaws.securitylake#UUID" } }, - "traits": { - "smithy.api#documentation": "

The supported source types from which logs and events are collected in Amazon Security Lake.\n For the list of supported Amazon Web Services, see the Amazon Security Lake User Guide.

" - } - }, - "com.amazonaws.securitylake#SourceTypeList": { - "type": "list", - "member": { - "target": "com.amazonaws.securitylake#SourceType" + "create": { + "target": "com.amazonaws.securitylake#CreateSubscriber" }, + "read": { + "target": "com.amazonaws.securitylake#GetSubscriber" + }, + "update": { + "target": "com.amazonaws.securitylake#UpdateSubscriber" + }, + "delete": { + "target": "com.amazonaws.securitylake#DeleteSubscriber" + }, + "list": { + "target": "com.amazonaws.securitylake#ListSubscribers" + }, + "operations": [ + { + "target": "com.amazonaws.securitylake#CreateSubscriberNotification" + }, + { + "target": "com.amazonaws.securitylake#DeleteSubscriberNotification" + }, + { + "target": "com.amazonaws.securitylake#UpdateSubscriberNotification" + } + ], "traits": { - "smithy.api#uniqueItems": {} - } - }, - "com.amazonaws.securitylake#StorageClass": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "STANDARD_IA", - "name": "STANDARD_IA" - }, - { - "value": "ONEZONE_IA", - "name": "ONEZONE_IA" - }, - { - "value": "INTELLIGENT_TIERING", - "name": "INTELLIGENT_TIERING" - }, - { - "value": "GLACIER_IR", - "name": "GLACIER_IR" - }, - { - "value": "GLACIER", - "name": "GLACIER" - }, - { - "value": "DEEP_ARCHIVE", - "name": "DEEP_ARCHIVE" - }, - { - "value": "EXPIRE", - "name": "EXPIRE" - } - ] - } - }, - "com.amazonaws.securitylake#SubscriberList": { - "type": "list", - "member": { - "target": "com.amazonaws.securitylake#SubscriberResource" + "aws.api#arn": { + "template": "subscriber/{subscriberId}" + }, + "aws.iam#disableConditionKeyInference": {}, + "aws.iam#iamResource": { + "name": "subscriber" + }, + "smithy.api#documentation": "Represents a subscriber resource that allows access to sources" } }, "com.amazonaws.securitylake#SubscriberResource": { "type": "structure", "members": { - "subscriptionId": { + "subscriberId": { "target": "com.amazonaws.securitylake#UUID", "traits": { - "smithy.api#documentation": "

The subscription ID of the Amazon Security Lake subscriber account.

", + "smithy.api#documentation": "

The subscriber ID of the Amazon Security Lake subscriber account.

", "smithy.api#required": {} } }, - "sourceTypes": { - "target": "com.amazonaws.securitylake#SourceTypeList", + "subscriberArn": { + "target": "com.amazonaws.securitylake#AmazonResourceName", "traits": { - "smithy.api#documentation": "

Amazon Security Lake supports log and event collection for natively supported Amazon Web Services. For more information, see the Amazon Security Lake User Guide.

", + "smithy.api#documentation": "

The subscriber ARN of the Amazon Security Lake subscriber account.

", "smithy.api#required": {} } }, - "accountId": { - "target": "com.amazonaws.securitylake#AwsAccountId", + "subscriberIdentity": { + "target": "com.amazonaws.securitylake#AwsIdentity", "traits": { - "smithy.api#documentation": "

The Amazon Web Services account ID you are using to create your Amazon Security Lake\n account.

", + "smithy.api#documentation": "

The AWS identity used to access your data.

", "smithy.api#required": {} } }, "subscriberName": { "target": "com.amazonaws.securitylake#SafeString", "traits": { - "smithy.api#documentation": "

The name of your Amazon Security Lake subscriber account.

" + "smithy.api#documentation": "

The name of your Amazon Security Lake subscriber account.

", + "smithy.api#required": {} } }, "subscriberDescription": { "target": "com.amazonaws.securitylake#SafeString", "traits": { - "smithy.api#documentation": "

The subscriber descriptions for a subscriber account. The description for a subscriber\n includes subscriberName, accountID, externalID, and\n subscriptionId.

" + "smithy.api#documentation": "

The subscriber descriptions for a subscriber account. The description for a subscriber\n includes subscriberName, accountID, externalID, and\n subscriberId.

" } }, - "subscriptionStatus": { - "target": "com.amazonaws.securitylake#SubscriptionStatus", + "sources": { + "target": "com.amazonaws.securitylake#LogSourceResourceList", "traits": { - "smithy.api#documentation": "

The subscription status of the Amazon Security Lake subscriber account.

" + "smithy.api#documentation": "

Amazon Security Lake supports log and event collection for natively supported Amazon Web Services. For more information, see the Amazon Security Lake User Guide.

", + "smithy.api#required": {} } }, - "roleArn": { - "target": "com.amazonaws.securitylake#RoleArn", + "accessTypes": { + "target": "com.amazonaws.securitylake#AccessTypeList", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) specifying the role of the subscriber.

" + "smithy.api#documentation": "

You can choose to notify subscribers of new objects with an Amazon Simple Queue Service\n (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the\n subscriber.

\n

Subscribers can consume data by directly querying Lake Formation tables in your\n Amazon S3 bucket through services like Amazon Athena. This subscription\n type is defined as LAKEFORMATION.

" } }, - "snsArn": { - "target": "com.amazonaws.securitylake#SnsTopicArn", + "roleArn": { + "target": "com.amazonaws.securitylake#RoleArn", "traits": { - "smithy.api#documentation": "

The ARN for the Amazon Simple Notification Service.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) specifying the role of the subscriber.

" } }, "s3BucketArn": { "target": "com.amazonaws.securitylake#S3BucketArn", "traits": { - "smithy.api#documentation": "

The ARN for the Amazon S3 bucket.

" + "smithy.api#documentation": "

The ARN for the Amazon S3 bucket.

" } }, - "accessTypes": { - "target": "com.amazonaws.securitylake#AccessTypeList", + "subscriberEndpoint": { + "target": "com.amazonaws.securitylake#SafeString", "traits": { - "smithy.api#documentation": "

You can choose to notify subscribers of new objects with an Amazon Simple Queue Service\n (Amazon SQS) queue or through messaging to an HTTPS endpoint provided by the\n subscriber.

\n

Subscribers can consume data by directly querying Lake Formation tables in your\n Amazon S3 bucket through services like Amazon Athena. This subscription\n type is defined as LAKEFORMATION.

" + "smithy.api#documentation": "

The subscriber endpoint to which exception messages are posted.

" } }, - "subscriptionEndpoint": { - "target": "smithy.api#String", + "subscriberStatus": { + "target": "com.amazonaws.securitylake#SubscriberStatus", "traits": { - "smithy.api#documentation": "

The subscription endpoint to which exception messages are posted.

" + "smithy.api#documentation": "

The subscriber status of the Amazon Security Lake subscriber account.

" } }, - "subscriptionProtocol": { - "target": "com.amazonaws.securitylake#EndpointProtocol", + "resourceShareArn": { + "target": "com.amazonaws.securitylake#ResourceShareArn", "traits": { - "smithy.api#documentation": "

The subscription protocol to which exception messages are posted.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before\n accepting the RAM resource share invitation, you can view details related to the RAM\n resource share.

\n

This field is available only for Lake Formation subscribers created after March 8, 2023.

" } }, - "externalId": { - "target": "com.amazonaws.securitylake#SafeString", + "resourceShareName": { + "target": "com.amazonaws.securitylake#ResourceShareName", "traits": { - "smithy.api#documentation": "

The external ID of the subscriber. The external ID lets the user that is assuming the\n role assert the circumstances in which they are operating. It also provides a way for the\n account owner to permit the role to be assumed only under specific circumstances.

" + "smithy.api#documentation": "

The name of the resource share.

" } }, "createdAt": { "target": "smithy.api#Timestamp", "traits": { - "smithy.api#documentation": "

The date and time when the subscription was created.

", + "smithy.api#documentation": "

The date and time when the subscriber was created.

", "smithy.api#timestampFormat": "date-time" } }, "updatedAt": { "target": "smithy.api#Timestamp", "traits": { - "smithy.api#documentation": "

The date and time when the subscription was created.

", + "smithy.api#documentation": "

The date and time when the subscriber was last updated.

", "smithy.api#timestampFormat": "date-time" } + } + }, + "traits": { + "smithy.api#documentation": "

Provides details about the Amazon Security Lake account subscription. Subscribers are notified\n of new objects for a source as the data is written to your Amazon S3 bucket for\n Security Lake.

" + } + }, + "com.amazonaws.securitylake#SubscriberResourceList": { + "type": "list", + "member": { + "target": "com.amazonaws.securitylake#SubscriberResource" + } + }, + "com.amazonaws.securitylake#SubscriberStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ACTIVE" + } + }, + "DEACTIVATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEACTIVATED" + } }, - "resourceShareArn": { - "target": "com.amazonaws.securitylake#ResourceShareArn", + "PENDING": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) which uniquely defines the AWS RAM resource share. Before\n accepting the RAM resource share invitation, you can view details related to the RAM\n resource share.

\n

This field is available only for Lake Formation subscribers created after March 8, 2023.

" + "smithy.api#enumValue": "PENDING" } }, - "resourceShareName": { - "target": "com.amazonaws.securitylake#ResourceShareName", + "READY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The name of the resource share.

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

Provides details about the Amazon Security Lake account subscription. Subscribers are notified\n of new objects for a source as the data is written to your Amazon S3 bucket for\n Security Lake.

" - } - }, - "com.amazonaws.securitylake#SubscriptionProtocolType": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "HTTP", - "name": "HTTP" - }, - { - "value": "HTTPS", - "name": "HTTPS" - }, - { - "value": "EMAIL", - "name": "EMAIL" - }, - { - "value": "EMAIL_JSON", - "name": "EMAIL_JSON" - }, - { - "value": "SMS", - "name": "SMS" - }, - { - "value": "SQS", - "name": "SQS" - }, - { - "value": "LAMBDA", - "name": "LAMBDA" - }, - { - "value": "APP", - "name": "APP" - }, - { - "value": "FIREHOSE", - "name": "FIREHOSE" - } - ] } }, - "com.amazonaws.securitylake#SubscriptionStatus": { + "com.amazonaws.securitylake#SubscriptionProtocol": { "type": "string", "traits": { - "smithy.api#enum": [ - { - "value": "ACTIVE", - "name": "ACTIVE" - }, - { - "value": "DEACTIVATED", - "name": "DEACTIVATED" - }, - { - "value": "PENDING", - "name": "PENDING" - }, - { - "value": "READY", - "name": "READY" - } - ] - } - }, - "com.amazonaws.securitylake#TagsMap": { - "type": "map", - "key": { - "target": "smithy.api#String" - }, - "value": { - "target": "smithy.api#String" + "smithy.api#pattern": "^[a-z\\-]*$" } }, "com.amazonaws.securitylake#ThrottlingException": { "type": "structure", "members": { "message": { - "target": "smithy.api#String", - "traits": { - "smithy.api#required": {} - } + "target": "smithy.api#String" }, "serviceCode": { "target": "smithy.api#String", @@ -3887,13 +3952,13 @@ "retryAfterSeconds": { "target": "smithy.api#Integer", "traits": { - "smithy.api#documentation": "

Retry the request after the specified time.

", + "smithy.api#documentation": "

Retry the request after the specified time.

", "smithy.api#httpHeader": "Retry-After" } } }, "traits": { - "smithy.api#documentation": "

The limit on the number of requests per second was exceeded.

", + "smithy.api#documentation": "

The limit on the number of requests per second was exceeded.

", "smithy.api#error": "client", "smithy.api#httpError": 429, "smithy.api#retryable": { @@ -3901,35 +3966,29 @@ } } }, - "com.amazonaws.securitylake#TwoDimensionsMap": { - "type": "map", - "key": { - "target": "smithy.api#String" - }, - "value": { - "target": "com.amazonaws.securitylake#ValueSet" - } - }, "com.amazonaws.securitylake#UUID": { "type": "string", "traits": { - "smithy.api#pattern": "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + "smithy.api#pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" } }, - "com.amazonaws.securitylake#UpdateDatalake": { + "com.amazonaws.securitylake#UpdateDataLake": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#UpdateDatalakeRequest" + "target": "com.amazonaws.securitylake#UpdateDataLakeRequest" }, "output": { - "target": "com.amazonaws.securitylake#UpdateDatalakeResponse" + "target": "com.amazonaws.securitylake#UpdateDataLakeResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#EventBridgeException" + "target": "com.amazonaws.securitylake#BadRequestException" + }, + { + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" @@ -3938,11 +3997,37 @@ "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Specifies where to store your security data and for how long. You can add a rollup\n Region to consolidate data from multiple Amazon Web Services Regions.

", + "aws.iam#actionPermissionDescription": "Grants permission to update a security data lake", + "aws.iam#requiredActions": [ + "iam:CreateServiceLinkedRole", + "iam:GetRole", + "iam:PutRolePolicy", + "iam:DeleteRolePolicy", + "s3:PutBucketPolicy", + "s3:PutBucketPublicAccessBlock", + "s3:CreateBucket", + "s3:ListBucket", + "s3:PutBucketVersioning", + "s3:PutBucketVersioning", + "organizations:DescribeOrganization", + "organizations:ListDelegatedServicesForAccount", + "lakeformation:GetDataLakeSettings", + "lakeformation:PutDataLakeSettings", + "kms:DescribeKey", + "kms:CreateGrant", + "events:PutRule", + "events:PutTargets", + "sqs:CreateQueue", + "sqs:GetQueueAttributes", + "sqs:SetQueueAttributes", + "lambda:CreateFunction", + "lambda:CreateEventSourceMapping" + ], + "smithy.api#documentation": "

Specifies where to store your security data and for how long. You can add a rollup\n Region to consolidate data from multiple Amazon Web Services Regions.

", "smithy.api#http": { "method": "PUT", "uri": "/v1/datalake", @@ -3951,100 +4036,52 @@ "smithy.api#idempotent": {} } }, - "com.amazonaws.securitylake#UpdateDatalakeExceptionsExpiry": { + "com.amazonaws.securitylake#UpdateDataLakeExceptionSubscription": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#UpdateDatalakeExceptionsExpiryRequest" + "target": "com.amazonaws.securitylake#UpdateDataLakeExceptionSubscriptionRequest" }, "output": { - "target": "com.amazonaws.securitylake#UpdateDatalakeExceptionsExpiryResponse" + "target": "com.amazonaws.securitylake#UpdateDataLakeExceptionSubscriptionResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" - }, - { - "target": "com.amazonaws.securitylake#InternalServerException" + "target": "com.amazonaws.securitylake#BadRequestException" }, { - "target": "com.amazonaws.securitylake#ValidationException" - } - ], - "traits": { - "smithy.api#documentation": "

Update the expiration period for the exception message to your preferred time, and\n control the time-to-live (TTL) for the exception message to remain. Exceptions are stored\n by default for 2 weeks from when a record was created in Amazon Security Lake.

", - "smithy.api#http": { - "method": "PUT", - "uri": "/v1/datalake/exceptions/expiry", - "code": 200 - } - } - }, - "com.amazonaws.securitylake#UpdateDatalakeExceptionsExpiryRequest": { - "type": "structure", - "members": { - "exceptionMessageExpiry": { - "target": "smithy.api#Long", - "traits": { - "smithy.api#documentation": "

The time-to-live (TTL) for the exception message to remain.

", - "smithy.api#range": { - "min": 1 - }, - "smithy.api#required": {} - } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.securitylake#UpdateDatalakeExceptionsExpiryResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.securitylake#UpdateDatalakeExceptionsSubscription": { - "type": "operation", - "input": { - "target": "com.amazonaws.securitylake#UpdateDatalakeExceptionsSubscriptionRequest" - }, - "output": { - "target": "com.amazonaws.securitylake#UpdateDatalakeExceptionsSubscriptionResponse" - }, - "errors": [ - { - "target": "com.amazonaws.securitylake#AccessDeniedException" + "target": "com.amazonaws.securitylake#ConflictException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#InternalServerException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { + "aws.iam#actionPermissionDescription": "Grants permission to update subscriptions to the SNS topics for exception notifications", "smithy.api#documentation": "

Updates the specified notification subscription in Amazon Security Lake for the organization\n you specify.

", "smithy.api#http": { "method": "PUT", "uri": "/v1/datalake/exceptions/subscription", "code": 200 - } + }, + "smithy.api#idempotent": {} } }, - "com.amazonaws.securitylake#UpdateDatalakeExceptionsSubscriptionRequest": { + "com.amazonaws.securitylake#UpdateDataLakeExceptionSubscriptionRequest": { "type": "structure", "members": { "subscriptionProtocol": { - "target": "com.amazonaws.securitylake#SubscriptionProtocolType", + "target": "com.amazonaws.securitylake#SubscriptionProtocol", "traits": { - "smithy.api#documentation": "

The subscription protocol to which exception messages are posted.

", + "smithy.api#documentation": "

The subscription protocol to which exception messages are posted.

", "smithy.api#required": {} } }, @@ -4054,24 +4091,33 @@ "smithy.api#documentation": "

The account that is subscribed to receive exception notifications.

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

The time-to-live (TTL) for the exception message to remain.

", + "smithy.api#range": { + "min": 1 + } + } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.securitylake#UpdateDatalakeExceptionsSubscriptionResponse": { + "com.amazonaws.securitylake#UpdateDataLakeExceptionSubscriptionResponse": { "type": "structure", "members": {}, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.securitylake#UpdateDatalakeRequest": { + "com.amazonaws.securitylake#UpdateDataLakeRequest": { "type": "structure", "members": { "configurations": { - "target": "com.amazonaws.securitylake#LakeConfigurationRequestMap", + "target": "com.amazonaws.securitylake#DataLakeConfigurationList", "traits": { "smithy.api#documentation": "

Specify the Region or Regions that will contribute data to the rollup region.

", "smithy.api#required": {} @@ -4082,37 +4128,18 @@ "smithy.api#input": {} } }, - "com.amazonaws.securitylake#UpdateDatalakeResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.securitylake#UpdateStatus": { + "com.amazonaws.securitylake#UpdateDataLakeResponse": { "type": "structure", "members": { - "lastUpdateRequestId": { - "target": "smithy.api#String", + "dataLakes": { + "target": "com.amazonaws.securitylake#DataLakeResourceList", "traits": { - "smithy.api#documentation": "

The unique ID for the UpdateDatalake or DeleteDatalake API\n request.

" - } - }, - "lastUpdateStatus": { - "target": "com.amazonaws.securitylake#settingsStatus", - "traits": { - "smithy.api#documentation": "

The status of the last UpdateDatalake or DeleteDatalake API\n request that was requested.

" - } - }, - "lastUpdateFailure": { - "target": "com.amazonaws.securitylake#LastUpdateFailure", - "traits": { - "smithy.api#documentation": "

The details of the last UpdateDatalakeor DeleteDatalake API\n request which failed.

" + "smithy.api#documentation": "

The created Security Lake configuration object.

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

The status of the last UpdateDatalake or DeleteDatalake API\n request. This is set to Completed after the configuration is updated, or removed if\n deletion of the data lake is successful.

" + "smithy.api#output": {} } }, "com.amazonaws.securitylake#UpdateSubscriber": { @@ -4128,297 +4155,202 @@ "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" - }, - { - "target": "com.amazonaws.securitylake#ConcurrentModificationException" + "target": "com.amazonaws.securitylake#BadRequestException" }, { - "target": "com.amazonaws.securitylake#ConflictSubscriptionException" + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, { - "target": "com.amazonaws.securitylake#InvalidInputException" + "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

Updates an existing subscription for the given Amazon Security Lake account ID. You can update\n a subscriber by changing the sources that the subscriber consumes data from.

", + "aws.iam#actionPermissionDescription": "Grants permission to update subscriber", + "aws.iam#requiredActions": [ + "iam:GetRole", + "iam:PutRolePolicy", + "iam:DeleteRolePolicy", + "events:CreateApiDestination", + "events:CreateConnection", + "events:ListApiDestinations", + "events:ListConnections", + "events:PutRule", + "events:DescribeRule", + "events:PutTargets" + ], + "smithy.api#documentation": "

Updates an existing subscription for the given Amazon Security Lake account ID. You can update\n a subscriber by changing the sources that the subscriber consumes data from.

", "smithy.api#http": { "method": "PUT", - "uri": "/v1/subscribers/{id}", + "uri": "/v1/subscribers/{subscriberId}", "code": 200 }, "smithy.api#idempotent": {} } }, - "com.amazonaws.securitylake#UpdateSubscriberRequest": { - "type": "structure", - "members": { - "id": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

A value created by Security Lake that uniquely identifies your subscription.

", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "sourceTypes": { - "target": "com.amazonaws.securitylake#SourceTypeList", - "traits": { - "smithy.api#documentation": "

The supported Amazon Web Services from which logs and events are collected. For\n the list of supported Amazon Web Services, see the Amazon Security Lake User Guide.

", - "smithy.api#required": {} - } - }, - "externalId": { - "target": "com.amazonaws.securitylake#SafeString", - "traits": { - "smithy.api#documentation": "

The external ID of the Security Lake account.

" - } - }, - "subscriberName": { - "target": "com.amazonaws.securitylake#SafeString", - "traits": { - "smithy.api#documentation": "

The name of the Security Lake account subscriber.

", - "smithy.api#length": { - "max": 64 - } - } - }, - "subscriberDescription": { - "target": "com.amazonaws.securitylake#DescriptionString", - "traits": { - "smithy.api#documentation": "

The description of the Security Lake account subscriber.

" - } - } - } - }, - "com.amazonaws.securitylake#UpdateSubscriberResponse": { - "type": "structure", - "members": { - "subscriber": { - "target": "com.amazonaws.securitylake#SubscriberResource", - "traits": { - "smithy.api#documentation": "

The account of the subscriber.

" - } - } - } - }, - "com.amazonaws.securitylake#UpdateSubscriptionNotificationConfiguration": { + "com.amazonaws.securitylake#UpdateSubscriberNotification": { "type": "operation", "input": { - "target": "com.amazonaws.securitylake#UpdateSubscriptionNotificationConfigurationRequest" + "target": "com.amazonaws.securitylake#UpdateSubscriberNotificationRequest" }, "output": { - "target": "com.amazonaws.securitylake#UpdateSubscriptionNotificationConfigurationResponse" + "target": "com.amazonaws.securitylake#UpdateSubscriberNotificationResponse" }, "errors": [ { "target": "com.amazonaws.securitylake#AccessDeniedException" }, { - "target": "com.amazonaws.securitylake#AccountNotFoundException" + "target": "com.amazonaws.securitylake#BadRequestException" }, { - "target": "com.amazonaws.securitylake#ConcurrentModificationException" + "target": "com.amazonaws.securitylake#ConflictException" }, { "target": "com.amazonaws.securitylake#InternalServerException" }, - { - "target": "com.amazonaws.securitylake#InvalidInputException" - }, { "target": "com.amazonaws.securitylake#ResourceNotFoundException" }, { - "target": "com.amazonaws.securitylake#ValidationException" + "target": "com.amazonaws.securitylake#ThrottlingException" } ], "traits": { + "aws.iam#actionPermissionDescription": "Grants permission to update a webhook invocation to notify a client when there is new data in the data lake", + "aws.iam#requiredActions": [ + "iam:CreateServiceLinkedRole", + "iam:GetRole", + "iam:DeleteRolePolicy", + "iam:PutRolePolicy", + "iam:PassRole", + "s3:PutLifecycleConfiguration", + "s3:PutBucketNotification", + "s3:GetBucketNotification", + "s3:PutBucketPolicy", + "s3:PutBucketPublicAccessBlock", + "s3:CreateBucket", + "s3:ListBucket", + "s3:PutBucketVersioning", + "events:CreateApiDestination", + "events:CreateConnection", + "events:ListApiDestinations", + "events:ListConnections", + "events:PutRule", + "events:DescribeRule", + "events:PutTargets", + "sqs:CreateQueue", + "sqs:DeleteQueue", + "sqs:GetQueueAttributes", + "sqs:GetQueueUrl", + "sqs:SetQueueAttributes" + ], "smithy.api#documentation": "

Updates an existing notification method for the subscription (SQS or HTTPs endpoint) or\n switches the notification subscription endpoint for a subscriber.

", "smithy.api#http": { "method": "PUT", - "uri": "/subscription-notifications/{subscriptionId}", + "uri": "/v1/subscribers/{subscriberId}/notification", "code": 200 - } + }, + "smithy.api#idempotent": {} } }, - "com.amazonaws.securitylake#UpdateSubscriptionNotificationConfigurationRequest": { + "com.amazonaws.securitylake#UpdateSubscriberNotificationRequest": { "type": "structure", "members": { - "subscriptionId": { + "subscriberId": { "target": "com.amazonaws.securitylake#UUID", "traits": { - "smithy.api#documentation": "

The subscription ID for which the subscription notification is specified.

", + "smithy.api#documentation": "

The subscription ID for which the subscription notification is specified.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "subscriptionEndpoint": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The subscription endpoint in Security Lake.

", - "smithy.api#pattern": "^(arn:aws:.+$|https?://.+$)" - } - }, - "httpsApiKeyName": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The key name for the subscription notification.

" - } - }, - "httpsApiKeyValue": { - "target": "smithy.api#String", - "traits": { - "smithy.api#documentation": "

The key value for the subscription notification.

" - } - }, - "httpsMethod": { - "target": "com.amazonaws.securitylake#HttpsMethod", - "traits": { - "smithy.api#documentation": "

The HTTPS method used for the subscription notification.

" - } - }, - "createSqs": { - "target": "smithy.api#Boolean", - "traits": { - "smithy.api#documentation": "

Create a new subscription notification for the specified subscription ID in\n Amazon Security Lake.

" - } - }, - "roleArn": { - "target": "com.amazonaws.securitylake#RoleArn", + "configuration": { + "target": "com.amazonaws.securitylake#NotificationConfiguration", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) specifying the role of the subscriber. For more information about ARNs and how to use them in policies, see, see the Managing data access and Amazon Web Services Managed Policiesin the Amazon Security Lake User\n Guide.

" + "smithy.api#documentation": "

The configuration for subscriber notification.

", + "smithy.api#required": {} } } + }, + "traits": { + "smithy.api#input": {} } }, - "com.amazonaws.securitylake#UpdateSubscriptionNotificationConfigurationResponse": { + "com.amazonaws.securitylake#UpdateSubscriberNotificationResponse": { "type": "structure", "members": { - "queueArn": { + "subscriberEndpoint": { "target": "com.amazonaws.securitylake#SafeString", "traits": { - "smithy.api#documentation": "

Returns the ARN of the queue.

" + "smithy.api#documentation": "

The subscriber endpoint to which exception messages are posted.

" } } + }, + "traits": { + "smithy.api#output": {} } }, - "com.amazonaws.securitylake#ValidationException": { + "com.amazonaws.securitylake#UpdateSubscriberRequest": { "type": "structure", "members": { - "message": { - "target": "smithy.api#String", + "subscriberId": { + "target": "com.amazonaws.securitylake#UUID", "traits": { + "smithy.api#documentation": "

A value created by Security Lake that uniquely identifies your subscription.

", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "reason": { - "target": "com.amazonaws.securitylake#ValidationExceptionReason", + "subscriberIdentity": { + "target": "com.amazonaws.securitylake#AwsIdentity", "traits": { - "smithy.api#documentation": "

The reason for the validation exception.

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

The AWS identity used to access your data.

" } }, - "fieldList": { - "target": "com.amazonaws.securitylake#ValidationExceptionFieldList", + "subscriberName": { + "target": "com.amazonaws.securitylake#SafeString", "traits": { - "smithy.api#documentation": "

The list of parameters that failed to validate.

" + "smithy.api#documentation": "

The name of the Security Lake account subscriber.

", + "smithy.api#length": { + "max": 64 + } } - } - }, - "traits": { - "smithy.api#documentation": "

Your signing certificate could not be validated.

", - "smithy.api#error": "client", - "smithy.api#httpError": 400 - } - }, - "com.amazonaws.securitylake#ValidationExceptionField": { - "type": "structure", - "members": { - "name": { - "target": "smithy.api#String", + }, + "subscriberDescription": { + "target": "com.amazonaws.securitylake#DescriptionString", "traits": { - "smithy.api#documentation": "

Name of the validation exception.

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

The description of the Security Lake account subscriber.

" } }, - "message": { - "target": "smithy.api#String", + "sources": { + "target": "com.amazonaws.securitylake#LogSourceResourceList", "traits": { - "smithy.api#documentation": "

Describes the error encountered.

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

The supported Amazon Web Services from which logs and events are collected. For\n the list of supported Amazon Web Services, see the Amazon Security Lake User Guide.

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

The input fails to meet the constraints specified in Amazon Security Lake.

" - } - }, - "com.amazonaws.securitylake#ValidationExceptionFieldList": { - "type": "list", - "member": { - "target": "com.amazonaws.securitylake#ValidationExceptionField" + "smithy.api#input": {} } }, - "com.amazonaws.securitylake#ValidationExceptionReason": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "unknownOperation", - "name": "UNKNOWN_OPERATION" - }, - { - "value": "cannotParse", - "name": "CANNOT_PARSE" - }, - { - "value": "fieldValidationFailed", - "name": "FIELD_VALIDATION_FAILED" - }, - { - "value": "other", - "name": "OTHER" + "com.amazonaws.securitylake#UpdateSubscriberResponse": { + "type": "structure", + "members": { + "subscriber": { + "target": "com.amazonaws.securitylake#SubscriberResource", + "traits": { + "smithy.api#documentation": "

The updated subscriber information.

" } - ] - } - }, - "com.amazonaws.securitylake#ValueSet": { - "type": "list", - "member": { - "target": "smithy.api#String" + } }, "traits": { - "smithy.api#uniqueItems": {} - } - }, - "com.amazonaws.securitylake#settingsStatus": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "INITIALIZED", - "name": "INITIALIZED" - }, - { - "value": "PENDING", - "name": "PENDING" - }, - { - "value": "COMPLETED", - "name": "COMPLETED" - }, - { - "value": "FAILED", - "name": "FAILED" - } - ] + "smithy.api#output": {} } } }