/*
* 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 elasticloadbalancingv2-2015-12-01.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.ElasticLoadBalancingV2.Model
{
///
/// Information about an action.
///
///
///
/// Each rule must include exactly one of the following types of actions: forward
,
/// fixed-response
, or redirect
, and it must be the last action
/// to be performed.
///
///
public partial class Action
{
private AuthenticateCognitoActionConfig _authenticateCognitoConfig;
private AuthenticateOidcActionConfig _authenticateOidcConfig;
private FixedResponseActionConfig _fixedResponseConfig;
private ForwardActionConfig _forwardConfig;
private int? _order;
private RedirectActionConfig _redirectConfig;
private string _targetGroupArn;
private ActionTypeEnum _type;
///
/// Gets and sets the property AuthenticateCognitoConfig.
///
/// [HTTPS listeners] Information for using Amazon Cognito to authenticate users. Specify
/// only when Type
is authenticate-cognito
.
///
///
public AuthenticateCognitoActionConfig AuthenticateCognitoConfig
{
get { return this._authenticateCognitoConfig; }
set { this._authenticateCognitoConfig = value; }
}
// Check to see if AuthenticateCognitoConfig property is set
internal bool IsSetAuthenticateCognitoConfig()
{
return this._authenticateCognitoConfig != null;
}
///
/// Gets and sets the property AuthenticateOidcConfig.
///
/// [HTTPS listeners] Information about an identity provider that is compliant with OpenID
/// Connect (OIDC). Specify only when Type
is authenticate-oidc
.
///
///
public AuthenticateOidcActionConfig AuthenticateOidcConfig
{
get { return this._authenticateOidcConfig; }
set { this._authenticateOidcConfig = value; }
}
// Check to see if AuthenticateOidcConfig property is set
internal bool IsSetAuthenticateOidcConfig()
{
return this._authenticateOidcConfig != null;
}
///
/// Gets and sets the property FixedResponseConfig.
///
/// [Application Load Balancer] Information for creating an action that returns a custom
/// HTTP response. Specify only when Type
is fixed-response
.
///
///
public FixedResponseActionConfig FixedResponseConfig
{
get { return this._fixedResponseConfig; }
set { this._fixedResponseConfig = value; }
}
// Check to see if FixedResponseConfig property is set
internal bool IsSetFixedResponseConfig()
{
return this._fixedResponseConfig != null;
}
///
/// Gets and sets the property ForwardConfig.
///
/// Information for creating an action that distributes requests among one or more target
/// groups. For Network Load Balancers, you can specify a single target group. Specify
/// only when Type
is forward
. If you specify both ForwardConfig
/// and TargetGroupArn
, you can specify only one target group using ForwardConfig
/// and it must be the same target group specified in TargetGroupArn
.
///
///
public ForwardActionConfig ForwardConfig
{
get { return this._forwardConfig; }
set { this._forwardConfig = value; }
}
// Check to see if ForwardConfig property is set
internal bool IsSetForwardConfig()
{
return this._forwardConfig != null;
}
///
/// Gets and sets the property Order.
///
/// The order for the action. This value is required for rules with multiple actions.
/// The action with the lowest value for order is performed first.
///
///
[AWSProperty(Min=1, Max=50000)]
public int Order
{
get { return this._order.GetValueOrDefault(); }
set { this._order = value; }
}
// Check to see if Order property is set
internal bool IsSetOrder()
{
return this._order.HasValue;
}
///
/// Gets and sets the property RedirectConfig.
///
/// [Application Load Balancer] Information for creating a redirect action. Specify only
/// when Type
is redirect
.
///
///
public RedirectActionConfig RedirectConfig
{
get { return this._redirectConfig; }
set { this._redirectConfig = value; }
}
// Check to see if RedirectConfig property is set
internal bool IsSetRedirectConfig()
{
return this._redirectConfig != null;
}
///
/// Gets and sets the property TargetGroupArn.
///
/// The Amazon Resource Name (ARN) of the target group. Specify only when Type
/// is forward
and you want to route to a single target group. To route to
/// one or more target groups, use ForwardConfig
instead.
///
///
public string TargetGroupArn
{
get { return this._targetGroupArn; }
set { this._targetGroupArn = value; }
}
// Check to see if TargetGroupArn property is set
internal bool IsSetTargetGroupArn()
{
return this._targetGroupArn != null;
}
///
/// Gets and sets the property Type.
///
/// The type of action.
///
///
[AWSProperty(Required=true)]
public ActionTypeEnum Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
}
}