# frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
module Aws::Shield
module Types
# Exception that indicates the specified `AttackId` does not exist, or
# the requester does not have the appropriate permissions to access the
# `AttackId`.
#
# @!attribute [rw] message
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AccessDeniedException AWS API Documentation
#
class AccessDeniedException < Struct.new(
:message)
SENSITIVE = []
include Aws::Structure
end
# In order to grant the necessary access to the Shield Response Team
# (SRT) the user submitting the request must have the `iam:PassRole`
# permission. This error indicates the user did not have the appropriate
# permissions. For more information, see [Granting a User Permissions to
# Pass a Role to an Amazon Web Services Service][1].
#
#
#
# [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html
#
# @!attribute [rw] message
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AccessDeniedForDependencyException AWS API Documentation
#
class AccessDeniedForDependencyException < Struct.new(
:message)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass AssociateDRTLogBucketRequest
# data as a hash:
#
# {
# log_bucket: "LogBucket", # required
# }
#
# @!attribute [rw] log_bucket
# The Amazon S3 bucket that contains the logs that you want to share.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTLogBucketRequest AWS API Documentation
#
class AssociateDRTLogBucketRequest < Struct.new(
:log_bucket)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTLogBucketResponse AWS API Documentation
#
class AssociateDRTLogBucketResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass AssociateDRTRoleRequest
# data as a hash:
#
# {
# role_arn: "RoleArn", # required
# }
#
# @!attribute [rw] role_arn
# The Amazon Resource Name (ARN) of the role the SRT will use to
# access your Amazon Web Services account.
#
# Prior to making the `AssociateDRTRole` request, you must attach the
# [AWSShieldDRTAccessPolicy][1] managed policy to this role. For more
# information see [Attaching and Detaching IAM Policies](
# https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
#
#
#
# [1]: https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/service-role/AWSShieldDRTAccessPolicy
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTRoleRequest AWS API Documentation
#
class AssociateDRTRoleRequest < Struct.new(
:role_arn)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateDRTRoleResponse AWS API Documentation
#
class AssociateDRTRoleResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass AssociateHealthCheckRequest
# data as a hash:
#
# {
# protection_id: "ProtectionId", # required
# health_check_arn: "HealthCheckArn", # required
# }
#
# @!attribute [rw] protection_id
# The unique identifier (ID) for the Protection object to add the
# health check association to.
# @return [String]
#
# @!attribute [rw] health_check_arn
# The Amazon Resource Name (ARN) of the health check to associate with
# the protection.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateHealthCheckRequest AWS API Documentation
#
class AssociateHealthCheckRequest < Struct.new(
:protection_id,
:health_check_arn)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateHealthCheckResponse AWS API Documentation
#
class AssociateHealthCheckResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass AssociateProactiveEngagementDetailsRequest
# data as a hash:
#
# {
# emergency_contact_list: [ # required
# {
# email_address: "EmailAddress", # required
# phone_number: "PhoneNumber",
# contact_notes: "ContactNotes",
# },
# ],
# }
#
# @!attribute [rw] emergency_contact_list
# A list of email addresses and phone numbers that the Shield Response
# Team (SRT) can use to contact you for escalations to the SRT and to
# initiate proactive customer support.
#
# To enable proactive engagement, the contact list must include at
# least one phone number.
#
# The contacts that you provide here replace any contacts that were
# already defined. If you already have contacts defined and want to
# use them, retrieve the list using `DescribeEmergencyContactSettings`
# and then provide it here.
#
#
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateProactiveEngagementDetailsRequest AWS API Documentation
#
class AssociateProactiveEngagementDetailsRequest < Struct.new(
:emergency_contact_list)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AssociateProactiveEngagementDetailsResponse AWS API Documentation
#
class AssociateProactiveEngagementDetailsResponse < Aws::EmptyStructure; end
# The details of a DDoS attack.
#
# @!attribute [rw] attack_id
# The unique identifier (ID) of the attack.
# @return [String]
#
# @!attribute [rw] resource_arn
# The ARN (Amazon Resource Name) of the resource that was attacked.
# @return [String]
#
# @!attribute [rw] sub_resources
# If applicable, additional detail about the resource being attacked,
# for example, IP address or URL.
# @return [Array]
#
# @!attribute [rw] start_time
# The time the attack started, in Unix time in seconds. For more
# information see [timestamp][1].
#
#
#
# [1]: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types
# @return [Time]
#
# @!attribute [rw] end_time
# The time the attack ended, in Unix time in seconds. For more
# information see [timestamp][1].
#
#
#
# [1]: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types
# @return [Time]
#
# @!attribute [rw] attack_counters
# List of counters that describe the attack for the specified time
# period.
# @return [Array]
#
# @!attribute [rw] attack_properties
# The array of objects that provide details of the Shield event.
#
# For infrastructure layer events (L3 and L4 events) after January 25,
# 2021, you can view metrics for top contributors in Amazon CloudWatch
# metrics. For more information, see [Shield metrics and alarms][1] in
# the *WAF Developer Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#set-ddos-alarms
# @return [Array]
#
# @!attribute [rw] mitigations
# List of mitigation actions taken for the attack.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AttackDetail AWS API Documentation
#
class AttackDetail < Struct.new(
:attack_id,
:resource_arn,
:sub_resources,
:start_time,
:end_time,
:attack_counters,
:attack_properties,
:mitigations)
SENSITIVE = []
include Aws::Structure
end
# Details of a Shield event. This is provided as part of an
# AttackDetail.
#
# @!attribute [rw] attack_layer
# The type of Shield event that was observed. `NETWORK` indicates
# layer 3 and layer 4 events and `APPLICATION` indicates layer 7
# events.
#
# For infrastructure layer events (L3 and L4 events) after January 25,
# 2021, you can view metrics for top contributors in Amazon CloudWatch
# metrics. For more information, see [Shield metrics and alarms][1] in
# the *WAF Developer Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#set-ddos-alarms
# @return [String]
#
# @!attribute [rw] attack_property_identifier
# Defines the Shield event property information that is provided. The
# `WORDPRESS_PINGBACK_REFLECTOR` and `WORDPRESS_PINGBACK_SOURCE`
# values are valid only for WordPress reflective pingback events.
# @return [String]
#
# @!attribute [rw] top_contributors
# Contributor objects for the top five contributors to a Shield event.
# @return [Array]
#
# @!attribute [rw] unit
# The unit used for the `Contributor` `Value` property.
# @return [String]
#
# @!attribute [rw] total
# The total contributions made to this Shield event by all
# contributors.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AttackProperty AWS API Documentation
#
class AttackProperty < Struct.new(
:attack_layer,
:attack_property_identifier,
:top_contributors,
:unit,
:total)
SENSITIVE = []
include Aws::Structure
end
# A single attack statistics data record. This is returned by
# DescribeAttackStatistics along with a time range indicating the time
# period that the attack statistics apply to.
#
# @!attribute [rw] attack_volume
# Information about the volume of attacks during the time period. If
# the accompanying `AttackCount` is zero, this setting might be empty.
# @return [Types::AttackVolume]
#
# @!attribute [rw] attack_count
# The number of attacks detected during the time period. This is
# always present, but might be zero.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AttackStatisticsDataItem AWS API Documentation
#
class AttackStatisticsDataItem < Struct.new(
:attack_volume,
:attack_count)
SENSITIVE = []
include Aws::Structure
end
# Summarizes all DDoS attacks for a specified time period.
#
# @!attribute [rw] attack_id
# The unique identifier (ID) of the attack.
# @return [String]
#
# @!attribute [rw] resource_arn
# The ARN (Amazon Resource Name) of the resource that was attacked.
# @return [String]
#
# @!attribute [rw] start_time
# The start time of the attack, in Unix time in seconds. For more
# information see [timestamp][1].
#
#
#
# [1]: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types
# @return [Time]
#
# @!attribute [rw] end_time
# The end time of the attack, in Unix time in seconds. For more
# information see [timestamp][1].
#
#
#
# [1]: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types
# @return [Time]
#
# @!attribute [rw] attack_vectors
# The list of attacks for a specified time period.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AttackSummary AWS API Documentation
#
class AttackSummary < Struct.new(
:attack_id,
:resource_arn,
:start_time,
:end_time,
:attack_vectors)
SENSITIVE = []
include Aws::Structure
end
# Describes the attack.
#
# @!attribute [rw] vector_type
# The attack type. Valid values:
#
# * UDP\_TRAFFIC
#
# * UDP\_FRAGMENT
#
# * GENERIC\_UDP\_REFLECTION
#
# * DNS\_REFLECTION
#
# * NTP\_REFLECTION
#
# * CHARGEN\_REFLECTION
#
# * SSDP\_REFLECTION
#
# * PORT\_MAPPER
#
# * RIP\_REFLECTION
#
# * SNMP\_REFLECTION
#
# * MSSQL\_REFLECTION
#
# * NET\_BIOS\_REFLECTION
#
# * SYN\_FLOOD
#
# * ACK\_FLOOD
#
# * REQUEST\_FLOOD
#
# * HTTP\_REFLECTION
#
# * UDS\_REFLECTION
#
# * MEMCACHED\_REFLECTION
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AttackVectorDescription AWS API Documentation
#
class AttackVectorDescription < Struct.new(
:vector_type)
SENSITIVE = []
include Aws::Structure
end
# Information about the volume of attacks during the time period,
# included in an AttackStatisticsDataItem. If the accompanying
# `AttackCount` in the statistics object is zero, this setting might be
# empty.
#
# @!attribute [rw] bits_per_second
# A statistics object that uses bits per second as the unit. This is
# included for network level attacks.
# @return [Types::AttackVolumeStatistics]
#
# @!attribute [rw] packets_per_second
# A statistics object that uses packets per second as the unit. This
# is included for network level attacks.
# @return [Types::AttackVolumeStatistics]
#
# @!attribute [rw] requests_per_second
# A statistics object that uses requests per second as the unit. This
# is included for application level attacks, and is only available for
# accounts that are subscribed to Shield Advanced.
# @return [Types::AttackVolumeStatistics]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AttackVolume AWS API Documentation
#
class AttackVolume < Struct.new(
:bits_per_second,
:packets_per_second,
:requests_per_second)
SENSITIVE = []
include Aws::Structure
end
# Statistics objects for the various data types in AttackVolume.
#
# @!attribute [rw] max
# The maximum attack volume observed for the given unit.
# @return [Float]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/AttackVolumeStatistics AWS API Documentation
#
class AttackVolumeStatistics < Struct.new(
:max)
SENSITIVE = []
include Aws::Structure
end
# A contributor to the attack and their contribution.
#
# @!attribute [rw] name
# The name of the contributor. This is dependent on the
# `AttackPropertyIdentifier`. For example, if the
# `AttackPropertyIdentifier` is `SOURCE_COUNTRY`, the `Name` could be
# `United States`.
# @return [String]
#
# @!attribute [rw] value
# The contribution of this contributor expressed in Protection units.
# For example `10,000`.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Contributor AWS API Documentation
#
class Contributor < Struct.new(
:name,
:value)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass CreateProtectionGroupRequest
# data as a hash:
#
# {
# protection_group_id: "ProtectionGroupId", # required
# aggregation: "SUM", # required, accepts SUM, MEAN, MAX
# pattern: "ALL", # required, accepts ALL, ARBITRARY, BY_RESOURCE_TYPE
# resource_type: "CLOUDFRONT_DISTRIBUTION", # accepts CLOUDFRONT_DISTRIBUTION, ROUTE_53_HOSTED_ZONE, ELASTIC_IP_ALLOCATION, CLASSIC_LOAD_BALANCER, APPLICATION_LOAD_BALANCER, GLOBAL_ACCELERATOR
# members: ["ResourceArn"],
# tags: [
# {
# key: "TagKey",
# value: "TagValue",
# },
# ],
# }
#
# @!attribute [rw] protection_group_id
# The name of the protection group. You use this to identify the
# protection group in lists and to manage the protection group, for
# example to update, delete, or describe it.
# @return [String]
#
# @!attribute [rw] aggregation
# Defines how Shield combines resource data for the group in order to
# detect, mitigate, and report events.
#
# * Sum - Use the total traffic across the group. This is a good
# choice for most cases. Examples include Elastic IP addresses for
# EC2 instances that scale manually or automatically.
#
# * Mean - Use the average of the traffic across the group. This is a
# good choice for resources that share traffic uniformly. Examples
# include accelerators and load balancers.
#
# * Max - Use the highest traffic from each resource. This is useful
# for resources that don't share traffic and for resources that
# share that traffic in a non-uniform way. Examples include Amazon
# CloudFront and origin resources for CloudFront distributions.
# @return [String]
#
# @!attribute [rw] pattern
# The criteria to use to choose the protected resources for inclusion
# in the group. You can include all resources that have protections,
# provide a list of resource Amazon Resource Names (ARNs), or include
# all resources of a specified resource type.
# @return [String]
#
# @!attribute [rw] resource_type
# The resource type to include in the protection group. All protected
# resources of this type are included in the protection group. Newly
# protected resources of this type are automatically added to the
# group. You must set this when you set `Pattern` to
# `BY_RESOURCE_TYPE` and you must not set it for any other `Pattern`
# setting.
# @return [String]
#
# @!attribute [rw] members
# The Amazon Resource Names (ARNs) of the resources to include in the
# protection group. You must set this when you set `Pattern` to
# `ARBITRARY` and you must not set it for any other `Pattern` setting.
# @return [Array]
#
# @!attribute [rw] tags
# One or more tag key-value pairs for the protection group.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroupRequest AWS API Documentation
#
class CreateProtectionGroupRequest < Struct.new(
:protection_group_id,
:aggregation,
:pattern,
:resource_type,
:members,
:tags)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionGroupResponse AWS API Documentation
#
class CreateProtectionGroupResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass CreateProtectionRequest
# data as a hash:
#
# {
# name: "ProtectionName", # required
# resource_arn: "ResourceArn", # required
# tags: [
# {
# key: "TagKey",
# value: "TagValue",
# },
# ],
# }
#
# @!attribute [rw] name
# Friendly name for the `Protection` you are creating.
# @return [String]
#
# @!attribute [rw] resource_arn
# 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 an Amazon CloudFront distribution:
# `arn:aws:cloudfront::account-id:distribution/distribution-id `
#
# * For an Global Accelerator accelerator:
# `arn:aws:globalaccelerator::account-id:accelerator/accelerator-id
# `
#
# * For Amazon Route 53: `arn:aws:route53:::hostedzone/hosted-zone-id
# `
#
# * For an Elastic IP address:
# `arn:aws:ec2:region:account-id:eip-allocation/allocation-id `
# @return [String]
#
# @!attribute [rw] tags
# One or more tag key-value pairs for the Protection object that is
# created.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionRequest AWS API Documentation
#
class CreateProtectionRequest < Struct.new(
:name,
:resource_arn,
:tags)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] protection_id
# The unique identifier (ID) for the Protection object that is
# created.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateProtectionResponse AWS API Documentation
#
class CreateProtectionResponse < Struct.new(
:protection_id)
SENSITIVE = []
include Aws::Structure
end
# @api private
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateSubscriptionRequest AWS API Documentation
#
class CreateSubscriptionRequest < Aws::EmptyStructure; end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/CreateSubscriptionResponse AWS API Documentation
#
class CreateSubscriptionResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass DeleteProtectionGroupRequest
# data as a hash:
#
# {
# protection_group_id: "ProtectionGroupId", # required
# }
#
# @!attribute [rw] protection_group_id
# The name of the protection group. You use this to identify the
# protection group in lists and to manage the protection group, for
# example to update, delete, or describe it.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroupRequest AWS API Documentation
#
class DeleteProtectionGroupRequest < Struct.new(
:protection_group_id)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionGroupResponse AWS API Documentation
#
class DeleteProtectionGroupResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass DeleteProtectionRequest
# data as a hash:
#
# {
# protection_id: "ProtectionId", # required
# }
#
# @!attribute [rw] protection_id
# The unique identifier (ID) for the Protection object to be deleted.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionRequest AWS API Documentation
#
class DeleteProtectionRequest < Struct.new(
:protection_id)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteProtectionResponse AWS API Documentation
#
class DeleteProtectionResponse < Aws::EmptyStructure; end
# @api private
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteSubscriptionRequest AWS API Documentation
#
class DeleteSubscriptionRequest < Aws::EmptyStructure; end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DeleteSubscriptionResponse AWS API Documentation
#
class DeleteSubscriptionResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass DescribeAttackRequest
# data as a hash:
#
# {
# attack_id: "AttackId", # required
# }
#
# @!attribute [rw] attack_id
# The unique identifier (ID) for the attack that to be described.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackRequest AWS API Documentation
#
class DescribeAttackRequest < Struct.new(
:attack_id)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] attack
# The attack that is described.
# @return [Types::AttackDetail]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackResponse AWS API Documentation
#
class DescribeAttackResponse < Struct.new(
:attack)
SENSITIVE = []
include Aws::Structure
end
# @api private
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatisticsRequest AWS API Documentation
#
class DescribeAttackStatisticsRequest < Aws::EmptyStructure; end
# @!attribute [rw] time_range
# The time range.
# @return [Types::TimeRange]
#
# @!attribute [rw] data_items
# The data that describes the attacks detected during the time period.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeAttackStatisticsResponse AWS API Documentation
#
class DescribeAttackStatisticsResponse < Struct.new(
:time_range,
:data_items)
SENSITIVE = []
include Aws::Structure
end
# @api private
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeDRTAccessRequest AWS API Documentation
#
class DescribeDRTAccessRequest < Aws::EmptyStructure; end
# @!attribute [rw] role_arn
# The Amazon Resource Name (ARN) of the role the SRT used to access
# your Amazon Web Services account.
# @return [String]
#
# @!attribute [rw] log_bucket_list
# The list of Amazon S3 buckets accessed by the SRT.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeDRTAccessResponse AWS API Documentation
#
class DescribeDRTAccessResponse < Struct.new(
:role_arn,
:log_bucket_list)
SENSITIVE = []
include Aws::Structure
end
# @api private
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeEmergencyContactSettingsRequest AWS API Documentation
#
class DescribeEmergencyContactSettingsRequest < Aws::EmptyStructure; end
# @!attribute [rw] emergency_contact_list
# A list of email addresses and phone numbers that the Shield Response
# Team (SRT) can use to contact you if you have proactive engagement
# enabled, for escalations to the SRT and to initiate proactive
# customer support.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeEmergencyContactSettingsResponse AWS API Documentation
#
class DescribeEmergencyContactSettingsResponse < Struct.new(
:emergency_contact_list)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DescribeProtectionGroupRequest
# data as a hash:
#
# {
# protection_group_id: "ProtectionGroupId", # required
# }
#
# @!attribute [rw] protection_group_id
# The name of the protection group. You use this to identify the
# protection group in lists and to manage the protection group, for
# example to update, delete, or describe it.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroupRequest AWS API Documentation
#
class DescribeProtectionGroupRequest < Struct.new(
:protection_group_id)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] protection_group
# A grouping of protected resources that you and Shield Advanced can
# monitor as a collective. This resource grouping improves the
# accuracy of detection and reduces false positives.
# @return [Types::ProtectionGroup]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionGroupResponse AWS API Documentation
#
class DescribeProtectionGroupResponse < Struct.new(
:protection_group)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DescribeProtectionRequest
# data as a hash:
#
# {
# protection_id: "ProtectionId",
# resource_arn: "ResourceArn",
# }
#
# @!attribute [rw] protection_id
# The unique identifier (ID) for the Protection object that is
# described. When submitting the `DescribeProtection` request you must
# provide either the `ResourceArn` or the `ProtectionID`, but not
# both.
# @return [String]
#
# @!attribute [rw] resource_arn
# The ARN (Amazon Resource Name) of the Amazon Web Services resource
# for the Protection object that is described. When submitting the
# `DescribeProtection` request you must provide either the
# `ResourceArn` or the `ProtectionID`, but not both.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionRequest AWS API Documentation
#
class DescribeProtectionRequest < Struct.new(
:protection_id,
:resource_arn)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] protection
# The Protection object that is described.
# @return [Types::Protection]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeProtectionResponse AWS API Documentation
#
class DescribeProtectionResponse < Struct.new(
:protection)
SENSITIVE = []
include Aws::Structure
end
# @api private
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeSubscriptionRequest AWS API Documentation
#
class DescribeSubscriptionRequest < Aws::EmptyStructure; end
# @!attribute [rw] subscription
# The Shield Advanced subscription details for an account.
# @return [Types::Subscription]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DescribeSubscriptionResponse AWS API Documentation
#
class DescribeSubscriptionResponse < Struct.new(
:subscription)
SENSITIVE = []
include Aws::Structure
end
# @api private
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisableProactiveEngagementRequest AWS API Documentation
#
class DisableProactiveEngagementRequest < Aws::EmptyStructure; end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisableProactiveEngagementResponse AWS API Documentation
#
class DisableProactiveEngagementResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass DisassociateDRTLogBucketRequest
# data as a hash:
#
# {
# log_bucket: "LogBucket", # required
# }
#
# @!attribute [rw] log_bucket
# The Amazon S3 bucket that contains the logs that you want to share.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTLogBucketRequest AWS API Documentation
#
class DisassociateDRTLogBucketRequest < Struct.new(
:log_bucket)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTLogBucketResponse AWS API Documentation
#
class DisassociateDRTLogBucketResponse < Aws::EmptyStructure; end
# @api private
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTRoleRequest AWS API Documentation
#
class DisassociateDRTRoleRequest < Aws::EmptyStructure; end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateDRTRoleResponse AWS API Documentation
#
class DisassociateDRTRoleResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass DisassociateHealthCheckRequest
# data as a hash:
#
# {
# protection_id: "ProtectionId", # required
# health_check_arn: "HealthCheckArn", # required
# }
#
# @!attribute [rw] protection_id
# The unique identifier (ID) for the Protection object to remove the
# health check association from.
# @return [String]
#
# @!attribute [rw] health_check_arn
# The Amazon Resource Name (ARN) of the health check that is
# associated with the protection.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateHealthCheckRequest AWS API Documentation
#
class DisassociateHealthCheckRequest < Struct.new(
:protection_id,
:health_check_arn)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/DisassociateHealthCheckResponse AWS API Documentation
#
class DisassociateHealthCheckResponse < Aws::EmptyStructure; end
# Contact information that the SRT can use to contact you if you have
# proactive engagement enabled, for escalations to the SRT and to
# initiate proactive customer support.
#
# @note When making an API call, you may pass EmergencyContact
# data as a hash:
#
# {
# email_address: "EmailAddress", # required
# phone_number: "PhoneNumber",
# contact_notes: "ContactNotes",
# }
#
# @!attribute [rw] email_address
# The email address for the contact.
# @return [String]
#
# @!attribute [rw] phone_number
# The phone number for the contact.
# @return [String]
#
# @!attribute [rw] contact_notes
# Additional notes regarding the contact.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/EmergencyContact AWS API Documentation
#
class EmergencyContact < Struct.new(
:email_address,
:phone_number,
:contact_notes)
SENSITIVE = []
include Aws::Structure
end
# @api private
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/EnableProactiveEngagementRequest AWS API Documentation
#
class EnableProactiveEngagementRequest < Aws::EmptyStructure; end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/EnableProactiveEngagementResponse AWS API Documentation
#
class EnableProactiveEngagementResponse < Aws::EmptyStructure; end
# @api private
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/GetSubscriptionStateRequest AWS API Documentation
#
class GetSubscriptionStateRequest < Aws::EmptyStructure; end
# @!attribute [rw] subscription_state
# The status of the subscription.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/GetSubscriptionStateResponse AWS API Documentation
#
class GetSubscriptionStateResponse < Struct.new(
:subscription_state)
SENSITIVE = []
include Aws::Structure
end
# Exception that indicates that a problem occurred with the service
# infrastructure. You can retry the request.
#
# @!attribute [rw] message
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/InternalErrorException AWS API Documentation
#
class InternalErrorException < Struct.new(
:message)
SENSITIVE = []
include Aws::Structure
end
# Exception that indicates that the operation would not cause any change
# to occur.
#
# @!attribute [rw] message
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/InvalidOperationException AWS API Documentation
#
class InvalidOperationException < Struct.new(
:message)
SENSITIVE = []
include Aws::Structure
end
# Exception that indicates that the NextToken specified in the request
# is invalid. Submit the request using the NextToken value that was
# returned in the response.
#
# @!attribute [rw] message
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/InvalidPaginationTokenException AWS API Documentation
#
class InvalidPaginationTokenException < Struct.new(
:message)
SENSITIVE = []
include Aws::Structure
end
# Exception that indicates that the parameters passed to the API are
# invalid. If available, this exception includes details in additional
# properties.
#
# @!attribute [rw] message
# @return [String]
#
# @!attribute [rw] reason
# Additional information about the exception.
# @return [String]
#
# @!attribute [rw] fields
# Fields that caused the exception.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/InvalidParameterException AWS API Documentation
#
class InvalidParameterException < Struct.new(
:message,
:reason,
:fields)
SENSITIVE = []
include Aws::Structure
end
# Exception that indicates that the resource is invalid. You might not
# have access to the resource, or the resource might not exist.
#
# @!attribute [rw] message
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/InvalidResourceException AWS API Documentation
#
class InvalidResourceException < Struct.new(
:message)
SENSITIVE = []
include Aws::Structure
end
# Specifies how many protections of a given type you can create.
#
# @!attribute [rw] type
# The type of protection.
# @return [String]
#
# @!attribute [rw] max
# The maximum number of protections that can be created for the
# specified `Type`.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Limit AWS API Documentation
#
class Limit < Struct.new(
:type,
:max)
SENSITIVE = []
include Aws::Structure
end
# Exception that indicates that the operation would exceed a limit.
#
# @!attribute [rw] message
# @return [String]
#
# @!attribute [rw] type
# The type of limit that would be exceeded.
# @return [String]
#
# @!attribute [rw] limit
# The threshold that would be exceeded.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/LimitsExceededException AWS API Documentation
#
class LimitsExceededException < Struct.new(
:message,
:type,
:limit)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListAttacksRequest
# data as a hash:
#
# {
# 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,
# }
#
# @!attribute [rw] resource_arns
# 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.
# @return [Array]
#
# @!attribute [rw] start_time
# 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][1] is allowed.
#
#
#
# [1]: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types
# @return [Types::TimeRange]
#
# @!attribute [rw] end_time
# 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][1] is allowed.
#
#
#
# [1]: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types
# @return [Types::TimeRange]
#
# @!attribute [rw] next_token
# The `ListAttacksRequest.NextMarker` value from a previous call to
# `ListAttacksRequest`. Pass null if this is the first call.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of AttackSummary objects to return. If you leave
# this blank, Shield Advanced returns the first 20 results.
#
# This is a maximum value. Shield Advanced might return the results in
# smaller batches. That is, the number of objects returned could be
# less than `MaxResults`, even if there are still more objects yet to
# return. If there are more objects to return, Shield Advanced returns
# a value in `NextToken` that you can use in your next request, to get
# the next batch of objects.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListAttacksRequest AWS API Documentation
#
class ListAttacksRequest < Struct.new(
:resource_arns,
:start_time,
:end_time,
:next_token,
:max_results)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] attack_summaries
# The attack information for the specified time range.
# @return [Array]
#
# @!attribute [rw] next_token
# The token returned by a previous call to indicate that there is more
# data available. If not null, more results are available. Pass this
# value for the `NextMarker` parameter in a subsequent call to
# `ListAttacks` to retrieve the next set of items.
#
# Shield Advanced might return the list of AttackSummary objects in
# batches smaller than the number specified by MaxResults. If there
# are more attack summary objects to return, Shield Advanced will
# always also return a `NextToken`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListAttacksResponse AWS API Documentation
#
class ListAttacksResponse < Struct.new(
:attack_summaries,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListProtectionGroupsRequest
# data as a hash:
#
# {
# next_token: "Token",
# max_results: 1,
# }
#
# @!attribute [rw] next_token
# The next token value from a previous call to `ListProtectionGroups`.
# Pass null if this is the first call.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of ProtectionGroup objects to return. If you
# leave this blank, Shield Advanced returns the first 20 results.
#
# This is a maximum value. Shield Advanced might return the results in
# smaller batches. That is, the number of objects returned could be
# less than `MaxResults`, even if there are still more objects yet to
# return. If there are more objects to return, Shield Advanced returns
# a value in `NextToken` that you can use in your next request, to get
# the next batch of objects.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroupsRequest AWS API Documentation
#
class ListProtectionGroupsRequest < Struct.new(
:next_token,
:max_results)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] protection_groups
# @return [Array]
#
# @!attribute [rw] next_token
# If you specify a value for `MaxResults` and you have more protection
# groups than the value of MaxResults, Shield Advanced returns this
# token that you can use in your next request, to get the next batch
# of objects.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionGroupsResponse AWS API Documentation
#
class ListProtectionGroupsResponse < Struct.new(
:protection_groups,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListProtectionsRequest
# data as a hash:
#
# {
# next_token: "Token",
# max_results: 1,
# }
#
# @!attribute [rw] next_token
# The `ListProtectionsRequest.NextToken` value from a previous call to
# `ListProtections`. Pass null if this is the first call.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of Protection objects to return. If you leave
# this blank, Shield Advanced returns the first 20 results.
#
# This is a maximum value. Shield Advanced might return the results in
# smaller batches. That is, the number of objects returned could be
# less than `MaxResults`, even if there are still more objects yet to
# return. If there are more objects to return, Shield Advanced returns
# a value in `NextToken` that you can use in your next request, to get
# the next batch of objects.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionsRequest AWS API Documentation
#
class ListProtectionsRequest < Struct.new(
:next_token,
:max_results)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] protections
# The array of enabled Protection objects.
# @return [Array]
#
# @!attribute [rw] next_token
# If you specify a value for `MaxResults` and you have more
# Protections than the value of MaxResults, Shield Advanced returns a
# NextToken value in the response that allows you to list another
# group of Protections. For the second and subsequent ListProtections
# requests, specify the value of NextToken from the previous response
# to get information about another batch of Protections.
#
# Shield Advanced might return the list of Protection objects in
# batches smaller than the number specified by MaxResults. If there
# are more Protection objects to return, Shield Advanced will always
# also return a `NextToken`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListProtectionsResponse AWS API Documentation
#
class ListProtectionsResponse < Struct.new(
:protections,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListResourcesInProtectionGroupRequest
# data as a hash:
#
# {
# protection_group_id: "ProtectionGroupId", # required
# next_token: "Token",
# max_results: 1,
# }
#
# @!attribute [rw] protection_group_id
# The name of the protection group. You use this to identify the
# protection group in lists and to manage the protection group, for
# example to update, delete, or describe it.
# @return [String]
#
# @!attribute [rw] next_token
# The next token value from a previous call to
# `ListResourcesInProtectionGroup`. Pass null if this is the first
# call.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of resource ARN objects to return. If you leave
# this blank, Shield Advanced returns the first 20 results.
#
# This is a maximum value. Shield Advanced might return the results in
# smaller batches. That is, the number of objects returned could be
# less than `MaxResults`, even if there are still more objects yet to
# return. If there are more objects to return, Shield Advanced returns
# a value in `NextToken` that you can use in your next request, to get
# the next batch of objects.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroupRequest AWS API Documentation
#
class ListResourcesInProtectionGroupRequest < Struct.new(
:protection_group_id,
:next_token,
:max_results)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] resource_arns
# The Amazon Resource Names (ARNs) of the resources that are included
# in the protection group.
# @return [Array]
#
# @!attribute [rw] next_token
# If you specify a value for `MaxResults` and you have more resources
# in the protection group than the value of MaxResults, Shield
# Advanced returns this token that you can use in your next request,
# to get the next batch of objects.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListResourcesInProtectionGroupResponse AWS API Documentation
#
class ListResourcesInProtectionGroupResponse < Struct.new(
:resource_arns,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListTagsForResourceRequest
# data as a hash:
#
# {
# resource_arn: "ResourceArn", # required
# }
#
# @!attribute [rw] resource_arn
# The Amazon Resource Name (ARN) of the resource to get tags for.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListTagsForResourceRequest AWS API Documentation
#
class ListTagsForResourceRequest < Struct.new(
:resource_arn)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] tags
# A list of tag key and value pairs associated with the specified
# resource.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ListTagsForResourceResponse AWS API Documentation
#
class ListTagsForResourceResponse < Struct.new(
:tags)
SENSITIVE = []
include Aws::Structure
end
# You are trying to update a subscription that has not yet completed the
# 1-year commitment. You can change the `AutoRenew` parameter during the
# last 30 days of your subscription. This exception indicates that you
# are attempting to change `AutoRenew` prior to that period.
#
# @!attribute [rw] message
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/LockedSubscriptionException AWS API Documentation
#
class LockedSubscriptionException < Struct.new(
:message)
SENSITIVE = []
include Aws::Structure
end
# The mitigation applied to a DDoS attack.
#
# @!attribute [rw] mitigation_name
# The name of the mitigation taken for this attack.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Mitigation AWS API Documentation
#
class Mitigation < Struct.new(
:mitigation_name)
SENSITIVE = []
include Aws::Structure
end
# The ARN of the role that you specifed does not exist.
#
# @!attribute [rw] message
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/NoAssociatedRoleException AWS API Documentation
#
class NoAssociatedRoleException < Struct.new(
:message)
SENSITIVE = []
include Aws::Structure
end
# Exception that indicates that the resource state has been modified by
# another client. Retrieve the resource and then retry your request.
#
# @!attribute [rw] message
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/OptimisticLockException AWS API Documentation
#
class OptimisticLockException < Struct.new(
:message)
SENSITIVE = []
include Aws::Structure
end
# An object that represents a resource that is under DDoS protection.
#
# @!attribute [rw] id
# The unique identifier (ID) of the protection.
# @return [String]
#
# @!attribute [rw] name
# The name of the protection. For example, `My CloudFront
# distributions`.
# @return [String]
#
# @!attribute [rw] resource_arn
# The ARN (Amazon Resource Name) of the Amazon Web Services resource
# that is protected.
# @return [String]
#
# @!attribute [rw] health_check_ids
# The unique identifier (ID) for the Route 53 health check that's
# associated with the protection.
# @return [Array]
#
# @!attribute [rw] protection_arn
# The ARN (Amazon Resource Name) of the protection.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Protection AWS API Documentation
#
class Protection < Struct.new(
:id,
:name,
:resource_arn,
:health_check_ids,
:protection_arn)
SENSITIVE = []
include Aws::Structure
end
# A grouping of protected resources that you and Shield Advanced can
# monitor as a collective. This resource grouping improves the accuracy
# of detection and reduces false positives.
#
# @!attribute [rw] protection_group_id
# The name of the protection group. You use this to identify the
# protection group in lists and to manage the protection group, for
# example to update, delete, or describe it.
# @return [String]
#
# @!attribute [rw] aggregation
# Defines how Shield combines resource data for the group in order to
# detect, mitigate, and report events.
#
# * Sum - Use the total traffic across the group. This is a good
# choice for most cases. Examples include Elastic IP addresses for
# EC2 instances that scale manually or automatically.
#
# * Mean - Use the average of the traffic across the group. This is a
# good choice for resources that share traffic uniformly. Examples
# include accelerators and load balancers.
#
# * Max - Use the highest traffic from each resource. This is useful
# for resources that don't share traffic and for resources that
# share that traffic in a non-uniform way. Examples include Amazon
# CloudFront distributions and origin resources for CloudFront
# distributions.
# @return [String]
#
# @!attribute [rw] pattern
# The criteria to use to choose the protected resources for inclusion
# in the group. You can include all resources that have protections,
# provide a list of resource Amazon Resource Names (ARNs), or include
# all resources of a specified resource type.
# @return [String]
#
# @!attribute [rw] resource_type
# The resource type to include in the protection group. All protected
# resources of this type are included in the protection group. You
# must set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you
# must not set it for any other `Pattern` setting.
# @return [String]
#
# @!attribute [rw] members
# The Amazon Resource Names (ARNs) of the resources to include in the
# protection group. You must set this when you set `Pattern` to
# `ARBITRARY` and you must not set it for any other `Pattern` setting.
# @return [Array]
#
# @!attribute [rw] protection_group_arn
# The ARN (Amazon Resource Name) of the protection group.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroup AWS API Documentation
#
class ProtectionGroup < Struct.new(
:protection_group_id,
:aggregation,
:pattern,
:resource_type,
:members,
:protection_group_arn)
SENSITIVE = []
include Aws::Structure
end
# Limits settings on protection groups with arbitrary pattern type.
#
# @!attribute [rw] max_members
# The maximum number of resources you can specify for a single
# arbitrary pattern in a protection group.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroupArbitraryPatternLimits AWS API Documentation
#
class ProtectionGroupArbitraryPatternLimits < Struct.new(
:max_members)
SENSITIVE = []
include Aws::Structure
end
# Limits settings on protection groups for your subscription.
#
# @!attribute [rw] max_protection_groups
# The maximum number of protection groups that you can have at one
# time.
# @return [Integer]
#
# @!attribute [rw] pattern_type_limits
# Limits settings by pattern type in the protection groups for your
# subscription.
# @return [Types::ProtectionGroupPatternTypeLimits]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroupLimits AWS API Documentation
#
class ProtectionGroupLimits < Struct.new(
:max_protection_groups,
:pattern_type_limits)
SENSITIVE = []
include Aws::Structure
end
# Limits settings by pattern type in the protection groups for your
# subscription.
#
# @!attribute [rw] arbitrary_pattern_limits
# Limits settings on protection groups with arbitrary pattern type.
# @return [Types::ProtectionGroupArbitraryPatternLimits]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionGroupPatternTypeLimits AWS API Documentation
#
class ProtectionGroupPatternTypeLimits < Struct.new(
:arbitrary_pattern_limits)
SENSITIVE = []
include Aws::Structure
end
# Limits settings on protections for your subscription.
#
# @!attribute [rw] protected_resource_type_limits
# The maximum number of resource types that you can specify in a
# protection.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ProtectionLimits AWS API Documentation
#
class ProtectionLimits < Struct.new(
:protected_resource_type_limits)
SENSITIVE = []
include Aws::Structure
end
# Exception indicating the specified resource already exists. If
# available, this exception includes details in additional properties.
#
# @!attribute [rw] message
# @return [String]
#
# @!attribute [rw] resource_type
# The type of resource that already exists.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ResourceAlreadyExistsException AWS API Documentation
#
class ResourceAlreadyExistsException < Struct.new(
:message,
:resource_type)
SENSITIVE = []
include Aws::Structure
end
# Exception indicating the specified resource does not exist. If
# available, this exception includes details in additional properties.
#
# @!attribute [rw] message
# @return [String]
#
# @!attribute [rw] resource_type
# Type of resource.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ResourceNotFoundException AWS API Documentation
#
class ResourceNotFoundException < Struct.new(
:message,
:resource_type)
SENSITIVE = []
include Aws::Structure
end
# The attack information for the specified SubResource.
#
# @!attribute [rw] type
# The `SubResource` type.
# @return [String]
#
# @!attribute [rw] id
# The unique identifier (ID) of the `SubResource`.
# @return [String]
#
# @!attribute [rw] attack_vectors
# The list of attack types and associated counters.
# @return [Array]
#
# @!attribute [rw] counters
# The counters that describe the details of the attack.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/SubResourceSummary AWS API Documentation
#
class SubResourceSummary < Struct.new(
:type,
:id,
:attack_vectors,
:counters)
SENSITIVE = []
include Aws::Structure
end
# Information about the Shield Advanced subscription for an account.
#
# @!attribute [rw] start_time
# The start time of the subscription, in Unix time in seconds. For
# more information see [timestamp][1].
#
#
#
# [1]: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types
# @return [Time]
#
# @!attribute [rw] end_time
# The date and time your subscription will end.
# @return [Time]
#
# @!attribute [rw] time_commitment_in_seconds
# The length, in seconds, of the Shield Advanced subscription for the
# account.
# @return [Integer]
#
# @!attribute [rw] auto_renew
# If `ENABLED`, the subscription will be automatically renewed at the
# end of the existing subscription period.
#
# When you initally create a subscription, `AutoRenew` is set to
# `ENABLED`. You can change this by submitting an `UpdateSubscription`
# request. If the `UpdateSubscription` request does not included a
# value for `AutoRenew`, the existing value for `AutoRenew` remains
# unchanged.
# @return [String]
#
# @!attribute [rw] limits
# Specifies how many protections of a given type you can create.
# @return [Array]
#
# @!attribute [rw] proactive_engagement_status
# If `ENABLED`, the Shield Response Team (SRT) will use email and
# phone to notify contacts about escalations to the SRT and to
# initiate proactive customer support.
#
# If `PENDING`, you have requested proactive engagement and the
# request is pending. The status changes to `ENABLED` when your
# request is fully processed.
#
# If `DISABLED`, the SRT will not proactively notify contacts about
# escalations or to initiate proactive customer support.
# @return [String]
#
# @!attribute [rw] subscription_limits
# Limits settings for your subscription.
# @return [Types::SubscriptionLimits]
#
# @!attribute [rw] subscription_arn
# The ARN (Amazon Resource Name) of the subscription.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Subscription AWS API Documentation
#
class Subscription < Struct.new(
:start_time,
:end_time,
:time_commitment_in_seconds,
:auto_renew,
:limits,
:proactive_engagement_status,
:subscription_limits,
:subscription_arn)
SENSITIVE = []
include Aws::Structure
end
# Limits settings for your subscription.
#
# @!attribute [rw] protection_limits
# Limits settings on protections for your subscription.
# @return [Types::ProtectionLimits]
#
# @!attribute [rw] protection_group_limits
# Limits settings on protection groups for your subscription.
# @return [Types::ProtectionGroupLimits]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/SubscriptionLimits AWS API Documentation
#
class SubscriptionLimits < Struct.new(
:protection_limits,
:protection_group_limits)
SENSITIVE = []
include Aws::Structure
end
# A summary of information about the attack.
#
# @!attribute [rw] vector_type
# The attack type, for example, SNMP reflection or SYN flood.
# @return [String]
#
# @!attribute [rw] vector_counters
# The list of counters that describe the details of the attack.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/SummarizedAttackVector AWS API Documentation
#
class SummarizedAttackVector < Struct.new(
:vector_type,
:vector_counters)
SENSITIVE = []
include Aws::Structure
end
# The counter that describes a DDoS attack.
#
# @!attribute [rw] name
# The counter name.
# @return [String]
#
# @!attribute [rw] max
# The maximum value of the counter for a specified time period.
# @return [Float]
#
# @!attribute [rw] average
# The average value of the counter for a specified time period.
# @return [Float]
#
# @!attribute [rw] sum
# The total of counter values for a specified time period.
# @return [Float]
#
# @!attribute [rw] n
# The number of counters for a specified time period.
# @return [Integer]
#
# @!attribute [rw] unit
# The unit of the counters.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/SummarizedCounter AWS API Documentation
#
class SummarizedCounter < Struct.new(
:name,
:max,
:average,
:sum,
:n,
:unit)
SENSITIVE = []
include Aws::Structure
end
# A tag associated with an Amazon Web Services resource. Tags are
# key:value pairs that you can use to categorize and manage your
# resources, for purposes like billing or other management. Typically,
# the tag key represents a category, such as "environment", and the
# tag value represents a specific value within that category, such as
# "test," "development," or "production". Or you might set the tag
# key to "customer" and the value to the customer name or ID. You can
# specify one or more tags to add to each Amazon Web Services resource,
# up to 50 tags for a resource.
#
# @note When making an API call, you may pass Tag
# data as a hash:
#
# {
# key: "TagKey",
# value: "TagValue",
# }
#
# @!attribute [rw] key
# Part of the key:value pair that defines a tag. You can use a tag key
# to describe a category of information, such as "customer." Tag
# keys are case-sensitive.
# @return [String]
#
# @!attribute [rw] value
# Part of the key:value pair that defines a tag. You can use a tag
# value to describe a specific value within a category, such as
# "companyA" or "companyB." Tag values are case-sensitive.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/Tag AWS API Documentation
#
class Tag < Struct.new(
:key,
:value)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass TagResourceRequest
# data as a hash:
#
# {
# resource_arn: "ResourceArn", # required
# tags: [ # required
# {
# key: "TagKey",
# value: "TagValue",
# },
# ],
# }
#
# @!attribute [rw] resource_arn
# The Amazon Resource Name (ARN) of the resource that you want to add
# or update tags for.
# @return [String]
#
# @!attribute [rw] tags
# The tags that you want to modify or add to the resource.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/TagResourceRequest AWS API Documentation
#
class TagResourceRequest < Struct.new(
:resource_arn,
:tags)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/TagResourceResponse AWS API Documentation
#
class TagResourceResponse < Aws::EmptyStructure; end
# The time range.
#
# @note When making an API call, you may pass TimeRange
# data as a hash:
#
# {
# from_inclusive: Time.now,
# to_exclusive: Time.now,
# }
#
# @!attribute [rw] from_inclusive
# The start time, in Unix time in seconds. For more information see
# [timestamp][1].
#
#
#
# [1]: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types
# @return [Time]
#
# @!attribute [rw] to_exclusive
# The end time, in Unix time in seconds. For more information see
# [timestamp][1].
#
#
#
# [1]: http://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#parameter-types
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/TimeRange AWS API Documentation
#
class TimeRange < Struct.new(
:from_inclusive,
:to_exclusive)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass UntagResourceRequest
# data as a hash:
#
# {
# resource_arn: "ResourceArn", # required
# tag_keys: ["TagKey"], # required
# }
#
# @!attribute [rw] resource_arn
# The Amazon Resource Name (ARN) of the resource that you want to
# remove tags from.
# @return [String]
#
# @!attribute [rw] tag_keys
# The tag key for each tag that you want to remove from the resource.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UntagResourceRequest AWS API Documentation
#
class UntagResourceRequest < Struct.new(
:resource_arn,
:tag_keys)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UntagResourceResponse AWS API Documentation
#
class UntagResourceResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass UpdateEmergencyContactSettingsRequest
# data as a hash:
#
# {
# emergency_contact_list: [
# {
# email_address: "EmailAddress", # required
# phone_number: "PhoneNumber",
# contact_notes: "ContactNotes",
# },
# ],
# }
#
# @!attribute [rw] emergency_contact_list
# A list of email addresses and phone numbers that the Shield Response
# Team (SRT) can use to contact you if you have proactive engagement
# enabled, for escalations to the SRT and to initiate proactive
# customer support.
#
# If you have proactive engagement enabled, the contact list must
# include at least one phone number.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateEmergencyContactSettingsRequest AWS API Documentation
#
class UpdateEmergencyContactSettingsRequest < Struct.new(
:emergency_contact_list)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateEmergencyContactSettingsResponse AWS API Documentation
#
class UpdateEmergencyContactSettingsResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass UpdateProtectionGroupRequest
# data as a hash:
#
# {
# protection_group_id: "ProtectionGroupId", # required
# aggregation: "SUM", # required, accepts SUM, MEAN, MAX
# pattern: "ALL", # required, accepts ALL, ARBITRARY, BY_RESOURCE_TYPE
# resource_type: "CLOUDFRONT_DISTRIBUTION", # accepts CLOUDFRONT_DISTRIBUTION, ROUTE_53_HOSTED_ZONE, ELASTIC_IP_ALLOCATION, CLASSIC_LOAD_BALANCER, APPLICATION_LOAD_BALANCER, GLOBAL_ACCELERATOR
# members: ["ResourceArn"],
# }
#
# @!attribute [rw] protection_group_id
# The name of the protection group. You use this to identify the
# protection group in lists and to manage the protection group, for
# example to update, delete, or describe it.
# @return [String]
#
# @!attribute [rw] aggregation
# Defines how Shield combines resource data for the group in order to
# detect, mitigate, and report events.
#
# * Sum - Use the total traffic across the group. This is a good
# choice for most cases. Examples include Elastic IP addresses for
# EC2 instances that scale manually or automatically.
#
# * Mean - Use the average of the traffic across the group. This is a
# good choice for resources that share traffic uniformly. Examples
# include accelerators and load balancers.
#
# * Max - Use the highest traffic from each resource. This is useful
# for resources that don't share traffic and for resources that
# share that traffic in a non-uniform way. Examples include Amazon
# CloudFront distributions and origin resources for CloudFront
# distributions.
# @return [String]
#
# @!attribute [rw] pattern
# The criteria to use to choose the protected resources for inclusion
# in the group. You can include all resources that have protections,
# provide a list of resource Amazon Resource Names (ARNs), or include
# all resources of a specified resource type.
# @return [String]
#
# @!attribute [rw] resource_type
# The resource type to include in the protection group. All protected
# resources of this type are included in the protection group. You
# must set this when you set `Pattern` to `BY_RESOURCE_TYPE` and you
# must not set it for any other `Pattern` setting.
# @return [String]
#
# @!attribute [rw] members
# The Amazon Resource Names (ARNs) of the resources to include in the
# protection group. You must set this when you set `Pattern` to
# `ARBITRARY` and you must not set it for any other `Pattern` setting.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroupRequest AWS API Documentation
#
class UpdateProtectionGroupRequest < Struct.new(
:protection_group_id,
:aggregation,
:pattern,
:resource_type,
:members)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateProtectionGroupResponse AWS API Documentation
#
class UpdateProtectionGroupResponse < Aws::EmptyStructure; end
# @note When making an API call, you may pass UpdateSubscriptionRequest
# data as a hash:
#
# {
# auto_renew: "ENABLED", # accepts ENABLED, DISABLED
# }
#
# @!attribute [rw] auto_renew
# When you initally create a subscription, `AutoRenew` is set to
# `ENABLED`. If `ENABLED`, the subscription will be automatically
# renewed at the end of the existing subscription period. You can
# change this by submitting an `UpdateSubscription` request. If the
# `UpdateSubscription` request does not included a value for
# `AutoRenew`, the existing value for `AutoRenew` remains unchanged.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateSubscriptionRequest AWS API Documentation
#
class UpdateSubscriptionRequest < Struct.new(
:auto_renew)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/UpdateSubscriptionResponse AWS API Documentation
#
class UpdateSubscriptionResponse < Aws::EmptyStructure; end
# Provides information about a particular parameter passed inside a
# request that resulted in an exception.
#
# @!attribute [rw] name
# The name of the parameter that failed validation.
# @return [String]
#
# @!attribute [rw] message
# The message describing why the parameter failed validation.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/shield-2016-06-02/ValidationExceptionField AWS API Documentation
#
class ValidationExceptionField < Struct.new(
:name,
:message)
SENSITIVE = []
include Aws::Structure
end
end
end