You are viewing documentation for version 3 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: Aws::Shield::Client

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

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Base

#config, #handlers

API Operations collapse

Instance Method Summary collapse

Methods included from ClientStubs

#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(*args) ⇒ Client

Returns a new instance of Client

Parameters:

  • options (Hash)

    a customizable set of options



152
153
154
# File 'gems/aws-sdk-shield/lib/aws-sdk-shield/client.rb', line 152

def initialize(*args)
  super
end

Instance Method Details

#create_protection(params = {}) ⇒ Types::CreateProtectionResponse

Enables AWS Shield Advanced for a specific AWS resource. The resource can be an Amazon CloudFront distribution, Elastic Load Balancing load balancer, Elastic IP Address, or an Amazon Route 53 hosted zone.

Examples:

Request syntax with placeholder values


resp = client.create_protection({
  name: "ProtectionName", # required
  resource_arn: "ResourceArn", # required
})

Response structure


resp.protection_id #=> String

Parameters:

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

    ({})

Options Hash (params):

  • :name (required, String)

    Friendly name for the Protection you are creating.

  • :resource_arn (required, String)

    The ARN (Amazon Resource Name) of the resource to be protected.

    The ARN should be in one of the following formats:

    • For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id

    • For an Elastic Load Balancer (Classic Load Balancer): arn:aws:elasticloadbalancing:region:account-id:loadbalancer/load-balancer-name

    • For AWS CloudFront distribution: arn:aws:cloudfront::account-id:distribution/distribution-id

    • For Amazon Route 53: arn:aws:route53::account-id:hostedzone/hosted-zone-id

    • For an Elastic IP address: arn:aws:ec2:region:account-id:eip-allocation/allocation-id

Returns:

See Also:



206
207
208
209
# File 'gems/aws-sdk-shield/lib/aws-sdk-shield/client.rb', line 206

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

#create_subscription(params = {}) ⇒ Struct

Activates AWS Shield Advanced for an account.

Parameters:

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

    ({})

Returns:

  • (Struct)

    Returns an empty response.

See Also:



219
220
221
222
# File 'gems/aws-sdk-shield/lib/aws-sdk-shield/client.rb', line 219

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

#delete_protection(params = {}) ⇒ Struct

Deletes an AWS Shield Advanced Protection.

Examples:

Request syntax with placeholder values


resp = client.delete_protection({
  protection_id: "ProtectionId", # required
})

Parameters:

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

    ({})

Options Hash (params):

  • :protection_id (required, String)

    The unique identifier (ID) for the Protection object to be deleted.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



241
242
243
244
# File 'gems/aws-sdk-shield/lib/aws-sdk-shield/client.rb', line 241

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

#delete_subscription(params = {}) ⇒ Struct

Removes AWS Shield Advanced from an account. AWS Shield Advanced requires a 1-year subscription commitment. You cannot delete a subscription prior to the completion of that commitment.

Parameters:

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

    ({})

Returns:

  • (Struct)

    Returns an empty response.

See Also:



256
257
258
259
# File 'gems/aws-sdk-shield/lib/aws-sdk-shield/client.rb', line 256

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

#describe_attack(params = {}) ⇒ Types::DescribeAttackResponse

Describes the details of a DDoS attack.

Examples:

Request syntax with placeholder values


resp = client.describe_attack({
  attack_id: "AttackId", # required
})

Response structure


resp.attack.attack_id #=> String
resp.attack.resource_arn #=> String
resp.attack.sub_resources #=> Array
resp.attack.sub_resources[0].type #=> String, one of "IP", "URL"
resp.attack.sub_resources[0].id #=> String
resp.attack.sub_resources[0].attack_vectors #=> Array
resp.attack.sub_resources[0].attack_vectors[0].vector_type #=> String
resp.attack.sub_resources[0].attack_vectors[0].vector_counters #=> Array
resp.attack.sub_resources[0].attack_vectors[0].vector_counters[0].name #=> String
resp.attack.sub_resources[0].attack_vectors[0].vector_counters[0].max #=> Float
resp.attack.sub_resources[0].attack_vectors[0].vector_counters[0].average #=> Float
resp.attack.sub_resources[0].attack_vectors[0].vector_counters[0].sum #=> Float
resp.attack.sub_resources[0].attack_vectors[0].vector_counters[0].n #=> Integer
resp.attack.sub_resources[0].attack_vectors[0].vector_counters[0].unit #=> String
resp.attack.sub_resources[0].counters #=> Array
resp.attack.sub_resources[0].counters[0].name #=> String
resp.attack.sub_resources[0].counters[0].max #=> Float
resp.attack.sub_resources[0].counters[0].average #=> Float
resp.attack.sub_resources[0].counters[0].sum #=> Float
resp.attack.sub_resources[0].counters[0].n #=> Integer
resp.attack.sub_resources[0].counters[0].unit #=> String
resp.attack.start_time #=> Time
resp.attack.end_time #=> Time
resp.attack.attack_counters #=> Array
resp.attack.attack_counters[0].name #=> String
resp.attack.attack_counters[0].max #=> Float
resp.attack.attack_counters[0].average #=> Float
resp.attack.attack_counters[0].sum #=> Float
resp.attack.attack_counters[0].n #=> Integer
resp.attack.attack_counters[0].unit #=> String
resp.attack.attack_properties #=> Array
resp.attack.attack_properties[0].attack_layer #=> String, one of "NETWORK", "APPLICATION"
resp.attack.attack_properties[0].attack_property_identifier #=> String, one of "DESTINATION_URL", "REFERRER", "SOURCE_ASN", "SOURCE_COUNTRY", "SOURCE_IP_ADDRESS", "SOURCE_USER_AGENT"
resp.attack.attack_properties[0].top_contributors #=> Array
resp.attack.attack_properties[0].top_contributors[0].name #=> String
resp.attack.attack_properties[0].top_contributors[0].value #=> Integer
resp.attack.attack_properties[0].unit #=> String, one of "BITS", "BYTES", "PACKETS", "REQUESTS"
resp.attack.attack_properties[0].total #=> Integer
resp.attack.mitigations #=> Array
resp.attack.mitigations[0].mitigation_name #=> String

Parameters:

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

    ({})

Options Hash (params):

  • :attack_id (required, String)

    The unique identifier (ID) for the attack that to be described.

Returns:

See Also:



323
324
325
326
# File 'gems/aws-sdk-shield/lib/aws-sdk-shield/client.rb', line 323

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

#describe_protection(params = {}) ⇒ Types::DescribeProtectionResponse

Lists the details of a Protection object.

Examples:

Request syntax with placeholder values


resp = client.describe_protection({
  protection_id: "ProtectionId", # required
})

Response structure


resp.protection.id #=> String
resp.protection.name #=> String
resp.protection.resource_arn #=> String

Parameters:

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

    ({})

Options Hash (params):

  • :protection_id (required, String)

    The unique identifier (ID) for the Protection object that is described.

Returns:

See Also:



354
355
356
357
# File 'gems/aws-sdk-shield/lib/aws-sdk-shield/client.rb', line 354

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

#describe_subscription(params = {}) ⇒ Types::DescribeSubscriptionResponse

Provides details about the AWS Shield Advanced subscription for an account.

Examples:

Response structure


resp.subscription.start_time #=> Time
resp.subscription.time_commitment_in_seconds #=> Integer

Parameters:

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

    ({})

Returns:

See Also:



375
376
377
378
# File 'gems/aws-sdk-shield/lib/aws-sdk-shield/client.rb', line 375

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

#get_subscription_state(params = {}) ⇒ Types::GetSubscriptionStateResponse

Returns the SubscriptionState, either Active or Inactive.

Examples:

Response structure


resp.subscription_state #=> String, one of "ACTIVE", "INACTIVE"

Parameters:

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

    ({})

Returns:

See Also:



394
395
396
397
# File 'gems/aws-sdk-shield/lib/aws-sdk-shield/client.rb', line 394

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

#list_attacks(params = {}) ⇒ Types::ListAttacksResponse

Returns all ongoing DDoS attacks or all DDoS attacks during a specified time period.

Examples:

Request syntax with placeholder values


resp = client.list_attacks({
  resource_arns: ["ResourceArn"],
  start_time: {
    from_inclusive: Time.now,
    to_exclusive: Time.now,
  },
  end_time: {
    from_inclusive: Time.now,
    to_exclusive: Time.now,
  },
  next_token: "Token",
  max_results: 1,
})

Response structure


resp.attack_summaries #=> Array
resp.attack_summaries[0].attack_id #=> String
resp.attack_summaries[0].resource_arn #=> String
resp.attack_summaries[0].start_time #=> Time
resp.attack_summaries[0].end_time #=> Time
resp.attack_summaries[0].attack_vectors #=> Array
resp.attack_summaries[0].attack_vectors[0].vector_type #=> String
resp.next_token #=> String

Parameters:

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

    ({})

Options Hash (params):

  • :resource_arns (Array<String>)

    The ARN (Amazon Resource Name) of the resource that was attacked. If this is left blank, all applicable resources for this account will be included.

  • :start_time (Types::TimeRange)

    The start of the time period for the attacks. This is a timestamp type. The sample request above indicates a number type because the default used by WAF is Unix time in seconds. However any valid timestamp format is allowed.

  • :end_time (Types::TimeRange)

    The end of the time period for the attacks. This is a timestamp type. The sample request above indicates a number type because the default used by WAF is Unix time in seconds. However any valid timestamp format is allowed.

  • :next_token (String)

    The ListAttacksRequest.NextMarker value from a previous call to ListAttacksRequest. Pass null if this is the first call.

  • :max_results (Integer)

    The maximum number of AttackSummary objects to be returned. If this is left blank, the first 20 results will be returned.

Returns:

See Also:



471
472
473
474
# File 'gems/aws-sdk-shield/lib/aws-sdk-shield/client.rb', line 471

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

#list_protections(params = {}) ⇒ Types::ListProtectionsResponse

Lists all Protection objects for the account.

Examples:

Request syntax with placeholder values


resp = client.list_protections({
  next_token: "Token",
  max_results: 1,
})

Response structure


resp.protections #=> Array
resp.protections[0].id #=> String
resp.protections[0].name #=> String
resp.protections[0].resource_arn #=> String
resp.next_token #=> String

Parameters:

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

    ({})

Options Hash (params):

  • :next_token (String)

    The ListProtectionsRequest.NextToken value from a previous call to ListProtections. Pass null if this is the first call.

  • :max_results (Integer)

    The maximum number of Protection objects to be returned. If this is left blank the first 20 results will be returned.

Returns:

See Also:



510
511
512
513
# File 'gems/aws-sdk-shield/lib/aws-sdk-shield/client.rb', line 510

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