export interface AwsLogSourceConfiguration {
    /** Specify the Amazon Web Services account information where you want to enable Security Lake. */
    accounts?: any[];
    /** Specify the Regions where you want to enable Security Lake. */
    regions: any[];
    /** The name for a Amazon Web Services source. */
    sourceName: 'ROUTE53' | 'VPC_FLOW' | 'SH_FINDINGS' | 'CLOUD_TRAIL_MGMT' | 'LAMBDA_EXECUTION' | 'S3_DATA' | 'EKS_AUDIT' | 'WAF';
    /** The version for a Amazon Web Services source. */
    sourceVersion?: string;
}
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 are: The managed policy AWSGlueServiceRole A custom policy  */
    roleArn: string;
}
export interface AwsIdentity {
    /** The Amazon Web Services identity principal. */
    principal: string;
    /** The external ID used to establish trust relationship with the Amazon Web Services identity. */
    externalId: string;
}
export interface CustomLogSourceConfiguration {
    /** The configuration used for the Glue Crawler for a third-party custom source. */
    crawlerConfiguration: CustomLogSourceCrawlerConfiguration;
    /** The identity of the log provider for the third-party custom source. */
    providerIdentity: AwsIdentity;
}
export interface DataLakeConfiguration {
    /** The Amazon Web Services Regions where Security Lake is automatically enabled. */
    region: string;
    /** Provides encryption details of Amazon Security Lake object. */
    encryptionConfiguration?: any;
    /** Provides lifecycle details of Amazon Security Lake object. */
    lifecycleConfiguration?: any;
    /** Provides replication details of Amazon Security Lake object. */
    replicationConfiguration?: any;
}
export interface Tag {
    /** The name of the tag. This is a general label that acts as a category for a more specific tag value (value). */
    key: string;
    /** The value that’s associated with the specified tag key (key). This value acts as a descriptor for the tag key. A tag value cannot be null, but it can be an empty string. */
    value: string;
}
export interface DataLakeAutoEnableNewAccountConfiguration {
    /** The Amazon Web Services Regions where Security Lake is automatically enabled. */
    region: string;
    /** The Amazon Web Services sources that are automatically enabled in Security Lake. */
    sources: any[];
}
export interface HttpsNotificationConfiguration {
    /** The subscription endpoint in Security Lake. If you prefer notification with an HTTPs endpoint, populate this field. */
    endpoint: string;
    /** The key name for the notification subscription. */
    authorizationApiKeyName?: string;
    /** The key value for the notification subscription. */
    authorizationApiKeyValue?: string;
    /** The HTTPS method used for the notification subscription. */
    httpMethod?: 'POST' | 'PUT';
    /** 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 S */
    targetRoleArn: string;
}
export interface CreateAwsLogSourceInput {
    /** Specify the natively-supported Amazon Web Services service to add as a source in Security Lake. */
    sources: AwsLogSourceConfiguration[];
}
export interface CreateCustomLogSourceInput {
    /** The configuration used for the third-party custom source. */
    configuration: CustomLogSourceConfiguration;
    /** Specify the name for a third-party custom source. This must be a Regionally unique value. The sourceName you enter here, is used in the LogProviderRole name which follows the convention AmazonSecurity */
    sourceName: string;
    /** The Open Cybersecurity Schema Framework (OCSF) event classes which describes the type of data that the custom source will send to Security Lake. For the list of supported event classes, see the Amazon */
    eventClasses?: string[];
    /** Specify the source version for the third-party custom source, to limit log collection to a specific version of custom data source. */
    sourceVersion?: string;
}
export interface CreateDataLakeInput {
    /** Specify the Region or Regions that will contribute data to the rollup region. */
    configurations: DataLakeConfiguration[];
    /** 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 sourc */
    metaStoreManagerRoleArn: string;
    /** An array of objects, one for each tag to associate with the data lake configuration. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty s */
    tags?: Tag[];
}
export interface CreateDataLakeExceptionSubscriptionInput {
    /** The Amazon Web Services account where you want to receive exception notifications. */
    notificationEndpoint: string;
    /** The subscription protocol to which exception notifications are posted. */
    subscriptionProtocol: string;
    /** The expiration period and time-to-live (TTL). It is the duration of time until which the exception message remains. */
    exceptionTimeToLive?: number;
}
export interface CreateDataLakeOrganizationConfigurationInput {
    /** Enable Security Lake with the specified configuration settings, to begin collecting security data for new accounts in your organization. */
    autoEnableNewAccount?: DataLakeAutoEnableNewAccountConfiguration[];
}
export interface CreateSubscriberInput {
    /** The supported Amazon Web Services services from which logs and events are collected. Security Lake supports log and event collection for natively supported Amazon Web Services services. */
    sources: {
        awsLogSource?: any;
    } | {
        customLogSource?: any;
    }[];
    /** The Amazon Web Services identity used to access your data. */
    subscriberIdentity: AwsIdentity;
    /** The name of your Security Lake subscriber account. */
    subscriberName: string;
    /** The Amazon S3 or Lake Formation access type. */
    accessTypes?: 'LAKEFORMATION' | 'S3'[];
    /** The description for your subscriber account in Security Lake. */
    subscriberDescription?: string;
    /** An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. */
    tags?: Tag[];
}
export interface CreateSubscriberNotificationInput {
    /** Specify the configuration using which you want to create the subscriber notification. */
    configuration: {
        sqsNotificationConfiguration?: Record<string, any>;
    } | {
        httpsNotificationConfiguration?: HttpsNotificationConfiguration;
    };
    /** The subscriber ID for the notification subscription. */
    subscriberId: string;
}
export interface DeleteAwsLogSourceInput {
    /** Specify the natively-supported Amazon Web Services service to remove as a source in Security Lake. */
    sources: AwsLogSourceConfiguration[];
}
export interface DeleteCustomLogSourceInput {
    /** The source name of custom log source that you want to delete. */
    sourceName: string;
    /** The source version for the third-party custom source. You can limit the custom source removal to the specified source version. */
    sourceVersion?: string;
}
export interface DeleteDataLakeInput {
    /** The list of Regions where Security Lake is enabled. */
    regions: string[];
}
export interface DeleteDataLakeOrganizationConfigurationInput {
    /** Turns off automatic enablement of Security Lake for member accounts that are added to an organization. */
    autoEnableNewAccount?: DataLakeAutoEnableNewAccountConfiguration[];
}
export interface DeleteSubscriberInput {
    /** A value created by Security Lake that uniquely identifies your DeleteSubscriber API request. */
    subscriberId: string;
}
export interface DeleteSubscriberNotificationInput {
    /** The ID of the Security Lake subscriber account. */
    subscriberId: string;
}
export interface GetDataLakeSourcesInput {
    /** 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. */
    accounts?: string[];
    /** The maximum limit of accounts for which the static snapshot of the current Region, including enabled accounts and log sources, is retrieved. */
    maxResults?: number;
    /** 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 argumen */
    nextToken?: string;
}
export interface GetSubscriberInput {
    /** A value created by Amazon Security Lake that uniquely identifies your GetSubscriber API request. */
    subscriberId: string;
}
export interface ListDataLakeExceptionsInput {
    /** Lists the maximum number of failures in Security Lake. */
    maxResults?: number;
    /** 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 argumen */
    nextToken?: string;
    /** The Amazon Web Services Regions from which exceptions are retrieved. */
    regions?: string[];
}
export interface ListDataLakesInput {
    /** The list of Regions where Security Lake is enabled. */
    regions?: string[];
}
export interface ListLogSourcesInput {
    /** The list of Amazon Web Services accounts for which log sources are displayed. */
    accounts?: 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;
    /** The list of Regions for which log sources are displayed. */
    regions?: string[];
    /** The list of sources for which log sources are displayed. */
    sources?: {
        awsLogSource?: any;
    } | {
        customLogSource?: any;
    }[];
}
export interface ListSubscribersInput {
    /** The maximum number of accounts for which the configuration is 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;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon Security Lake resource for which you want to retrieve the tags. */
    resourceArn: string;
}
export interface RegisterDataLakeDelegatedAdministratorInput {
    /** The Amazon Web Services account ID of the Security Lake delegated administrator. */
    accountId: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon Security Lake resource to add or update the tags for. */
    resourceArn: string;
    /** An array of objects, one for each tag (key and value) to associate with the Amazon Security Lake resource. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, bu */
    tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the Amazon Security Lake resource to remove one or more tags from. */
    resourceArn: string;
    /** A list of one or more tag keys. For each value in the list, specify the tag key for a tag to remove from the Amazon Security Lake resource. */
    tagKeys: string[];
}
export interface UpdateDataLakeInput {
    /** Specifies the Region or Regions that will contribute data to the rollup region. */
    configurations: DataLakeConfiguration[];
    /** 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 sourc */
    metaStoreManagerRoleArn?: string;
}
export interface UpdateDataLakeExceptionSubscriptionInput {
    /** The account that is subscribed to receive exception notifications. */
    notificationEndpoint: string;
    /** The subscription protocol to which exception messages are posted. */
    subscriptionProtocol: string;
    /** The time-to-live (TTL) for the exception message to remain. It is the duration of time until which the exception message remains. */
    exceptionTimeToLive?: number;
}
export interface UpdateSubscriberInput {
    /** A value created by Security Lake that uniquely identifies your subscription. */
    subscriberId: string;
    /** The supported Amazon Web Services services from which logs and events are collected. For the list of supported Amazon Web Services services, see the Amazon Security Lake User Guide. */
    sources?: {
        awsLogSource?: any;
    } | {
        customLogSource?: any;
    }[];
    /** The description of the Security Lake account subscriber. */
    subscriberDescription?: string;
    /** The Amazon Web Services identity used to access your data. */
    subscriberIdentity?: AwsIdentity;
    /** The name of the Security Lake account subscriber. */
    subscriberName?: string;
}
export interface UpdateSubscriberNotificationInput {
    /** The configuration for subscriber notification. */
    configuration: {
        sqsNotificationConfiguration?: Record<string, any>;
    } | {
        httpsNotificationConfiguration?: HttpsNotificationConfiguration;
    };
    /** The subscription ID for which the subscription notification is specified. */
    subscriberId: string;
}
/** SecurityLake service binding for Step Functions SDK integrations. */
export declare class SecurityLake {
    constructor();
    createAwsLogSource<T>(params: CreateAwsLogSourceInput): Promise<T>;
    createCustomLogSource<T>(params: CreateCustomLogSourceInput): Promise<T>;
    createDataLake<T>(params: CreateDataLakeInput): Promise<T>;
    createDataLakeExceptionSubscription<T>(params: CreateDataLakeExceptionSubscriptionInput): Promise<T>;
    createDataLakeOrganizationConfiguration<T>(params: CreateDataLakeOrganizationConfigurationInput): Promise<T>;
    createSubscriber<T>(params: CreateSubscriberInput): Promise<T>;
    createSubscriberNotification<T>(params: CreateSubscriberNotificationInput): Promise<T>;
    deleteAwsLogSource<T>(params: DeleteAwsLogSourceInput): Promise<T>;
    deleteCustomLogSource<T>(params: DeleteCustomLogSourceInput): Promise<T>;
    deleteDataLake<T>(params: DeleteDataLakeInput): Promise<T>;
    deleteDataLakeExceptionSubscription<T>(params: Record<string, any>): Promise<T>;
    deleteDataLakeOrganizationConfiguration<T>(params: DeleteDataLakeOrganizationConfigurationInput): Promise<T>;
    deleteSubscriber<T>(params: DeleteSubscriberInput): Promise<T>;
    deleteSubscriberNotification<T>(params: DeleteSubscriberNotificationInput): Promise<T>;
    deregisterDataLakeDelegatedAdministrator<T>(params: Record<string, any>): Promise<T>;
    getDataLakeExceptionSubscription<T>(params: Record<string, any>): Promise<T>;
    getDataLakeOrganizationConfiguration<T>(params: Record<string, any>): Promise<T>;
    getDataLakeSources<T>(params: GetDataLakeSourcesInput): Promise<T>;
    getSubscriber<T>(params: GetSubscriberInput): Promise<T>;
    listDataLakeExceptions<T>(params: ListDataLakeExceptionsInput): Promise<T>;
    listDataLakes<T>(params: ListDataLakesInput): Promise<T>;
    listLogSources<T>(params: ListLogSourcesInput): Promise<T>;
    listSubscribers<T>(params: ListSubscribersInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    registerDataLakeDelegatedAdministrator<T>(params: RegisterDataLakeDelegatedAdministratorInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateDataLake<T>(params: UpdateDataLakeInput): Promise<T>;
    updateDataLakeExceptionSubscription<T>(params: UpdateDataLakeExceptionSubscriptionInput): Promise<T>;
    updateSubscriber<T>(params: UpdateSubscriberInput): Promise<T>;
    updateSubscriberNotification<T>(params: UpdateSubscriberNotificationInput): Promise<T>;
}
//# sourceMappingURL=SecurityLake.d.ts.map