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, URI::HTTPS, URI::HTTP)

    Normally you should not configure the :endpoint option directly. This is normally constructed from the :region option. Configuring :endpoint is normally reserved for connecting to test or custom endpoints. The endpoint should be a URI formatted like:

    'http://example.com'
    'https://example.com'
    'http://example.com:123'
    
  • :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_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.

  • :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_open_timeout (Float) — default: 15

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

  • :http_proxy (URI::HTTP, String)

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

  • :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_wire_trace (Boolean) — default: false

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

  • :on_chunk_received (Proc)

    When a Proc object is provided, it will be used as callback when each chunk of the response body is received. It provides three arguments: the chunk, the number of bytes received, and the total number of bytes in the response (or nil if the server did not send a content-length).

  • :on_chunk_sent (Proc)

    When a Proc object is provided, it will be used as callback when each chunk of the request body is sent. It provides three arguments: the chunk, the number of bytes read from the body, and the total number of bytes in the body.

  • :raise_response_errors (Boolean) — default: true

    When true, response errors are raised.

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

  • :ssl_ca_store (String)

    Sets the X509::Store to verify peer certificate.

  • :ssl_timeout (Float)

    Sets the SSL timeout in seconds

  • :ssl_verify_peer (Boolean) — default: true

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



409
410
411
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 409

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:



457
458
459
460
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 457

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:



581
582
583
584
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 581

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:



686
687
688
689
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 686

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:



718
719
720
721
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 718

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:



753
754
755
756
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 753

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:



860
861
862
863
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 860

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:



905
906
907
908
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 905

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:



952
953
954
955
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 952

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:



980
981
982
983
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 980

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:



1017
1018
1019
1020
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1017

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:



1031
1032
1033
1034
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1031

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:



1069
1070
1071
1072
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1069

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:



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

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:



1120
1121
1122
1123
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1120

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:



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

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:



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

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:



1186
1187
1188
1189
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1186

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:



1247
1248
1249
1250
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1247

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:



1302
1303
1304
1305
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1302

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:



1353
1354
1355
1356
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1353

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:



1399
1400
1401
1402
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1399

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:



1482
1483
1484
1485
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1482

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:



1548
1549
1550
1551
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1548

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:



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

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:



1608
1609
1610
1611
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1608

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:



1658
1659
1660
1661
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1658

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:



1690
1691
1692
1693
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1690

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:



1765
1766
1767
1768
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1765

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:



1796
1797
1798
1799
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1796

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:



1897
1898
1899
1900
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1897

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:



1942
1943
1944
1945
# File 'gems/aws-sdk-securitylake/lib/aws-sdk-securitylake/client.rb', line 1942

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