/*
* 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 globalaccelerator-2018-08-08.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.GlobalAccelerator.Model
{
///
/// Container for the parameters to the AllowCustomRoutingTraffic operation.
/// Specify the Amazon EC2 instance (destination) IP addresses and ports for a VPC subnet
/// endpoint that can receive traffic for a custom routing accelerator. You can allow
/// traffic to all destinations in the subnet endpoint, or allow traffic to a specified
/// list of destination IP addresses and ports in the subnet. Note that you cannot specify
/// IP addresses or ports outside of the range that you configured for the endpoint group.
///
///
///
/// After you make changes, you can verify that the updates are complete by checking the
/// status of your accelerator: the status changes from IN_PROGRESS to DEPLOYED.
///
///
public partial class AllowCustomRoutingTrafficRequest : AmazonGlobalAcceleratorRequest
{
private bool? _allowAllTrafficToEndpoint;
private List _destinationAddresses = new List();
private List _destinationPorts = new List();
private string _endpointGroupArn;
private string _endpointId;
///
/// Gets and sets the property AllowAllTrafficToEndpoint.
///
/// Indicates whether all destination IP addresses and ports for a specified VPC subnet
/// endpoint can receive traffic from a custom routing accelerator. The value is TRUE
/// or FALSE.
///
///
///
/// When set to TRUE, all destinations in the custom routing VPC subnet can receive
/// traffic. Note that you cannot specify destination IP addresses and ports when the
/// value is set to TRUE.
///
///
///
/// When set to FALSE (or not specified), you must specify a list of destination
/// IP addresses that are allowed to receive traffic. A list of ports is optional. If
/// you don't specify a list of ports, the ports that can accept traffic is the same as
/// the ports configured for the endpoint group.
///
///
///
/// The default value is FALSE.
///
///
public bool AllowAllTrafficToEndpoint
{
get { return this._allowAllTrafficToEndpoint.GetValueOrDefault(); }
set { this._allowAllTrafficToEndpoint = value; }
}
// Check to see if AllowAllTrafficToEndpoint property is set
internal bool IsSetAllowAllTrafficToEndpoint()
{
return this._allowAllTrafficToEndpoint.HasValue;
}
///
/// Gets and sets the property DestinationAddresses.
///
/// A list of specific Amazon EC2 instance IP addresses (destination addresses) in a subnet
/// that you want to allow to receive traffic. The IP addresses must be a subset of the
/// IP addresses that you specified for the endpoint group.
///
///
///
/// DestinationAddresses
is required if AllowAllTrafficToEndpoint
/// is FALSE
or is not specified.
///
///
[AWSProperty(Max=100)]
public List DestinationAddresses
{
get { return this._destinationAddresses; }
set { this._destinationAddresses = value; }
}
// Check to see if DestinationAddresses property is set
internal bool IsSetDestinationAddresses()
{
return this._destinationAddresses != null && this._destinationAddresses.Count > 0;
}
///
/// Gets and sets the property DestinationPorts.
///
/// A list of specific Amazon EC2 instance ports (destination ports) that you want to
/// allow to receive traffic.
///
///
[AWSProperty(Max=100)]
public List DestinationPorts
{
get { return this._destinationPorts; }
set { this._destinationPorts = value; }
}
// Check to see if DestinationPorts property is set
internal bool IsSetDestinationPorts()
{
return this._destinationPorts != null && this._destinationPorts.Count > 0;
}
///
/// Gets and sets the property EndpointGroupArn.
///
/// The Amazon Resource Name (ARN) of the endpoint group.
///
///
[AWSProperty(Required=true, Max=255)]
public string EndpointGroupArn
{
get { return this._endpointGroupArn; }
set { this._endpointGroupArn = value; }
}
// Check to see if EndpointGroupArn property is set
internal bool IsSetEndpointGroupArn()
{
return this._endpointGroupArn != null;
}
///
/// Gets and sets the property EndpointId.
///
/// An ID for the endpoint. For custom routing accelerators, this is the virtual private
/// cloud (VPC) subnet ID.
///
///
[AWSProperty(Required=true, Max=255)]
public string EndpointId
{
get { return this._endpointId; }
set { this._endpointId = value; }
}
// Check to see if EndpointId property is set
internal bool IsSetEndpointId()
{
return this._endpointId != null;
}
}
}