/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the shield-2016-06-02.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Shield.Model
{
///
/// Container for the parameters to the CreateProtection operation.
/// Enables Shield Advanced for a specific Amazon Web Services resource. The resource
/// can be an Amazon CloudFront distribution, Amazon RouteĀ 53 hosted zone, Global Accelerator
/// standard accelerator, Elastic IP Address, Application Load Balancer, or a Classic
/// Load Balancer. You can protect Amazon EC2 instances and Network Load Balancers by
/// association with protected Amazon EC2 Elastic IP addresses.
///
///
///
/// You can add protection to only a single resource with each CreateProtection
/// request. You can add protection to multiple resources at once through the Shield Advanced
/// console at https://console.aws.amazon.com/wafv2/shieldv2#/.
/// For more information see Getting
/// Started with Shield Advanced and Adding
/// Shield Advanced protection to Amazon Web Services resources.
///
///
public partial class CreateProtectionRequest : AmazonShieldRequest
{
private string _name;
private string _resourceArn;
private List _tags = new List();
///
/// Gets and sets the property Name.
///
/// Friendly name for the Protection
you are creating.
///
///
[AWSProperty(Required=true, Min=1, Max=128)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property ResourceArn.
///
/// 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 standard 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
///
///
///
///
[AWSProperty(Required=true, Min=1, Max=2048)]
public string ResourceArn
{
get { return this._resourceArn; }
set { this._resourceArn = value; }
}
// Check to see if ResourceArn property is set
internal bool IsSetResourceArn()
{
return this._resourceArn != null;
}
///
/// Gets and sets the property Tags.
///
/// One or more tag key-value pairs for the Protection object that is created.
///
///
[AWSProperty(Min=0, Max=200)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
}
}