Class: Aws::SecurityLake::Client

Inherits:
Seahorse::Client::Base show all
Includes:
ClientStubs
Defined in:
gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb

Overview

An API client for SecurityLake. To construct a client, you need to configure a :region and :credentials.

client = Aws::SecurityLake::Client.new(
  region: region_name,
  credentials: credentials,
  # ...
)

For details on configuring region and credentials see the developer guide.

See #initialize for a full list of supported configuration options.

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Base

#config, #handlers

API Operations collapse

Instance Method Summary collapse

Methods included from ClientStubs

#api_requests, #stub_data, #stub_responses

Methods inherited from Seahorse::Client::Base

add_plugin, api, clear_plugins, define, new, #operation_names, plugins, remove_plugin, set_api, set_plugins

Methods included from Seahorse::Client::HandlerBuilder

#handle, #handle_request, #handle_response

Constructor Details

#initialize(options) ⇒ Client

Returns a new instance of Client.

Parameters:

  • options (Hash)

Options Hash (options):

  • :credentials (required, Aws::CredentialProvider)

    Your AWS credentials. This can be an instance of any one of the following classes:

    • Aws::Credentials - Used for configuring static, non-refreshing credentials.

    • Aws::SharedCredentials - Used for loading static credentials from a shared file, such as ~/.aws/config.

    • Aws::AssumeRoleCredentials - Used when you need to assume a role.

    • Aws::AssumeRoleWebIdentityCredentials - Used when you need to assume a role after providing credentials via the web.

    • Aws::SSOCredentials - Used for loading credentials from AWS SSO using an access token generated from aws login.

    • Aws::ProcessCredentials - Used for loading credentials from a process that outputs to stdout.

    • Aws::InstanceProfileCredentials - Used for loading credentials from an EC2 IMDS on an EC2 instance.

    • Aws::ECSCredentials - Used for loading credentials from instances running in ECS.

    • Aws::CognitoIdentityCredentials - Used for loading credentials from the Cognito Identity service.

    When :credentials are not configured directly, the following locations will be searched for credentials:

    • Aws.config[:credentials]
    • The :access_key_id, :secret_access_key, and :session_token options.
    • ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
    • ~/.aws/credentials
    • ~/.aws/config
    • EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive. Construct and pass an instance of Aws::InstanceProfileCredentails or Aws::ECSCredentials to enable retries and extended timeouts. Instance profile credential fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED'] to true.
  • :region (required, String)

    The AWS region to connect to. The configured :region is used to determine the service :endpoint. When not passed, a default :region is searched for in the following locations:

    • Aws.config[:region]
    • ENV['AWS_REGION']
    • ENV['AMAZON_REGION']
    • ENV['AWS_DEFAULT_REGION']
    • ~/.aws/credentials
    • ~/.aws/config
  • :access_key_id (String)
  • :active_endpoint_cache (Boolean) — default: false

    When set to true, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults to false.

  • :adaptive_retry_wait_to_fill (Boolean) — default: true

    Used only in adaptive retry mode. When true, the request will sleep until there is sufficent client side capacity to retry the request. When false, the request will raise a RetryCapacityNotAvailableError and will not retry instead of sleeping.

  • :client_side_monitoring (Boolean) — default: false

    When true, client-side metrics will be collected for all API requests from this client.

  • :client_side_monitoring_client_id (String) — default: ""

    Allows you to provide an identifier for this client which will be attached to all generated client side metrics. Defaults to an empty string.

  • :client_side_monitoring_host (String) — default: "127.0.0.1"

    Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_port (Integer) — default: 31000

    Required for publishing client metrics. The port that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) — default: Aws::ClientSideMonitoring::Publisher

    Allows you to provide a custom client-side monitoring publisher class. By default, will use the Client Side Monitoring Agent Publisher.

  • :convert_params (Boolean) — default: true

    When true, an attempt is made to coerce request parameters into the required types.

  • :correct_clock_skew (Boolean) — default: true

    Used only in standard and adaptive retry modes. Specifies whether to apply a clock skew correction and retry requests with skewed client clocks.

  • :defaults_mode (String) — default: "legacy"

    See DefaultsModeConfiguration for a list of the accepted modes and the configuration defaults that are included.

  • :disable_host_prefix_injection (Boolean) — default: false

    Set to true to disable SDK automatically adding host prefix to default service endpoint when available.

  • :disable_request_compression (Boolean) — default: false

    When set to 'true' the request body will not be compressed for supported operations.

  • :endpoint (String)

    The client endpoint is normally constructed from the :region option. You should only configure an :endpoint when connecting to test or custom endpoints. This should be a valid HTTP(S) URI.

  • :endpoint_cache_max_entries (Integer) — default: 1000

    Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000.

  • :endpoint_cache_max_threads (Integer) — default: 10

    Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.

  • :endpoint_cache_poll_interval (Integer) — default: 60

    When :endpoint_discovery and :active_endpoint_cache is enabled, Use this option to config the time interval in seconds for making requests fetching endpoints information. Defaults to 60 sec.

  • :endpoint_discovery (Boolean) — default: false

    When set to true, endpoint discovery will be enabled for operations when available.

  • :ignore_configured_endpoint_urls (Boolean)

    Setting to true disables use of endpoint URLs provided via environment variables and the shared configuration file.

  • :log_formatter (Aws::Log::Formatter) — default: Aws::Log::Formatter.default

    The log formatter.

  • :log_level (Symbol) — default: :info

    The log level to send messages to the :logger at.

  • :logger (Logger)

    The Logger instance to send log messages to. If this option is not set, logging will be disabled.

  • :max_attempts (Integer) — default: 3

    An integer representing the maximum number attempts that will be made for a single request, including the initial attempt. For example, setting this value to 5 will result in a request being retried up to 4 times. Used in standard and adaptive retry modes.

  • :profile (String) — default: "default"

    Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, 'default' is used.

  • :request_min_compression_size_bytes (Integer) — default: 10240

    The minimum size in bytes that triggers compression for request bodies. The value must be non-negative integer value between 0 and 10485780 bytes inclusive.

  • :retry_backoff (Proc)

    A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay. This option is only used in the legacy retry mode.

  • :retry_base_delay (Float) — default: 0.3

    The base delay in seconds used by the default backoff function. This option is only used in the legacy retry mode.

  • :retry_jitter (Symbol) — default: :none

    A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number. This option is only used in the legacy retry mode.

    @see https://www.awsarchitectureblog.com/2015/03/backoff.html

  • :retry_limit (Integer) — default: 3

    The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors, auth errors, endpoint discovery, and errors from expired credentials. This option is only used in the legacy retry mode.

  • :retry_max_delay (Integer) — default: 0

    The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function. This option is only used in the legacy retry mode.

  • :retry_mode (String) — default: "legacy"

    Specifies which retry algorithm to use. Values are:

    • legacy - The pre-existing retry behavior. This is default value if no retry mode is provided.

    • standard - A standardized set of retry rules across the AWS SDKs. This includes support for retry quotas, which limit the number of unsuccessful retries a client can make.

    • adaptive - An experimental retry mode that includes all the functionality of standard mode along with automatic client side throttling. This is a provisional mode that may change behavior in the future.

  • :sdk_ua_app_id (String)

    A unique and opaque application ID that is appended to the User-Agent header as app/. It should have a maximum length of 50.

  • :secret_access_key (String)
  • :session_token (String)
  • :stub_responses (Boolean) — default: false

    Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling ClientStubs#stub_responses. See ClientStubs for more information.

    Please note When response stubbing is enabled, no HTTP requests are made, and retries are disabled.

  • :token_provider (Aws::TokenProvider)

    A Bearer Token Provider. This can be an instance of any one of the following classes:

    • Aws::StaticTokenProvider - Used for configuring static, non-refreshing tokens.

    • Aws::SSOTokenProvider - Used for loading tokens from AWS SSO using an access token generated from aws login.

    When :token_provider is not configured directly, the Aws::TokenProviderChain will be used to search for tokens configured for your profile in shared configuration files.

  • :use_dualstack_endpoint (Boolean)

    When set to true, dualstack enabled endpoints (with .aws TLD) will be used if available.

  • :use_fips_endpoint (Boolean)

    When set to true, fips compatible endpoints will be used if available. When a fips region is used, the region is normalized and this config is set to true.

  • :validate_params (Boolean) — default: true

    When true, request parameters are validated before sending the request.

  • :endpoint_provider (Aws::SecurityLake::EndpointProvider)

    The endpoint provider used to resolve endpoints. Any object that responds to #resolve_endpoint(parameters) where parameters is a Struct similar to Aws::SecurityLake::EndpointParameters

  • :http_proxy (URI::HTTP, String)

    A proxy to send requests through. Formatted like 'http://proxy.com:123'.

  • :http_open_timeout (Float) — default: 15

    The number of seconds to wait when opening a HTTP session before raising a Timeout::Error.

  • :http_read_timeout (Float) — default: 60

    The default number of seconds to wait for response data. This value can safely be set per-request on the session.

  • :http_idle_timeout (Float) — default: 5

    The number of seconds a connection is allowed to sit idle before it is considered stale. Stale connections are closed and removed from the pool before making a request.

  • :http_continue_timeout (Float) — default: 1

    The number of seconds to wait for a 100-continue response before sending the request body. This option has no effect unless the request has "Expect" header set to "100-continue". Defaults to nil which disables this behaviour. This value can safely be set per request on the session.

  • :ssl_timeout (Float) — default: nil

    Sets the SSL timeout in seconds.

  • :http_wire_trace (Boolean) — default: false

    When true, HTTP debug output will be sent to the :logger.

  • :ssl_verify_peer (Boolean) — default: true

    When true, SSL peer certificates are verified when establishing a connection.

  • :ssl_ca_bundle (String)

    Full path to the SSL certificate authority bundle file that should be used when verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.

  • :ssl_ca_directory (String)

    Full path of the directory that contains the unbundled SSL certificate authority files for verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.



385
386
387
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 385

def initialize(*args)
  super
end

Instance Method Details

#create_aws_log_source(params = {}) ⇒ Types::CreateAwsLogSourceResponse

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. 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.

Examples:

Request syntax with placeholder values


resp = client.create_aws_log_source({
  sources: [ # required
    {
      accounts: ["AwsAccountId"],
      regions: ["Region"], # required
      source_name: "ROUTE53", # required, accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
      source_version: "AwsLogSourceVersion",
    },
  ],
})

Response structure


resp.failed #=> Array
resp.failed[0] #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :sources (required, Array<Types::AwsLogSourceConfiguration>)

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

Returns:

See Also:



433
434
435
436
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 433

def create_aws_log_source(params = {}, options = {})
  req = build_request(:create_aws_log_source, params)
  req.send_request(options)
end

#create_custom_log_source(params = {}) ⇒ Types::CreateCustomLogSourceResponse

Adds a third-party custom source in Amazon Security Lake, from the Amazon Web Services Region where you want to create a custom source. Security Lake can collect logs and events from 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, this operation also creates an associated Glue table and an Glue crawler.

Examples:

Request syntax with placeholder values


resp = client.create_custom_log_source({
  configuration: { # required
    crawler_configuration: { # required
      role_arn: "RoleArn", # required
    },
    provider_identity: { # required
      external_id: "ExternalId", # required
      principal: "AwsPrincipal", # required
    },
  },
  event_classes: ["OcsfEventClass"],
  source_name: "CustomLogSourceName", # required
  source_version: "CustomLogSourceVersion",
})

Response structure


resp.source.attributes.crawler_arn #=> String
resp.source.attributes.database_arn #=> String
resp.source.attributes.table_arn #=> String
resp.source.provider.location #=> String
resp.source.provider.role_arn #=> String
resp.source.source_name #=> String
resp.source.source_version #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :configuration (required, Types::CustomLogSourceConfiguration)

    The configuration for the third-party custom source.

  • :event_classes (Array<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

  • :source_name (required, String)

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

  • :source_version (String)

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

Returns:

See Also:



557
558
559
560
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 557

def create_custom_log_source(params = {}, options = {})
  req = build_request(:create_custom_log_source, params)
  req.send_request(options)
end

#create_data_lake(params = {}) ⇒ Types::CreateDataLakeResponse

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. 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.

When you enable Security Lake, it starts ingesting security data after the CreateAwsLogSource call. This includes ingesting security data from sources, storing data, and making data accessible to subscribers. Security Lake also enables 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 more information, see the Amazon Security Lake User Guide.

Examples:

Request syntax with placeholder values


resp = client.create_data_lake({
  configurations: [ # required
    {
      encryption_configuration: {
        kms_key_id: "String",
      },
      lifecycle_configuration: {
        expiration: {
          days: 1,
        },
        transitions: [
          {
            days: 1,
            storage_class: "DataLakeStorageClass",
          },
        ],
      },
      region: "Region", # required
      replication_configuration: {
        regions: ["Region"],
        role_arn: "RoleArn",
      },
    },
  ],
  meta_store_manager_role_arn: "RoleArn", # required
  tags: [
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
})

Response structure


resp.data_lakes #=> Array
resp.data_lakes[0].create_status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"
resp.data_lakes[0].data_lake_arn #=> String
resp.data_lakes[0].encryption_configuration.kms_key_id #=> String
resp.data_lakes[0].lifecycle_configuration.expiration.days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions #=> Array
resp.data_lakes[0].lifecycle_configuration.transitions[0].days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions[0].storage_class #=> String
resp.data_lakes[0].region #=> String
resp.data_lakes[0].replication_configuration.regions #=> Array
resp.data_lakes[0].replication_configuration.regions[0] #=> String
resp.data_lakes[0].replication_configuration.role_arn #=> String
resp.data_lakes[0].s3_bucket_arn #=> String
resp.data_lakes[0].update_status.exception.code #=> String
resp.data_lakes[0].update_status.exception.reason #=> String
resp.data_lakes[0].update_status.request_id #=> String
resp.data_lakes[0].update_status.status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :configurations (required, Array<Types::DataLakeConfiguration>)

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

  • :meta_store_manager_role_arn (required, String)

    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.

  • :tags (Array<Types::Tag>)

    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 string.

Returns:

See Also:



662
663
664
665
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 662

def create_data_lake(params = {}, options = {})
  req = build_request(:create_data_lake, params)
  req.send_request(options)
end

#create_data_lake_exception_subscription(params = {}) ⇒ Struct

Creates the specified notification subscription in Amazon Security Lake for the organization you specify.

Examples:

Request syntax with placeholder values


resp = client.create_data_lake_exception_subscription({
  exception_time_to_live: 1,
  notification_endpoint: "SafeString", # required
  subscription_protocol: "SubscriptionProtocol", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :exception_time_to_live (Integer)

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

  • :notification_endpoint (required, String)

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

  • :subscription_protocol (required, String)

    The subscription protocol to which exception notifications are posted.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



694
695
696
697
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 694

def create_data_lake_exception_subscription(params = {}, options = {})
  req = build_request(:create_data_lake_exception_subscription, params)
  req.send_request(options)
end

#create_data_lake_organization_configuration(params = {}) ⇒ Struct

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.

Examples:

Request syntax with placeholder values


resp = client.create_data_lake_organization_configuration({
  auto_enable_new_account: [
    {
      region: "Region", # required
      sources: [ # required
        {
          source_name: "ROUTE53", # accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
          source_version: "AwsLogSourceVersion",
        },
      ],
    },
  ],
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

Returns:

  • (Struct)

    Returns an empty response.

See Also:



729
730
731
732
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 729

def create_data_lake_organization_configuration(params = {}, options = {})
  req = build_request(:create_data_lake_organization_configuration, params)
  req.send_request(options)
end

#create_subscriber(params = {}) ⇒ Types::CreateSubscriberResponse

Creates a subscription permission for accounts that are already enabled in Amazon Security Lake. You can create a subscriber with access to data in the current Amazon Web Services Region.

Examples:

Request syntax with placeholder values


resp = client.create_subscriber({
  access_types: ["LAKEFORMATION"], # accepts LAKEFORMATION, S3
  sources: [ # required
    {
      aws_log_source: {
        source_name: "ROUTE53", # accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
        source_version: "AwsLogSourceVersion",
      },
      custom_log_source: {
        attributes: {
          crawler_arn: "AmazonResourceName",
          database_arn: "AmazonResourceName",
          table_arn: "AmazonResourceName",
        },
        provider: {
          location: "S3URI",
          role_arn: "RoleArn",
        },
        source_name: "CustomLogSourceName",
        source_version: "CustomLogSourceVersion",
      },
    },
  ],
  subscriber_description: "DescriptionString",
  subscriber_identity: { # required
    external_id: "ExternalId", # required
    principal: "AwsPrincipal", # required
  },
  subscriber_name: "CreateSubscriberRequestSubscriberNameString", # required
  tags: [
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
})

Response structure


resp.subscriber.access_types #=> Array
resp.subscriber.access_types[0] #=> String, one of "LAKEFORMATION", "S3"
resp.subscriber.created_at #=> Time
resp.subscriber.resource_share_arn #=> String
resp.subscriber.resource_share_name #=> String
resp.subscriber.role_arn #=> String
resp.subscriber.s3_bucket_arn #=> String
resp.subscriber.sources #=> Array
resp.subscriber.sources[0].aws_log_source.source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.subscriber.sources[0].aws_log_source.source_version #=> String
resp.subscriber.sources[0].custom_log_source.attributes.crawler_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.database_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.table_arn #=> String
resp.subscriber.sources[0].custom_log_source.provider.location #=> String
resp.subscriber.sources[0].custom_log_source.provider.role_arn #=> String
resp.subscriber.sources[0].custom_log_source.source_name #=> String
resp.subscriber.sources[0].custom_log_source.source_version #=> String
resp.subscriber.subscriber_arn #=> String
resp.subscriber.subscriber_description #=> String
resp.subscriber.subscriber_endpoint #=> String
resp.subscriber.subscriber_id #=> String
resp.subscriber.subscriber_identity.external_id #=> String
resp.subscriber.subscriber_identity.principal #=> String
resp.subscriber.subscriber_name #=> String
resp.subscriber.subscriber_status #=> String, one of "ACTIVE", "DEACTIVATED", "PENDING", "READY"
resp.subscriber.updated_at #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :access_types (Array<String>)

    The Amazon S3 or Lake Formation access type.

  • :sources (required, Array<Types::LogSourceResource>)

    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.

  • :subscriber_description (String)

    The description for your subscriber account in Security Lake.

  • :subscriber_identity (required, Types::AwsIdentity)

    The AWS identity used to access your data.

  • :subscriber_name (required, String)

    The name of your Security Lake subscriber account.

  • :tags (Array<Types::Tag>)

    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.

Returns:

See Also:



836
837
838
839
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 836

def create_subscriber(params = {}, options = {})
  req = build_request(:create_subscriber, params)
  req.send_request(options)
end

#create_subscriber_notification(params = {}) ⇒ Types::CreateSubscriberNotificationResponse

Notifies the subscriber when new data is written to the data lake for the sources that the subscriber consumes in Security Lake. You can create only one subscriber notification per subscriber.

Examples:

Request syntax with placeholder values


resp = client.create_subscriber_notification({
  configuration: { # required
    https_notification_configuration: {
      authorization_api_key_name: "String",
      authorization_api_key_value: "String",
      endpoint: "HttpsNotificationConfigurationEndpointString", # required
      http_method: "POST", # accepts POST, PUT
      target_role_arn: "RoleArn", # required
    },
    sqs_notification_configuration: {
    },
  },
  subscriber_id: "UUID", # required
})

Response structure


resp.subscriber_endpoint #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :configuration (required, Types::NotificationConfiguration)

    Specify the configuration using which you want to create the subscriber notification.

  • :subscriber_id (required, String)

    The subscriber ID for the notification subscription.

Returns:

See Also:



881
882
883
884
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 881

def create_subscriber_notification(params = {}, options = {})
  req = build_request(:create_subscriber_notification, params)
  req.send_request(options)
end

#delete_aws_log_source(params = {}) ⇒ Types::DeleteAwsLogSourceResponse

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.

Examples:

Request syntax with placeholder values


resp = client.delete_aws_log_source({
  sources: [ # required
    {
      accounts: ["AwsAccountId"],
      regions: ["Region"], # required
      source_name: "ROUTE53", # required, accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
      source_version: "AwsLogSourceVersion",
    },
  ],
})

Response structure


resp.failed #=> Array
resp.failed[0] #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :sources (required, Array<Types::AwsLogSourceConfiguration>)

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

Returns:

See Also:



928
929
930
931
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 928

def delete_aws_log_source(params = {}, options = {})
  req = build_request(:delete_aws_log_source, params)
  req.send_request(options)
end

#delete_custom_log_source(params = {}) ⇒ Struct

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

Examples:

Request syntax with placeholder values


resp = client.delete_custom_log_source({
  source_name: "CustomLogSourceName", # required
  source_version: "CustomLogSourceVersion",
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :source_name (required, String)

    The source name of custom log source that you want to delete.

  • :source_version (String)

    The source version for the third-party custom source. You can limit the custom source removal to the specified source version.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



956
957
958
959
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 956

def delete_custom_log_source(params = {}, options = {})
  req = build_request(:delete_custom_log_source, params)
  req.send_request(options)
end

#delete_data_lake(params = {}) ⇒ Struct

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.

Examples:

Request syntax with placeholder values


resp = client.delete_data_lake({
  regions: ["Region"], # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :regions (required, Array<String>)

    The list of Regions where Security Lake is enabled.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



993
994
995
996
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 993

def delete_data_lake(params = {}, options = {})
  req = build_request(:delete_data_lake, params)
  req.send_request(options)
end

#delete_data_lake_exception_subscription(params = {}) ⇒ Struct

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

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1007
1008
1009
1010
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1007

def delete_data_lake_exception_subscription(params = {}, options = {})
  req = build_request(:delete_data_lake_exception_subscription, params)
  req.send_request(options)
end

#delete_data_lake_organization_configuration(params = {}) ⇒ Struct

Turns off automatic enablement of Amazon Security Lake for member accounts that are added to an organization in Organizations. Only the delegated Security Lake administrator for an organization can perform this operation. If the delegated Security Lake administrator performs this operation, new member accounts won't automatically contribute data to the data lake.

Examples:

Request syntax with placeholder values


resp = client.delete_data_lake_organization_configuration({
  auto_enable_new_account: [
    {
      region: "Region", # required
      sources: [ # required
        {
          source_name: "ROUTE53", # accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
          source_version: "AwsLogSourceVersion",
        },
      ],
    },
  ],
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1045
1046
1047
1048
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1045

def delete_data_lake_organization_configuration(params = {}, options = {})
  req = build_request(:delete_data_lake_organization_configuration, params)
  req.send_request(options)
end

#delete_subscriber(params = {}) ⇒ Struct

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.

Examples:

Request syntax with placeholder values


resp = client.delete_subscriber({
  subscriber_id: "UUID", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :subscriber_id (required, String)

    A value created by Security Lake that uniquely identifies your DeleteSubscriber API request.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1073
1074
1075
1076
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1073

def delete_subscriber(params = {}, options = {})
  req = build_request(:delete_subscriber, params)
  req.send_request(options)
end

#delete_subscriber_notification(params = {}) ⇒ Struct

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

Examples:

Request syntax with placeholder values


resp = client.delete_subscriber_notification({
  subscriber_id: "UUID", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :subscriber_id (required, String)

    The ID of the Security Lake subscriber account.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1096
1097
1098
1099
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1096

def delete_subscriber_notification(params = {}, options = {})
  req = build_request(:delete_subscriber_notification, params)
  req.send_request(options)
end

#deregister_data_lake_delegated_administrator(params = {}) ⇒ Struct

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.

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1112
1113
1114
1115
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1112

def deregister_data_lake_delegated_administrator(params = {}, options = {})
  req = build_request(:deregister_data_lake_delegated_administrator, params)
  req.send_request(options)
end

#get_data_lake_exception_subscription(params = {}) ⇒ Types::GetDataLakeExceptionSubscriptionResponse

Retrieves the details of exception notifications for the account in Amazon Security Lake.

Examples:

Response structure


resp.exception_time_to_live #=> Integer
resp.notification_endpoint #=> String
resp.subscription_protocol #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

See Also:



1136
1137
1138
1139
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1136

def get_data_lake_exception_subscription(params = {}, options = {})
  req = build_request(:get_data_lake_exception_subscription, params)
  req.send_request(options)
end

#get_data_lake_organization_configuration(params = {}) ⇒ Types::GetDataLakeOrganizationConfigurationResponse

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.

Examples:

Response structure


resp. #=> Array
resp.[0].region #=> String
resp.[0].sources #=> Array
resp.[0].sources[0].source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.[0].sources[0].source_version #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

See Also:



1162
1163
1164
1165
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1162

def get_data_lake_organization_configuration(params = {}, options = {})
  req = build_request(:get_data_lake_organization_configuration, params)
  req.send_request(options)
end

#get_data_lake_sources(params = {}) ⇒ Types::GetDataLakeSourcesResponse

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.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.get_data_lake_sources({
  accounts: ["AwsAccountId"],
  max_results: 1,
  next_token: "NextToken",
})

Response structure


resp.data_lake_arn #=> String
resp.data_lake_sources #=> Array
resp.data_lake_sources[0]. #=> String
resp.data_lake_sources[0].event_classes #=> Array
resp.data_lake_sources[0].event_classes[0] #=> String
resp.data_lake_sources[0].source_name #=> String
resp.data_lake_sources[0].source_statuses #=> Array
resp.data_lake_sources[0].source_statuses[0].resource #=> String
resp.data_lake_sources[0].source_statuses[0].status #=> String, one of "COLLECTING", "MISCONFIGURED", "NOT_COLLECTING"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :accounts (Array<String>)

    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.

  • :max_results (Integer)

    The maximum limit of accounts for which the static snapshot of the current Region, including enabled accounts and log sources, is retrieved.

  • :next_token (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.

Returns:

See Also:



1223
1224
1225
1226
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1223

def get_data_lake_sources(params = {}, options = {})
  req = build_request(:get_data_lake_sources, params)
  req.send_request(options)
end

#get_subscriber(params = {}) ⇒ Types::GetSubscriberResponse

Retrieves the subscription information for the specified subscription ID. You can get information about a specific subscriber.

Examples:

Request syntax with placeholder values


resp = client.get_subscriber({
  subscriber_id: "UUID", # required
})

Response structure


resp.subscriber.access_types #=> Array
resp.subscriber.access_types[0] #=> String, one of "LAKEFORMATION", "S3"
resp.subscriber.created_at #=> Time
resp.subscriber.resource_share_arn #=> String
resp.subscriber.resource_share_name #=> String
resp.subscriber.role_arn #=> String
resp.subscriber.s3_bucket_arn #=> String
resp.subscriber.sources #=> Array
resp.subscriber.sources[0].aws_log_source.source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.subscriber.sources[0].aws_log_source.source_version #=> String
resp.subscriber.sources[0].custom_log_source.attributes.crawler_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.database_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.table_arn #=> String
resp.subscriber.sources[0].custom_log_source.provider.location #=> String
resp.subscriber.sources[0].custom_log_source.provider.role_arn #=> String
resp.subscriber.sources[0].custom_log_source.source_name #=> String
resp.subscriber.sources[0].custom_log_source.source_version #=> String
resp.subscriber.subscriber_arn #=> String
resp.subscriber.subscriber_description #=> String
resp.subscriber.subscriber_endpoint #=> String
resp.subscriber.subscriber_id #=> String
resp.subscriber.subscriber_identity.external_id #=> String
resp.subscriber.subscriber_identity.principal #=> String
resp.subscriber.subscriber_name #=> String
resp.subscriber.subscriber_status #=> String, one of "ACTIVE", "DEACTIVATED", "PENDING", "READY"
resp.subscriber.updated_at #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :subscriber_id (required, String)

    A value created by Amazon Security Lake that uniquely identifies your GetSubscriber API request.

Returns:

See Also:



1278
1279
1280
1281
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1278

def get_subscriber(params = {}, options = {})
  req = build_request(:get_subscriber, params)
  req.send_request(options)
end

#list_data_lake_exceptions(params = {}) ⇒ Types::ListDataLakeExceptionsResponse

Lists the Amazon Security Lake exceptions that you can use to find the source of problems and fix them.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.list_data_lake_exceptions({
  max_results: 1,
  next_token: "NextToken",
  regions: ["Region"],
})

Response structure


resp.exceptions #=> Array
resp.exceptions[0].exception #=> String
resp.exceptions[0].region #=> String
resp.exceptions[0].remediation #=> String
resp.exceptions[0].timestamp #=> Time
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :max_results (Integer)

    List the maximum number of failures in Security Lake.

  • :next_token (String)

    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.

    Each pagination token expires after 24 hours. Using an expired pagination token will return an HTTP 400 InvalidToken error.

  • :regions (Array<String>)

    The Amazon Web Services Regions from which exceptions are retrieved.

Returns:

See Also:



1329
1330
1331
1332
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1329

def list_data_lake_exceptions(params = {}, options = {})
  req = build_request(:list_data_lake_exceptions, params)
  req.send_request(options)
end

#list_data_lakes(params = {}) ⇒ Types::ListDataLakesResponse

Retrieves the Amazon Security Lake configuration object for the specified Amazon Web Services Regions. You can use this operation to determine whether Security Lake is enabled for a Region.

Examples:

Request syntax with placeholder values


resp = client.list_data_lakes({
  regions: ["Region"],
})

Response structure


resp.data_lakes #=> Array
resp.data_lakes[0].create_status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"
resp.data_lakes[0].data_lake_arn #=> String
resp.data_lakes[0].encryption_configuration.kms_key_id #=> String
resp.data_lakes[0].lifecycle_configuration.expiration.days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions #=> Array
resp.data_lakes[0].lifecycle_configuration.transitions[0].days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions[0].storage_class #=> String
resp.data_lakes[0].region #=> String
resp.data_lakes[0].replication_configuration.regions #=> Array
resp.data_lakes[0].replication_configuration.regions[0] #=> String
resp.data_lakes[0].replication_configuration.role_arn #=> String
resp.data_lakes[0].s3_bucket_arn #=> String
resp.data_lakes[0].update_status.exception.code #=> String
resp.data_lakes[0].update_status.exception.reason #=> String
resp.data_lakes[0].update_status.request_id #=> String
resp.data_lakes[0].update_status.status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :regions (Array<String>)

    The list of Regions where Security Lake is enabled.

Returns:

See Also:



1375
1376
1377
1378
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1375

def list_data_lakes(params = {}, options = {})
  req = build_request(:list_data_lakes, params)
  req.send_request(options)
end

#list_log_sources(params = {}) ⇒ Types::ListLogSourcesResponse

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

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.list_log_sources({
  accounts: ["AwsAccountId"],
  max_results: 1,
  next_token: "NextToken",
  regions: ["Region"],
  sources: [
    {
      aws_log_source: {
        source_name: "ROUTE53", # accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
        source_version: "AwsLogSourceVersion",
      },
      custom_log_source: {
        attributes: {
          crawler_arn: "AmazonResourceName",
          database_arn: "AmazonResourceName",
          table_arn: "AmazonResourceName",
        },
        provider: {
          location: "S3URI",
          role_arn: "RoleArn",
        },
        source_name: "CustomLogSourceName",
        source_version: "CustomLogSourceVersion",
      },
    },
  ],
})

Response structure


resp.next_token #=> String
resp.sources #=> Array
resp.sources[0]. #=> String
resp.sources[0].region #=> String
resp.sources[0].sources #=> Array
resp.sources[0].sources[0].aws_log_source.source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.sources[0].sources[0].aws_log_source.source_version #=> String
resp.sources[0].sources[0].custom_log_source.attributes.crawler_arn #=> String
resp.sources[0].sources[0].custom_log_source.attributes.database_arn #=> String
resp.sources[0].sources[0].custom_log_source.attributes.table_arn #=> String
resp.sources[0].sources[0].custom_log_source.provider.location #=> String
resp.sources[0].sources[0].custom_log_source.provider.role_arn #=> String
resp.sources[0].sources[0].custom_log_source.source_name #=> String
resp.sources[0].sources[0].custom_log_source.source_version #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :accounts (Array<String>)

    The list of Amazon Web Services accounts for which log sources are displayed.

  • :max_results (Integer)

    The maximum number of accounts for which the log sources are displayed.

  • :next_token (String)

    If nextToken is returned, there are more results available. You can repeat the call using the returned token to retrieve the next page.

  • :regions (Array<String>)

    The list of Regions for which log sources are displayed.

  • :sources (Array<Types::LogSourceResource>)

    The list of sources for which log sources are displayed.

Returns:

See Also:



1458
1459
1460
1461
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1458

def list_log_sources(params = {}, options = {})
  req = build_request(:list_log_sources, params)
  req.send_request(options)
end

#list_subscribers(params = {}) ⇒ Types::ListSubscribersResponse

List all subscribers for the specific Amazon Security Lake account ID. You can retrieve a list of subscriptions associated with a specific organization or Amazon Web Services account.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.list_subscribers({
  max_results: 1,
  next_token: "NextToken",
})

Response structure


resp.next_token #=> String
resp.subscribers #=> Array
resp.subscribers[0].access_types #=> Array
resp.subscribers[0].access_types[0] #=> String, one of "LAKEFORMATION", "S3"
resp.subscribers[0].created_at #=> Time
resp.subscribers[0].resource_share_arn #=> String
resp.subscribers[0].resource_share_name #=> String
resp.subscribers[0].role_arn #=> String
resp.subscribers[0].s3_bucket_arn #=> String
resp.subscribers[0].sources #=> Array
resp.subscribers[0].sources[0].aws_log_source.source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.subscribers[0].sources[0].aws_log_source.source_version #=> String
resp.subscribers[0].sources[0].custom_log_source.attributes.crawler_arn #=> String
resp.subscribers[0].sources[0].custom_log_source.attributes.database_arn #=> String
resp.subscribers[0].sources[0].custom_log_source.attributes.table_arn #=> String
resp.subscribers[0].sources[0].custom_log_source.provider.location #=> String
resp.subscribers[0].sources[0].custom_log_source.provider.role_arn #=> String
resp.subscribers[0].sources[0].custom_log_source.source_name #=> String
resp.subscribers[0].sources[0].custom_log_source.source_version #=> String
resp.subscribers[0].subscriber_arn #=> String
resp.subscribers[0].subscriber_description #=> String
resp.subscribers[0].subscriber_endpoint #=> String
resp.subscribers[0].subscriber_id #=> String
resp.subscribers[0].subscriber_identity.external_id #=> String
resp.subscribers[0].subscriber_identity.principal #=> String
resp.subscribers[0].subscriber_name #=> String
resp.subscribers[0].subscriber_status #=> String, one of "ACTIVE", "DEACTIVATED", "PENDING", "READY"
resp.subscribers[0].updated_at #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :max_results (Integer)

    The maximum number of accounts for which the configuration is displayed.

  • :next_token (String)

    If nextToken is returned, there are more results available. You can repeat the call using the returned token to retrieve the next page.

Returns:

See Also:



1524
1525
1526
1527
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1524

def list_subscribers(params = {}, options = {})
  req = build_request(:list_subscribers, params)
  req.send_request(options)
end

#list_tags_for_resource(params = {}) ⇒ Types::ListTagsForResourceResponse

Retrieves the tags (keys and values) that are associated with an Amazon Security Lake resource: a subscriber, or the data lake configuration for your Amazon Web Services account in a particular Amazon Web Services Region.

Examples:

Request syntax with placeholder values


resp = client.list_tags_for_resource({
  resource_arn: "AmazonResourceName", # required
})

Response structure


resp.tags #=> Array
resp.tags[0].key #=> String
resp.tags[0].value #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the Amazon Security Lake resource for which you want to retrieve the tags.

Returns:

See Also:



1558
1559
1560
1561
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1558

def list_tags_for_resource(params = {}, options = {})
  req = build_request(:list_tags_for_resource, params)
  req.send_request(options)
end

#register_data_lake_delegated_administrator(params = {}) ⇒ Struct

Designates 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.

Examples:

Request syntax with placeholder values


resp = client.register_data_lake_delegated_administrator({
  account_id: "SafeString", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :account_id (required, String)

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

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1584
1585
1586
1587
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1584

def register_data_lake_delegated_administrator(params = {}, options = {})
  req = build_request(:register_data_lake_delegated_administrator, params)
  req.send_request(options)
end

#tag_resource(params = {}) ⇒ Struct

Adds or updates one or more tags that are associated with an Amazon Security Lake resource: a subscriber, or the data lake configuration for your Amazon Web Services account in a particular Amazon Web Services Region. A tag is a label that you can define and associate with Amazon Web Services resources. Each tag consists of a required tag key and an associated tag value. A tag key is a general label that acts as a category for a more specific tag value. A tag value acts as a descriptor for a tag key. Tags can help you identify, categorize, and manage resources in different ways, such as by owner, environment, or other criteria. For more information, see Tagging Amazon Security Lake resources in the Amazon Security Lake User Guide.

Examples:

Request syntax with placeholder values


resp = client.tag_resource({
  resource_arn: "AmazonResourceName", # required
  tags: [ # required
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the Amazon Security Lake resource to add or update the tags for.

  • :tags (required, Array<Types::Tag>)

    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, but it can be an empty string.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1634
1635
1636
1637
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1634

def tag_resource(params = {}, options = {})
  req = build_request(:tag_resource, params)
  req.send_request(options)
end

#untag_resource(params = {}) ⇒ Struct

Removes one or more tags (keys and values) from an Amazon Security Lake resource: a subscriber, or the data lake configuration for your Amazon Web Services account in a particular Amazon Web Services Region.

Examples:

Request syntax with placeholder values


resp = client.untag_resource({
  resource_arn: "AmazonResourceName", # required
  tag_keys: ["TagKey"], # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the Amazon Security Lake resource to remove one or more tags from.

  • :tag_keys (required, Array<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.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1666
1667
1668
1669
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1666

def untag_resource(params = {}, options = {})
  req = build_request(:untag_resource, params)
  req.send_request(options)
end

#update_data_lake(params = {}) ⇒ Types::UpdateDataLakeResponse

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.

Examples:

Request syntax with placeholder values


resp = client.update_data_lake({
  configurations: [ # required
    {
      encryption_configuration: {
        kms_key_id: "String",
      },
      lifecycle_configuration: {
        expiration: {
          days: 1,
        },
        transitions: [
          {
            days: 1,
            storage_class: "DataLakeStorageClass",
          },
        ],
      },
      region: "Region", # required
      replication_configuration: {
        regions: ["Region"],
        role_arn: "RoleArn",
      },
    },
  ],
  meta_store_manager_role_arn: "RoleArn",
})

Response structure


resp.data_lakes #=> Array
resp.data_lakes[0].create_status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"
resp.data_lakes[0].data_lake_arn #=> String
resp.data_lakes[0].encryption_configuration.kms_key_id #=> String
resp.data_lakes[0].lifecycle_configuration.expiration.days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions #=> Array
resp.data_lakes[0].lifecycle_configuration.transitions[0].days #=> Integer
resp.data_lakes[0].lifecycle_configuration.transitions[0].storage_class #=> String
resp.data_lakes[0].region #=> String
resp.data_lakes[0].replication_configuration.regions #=> Array
resp.data_lakes[0].replication_configuration.regions[0] #=> String
resp.data_lakes[0].replication_configuration.role_arn #=> String
resp.data_lakes[0].s3_bucket_arn #=> String
resp.data_lakes[0].update_status.exception.code #=> String
resp.data_lakes[0].update_status.exception.reason #=> String
resp.data_lakes[0].update_status.request_id #=> String
resp.data_lakes[0].update_status.status #=> String, one of "INITIALIZED", "PENDING", "COMPLETED", "FAILED"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :configurations (required, Array<Types::DataLakeConfiguration>)

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

  • :meta_store_manager_role_arn (String)

    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.

Returns:

See Also:



1741
1742
1743
1744
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1741

def update_data_lake(params = {}, options = {})
  req = build_request(:update_data_lake, params)
  req.send_request(options)
end

#update_data_lake_exception_subscription(params = {}) ⇒ Struct

Updates the specified notification subscription in Amazon Security Lake for the organization you specify.

Examples:

Request syntax with placeholder values


resp = client.update_data_lake_exception_subscription({
  exception_time_to_live: 1,
  notification_endpoint: "SafeString", # required
  subscription_protocol: "SubscriptionProtocol", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :exception_time_to_live (Integer)

    The time-to-live (TTL) for the exception message to remain.

  • :notification_endpoint (required, String)

    The account that is subscribed to receive exception notifications.

  • :subscription_protocol (required, String)

    The subscription protocol to which exception messages are posted.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1772
1773
1774
1775
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1772

def update_data_lake_exception_subscription(params = {}, options = {})
  req = build_request(:update_data_lake_exception_subscription, params)
  req.send_request(options)
end

#update_subscriber(params = {}) ⇒ Types::UpdateSubscriberResponse

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.

Examples:

Request syntax with placeholder values


resp = client.update_subscriber({
  sources: [
    {
      aws_log_source: {
        source_name: "ROUTE53", # accepts ROUTE53, VPC_FLOW, SH_FINDINGS, CLOUD_TRAIL_MGMT, LAMBDA_EXECUTION, S3_DATA, EKS_AUDIT, WAF
        source_version: "AwsLogSourceVersion",
      },
      custom_log_source: {
        attributes: {
          crawler_arn: "AmazonResourceName",
          database_arn: "AmazonResourceName",
          table_arn: "AmazonResourceName",
        },
        provider: {
          location: "S3URI",
          role_arn: "RoleArn",
        },
        source_name: "CustomLogSourceName",
        source_version: "CustomLogSourceVersion",
      },
    },
  ],
  subscriber_description: "DescriptionString",
  subscriber_id: "UUID", # required
  subscriber_identity: {
    external_id: "ExternalId", # required
    principal: "AwsPrincipal", # required
  },
  subscriber_name: "UpdateSubscriberRequestSubscriberNameString",
})

Response structure


resp.subscriber.access_types #=> Array
resp.subscriber.access_types[0] #=> String, one of "LAKEFORMATION", "S3"
resp.subscriber.created_at #=> Time
resp.subscriber.resource_share_arn #=> String
resp.subscriber.resource_share_name #=> String
resp.subscriber.role_arn #=> String
resp.subscriber.s3_bucket_arn #=> String
resp.subscriber.sources #=> Array
resp.subscriber.sources[0].aws_log_source.source_name #=> String, one of "ROUTE53", "VPC_FLOW", "SH_FINDINGS", "CLOUD_TRAIL_MGMT", "LAMBDA_EXECUTION", "S3_DATA", "EKS_AUDIT", "WAF"
resp.subscriber.sources[0].aws_log_source.source_version #=> String
resp.subscriber.sources[0].custom_log_source.attributes.crawler_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.database_arn #=> String
resp.subscriber.sources[0].custom_log_source.attributes.table_arn #=> String
resp.subscriber.sources[0].custom_log_source.provider.location #=> String
resp.subscriber.sources[0].custom_log_source.provider.role_arn #=> String
resp.subscriber.sources[0].custom_log_source.source_name #=> String
resp.subscriber.sources[0].custom_log_source.source_version #=> String
resp.subscriber.subscriber_arn #=> String
resp.subscriber.subscriber_description #=> String
resp.subscriber.subscriber_endpoint #=> String
resp.subscriber.subscriber_id #=> String
resp.subscriber.subscriber_identity.external_id #=> String
resp.subscriber.subscriber_identity.principal #=> String
resp.subscriber.subscriber_name #=> String
resp.subscriber.subscriber_status #=> String, one of "ACTIVE", "DEACTIVATED", "PENDING", "READY"
resp.subscriber.updated_at #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :sources (Array<Types::LogSourceResource>)

    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.

  • :subscriber_description (String)

    The description of the Security Lake account subscriber.

  • :subscriber_id (required, String)

    A value created by Security Lake that uniquely identifies your subscription.

  • :subscriber_identity (Types::AwsIdentity)

    The AWS identity used to access your data.

  • :subscriber_name (String)

    The name of the Security Lake account subscriber.

Returns:

See Also:



1873
1874
1875
1876
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1873

def update_subscriber(params = {}, options = {})
  req = build_request(:update_subscriber, params)
  req.send_request(options)
end

#update_subscriber_notification(params = {}) ⇒ Types::UpdateSubscriberNotificationResponse

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

Examples:

Request syntax with placeholder values


resp = client.update_subscriber_notification({
  configuration: { # required
    https_notification_configuration: {
      authorization_api_key_name: "String",
      authorization_api_key_value: "String",
      endpoint: "HttpsNotificationConfigurationEndpointString", # required
      http_method: "POST", # accepts POST, PUT
      target_role_arn: "RoleArn", # required
    },
    sqs_notification_configuration: {
    },
  },
  subscriber_id: "UUID", # required
})

Response structure


resp.subscriber_endpoint #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :configuration (required, Types::NotificationConfiguration)

    The configuration for subscriber notification.

  • :subscriber_id (required, String)

    The subscription ID for which the subscription notification is specified.

Returns:

See Also:



1918
1919
1920
1921
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1918

def update_subscriber_notification(params = {}, options = {})
  req = build_request(:update_subscriber_notification, params)
  req.send_request(options)
end