multiple-languages/dotnet/AlibabaCloud.SDK.ROS.CDK.Alb/AlibabaCloud/SDK/ROS/CDK/Alb/RosRule.cs (3,928 lines of code) (raw):
using Amazon.JSII.Runtime.Deputy;
#pragma warning disable CS0672,CS0809,CS1591
namespace AlibabaCloud.SDK.ROS.CDK.Alb
{
/// <summary>This class is a base encapsulation around the ROS resource type `ALIYUN::ALB::Rule`ALIYUN::Config::Rule is used to create a forwarding rule.</summary>
/// <remarks>
/// <strong>Note</strong>: This class does not contain additional functions, so it is recommended to use the `Rule` class instead of this class for a more convenient development experience.
/// See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-alb-rule
/// </remarks>
[JsiiClass(nativeType: typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule", parametersJson: "[{\"docs\":{\"summary\":\"- scope in which this resource is defined.\"},\"name\":\"scope\",\"type\":{\"fqn\":\"@alicloud/ros-cdk-core.Construct\"}},{\"docs\":{\"summary\":\"- scoped id of the resource.\"},\"name\":\"id\",\"type\":{\"primitive\":\"string\"}},{\"docs\":{\"summary\":\"- resource properties.\"},\"name\":\"props\",\"type\":{\"fqn\":\"@alicloud/ros-cdk-alb.RosRuleProps\"}},{\"name\":\"enableResourcePropertyConstraint\",\"type\":{\"primitive\":\"boolean\"}}]")]
public class RosRule : AlibabaCloud.SDK.ROS.CDK.Core.RosResource
{
/// <param name="scope">- scope in which this resource is defined.</param>
/// <param name="id">- scoped id of the resource.</param>
/// <param name="props">- resource properties.</param>
public RosRule(AlibabaCloud.SDK.ROS.CDK.Core.Construct scope, string id, AlibabaCloud.SDK.ROS.CDK.Alb.IRosRuleProps props, bool enableResourcePropertyConstraint): base(_MakeDeputyProps(scope, id, props, enableResourcePropertyConstraint))
{
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
private static DeputyProps _MakeDeputyProps(AlibabaCloud.SDK.ROS.CDK.Core.Construct scope, string id, AlibabaCloud.SDK.ROS.CDK.Alb.IRosRuleProps props, bool enableResourcePropertyConstraint)
{
return new DeputyProps(new object?[]{scope, id, props, enableResourcePropertyConstraint});
}
/// <summary>Used by jsii to construct an instance of this class from a Javascript-owned object reference</summary>
/// <param name="reference">The Javascript-owned object reference</param>
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
protected RosRule(ByRefValue reference): base(reference)
{
}
/// <summary>Used by jsii to construct an instance of this class from DeputyProps</summary>
/// <param name="props">The deputy props</param>
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
protected RosRule(DeputyProps props): base(props)
{
}
[JsiiMethod(name: "renderProperties", returnsJson: "{\"type\":{\"collection\":{\"elementtype\":{\"primitive\":\"any\"},\"kind\":\"map\"}}}", parametersJson: "[{\"name\":\"props\",\"type\":{\"collection\":{\"elementtype\":{\"primitive\":\"any\"},\"kind\":\"map\"}}}]")]
protected override System.Collections.Generic.IDictionary<string, object> RenderProperties(System.Collections.Generic.IDictionary<string, object> props)
{
return InvokeInstanceMethod<System.Collections.Generic.IDictionary<string, object>>(new System.Type[]{typeof(System.Collections.Generic.IDictionary<string, object>)}, new object[]{props})!;
}
/// <summary>The resource type name for this resource class.</summary>
[JsiiProperty(name: "ROS_RESOURCE_TYPE_NAME", typeJson: "{\"primitive\":\"string\"}")]
public static string ROS_RESOURCE_TYPE_NAME
{
get;
}
= GetStaticProperty<string>(typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule))!;
/// <remarks>
/// <strong>Attribute</strong>: ListenerId: The ID of the listener.
/// </remarks>
[JsiiProperty(name: "attrListenerId", typeJson: "{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}")]
public virtual AlibabaCloud.SDK.ROS.CDK.Core.IResolvable AttrListenerId
{
get => GetInstanceProperty<AlibabaCloud.SDK.ROS.CDK.Core.IResolvable>()!;
}
/// <remarks>
/// <strong>Attribute</strong>: RuleId: The ID of the forwarding rules.
/// </remarks>
[JsiiProperty(name: "attrRuleId", typeJson: "{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}")]
public virtual AlibabaCloud.SDK.ROS.CDK.Core.IResolvable AttrRuleId
{
get => GetInstanceProperty<AlibabaCloud.SDK.ROS.CDK.Core.IResolvable>()!;
}
[JsiiProperty(name: "rosProperties", typeJson: "{\"collection\":{\"elementtype\":{\"primitive\":\"any\"},\"kind\":\"map\"}}")]
protected override System.Collections.Generic.IDictionary<string, object> RosProperties
{
get => GetInstanceProperty<System.Collections.Generic.IDictionary<string, object>>()!;
}
[JsiiProperty(name: "enableResourcePropertyConstraint", typeJson: "{\"primitive\":\"boolean\"}")]
public virtual bool EnableResourcePropertyConstraint
{
get => GetInstanceProperty<bool>()!;
set => SetInstanceProperty(value);
}
/// <remarks>
/// <strong>Property</strong>: listenerId: The ID of the listener that is configured for the Application Load Balancer (ALB)
/// instance.
/// </remarks>
[JsiiProperty(name: "listenerId", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public virtual object ListenerId
{
get => GetInstanceProperty<object>()!;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
SetInstanceProperty(value);
}
}
/// <remarks>
/// <strong>Property</strong>: priority: The priority of the forwarding rule. Valid values: 1 to 10000. A lower value specifies a higher priority.
/// Note The priority of each forwarding rule within a listener must be unique.
/// </remarks>
[JsiiProperty(name: "priority", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public virtual object Priority
{
get => GetInstanceProperty<object>()!;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case double cast_cd4240:
break;
case byte cast_cd4240:
break;
case decimal cast_cd4240:
break;
case float cast_cd4240:
break;
case int cast_cd4240:
break;
case long cast_cd4240:
break;
case sbyte cast_cd4240:
break;
case short cast_cd4240:
break;
case uint cast_cd4240:
break;
case ulong cast_cd4240:
break;
case ushort cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: double, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: double, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
SetInstanceProperty(value);
}
}
/// <remarks>
/// <strong>Property</strong>: ruleActions: The actions of the forwarding rule.
/// </remarks>
[JsiiProperty(name: "ruleActions", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.RuleActionsProperty\"}]}},\"kind\":\"array\"}}]}}")]
public virtual object RuleActions
{
get => GetInstanceProperty<object>()!;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRuleActionsProperty cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRuleActionsProperty).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRuleActionsProperty).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
SetInstanceProperty(value);
}
}
/// <remarks>
/// <strong>Property</strong>: ruleConditions: The conditions of the forwarding rule.
/// </remarks>
[JsiiProperty(name: "ruleConditions", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.RuleConditionsProperty\"}]}},\"kind\":\"array\"}}]}}")]
public virtual object RuleConditions
{
get => GetInstanceProperty<object>()!;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRuleConditionsProperty cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRuleConditionsProperty).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRuleConditionsProperty).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
SetInstanceProperty(value);
}
}
/// <remarks>
/// <strong>Property</strong>: ruleName: The name of the forwarding rule.
/// The name must be 2 to 128 characters in length.
/// It can contain letters, digits, periods (.), underscores (_), and hyphens (-). It
/// must start with a letter.
/// </remarks>
[JsiiProperty(name: "ruleName", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public virtual object RuleName
{
get => GetInstanceProperty<object>()!;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
SetInstanceProperty(value);
}
}
/// <remarks>
/// <strong>Property</strong>: direction: Rule direction. Valid values: Request or Response.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "direction", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public virtual object? Direction
{
get => GetInstanceProperty<object?>();
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
SetInstanceProperty(value);
}
}
[JsiiInterface(nativeType: typeof(ICookieConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.CookieConfigProperty")]
public interface ICookieConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: values: Cookie values
/// </remarks>
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ValuesProperty\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Values
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(ICookieConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.CookieConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ICookieConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: values: Cookie values
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ValuesProperty\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.CookieConfigProperty")]
public class CookieConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ICookieConfigProperty
{
private object? _values;
/// <remarks>
/// <strong>Property</strong>: values: Cookie values
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ValuesProperty\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => _values;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IValuesProperty cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IValuesProperty).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IValuesProperty).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_values = value;
}
}
}
[JsiiInterface(nativeType: typeof(ICorsConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.CorsConfigProperty")]
public interface ICorsConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: allowCredentials: Whether to allow credentials.
/// </remarks>
[JsiiProperty(name: "allowCredentials", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? AllowCredentials
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: allowHeaders: The headers that are allowed to be forwarded.
/// </remarks>
[JsiiProperty(name: "allowHeaders", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? AllowHeaders
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: allowMethods: The HTTP methods that are allowed to be forwarded.
/// </remarks>
[JsiiProperty(name: "allowMethods", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? AllowMethods
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: allowOrigin: The origin of the request.
/// </remarks>
[JsiiProperty(name: "allowOrigin", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? AllowOrigin
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: exposeHeaders: The headers that are exposed.
/// </remarks>
[JsiiProperty(name: "exposeHeaders", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? ExposeHeaders
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: maxAge: The maximum cache time of the preflight request in the browser. Unit: Second
/// </remarks>
[JsiiProperty(name: "maxAge", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? MaxAge
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(ICorsConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.CorsConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ICorsConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: allowCredentials: Whether to allow credentials.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "allowCredentials", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? AllowCredentials
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: allowHeaders: The headers that are allowed to be forwarded.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "allowHeaders", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? AllowHeaders
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: allowMethods: The HTTP methods that are allowed to be forwarded.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "allowMethods", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? AllowMethods
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: allowOrigin: The origin of the request.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "allowOrigin", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? AllowOrigin
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: exposeHeaders: The headers that are exposed.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "exposeHeaders", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? ExposeHeaders
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: maxAge: The maximum cache time of the preflight request in the browser. Unit: Second
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "maxAge", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? MaxAge
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.CorsConfigProperty")]
public class CorsConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ICorsConfigProperty
{
private object? _allowCredentials;
/// <remarks>
/// <strong>Property</strong>: allowCredentials: Whether to allow credentials.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "allowCredentials", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? AllowCredentials
{
get => _allowCredentials;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_allowCredentials = value;
}
}
private object? _allowHeaders;
/// <remarks>
/// <strong>Property</strong>: allowHeaders: The headers that are allowed to be forwarded.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "allowHeaders", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? AllowHeaders
{
get => _allowHeaders;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case string cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_allowHeaders = value;
}
}
private object? _allowMethods;
/// <remarks>
/// <strong>Property</strong>: allowMethods: The HTTP methods that are allowed to be forwarded.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "allowMethods", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? AllowMethods
{
get => _allowMethods;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case string cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_allowMethods = value;
}
}
private object? _allowOrigin;
/// <remarks>
/// <strong>Property</strong>: allowOrigin: The origin of the request.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "allowOrigin", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? AllowOrigin
{
get => _allowOrigin;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case string cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_allowOrigin = value;
}
}
private object? _exposeHeaders;
/// <remarks>
/// <strong>Property</strong>: exposeHeaders: The headers that are exposed.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "exposeHeaders", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? ExposeHeaders
{
get => _exposeHeaders;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case string cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_exposeHeaders = value;
}
}
private object? _maxAge;
/// <remarks>
/// <strong>Property</strong>: maxAge: The maximum cache time of the preflight request in the browser. Unit: Second
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "maxAge", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? MaxAge
{
get => _maxAge;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case double cast_cd4240:
break;
case byte cast_cd4240:
break;
case decimal cast_cd4240:
break;
case float cast_cd4240:
break;
case int cast_cd4240:
break;
case long cast_cd4240:
break;
case sbyte cast_cd4240:
break;
case short cast_cd4240:
break;
case uint cast_cd4240:
break;
case ulong cast_cd4240:
break;
case ushort cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: double, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_maxAge = value;
}
}
}
[JsiiInterface(nativeType: typeof(IFixedResponseConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.FixedResponseConfigProperty")]
public interface IFixedResponseConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: content: The content of the fixed response. The content cannot exceed 1 KB in size, and can
/// contain only ASCII characters.
/// </remarks>
[JsiiProperty(name: "content", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Content
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: contentType: The format of the content.
/// Valid values: text\/plain, text\/css, text\/html, application\/javascript, and application\/json.
/// </remarks>
[JsiiProperty(name: "contentType", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? ContentType
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: httpCode: The HTTP status code of the response. Valid values: HTTP_2xx, HTTP_4xx, and HTTP_5xx. x is a digit.
/// </remarks>
[JsiiProperty(name: "httpCode", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? HttpCode
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IFixedResponseConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.FixedResponseConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IFixedResponseConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: content: The content of the fixed response. The content cannot exceed 1 KB in size, and can
/// contain only ASCII characters.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "content", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Content
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: contentType: The format of the content.
/// Valid values: text\/plain, text\/css, text\/html, application\/javascript, and application\/json.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "contentType", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? ContentType
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: httpCode: The HTTP status code of the response. Valid values: HTTP_2xx, HTTP_4xx, and HTTP_5xx. x is a digit.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "httpCode", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? HttpCode
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.FixedResponseConfigProperty")]
public class FixedResponseConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IFixedResponseConfigProperty
{
private object? _content;
/// <remarks>
/// <strong>Property</strong>: content: The content of the fixed response. The content cannot exceed 1 KB in size, and can
/// contain only ASCII characters.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "content", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Content
{
get => _content;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_content = value;
}
}
private object? _contentType;
/// <remarks>
/// <strong>Property</strong>: contentType: The format of the content.
/// Valid values: text\/plain, text\/css, text\/html, application\/javascript, and application\/json.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "contentType", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? ContentType
{
get => _contentType;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_contentType = value;
}
}
private object? _httpCode;
/// <remarks>
/// <strong>Property</strong>: httpCode: The HTTP status code of the response. Valid values: HTTP_2xx, HTTP_4xx, and HTTP_5xx. x is a digit.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "httpCode", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? HttpCode
{
get => _httpCode;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_httpCode = value;
}
}
}
[JsiiInterface(nativeType: typeof(IForwardGroupConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ForwardGroupConfigProperty")]
public interface IForwardGroupConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: serverGroupStickySession: The list of session persistence of server group.
/// </remarks>
[JsiiProperty(name: "serverGroupStickySession", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ServerGroupStickySessionProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? ServerGroupStickySession
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: serverGroupTuples: The list of server groups to which requests are forwarded.
/// </remarks>
[JsiiProperty(name: "serverGroupTuples", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ServerGroupTuplesProperty\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? ServerGroupTuples
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IForwardGroupConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ForwardGroupConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IForwardGroupConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: serverGroupStickySession: The list of session persistence of server group.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "serverGroupStickySession", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ServerGroupStickySessionProperty\"}]}}", isOptional: true)]
public object? ServerGroupStickySession
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: serverGroupTuples: The list of server groups to which requests are forwarded.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "serverGroupTuples", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ServerGroupTuplesProperty\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? ServerGroupTuples
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.ForwardGroupConfigProperty")]
public class ForwardGroupConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IForwardGroupConfigProperty
{
private object? _serverGroupStickySession;
/// <remarks>
/// <strong>Property</strong>: serverGroupStickySession: The list of session persistence of server group.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "serverGroupStickySession", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ServerGroupStickySessionProperty\"}]}}", isOptional: true)]
public object? ServerGroupStickySession
{
get => _serverGroupStickySession;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IServerGroupStickySessionProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IServerGroupStickySessionProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_serverGroupStickySession = value;
}
}
private object? _serverGroupTuples;
/// <remarks>
/// <strong>Property</strong>: serverGroupTuples: The list of server groups to which requests are forwarded.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "serverGroupTuples", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ServerGroupTuplesProperty\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? ServerGroupTuples
{
get => _serverGroupTuples;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IServerGroupTuplesProperty cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IServerGroupTuplesProperty).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IServerGroupTuplesProperty).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_serverGroupTuples = value;
}
}
}
[JsiiInterface(nativeType: typeof(IHeaderConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.HeaderConfigProperty")]
public interface IHeaderConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: key: The key of the header.
/// The key must be 1 to 40 characters in length
/// It can contain letters, digits, hyphens (-), and underscores (_).
/// Cookie or Host is not supported.
/// </remarks>
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Key
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: values: The values of the header. The header values within a forwarding rule must be unique.
/// The value must be 1 to 128 characters in length.
/// It can contain asterisks (*), question marks (?), and other printable characters from ASCII code 32 to 127 (ch >= 32 && ch < 127).
/// The value cannot start or end with a space character.
/// </remarks>
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Values
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IHeaderConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.HeaderConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IHeaderConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: key: The key of the header.
/// The key must be 1 to 40 characters in length
/// It can contain letters, digits, hyphens (-), and underscores (_).
/// Cookie or Host is not supported.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: values: The values of the header. The header values within a forwarding rule must be unique.
/// The value must be 1 to 128 characters in length.
/// It can contain asterisks (*), question marks (?), and other printable characters from ASCII code 32 to 127 (ch >= 32 && ch < 127).
/// The value cannot start or end with a space character.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.HeaderConfigProperty")]
public class HeaderConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IHeaderConfigProperty
{
private object? _key;
/// <remarks>
/// <strong>Property</strong>: key: The key of the header.
/// The key must be 1 to 40 characters in length
/// It can contain letters, digits, hyphens (-), and underscores (_).
/// Cookie or Host is not supported.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => _key;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_key = value;
}
}
private object? _values;
/// <remarks>
/// <strong>Property</strong>: values: The values of the header. The header values within a forwarding rule must be unique.
/// The value must be 1 to 128 characters in length.
/// It can contain asterisks (*), question marks (?), and other printable characters from ASCII code 32 to 127 (ch >= 32 && ch < 127).
/// The value cannot start or end with a space character.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => _values;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case string cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_values = value;
}
}
}
[JsiiInterface(nativeType: typeof(IHostConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.HostConfigProperty")]
public interface IHostConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: values: The host name. A forwarding rule can contain only one host name. The host names must be unique.
/// The host name must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (*), and question marks (?).
/// The host name must contain at least one period (.). It cannot start or end with a period (.).
/// The rightmost field can contain only letters and wildcard characters. It cannot contain digits or hyphens (-).
/// The domain labels cannot start or end with hyphens (-). You can include an asterisk (*) and question mark (?) anywhere in a domain label.
/// </remarks>
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Values
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IHostConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.HostConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IHostConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: values: The host name. A forwarding rule can contain only one host name. The host names must be unique.
/// The host name must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (*), and question marks (?).
/// The host name must contain at least one period (.). It cannot start or end with a period (.).
/// The rightmost field can contain only letters and wildcard characters. It cannot contain digits or hyphens (-).
/// The domain labels cannot start or end with hyphens (-). You can include an asterisk (*) and question mark (?) anywhere in a domain label.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.HostConfigProperty")]
public class HostConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IHostConfigProperty
{
private object? _values;
/// <remarks>
/// <strong>Property</strong>: values: The host name. A forwarding rule can contain only one host name. The host names must be unique.
/// The host name must be 3 to 128 characters in length, and can contain lowercase letters, digits, hyphens (-), periods (.), asterisks (*), and question marks (?).
/// The host name must contain at least one period (.). It cannot start or end with a period (.).
/// The rightmost field can contain only letters and wildcard characters. It cannot contain digits or hyphens (-).
/// The domain labels cannot start or end with hyphens (-). You can include an asterisk (*) and question mark (?) anywhere in a domain label.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => _values;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case string cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_values = value;
}
}
}
[JsiiInterface(nativeType: typeof(IInsertHeaderConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.InsertHeaderConfigProperty")]
public interface IInsertHeaderConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: key: The key of the response header.
/// The key must be 1 to 40 characters in length.
/// It can contain letters, digits, underscores (_), and hyphens (-).
/// The header names specified by InsertHeaderConfig must be unique.
/// Note You cannot set the name of the header to one of the following values (case-insensitive):
/// slb-id, slb-ip, x-forwarded-for, x-forwarded-proto, x-forwarded-eip, x-forwarded-port, x-forwarded-client-srcport, connection, upgrade, content-length, transfer-encoding, keep-alive, te, host, cookie, remoteip, and authority.
/// </remarks>
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Key
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: value: The content of the header to be inserted.
/// If ValueType is set to SystemDefined, you can set the value to:
/// ClientSrcPort: the port of the client.
/// ClientSrcIp: the IP address of the client.
/// Protocol: the request protocol (HTTP or HTTPS)
/// SLBId: the ID of the ALB instance.
/// SLBPort: the listening port of the ALB instance.
/// If ValueType is set to UserDefined, you can customize the content of the header. The content must be 1 to 128 characters in length, and can contain asterisks (*) and question marks (?).
/// It can also contain printable characters from ASCII code 32 to 127 (ch >= 32 && ch < 127). The header content cannot start or end with a space character.
/// If ValueType is set to ReferenceHeader, you can reference one of the request headers. The header content must be 1 to 128 characters
/// in length, and can contain lowercase letters, digits, underscores (_), and hyphens (-).
/// </remarks>
[JsiiProperty(name: "value", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Value
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: valueType: The type of the content. Valid values:
/// UserDefined: user-defined.
/// ReferenceHeader: references one of the request headers.
/// SystemDefined: system-defined.
/// </remarks>
[JsiiProperty(name: "valueType", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? ValueType
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IInsertHeaderConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.InsertHeaderConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IInsertHeaderConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: key: The key of the response header.
/// The key must be 1 to 40 characters in length.
/// It can contain letters, digits, underscores (_), and hyphens (-).
/// The header names specified by InsertHeaderConfig must be unique.
/// Note You cannot set the name of the header to one of the following values (case-insensitive):
/// slb-id, slb-ip, x-forwarded-for, x-forwarded-proto, x-forwarded-eip, x-forwarded-port, x-forwarded-client-srcport, connection, upgrade, content-length, transfer-encoding, keep-alive, te, host, cookie, remoteip, and authority.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: value: The content of the header to be inserted.
/// If ValueType is set to SystemDefined, you can set the value to:
/// ClientSrcPort: the port of the client.
/// ClientSrcIp: the IP address of the client.
/// Protocol: the request protocol (HTTP or HTTPS)
/// SLBId: the ID of the ALB instance.
/// SLBPort: the listening port of the ALB instance.
/// If ValueType is set to UserDefined, you can customize the content of the header. The content must be 1 to 128 characters in length, and can contain asterisks (*) and question marks (?).
/// It can also contain printable characters from ASCII code 32 to 127 (ch >= 32 && ch < 127). The header content cannot start or end with a space character.
/// If ValueType is set to ReferenceHeader, you can reference one of the request headers. The header content must be 1 to 128 characters
/// in length, and can contain lowercase letters, digits, underscores (_), and hyphens (-).
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "value", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Value
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: valueType: The type of the content. Valid values:
/// UserDefined: user-defined.
/// ReferenceHeader: references one of the request headers.
/// SystemDefined: system-defined.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "valueType", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? ValueType
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.InsertHeaderConfigProperty")]
public class InsertHeaderConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IInsertHeaderConfigProperty
{
private object? _key;
/// <remarks>
/// <strong>Property</strong>: key: The key of the response header.
/// The key must be 1 to 40 characters in length.
/// It can contain letters, digits, underscores (_), and hyphens (-).
/// The header names specified by InsertHeaderConfig must be unique.
/// Note You cannot set the name of the header to one of the following values (case-insensitive):
/// slb-id, slb-ip, x-forwarded-for, x-forwarded-proto, x-forwarded-eip, x-forwarded-port, x-forwarded-client-srcport, connection, upgrade, content-length, transfer-encoding, keep-alive, te, host, cookie, remoteip, and authority.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => _key;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_key = value;
}
}
private object? _value;
/// <remarks>
/// <strong>Property</strong>: value: The content of the header to be inserted.
/// If ValueType is set to SystemDefined, you can set the value to:
/// ClientSrcPort: the port of the client.
/// ClientSrcIp: the IP address of the client.
/// Protocol: the request protocol (HTTP or HTTPS)
/// SLBId: the ID of the ALB instance.
/// SLBPort: the listening port of the ALB instance.
/// If ValueType is set to UserDefined, you can customize the content of the header. The content must be 1 to 128 characters in length, and can contain asterisks (*) and question marks (?).
/// It can also contain printable characters from ASCII code 32 to 127 (ch >= 32 && ch < 127). The header content cannot start or end with a space character.
/// If ValueType is set to ReferenceHeader, you can reference one of the request headers. The header content must be 1 to 128 characters
/// in length, and can contain lowercase letters, digits, underscores (_), and hyphens (-).
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "value", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Value
{
get => _value;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_value = value;
}
}
private object? _valueType;
/// <remarks>
/// <strong>Property</strong>: valueType: The type of the content. Valid values:
/// UserDefined: user-defined.
/// ReferenceHeader: references one of the request headers.
/// SystemDefined: system-defined.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "valueType", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? ValueType
{
get => _valueType;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_valueType = value;
}
}
}
[JsiiInterface(nativeType: typeof(IMethodConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.MethodConfigProperty")]
public interface IMethodConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: values: The request method.
/// </remarks>
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Values
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IMethodConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.MethodConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMethodConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: values: The request method.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.MethodConfigProperty")]
public class MethodConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMethodConfigProperty
{
private object? _values;
/// <remarks>
/// <strong>Property</strong>: values: The request method.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => _values;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case string cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_values = value;
}
}
}
[JsiiInterface(nativeType: typeof(IMirrorGroupConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigProperty")]
public interface IMirrorGroupConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: serverGroupTuples:
/// </remarks>
[JsiiProperty(name: "serverGroupTuples", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigServerGroupTuplesProperty\"}]}},\"kind\":\"array\"}}]}}")]
object ServerGroupTuples
{
get;
}
[JsiiTypeProxy(nativeType: typeof(IMirrorGroupConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMirrorGroupConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: serverGroupTuples:
/// </remarks>
[JsiiProperty(name: "serverGroupTuples", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigServerGroupTuplesProperty\"}]}},\"kind\":\"array\"}}]}}")]
public object ServerGroupTuples
{
get => GetInstanceProperty<object>()!;
}
}
}
#pragma warning disable CS8618
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigProperty")]
public class MirrorGroupConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMirrorGroupConfigProperty
{
private object _serverGroupTuples;
/// <remarks>
/// <strong>Property</strong>: serverGroupTuples:
/// </remarks>
[JsiiProperty(name: "serverGroupTuples", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigServerGroupTuplesProperty\"}]}},\"kind\":\"array\"}}]}}")]
public object ServerGroupTuples
{
get => _serverGroupTuples;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMirrorGroupConfigServerGroupTuplesProperty cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMirrorGroupConfigServerGroupTuplesProperty).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMirrorGroupConfigServerGroupTuplesProperty).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_serverGroupTuples = value;
}
}
}
[JsiiInterface(nativeType: typeof(IMirrorGroupConfigServerGroupTuplesProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigServerGroupTuplesProperty")]
public interface IMirrorGroupConfigServerGroupTuplesProperty
{
/// <remarks>
/// <strong>Property</strong>: serverGroupId: The ID of server group.
/// </remarks>
[JsiiProperty(name: "serverGroupId", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
object ServerGroupId
{
get;
}
[JsiiTypeProxy(nativeType: typeof(IMirrorGroupConfigServerGroupTuplesProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigServerGroupTuplesProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMirrorGroupConfigServerGroupTuplesProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: serverGroupId: The ID of server group.
/// </remarks>
[JsiiProperty(name: "serverGroupId", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object ServerGroupId
{
get => GetInstanceProperty<object>()!;
}
}
}
#pragma warning disable CS8618
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigServerGroupTuplesProperty")]
public class MirrorGroupConfigServerGroupTuplesProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMirrorGroupConfigServerGroupTuplesProperty
{
private object _serverGroupId;
/// <remarks>
/// <strong>Property</strong>: serverGroupId: The ID of server group.
/// </remarks>
[JsiiProperty(name: "serverGroupId", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object ServerGroupId
{
get => _serverGroupId;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_serverGroupId = value;
}
}
}
[JsiiInterface(nativeType: typeof(IPathConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.PathConfigProperty")]
public interface IPathConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: values: The path of the URL.
/// </remarks>
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Values
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IPathConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.PathConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IPathConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: values: The path of the URL.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.PathConfigProperty")]
public class PathConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IPathConfigProperty
{
private object? _values;
/// <remarks>
/// <strong>Property</strong>: values: The path of the URL.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => _values;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case string cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_values = value;
}
}
}
[JsiiInterface(nativeType: typeof(IQueryStringConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.QueryStringConfigProperty")]
public interface IQueryStringConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: values: The list of query strings.
/// </remarks>
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.QueryStringConfigValuesProperty\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Values
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IQueryStringConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.QueryStringConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IQueryStringConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: values: The list of query strings.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.QueryStringConfigValuesProperty\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.QueryStringConfigProperty")]
public class QueryStringConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IQueryStringConfigProperty
{
private object? _values;
/// <remarks>
/// <strong>Property</strong>: values: The list of query strings.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.QueryStringConfigValuesProperty\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => _values;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IQueryStringConfigValuesProperty cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IQueryStringConfigValuesProperty).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IQueryStringConfigValuesProperty).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_values = value;
}
}
}
[JsiiInterface(nativeType: typeof(IQueryStringConfigValuesProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.QueryStringConfigValuesProperty")]
public interface IQueryStringConfigValuesProperty
{
/// <remarks>
/// <strong>Property</strong>: key: They key of the query string.
/// The key must be 1 to 100 characters in length
/// It can contain asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters.
/// The key cannot contain space characters or the following special characters: ; # [ ] { } \ | < > &.
/// </remarks>
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Key
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: value: The value of the cookie.
/// The key must be 1 to 128 characters in length.
/// It can contain lowercase letters, asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters, space characters, or the following special characters: # [ ] { } \ | < > &.
/// </remarks>
[JsiiProperty(name: "value", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Value
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IQueryStringConfigValuesProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.QueryStringConfigValuesProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IQueryStringConfigValuesProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: key: They key of the query string.
/// The key must be 1 to 100 characters in length
/// It can contain asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters.
/// The key cannot contain space characters or the following special characters: ; # [ ] { } \ | < > &.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: value: The value of the cookie.
/// The key must be 1 to 128 characters in length.
/// It can contain lowercase letters, asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters, space characters, or the following special characters: # [ ] { } \ | < > &.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "value", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Value
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.QueryStringConfigValuesProperty")]
public class QueryStringConfigValuesProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IQueryStringConfigValuesProperty
{
private object? _key;
/// <remarks>
/// <strong>Property</strong>: key: They key of the query string.
/// The key must be 1 to 100 characters in length
/// It can contain asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters.
/// The key cannot contain space characters or the following special characters: ; # [ ] { } \ | < > &.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => _key;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_key = value;
}
}
private object? _value;
/// <remarks>
/// <strong>Property</strong>: value: The value of the cookie.
/// The key must be 1 to 128 characters in length.
/// It can contain lowercase letters, asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters, space characters, or the following special characters: # [ ] { } \ | < > &.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "value", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Value
{
get => _value;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_value = value;
}
}
}
[JsiiInterface(nativeType: typeof(IRedirectConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.RedirectConfigProperty")]
public interface IRedirectConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: host: The host name to which requests are redirected. Valid values:
/// ${host} (default): If you set the value to ${host}, you cannot add other characters to the
/// value.
/// To customize the host name, make sure that the following requirements are met:
/// The host name must be 3 to 128 characters in length, and can contain lowercase letters,
/// digits, hyphens (-), periods (.), asterisks (*), and question marks (?).
/// The host name must contain at least one period (.). It cannot start or end with a
/// period (.).
/// The rightmost field can contain only letters and wildcard characters. It cannot contain
/// digits or hyphens (-).
/// The domain labels cannot start or end with hyphens (-). You can include an asterisk
/// (*) and question mark (?) anywhere in a domain label.
/// </remarks>
[JsiiProperty(name: "host", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Host
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: httpCode: The redirect type. Valid values: 301, 302, 303, 307, and 308.
/// </remarks>
[JsiiProperty(name: "httpCode", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? HttpCode
{
get
{
return null;
}
}
/// <remarks>
/// <strong></strong>: :. It cannot contain the following special characters: " % # ; ! ( ) [ ]^ , ". It can also contain asterisks (*) and question marks (?) as wildcard characters.
/// The value is case-sensitive.
///
/// <strong>Property</strong>: path: The path of the URL to which requests are redirected. Valid values:
/// Default value: ${path}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the path, make sure that the following requirements are met:
/// The path must be 1 to 128 characters in length.
/// It must start with a forward slash (\/). The path can contain letters, digits, and
/// the following special characters: $ - _ .+ \/ & ~
/// </remarks>
[JsiiProperty(name: "path", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Path
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: port: The port to which requests are redirected.
/// ${port} (default): If you set the value to ${port}, you cannot add other characters to the
/// value.
/// You can also enter a port number. Valid values: 1 to 63335.
/// </remarks>
[JsiiProperty(name: "port", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Port
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: protocol: The redirect protocol.
/// ${protocol} (default): If you set the value to ${protocol}, you cannot add other characters to
/// the value.
/// You can also set the value to HTTP or HTTPS.
/// Note HTTPS listeners do not support HTTPS to HTTP redirection.
/// </remarks>
[JsiiProperty(name: "protocol", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Protocol
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: query: The query string of the URL to which requests are redirected.
/// Default value: ${query}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the query string, make sure that the following requirements are met:
/// The value must be 1 to 128 characters in length.
/// It can contain printable characters. It cannot contain space characters or the following
/// special characters: # [ ] { } \ | < > &. It cannot contain uppercase letters.
/// </remarks>
[JsiiProperty(name: "query", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Query
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IRedirectConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.RedirectConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRedirectConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: host: The host name to which requests are redirected. Valid values:
/// ${host} (default): If you set the value to ${host}, you cannot add other characters to the
/// value.
/// To customize the host name, make sure that the following requirements are met:
/// The host name must be 3 to 128 characters in length, and can contain lowercase letters,
/// digits, hyphens (-), periods (.), asterisks (*), and question marks (?).
/// The host name must contain at least one period (.). It cannot start or end with a
/// period (.).
/// The rightmost field can contain only letters and wildcard characters. It cannot contain
/// digits or hyphens (-).
/// The domain labels cannot start or end with hyphens (-). You can include an asterisk
/// (*) and question mark (?) anywhere in a domain label.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "host", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Host
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: httpCode: The redirect type. Valid values: 301, 302, 303, 307, and 308.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "httpCode", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? HttpCode
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong></strong>: :. It cannot contain the following special characters: " % # ; ! ( ) [ ]^ , ". It can also contain asterisks (*) and question marks (?) as wildcard characters.
/// The value is case-sensitive.
///
/// <strong>Property</strong>: path: The path of the URL to which requests are redirected. Valid values:
/// Default value: ${path}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the path, make sure that the following requirements are met:
/// The path must be 1 to 128 characters in length.
/// It must start with a forward slash (\/). The path can contain letters, digits, and
/// the following special characters: $ - _ .+ \/ & ~
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "path", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Path
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: port: The port to which requests are redirected.
/// ${port} (default): If you set the value to ${port}, you cannot add other characters to the
/// value.
/// You can also enter a port number. Valid values: 1 to 63335.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "port", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Port
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: protocol: The redirect protocol.
/// ${protocol} (default): If you set the value to ${protocol}, you cannot add other characters to
/// the value.
/// You can also set the value to HTTP or HTTPS.
/// Note HTTPS listeners do not support HTTPS to HTTP redirection.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "protocol", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Protocol
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: query: The query string of the URL to which requests are redirected.
/// Default value: ${query}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the query string, make sure that the following requirements are met:
/// The value must be 1 to 128 characters in length.
/// It can contain printable characters. It cannot contain space characters or the following
/// special characters: # [ ] { } \ | < > &. It cannot contain uppercase letters.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "query", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Query
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.RedirectConfigProperty")]
public class RedirectConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRedirectConfigProperty
{
private object? _host;
/// <remarks>
/// <strong>Property</strong>: host: The host name to which requests are redirected. Valid values:
/// ${host} (default): If you set the value to ${host}, you cannot add other characters to the
/// value.
/// To customize the host name, make sure that the following requirements are met:
/// The host name must be 3 to 128 characters in length, and can contain lowercase letters,
/// digits, hyphens (-), periods (.), asterisks (*), and question marks (?).
/// The host name must contain at least one period (.). It cannot start or end with a
/// period (.).
/// The rightmost field can contain only letters and wildcard characters. It cannot contain
/// digits or hyphens (-).
/// The domain labels cannot start or end with hyphens (-). You can include an asterisk
/// (*) and question mark (?) anywhere in a domain label.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "host", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Host
{
get => _host;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_host = value;
}
}
private object? _httpCode;
/// <remarks>
/// <strong>Property</strong>: httpCode: The redirect type. Valid values: 301, 302, 303, 307, and 308.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "httpCode", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? HttpCode
{
get => _httpCode;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case double cast_cd4240:
break;
case byte cast_cd4240:
break;
case decimal cast_cd4240:
break;
case float cast_cd4240:
break;
case int cast_cd4240:
break;
case long cast_cd4240:
break;
case sbyte cast_cd4240:
break;
case short cast_cd4240:
break;
case uint cast_cd4240:
break;
case ulong cast_cd4240:
break;
case ushort cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: double, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_httpCode = value;
}
}
private object? _path;
/// <remarks>
/// <strong></strong>: :. It cannot contain the following special characters: " % # ; ! ( ) [ ]^ , ". It can also contain asterisks (*) and question marks (?) as wildcard characters.
/// The value is case-sensitive.
///
/// <strong>Property</strong>: path: The path of the URL to which requests are redirected. Valid values:
/// Default value: ${path}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the path, make sure that the following requirements are met:
/// The path must be 1 to 128 characters in length.
/// It must start with a forward slash (\/). The path can contain letters, digits, and
/// the following special characters: $ - _ .+ \/ & ~
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "path", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Path
{
get => _path;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_path = value;
}
}
private object? _port;
/// <remarks>
/// <strong>Property</strong>: port: The port to which requests are redirected.
/// ${port} (default): If you set the value to ${port}, you cannot add other characters to the
/// value.
/// You can also enter a port number. Valid values: 1 to 63335.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "port", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Port
{
get => _port;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_port = value;
}
}
private object? _protocol;
/// <remarks>
/// <strong>Property</strong>: protocol: The redirect protocol.
/// ${protocol} (default): If you set the value to ${protocol}, you cannot add other characters to
/// the value.
/// You can also set the value to HTTP or HTTPS.
/// Note HTTPS listeners do not support HTTPS to HTTP redirection.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "protocol", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Protocol
{
get => _protocol;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_protocol = value;
}
}
private object? _query;
/// <remarks>
/// <strong>Property</strong>: query: The query string of the URL to which requests are redirected.
/// Default value: ${query}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the query string, make sure that the following requirements are met:
/// The value must be 1 to 128 characters in length.
/// It can contain printable characters. It cannot contain space characters or the following
/// special characters: # [ ] { } \ | < > &. It cannot contain uppercase letters.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "query", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Query
{
get => _query;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_query = value;
}
}
}
[JsiiInterface(nativeType: typeof(IRemoveHeaderConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.RemoveHeaderConfigProperty")]
public interface IRemoveHeaderConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: key: The key of the response header.
/// The key must be 1 to 40 characters in length.
/// It can contain letters, digits, underscores (_), and hyphens (-).
/// </remarks>
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Key
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IRemoveHeaderConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.RemoveHeaderConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRemoveHeaderConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: key: The key of the response header.
/// The key must be 1 to 40 characters in length.
/// It can contain letters, digits, underscores (_), and hyphens (-).
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.RemoveHeaderConfigProperty")]
public class RemoveHeaderConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRemoveHeaderConfigProperty
{
private object? _key;
/// <remarks>
/// <strong>Property</strong>: key: The key of the response header.
/// The key must be 1 to 40 characters in length.
/// It can contain letters, digits, underscores (_), and hyphens (-).
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => _key;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_key = value;
}
}
}
[JsiiInterface(nativeType: typeof(IResponseHeaderConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ResponseHeaderConfigProperty")]
public interface IResponseHeaderConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: key: The key of the response header.
/// </remarks>
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Key
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: values: The list of response headers.
/// </remarks>
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Values
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IResponseHeaderConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ResponseHeaderConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IResponseHeaderConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: key: The key of the response header.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: values: The list of response headers.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.ResponseHeaderConfigProperty")]
public class ResponseHeaderConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IResponseHeaderConfigProperty
{
private object? _key;
/// <remarks>
/// <strong>Property</strong>: key: The key of the response header.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => _key;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_key = value;
}
}
private object? _values;
/// <remarks>
/// <strong>Property</strong>: values: The list of response headers.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => _values;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case string cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_values = value;
}
}
}
[JsiiInterface(nativeType: typeof(IResponseStatusCodeConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ResponseStatusCodeConfigProperty")]
public interface IResponseStatusCodeConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: values: The list of response status code.
/// </remarks>
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Values
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IResponseStatusCodeConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ResponseStatusCodeConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IResponseStatusCodeConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: values: The list of response status code.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.ResponseStatusCodeConfigProperty")]
public class ResponseStatusCodeConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IResponseStatusCodeConfigProperty
{
private object? _values;
/// <remarks>
/// <strong>Property</strong>: values: The list of response status code.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => _values;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case string cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_values = value;
}
}
}
[JsiiInterface(nativeType: typeof(IRewriteConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.RewriteConfigProperty")]
public interface IRewriteConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: host: Destination host address of internal jump. Valid values:
/// ${host} (default): If you set the value to ${host}, you cannot add other characters to the
/// value.
/// To customize the host name, make sure that the following requirements are met:
/// The host name must be 3 to 128 characters in length, and can contain lowercase letters,
/// digits, hyphens (-), periods (.), asterisks (*), and question marks (?).
/// The host name must contain at least one period (.). It cannot start or end with a
/// period (.).
/// The rightmost field can contain only letters and wildcard characters. It cannot contain
/// digits or hyphens (-).
/// The domain labels cannot start or end with hyphens (-). You can include an asterisk
/// (*) and question mark (?) anywhere in a domain label.
/// </remarks>
[JsiiProperty(name: "host", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Host
{
get
{
return null;
}
}
/// <remarks>
/// <strong></strong>: :. It cannot contain the following special characters: " % # ; ! ( ) [ ]^ , ". It can also contain asterisks (*) and question marks (?) as wildcard characters.
/// The value is case-sensitive.
///
/// <strong>Property</strong>: path: The path to jump. Valid values:
/// Default value: ${path}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the path, make sure that the following requirements are met:
/// The path must be 1 to 128 characters in length.
/// It must start with a forward slash (\/). The path can contain letters, digits, and
/// the following special characters: $ - _ .+ \/ & ~
/// </remarks>
[JsiiProperty(name: "path", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Path
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: query: Query string for internal jump.
/// Default value: ${query}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the query string, make sure that the following requirements are met:
/// The value must be 1 to 128 characters in length.
/// It can contain printable characters. It cannot contain space characters or the following
/// special characters: # [ ] { } \ | < > &. It cannot contain uppercase letters.
/// </remarks>
[JsiiProperty(name: "query", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Query
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IRewriteConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.RewriteConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRewriteConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: host: Destination host address of internal jump. Valid values:
/// ${host} (default): If you set the value to ${host}, you cannot add other characters to the
/// value.
/// To customize the host name, make sure that the following requirements are met:
/// The host name must be 3 to 128 characters in length, and can contain lowercase letters,
/// digits, hyphens (-), periods (.), asterisks (*), and question marks (?).
/// The host name must contain at least one period (.). It cannot start or end with a
/// period (.).
/// The rightmost field can contain only letters and wildcard characters. It cannot contain
/// digits or hyphens (-).
/// The domain labels cannot start or end with hyphens (-). You can include an asterisk
/// (*) and question mark (?) anywhere in a domain label.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "host", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Host
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong></strong>: :. It cannot contain the following special characters: " % # ; ! ( ) [ ]^ , ". It can also contain asterisks (*) and question marks (?) as wildcard characters.
/// The value is case-sensitive.
///
/// <strong>Property</strong>: path: The path to jump. Valid values:
/// Default value: ${path}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the path, make sure that the following requirements are met:
/// The path must be 1 to 128 characters in length.
/// It must start with a forward slash (\/). The path can contain letters, digits, and
/// the following special characters: $ - _ .+ \/ & ~
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "path", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Path
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: query: Query string for internal jump.
/// Default value: ${query}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the query string, make sure that the following requirements are met:
/// The value must be 1 to 128 characters in length.
/// It can contain printable characters. It cannot contain space characters or the following
/// special characters: # [ ] { } \ | < > &. It cannot contain uppercase letters.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "query", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Query
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.RewriteConfigProperty")]
public class RewriteConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRewriteConfigProperty
{
private object? _host;
/// <remarks>
/// <strong>Property</strong>: host: Destination host address of internal jump. Valid values:
/// ${host} (default): If you set the value to ${host}, you cannot add other characters to the
/// value.
/// To customize the host name, make sure that the following requirements are met:
/// The host name must be 3 to 128 characters in length, and can contain lowercase letters,
/// digits, hyphens (-), periods (.), asterisks (*), and question marks (?).
/// The host name must contain at least one period (.). It cannot start or end with a
/// period (.).
/// The rightmost field can contain only letters and wildcard characters. It cannot contain
/// digits or hyphens (-).
/// The domain labels cannot start or end with hyphens (-). You can include an asterisk
/// (*) and question mark (?) anywhere in a domain label.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "host", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Host
{
get => _host;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_host = value;
}
}
private object? _path;
/// <remarks>
/// <strong></strong>: :. It cannot contain the following special characters: " % # ; ! ( ) [ ]^ , ". It can also contain asterisks (*) and question marks (?) as wildcard characters.
/// The value is case-sensitive.
///
/// <strong>Property</strong>: path: The path to jump. Valid values:
/// Default value: ${path}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the path, make sure that the following requirements are met:
/// The path must be 1 to 128 characters in length.
/// It must start with a forward slash (\/). The path can contain letters, digits, and
/// the following special characters: $ - _ .+ \/ & ~
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "path", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Path
{
get => _path;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_path = value;
}
}
private object? _query;
/// <remarks>
/// <strong>Property</strong>: query: Query string for internal jump.
/// Default value: ${query}. ${host}, ${protocol}, and ${port} are also supported. Each variable can be specified only once. You can specify one
/// or more of the preceding variables in each request. You can also combine them with
/// the following characters.
/// To customize the query string, make sure that the following requirements are met:
/// The value must be 1 to 128 characters in length.
/// It can contain printable characters. It cannot contain space characters or the following
/// special characters: # [ ] { } \ | < > &. It cannot contain uppercase letters.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "query", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Query
{
get => _query;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_query = value;
}
}
}
[JsiiInterface(nativeType: typeof(IRuleActionsProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.RuleActionsProperty")]
public interface IRuleActionsProperty
{
/// <remarks>
/// <strong>Property</strong>: order: The priority of the action. Valid values: 1 to 50000. A lower value specifies a higher priority. The actions specified in a forwarding
/// rule are applied in descending order of priority. This parameter is required. The
/// priority of each action within a forwarding rule is unique.
/// </remarks>
[JsiiProperty(name: "order", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
object Order
{
get;
}
/// <remarks>
/// <strong>Property</strong>: type: The action. Valid values:
/// ForwardGroup: forwards a request to multiple vServer groups.
/// Redirect: redirects a request.
/// FixedResponse: returns a fixed response.
/// Rewrite: rewrites a request.
/// InsertHeader: adds a header to a request.
/// Cors: adds a cors info to a request.
/// The type of the action. You can specify the last action and the actions
/// that you want to perform before the last action:
/// FinalType: the last action that you want to perform in a forwarding rule. Each forwarding rule can contain only one FinalType action.
/// You can specify a ForwardGroup, Redirect, or FixedResponse action as the FinalType action.
/// ExtType: the action or the actions to be performed before the FinalType action. A forwarding rule can contain one or more ExtType actions.
/// To specify this parameter, you must also specify FinalType. You can specify multiple InsertHeader actions or one Rewrite action.
/// </remarks>
[JsiiProperty(name: "type", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
object Type
{
get;
}
/// <remarks>
/// <strong>Property</strong>: corsConfig: The configuration of the CORS.
/// </remarks>
[JsiiProperty(name: "corsConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.CorsConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? CorsConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: fixedResponseConfig: The configuration of the fixed response.
/// </remarks>
[JsiiProperty(name: "fixedResponseConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.FixedResponseConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? FixedResponseConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: forwardGroupConfig: The configuration of the server group.
/// </remarks>
[JsiiProperty(name: "forwardGroupConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ForwardGroupConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? ForwardGroupConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: insertHeaderConfig: The configuration of the header to be inserted.
/// </remarks>
[JsiiProperty(name: "insertHeaderConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.InsertHeaderConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? InsertHeaderConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: redirectConfig: The configuration of the external redirect action.
/// </remarks>
[JsiiProperty(name: "redirectConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.RedirectConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? RedirectConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: removeHeaderConfig: The configuration of the header to be removed.
/// </remarks>
[JsiiProperty(name: "removeHeaderConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.RemoveHeaderConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? RemoveHeaderConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: rewriteConfig: The configuration of the internal redirect action.
/// </remarks>
[JsiiProperty(name: "rewriteConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.RewriteConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? RewriteConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: trafficLimitConfig: The configuration of the traffic limit.
/// </remarks>
[JsiiProperty(name: "trafficLimitConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.TrafficLimitConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? TrafficLimitConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: trafficMirrorConfig: The configuration of the traffic mirror.
/// </remarks>
[JsiiProperty(name: "trafficMirrorConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.TrafficMirrorConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? TrafficMirrorConfig
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IRuleActionsProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.RuleActionsProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRuleActionsProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: order: The priority of the action. Valid values: 1 to 50000. A lower value specifies a higher priority. The actions specified in a forwarding
/// rule are applied in descending order of priority. This parameter is required. The
/// priority of each action within a forwarding rule is unique.
/// </remarks>
[JsiiProperty(name: "order", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object Order
{
get => GetInstanceProperty<object>()!;
}
/// <remarks>
/// <strong>Property</strong>: type: The action. Valid values:
/// ForwardGroup: forwards a request to multiple vServer groups.
/// Redirect: redirects a request.
/// FixedResponse: returns a fixed response.
/// Rewrite: rewrites a request.
/// InsertHeader: adds a header to a request.
/// Cors: adds a cors info to a request.
/// The type of the action. You can specify the last action and the actions
/// that you want to perform before the last action:
/// FinalType: the last action that you want to perform in a forwarding rule. Each forwarding rule can contain only one FinalType action.
/// You can specify a ForwardGroup, Redirect, or FixedResponse action as the FinalType action.
/// ExtType: the action or the actions to be performed before the FinalType action. A forwarding rule can contain one or more ExtType actions.
/// To specify this parameter, you must also specify FinalType. You can specify multiple InsertHeader actions or one Rewrite action.
/// </remarks>
[JsiiProperty(name: "type", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object Type
{
get => GetInstanceProperty<object>()!;
}
/// <remarks>
/// <strong>Property</strong>: corsConfig: The configuration of the CORS.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "corsConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.CorsConfigProperty\"}]}}", isOptional: true)]
public object? CorsConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: fixedResponseConfig: The configuration of the fixed response.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "fixedResponseConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.FixedResponseConfigProperty\"}]}}", isOptional: true)]
public object? FixedResponseConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: forwardGroupConfig: The configuration of the server group.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "forwardGroupConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ForwardGroupConfigProperty\"}]}}", isOptional: true)]
public object? ForwardGroupConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: insertHeaderConfig: The configuration of the header to be inserted.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "insertHeaderConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.InsertHeaderConfigProperty\"}]}}", isOptional: true)]
public object? InsertHeaderConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: redirectConfig: The configuration of the external redirect action.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "redirectConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.RedirectConfigProperty\"}]}}", isOptional: true)]
public object? RedirectConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: removeHeaderConfig: The configuration of the header to be removed.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "removeHeaderConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.RemoveHeaderConfigProperty\"}]}}", isOptional: true)]
public object? RemoveHeaderConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: rewriteConfig: The configuration of the internal redirect action.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "rewriteConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.RewriteConfigProperty\"}]}}", isOptional: true)]
public object? RewriteConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: trafficLimitConfig: The configuration of the traffic limit.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "trafficLimitConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.TrafficLimitConfigProperty\"}]}}", isOptional: true)]
public object? TrafficLimitConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: trafficMirrorConfig: The configuration of the traffic mirror.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "trafficMirrorConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.TrafficMirrorConfigProperty\"}]}}", isOptional: true)]
public object? TrafficMirrorConfig
{
get => GetInstanceProperty<object?>();
}
}
}
#pragma warning disable CS8618
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.RuleActionsProperty")]
public class RuleActionsProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRuleActionsProperty
{
private object _order;
/// <remarks>
/// <strong>Property</strong>: order: The priority of the action. Valid values: 1 to 50000. A lower value specifies a higher priority. The actions specified in a forwarding
/// rule are applied in descending order of priority. This parameter is required. The
/// priority of each action within a forwarding rule is unique.
/// </remarks>
[JsiiProperty(name: "order", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object Order
{
get => _order;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case double cast_cd4240:
break;
case byte cast_cd4240:
break;
case decimal cast_cd4240:
break;
case float cast_cd4240:
break;
case int cast_cd4240:
break;
case long cast_cd4240:
break;
case sbyte cast_cd4240:
break;
case short cast_cd4240:
break;
case uint cast_cd4240:
break;
case ulong cast_cd4240:
break;
case ushort cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: double, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: double, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_order = value;
}
}
private object _type;
/// <remarks>
/// <strong>Property</strong>: type: The action. Valid values:
/// ForwardGroup: forwards a request to multiple vServer groups.
/// Redirect: redirects a request.
/// FixedResponse: returns a fixed response.
/// Rewrite: rewrites a request.
/// InsertHeader: adds a header to a request.
/// Cors: adds a cors info to a request.
/// The type of the action. You can specify the last action and the actions
/// that you want to perform before the last action:
/// FinalType: the last action that you want to perform in a forwarding rule. Each forwarding rule can contain only one FinalType action.
/// You can specify a ForwardGroup, Redirect, or FixedResponse action as the FinalType action.
/// ExtType: the action or the actions to be performed before the FinalType action. A forwarding rule can contain one or more ExtType actions.
/// To specify this parameter, you must also specify FinalType. You can specify multiple InsertHeader actions or one Rewrite action.
/// </remarks>
[JsiiProperty(name: "type", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object Type
{
get => _type;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_type = value;
}
}
private object? _corsConfig;
/// <remarks>
/// <strong>Property</strong>: corsConfig: The configuration of the CORS.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "corsConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.CorsConfigProperty\"}]}}", isOptional: true)]
public object? CorsConfig
{
get => _corsConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ICorsConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ICorsConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_corsConfig = value;
}
}
private object? _fixedResponseConfig;
/// <remarks>
/// <strong>Property</strong>: fixedResponseConfig: The configuration of the fixed response.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "fixedResponseConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.FixedResponseConfigProperty\"}]}}", isOptional: true)]
public object? FixedResponseConfig
{
get => _fixedResponseConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IFixedResponseConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IFixedResponseConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_fixedResponseConfig = value;
}
}
private object? _forwardGroupConfig;
/// <remarks>
/// <strong>Property</strong>: forwardGroupConfig: The configuration of the server group.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "forwardGroupConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ForwardGroupConfigProperty\"}]}}", isOptional: true)]
public object? ForwardGroupConfig
{
get => _forwardGroupConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IForwardGroupConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IForwardGroupConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_forwardGroupConfig = value;
}
}
private object? _insertHeaderConfig;
/// <remarks>
/// <strong>Property</strong>: insertHeaderConfig: The configuration of the header to be inserted.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "insertHeaderConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.InsertHeaderConfigProperty\"}]}}", isOptional: true)]
public object? InsertHeaderConfig
{
get => _insertHeaderConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IInsertHeaderConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IInsertHeaderConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_insertHeaderConfig = value;
}
}
private object? _redirectConfig;
/// <remarks>
/// <strong>Property</strong>: redirectConfig: The configuration of the external redirect action.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "redirectConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.RedirectConfigProperty\"}]}}", isOptional: true)]
public object? RedirectConfig
{
get => _redirectConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRedirectConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRedirectConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_redirectConfig = value;
}
}
private object? _removeHeaderConfig;
/// <remarks>
/// <strong>Property</strong>: removeHeaderConfig: The configuration of the header to be removed.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "removeHeaderConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.RemoveHeaderConfigProperty\"}]}}", isOptional: true)]
public object? RemoveHeaderConfig
{
get => _removeHeaderConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRemoveHeaderConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRemoveHeaderConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_removeHeaderConfig = value;
}
}
private object? _rewriteConfig;
/// <remarks>
/// <strong>Property</strong>: rewriteConfig: The configuration of the internal redirect action.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "rewriteConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.RewriteConfigProperty\"}]}}", isOptional: true)]
public object? RewriteConfig
{
get => _rewriteConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRewriteConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRewriteConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_rewriteConfig = value;
}
}
private object? _trafficLimitConfig;
/// <remarks>
/// <strong>Property</strong>: trafficLimitConfig: The configuration of the traffic limit.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "trafficLimitConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.TrafficLimitConfigProperty\"}]}}", isOptional: true)]
public object? TrafficLimitConfig
{
get => _trafficLimitConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ITrafficLimitConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ITrafficLimitConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_trafficLimitConfig = value;
}
}
private object? _trafficMirrorConfig;
/// <remarks>
/// <strong>Property</strong>: trafficMirrorConfig: The configuration of the traffic mirror.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "trafficMirrorConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.TrafficMirrorConfigProperty\"}]}}", isOptional: true)]
public object? TrafficMirrorConfig
{
get => _trafficMirrorConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ITrafficMirrorConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ITrafficMirrorConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_trafficMirrorConfig = value;
}
}
}
[JsiiInterface(nativeType: typeof(IRuleConditionsProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.RuleConditionsProperty")]
public interface IRuleConditionsProperty
{
/// <remarks>
/// <strong>Property</strong>: type: The type of the forwarding rule. Valid values:
/// Host: Requests are forwarded based on hosts.
/// Path: Requests are forwarded based on paths.
/// Header: Requests are forwarded based on HTTP headers.
/// QueryString: Requests are forwarded based on query strings.
/// Method: Request are forwarded based on request methods.
/// Cookie: Request are forwarded based on cookies.
/// ResponseHeader: Request are forwarded based on response header.
/// ResponseStatusCode: Request are forwarded based on response status code.
/// </remarks>
[JsiiProperty(name: "type", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
object Type
{
get;
}
/// <remarks>
/// <strong>Property</strong>: cookieConfig: The configuration of the cookie.
/// </remarks>
[JsiiProperty(name: "cookieConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.CookieConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? CookieConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: headerConfig: The configuration of the header.
/// </remarks>
[JsiiProperty(name: "headerConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.HeaderConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? HeaderConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: hostConfig: The configuration of the host.
/// </remarks>
[JsiiProperty(name: "hostConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.HostConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? HostConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: methodConfig: The configuration of the request method.
/// </remarks>
[JsiiProperty(name: "methodConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.MethodConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? MethodConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: pathConfig: The configuration of the URL.
/// </remarks>
[JsiiProperty(name: "pathConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.PathConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? PathConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: queryStringConfig: The configuration of the query string.
/// </remarks>
[JsiiProperty(name: "queryStringConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.QueryStringConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? QueryStringConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: responseHeaderConfig: The configuration of the response header.
/// </remarks>
[JsiiProperty(name: "responseHeaderConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ResponseHeaderConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? ResponseHeaderConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: responseStatusCodeConfig: The configuration of the response status code.
/// </remarks>
[JsiiProperty(name: "responseStatusCodeConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ResponseStatusCodeConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? ResponseStatusCodeConfig
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: sourceIpConfig: Service traffic matching based on source IP. Required and valid when Type is SourceIP.
/// </remarks>
[JsiiProperty(name: "sourceIpConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.SourceIpConfigProperty\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? SourceIpConfig
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IRuleConditionsProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.RuleConditionsProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRuleConditionsProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: type: The type of the forwarding rule. Valid values:
/// Host: Requests are forwarded based on hosts.
/// Path: Requests are forwarded based on paths.
/// Header: Requests are forwarded based on HTTP headers.
/// QueryString: Requests are forwarded based on query strings.
/// Method: Request are forwarded based on request methods.
/// Cookie: Request are forwarded based on cookies.
/// ResponseHeader: Request are forwarded based on response header.
/// ResponseStatusCode: Request are forwarded based on response status code.
/// </remarks>
[JsiiProperty(name: "type", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object Type
{
get => GetInstanceProperty<object>()!;
}
/// <remarks>
/// <strong>Property</strong>: cookieConfig: The configuration of the cookie.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "cookieConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.CookieConfigProperty\"}]}}", isOptional: true)]
public object? CookieConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: headerConfig: The configuration of the header.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "headerConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.HeaderConfigProperty\"}]}}", isOptional: true)]
public object? HeaderConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: hostConfig: The configuration of the host.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "hostConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.HostConfigProperty\"}]}}", isOptional: true)]
public object? HostConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: methodConfig: The configuration of the request method.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "methodConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.MethodConfigProperty\"}]}}", isOptional: true)]
public object? MethodConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: pathConfig: The configuration of the URL.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "pathConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.PathConfigProperty\"}]}}", isOptional: true)]
public object? PathConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: queryStringConfig: The configuration of the query string.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "queryStringConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.QueryStringConfigProperty\"}]}}", isOptional: true)]
public object? QueryStringConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: responseHeaderConfig: The configuration of the response header.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "responseHeaderConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ResponseHeaderConfigProperty\"}]}}", isOptional: true)]
public object? ResponseHeaderConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: responseStatusCodeConfig: The configuration of the response status code.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "responseStatusCodeConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ResponseStatusCodeConfigProperty\"}]}}", isOptional: true)]
public object? ResponseStatusCodeConfig
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: sourceIpConfig: Service traffic matching based on source IP. Required and valid when Type is SourceIP.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "sourceIpConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.SourceIpConfigProperty\"}]}}", isOptional: true)]
public object? SourceIpConfig
{
get => GetInstanceProperty<object?>();
}
}
}
#pragma warning disable CS8618
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.RuleConditionsProperty")]
public class RuleConditionsProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IRuleConditionsProperty
{
private object _type;
/// <remarks>
/// <strong>Property</strong>: type: The type of the forwarding rule. Valid values:
/// Host: Requests are forwarded based on hosts.
/// Path: Requests are forwarded based on paths.
/// Header: Requests are forwarded based on HTTP headers.
/// QueryString: Requests are forwarded based on query strings.
/// Method: Request are forwarded based on request methods.
/// Cookie: Request are forwarded based on cookies.
/// ResponseHeader: Request are forwarded based on response header.
/// ResponseStatusCode: Request are forwarded based on response status code.
/// </remarks>
[JsiiProperty(name: "type", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object Type
{
get => _type;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_type = value;
}
}
private object? _cookieConfig;
/// <remarks>
/// <strong>Property</strong>: cookieConfig: The configuration of the cookie.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "cookieConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.CookieConfigProperty\"}]}}", isOptional: true)]
public object? CookieConfig
{
get => _cookieConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ICookieConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ICookieConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_cookieConfig = value;
}
}
private object? _headerConfig;
/// <remarks>
/// <strong>Property</strong>: headerConfig: The configuration of the header.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "headerConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.HeaderConfigProperty\"}]}}", isOptional: true)]
public object? HeaderConfig
{
get => _headerConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IHeaderConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IHeaderConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_headerConfig = value;
}
}
private object? _hostConfig;
/// <remarks>
/// <strong>Property</strong>: hostConfig: The configuration of the host.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "hostConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.HostConfigProperty\"}]}}", isOptional: true)]
public object? HostConfig
{
get => _hostConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IHostConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IHostConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_hostConfig = value;
}
}
private object? _methodConfig;
/// <remarks>
/// <strong>Property</strong>: methodConfig: The configuration of the request method.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "methodConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.MethodConfigProperty\"}]}}", isOptional: true)]
public object? MethodConfig
{
get => _methodConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMethodConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMethodConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_methodConfig = value;
}
}
private object? _pathConfig;
/// <remarks>
/// <strong>Property</strong>: pathConfig: The configuration of the URL.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "pathConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.PathConfigProperty\"}]}}", isOptional: true)]
public object? PathConfig
{
get => _pathConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IPathConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IPathConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_pathConfig = value;
}
}
private object? _queryStringConfig;
/// <remarks>
/// <strong>Property</strong>: queryStringConfig: The configuration of the query string.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "queryStringConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.QueryStringConfigProperty\"}]}}", isOptional: true)]
public object? QueryStringConfig
{
get => _queryStringConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IQueryStringConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IQueryStringConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_queryStringConfig = value;
}
}
private object? _responseHeaderConfig;
/// <remarks>
/// <strong>Property</strong>: responseHeaderConfig: The configuration of the response header.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "responseHeaderConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ResponseHeaderConfigProperty\"}]}}", isOptional: true)]
public object? ResponseHeaderConfig
{
get => _responseHeaderConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IResponseHeaderConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IResponseHeaderConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_responseHeaderConfig = value;
}
}
private object? _responseStatusCodeConfig;
/// <remarks>
/// <strong>Property</strong>: responseStatusCodeConfig: The configuration of the response status code.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "responseStatusCodeConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.ResponseStatusCodeConfigProperty\"}]}}", isOptional: true)]
public object? ResponseStatusCodeConfig
{
get => _responseStatusCodeConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IResponseStatusCodeConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IResponseStatusCodeConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_responseStatusCodeConfig = value;
}
}
private object? _sourceIpConfig;
/// <remarks>
/// <strong>Property</strong>: sourceIpConfig: Service traffic matching based on source IP. Required and valid when Type is SourceIP.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "sourceIpConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.SourceIpConfigProperty\"}]}}", isOptional: true)]
public object? SourceIpConfig
{
get => _sourceIpConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ISourceIpConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ISourceIpConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_sourceIpConfig = value;
}
}
}
[JsiiInterface(nativeType: typeof(IServerGroupStickySessionProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ServerGroupStickySessionProperty")]
public interface IServerGroupStickySessionProperty
{
/// <remarks>
/// <strong>Property</strong>: enabled: Specifies whether to enable session persistence. Valid values:
/// true: enables session persistence.
/// false (default): disables session persistence.
/// </remarks>
[JsiiProperty(name: "enabled", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"boolean\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Enabled
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: timeout: The timeout period. Unit: seconds. Default value: 1000.
/// </remarks>
[JsiiProperty(name: "timeout", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Timeout
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IServerGroupStickySessionProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ServerGroupStickySessionProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IServerGroupStickySessionProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: enabled: Specifies whether to enable session persistence. Valid values:
/// true: enables session persistence.
/// false (default): disables session persistence.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "enabled", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"boolean\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Enabled
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: timeout: The timeout period. Unit: seconds. Default value: 1000.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "timeout", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Timeout
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.ServerGroupStickySessionProperty")]
public class ServerGroupStickySessionProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IServerGroupStickySessionProperty
{
private object? _enabled;
/// <remarks>
/// <strong>Property</strong>: enabled: Specifies whether to enable session persistence. Valid values:
/// true: enables session persistence.
/// false (default): disables session persistence.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "enabled", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"boolean\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Enabled
{
get => _enabled;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case bool cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: bool, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_enabled = value;
}
}
private object? _timeout;
/// <remarks>
/// <strong>Property</strong>: timeout: The timeout period. Unit: seconds. Default value: 1000.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "timeout", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Timeout
{
get => _timeout;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case double cast_cd4240:
break;
case byte cast_cd4240:
break;
case decimal cast_cd4240:
break;
case float cast_cd4240:
break;
case int cast_cd4240:
break;
case long cast_cd4240:
break;
case sbyte cast_cd4240:
break;
case short cast_cd4240:
break;
case uint cast_cd4240:
break;
case ulong cast_cd4240:
break;
case ushort cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: double, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_timeout = value;
}
}
}
[JsiiInterface(nativeType: typeof(IServerGroupTuplesProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ServerGroupTuplesProperty")]
public interface IServerGroupTuplesProperty
{
/// <remarks>
/// <strong>Property</strong>: serverGroupId: The server group to which requests are forwarded.
/// </remarks>
[JsiiProperty(name: "serverGroupId", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? ServerGroupId
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: weight: The weight of the server group. A larger value specifies a higher weight. A server group with a higher weight receives more requests. Default value: 100.
/// </remarks>
[JsiiProperty(name: "weight", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Weight
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IServerGroupTuplesProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ServerGroupTuplesProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IServerGroupTuplesProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: serverGroupId: The server group to which requests are forwarded.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "serverGroupId", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? ServerGroupId
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: weight: The weight of the server group. A larger value specifies a higher weight. A server group with a higher weight receives more requests. Default value: 100.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "weight", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Weight
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.ServerGroupTuplesProperty")]
public class ServerGroupTuplesProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IServerGroupTuplesProperty
{
private object? _serverGroupId;
/// <remarks>
/// <strong>Property</strong>: serverGroupId: The server group to which requests are forwarded.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "serverGroupId", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? ServerGroupId
{
get => _serverGroupId;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_serverGroupId = value;
}
}
private object? _weight;
/// <remarks>
/// <strong>Property</strong>: weight: The weight of the server group. A larger value specifies a higher weight. A server group with a higher weight receives more requests. Default value: 100.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "weight", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Weight
{
get => _weight;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case double cast_cd4240:
break;
case byte cast_cd4240:
break;
case decimal cast_cd4240:
break;
case float cast_cd4240:
break;
case int cast_cd4240:
break;
case long cast_cd4240:
break;
case sbyte cast_cd4240:
break;
case short cast_cd4240:
break;
case uint cast_cd4240:
break;
case ulong cast_cd4240:
break;
case ushort cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: double, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_weight = value;
}
}
}
[JsiiInterface(nativeType: typeof(ISourceIpConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.SourceIpConfigProperty")]
public interface ISourceIpConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: values: The IP addresses or CIDR blocks.
/// You can specify at most five values for SourceIp.
/// </remarks>
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Values
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(ISourceIpConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.SourceIpConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ISourceIpConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: values: The IP addresses or CIDR blocks.
/// You can specify at most five values for SourceIp.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.SourceIpConfigProperty")]
public class SourceIpConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ISourceIpConfigProperty
{
private object? _values;
/// <remarks>
/// <strong>Property</strong>: values: The IP addresses or CIDR blocks.
/// You can specify at most five values for SourceIp.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "values", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"collection\":{\"elementtype\":{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}},\"kind\":\"array\"}}]}}", isOptional: true)]
public object? Values
{
get => _values;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case object[] cast_cd4240:
for (var __idx_f64a5c = 0 ; __idx_f64a5c < cast_cd4240.Length ; __idx_f64a5c++)
{
switch (cast_cd4240[__idx_f64a5c])
{
case string cast_201718:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_201718:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_201718:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)}[{__idx_f64a5c}] to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {cast_cd4240[__idx_f64a5c].GetType().FullName}", nameof(value));
}
}
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, object[]; received {value.GetType().FullName}", nameof(value));
}
}
_values = value;
}
}
}
[JsiiInterface(nativeType: typeof(ITrafficLimitConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.TrafficLimitConfigProperty")]
public interface ITrafficLimitConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: qps: Queries per second (QPS).
/// </remarks>
[JsiiProperty(name: "qps", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
object Qps
{
get;
}
/// <remarks>
/// <strong>Property</strong>: perIpQps: QPS per IP address.
/// Note If both QPS and PerIpQps are set, make sure that the PerIpQps is smaller than the QPS.
/// </remarks>
[JsiiProperty(name: "perIpQps", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? PerIpQps
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(ITrafficLimitConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.TrafficLimitConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ITrafficLimitConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: qps: Queries per second (QPS).
/// </remarks>
[JsiiProperty(name: "qps", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object Qps
{
get => GetInstanceProperty<object>()!;
}
/// <remarks>
/// <strong>Property</strong>: perIpQps: QPS per IP address.
/// Note If both QPS and PerIpQps are set, make sure that the PerIpQps is smaller than the QPS.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "perIpQps", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? PerIpQps
{
get => GetInstanceProperty<object?>();
}
}
}
#pragma warning disable CS8618
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.TrafficLimitConfigProperty")]
public class TrafficLimitConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ITrafficLimitConfigProperty
{
private object _qps;
/// <remarks>
/// <strong>Property</strong>: qps: Queries per second (QPS).
/// </remarks>
[JsiiProperty(name: "qps", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object Qps
{
get => _qps;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case double cast_cd4240:
break;
case byte cast_cd4240:
break;
case decimal cast_cd4240:
break;
case float cast_cd4240:
break;
case int cast_cd4240:
break;
case long cast_cd4240:
break;
case sbyte cast_cd4240:
break;
case short cast_cd4240:
break;
case uint cast_cd4240:
break;
case ulong cast_cd4240:
break;
case ushort cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: double, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: double, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_qps = value;
}
}
private object? _perIpQps;
/// <remarks>
/// <strong>Property</strong>: perIpQps: QPS per IP address.
/// Note If both QPS and PerIpQps are set, make sure that the PerIpQps is smaller than the QPS.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "perIpQps", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"number\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? PerIpQps
{
get => _perIpQps;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case double cast_cd4240:
break;
case byte cast_cd4240:
break;
case decimal cast_cd4240:
break;
case float cast_cd4240:
break;
case int cast_cd4240:
break;
case long cast_cd4240:
break;
case sbyte cast_cd4240:
break;
case short cast_cd4240:
break;
case uint cast_cd4240:
break;
case ulong cast_cd4240:
break;
case ushort cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: double, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_perIpQps = value;
}
}
}
[JsiiInterface(nativeType: typeof(ITrafficMirrorConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.TrafficMirrorConfigProperty")]
public interface ITrafficMirrorConfigProperty
{
/// <remarks>
/// <strong>Property</strong>: mirrorGroupConfig: Traffic mirroring to server groups.
/// </remarks>
[JsiiProperty(name: "mirrorGroupConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigProperty\"}]}}")]
object MirrorGroupConfig
{
get;
}
/// <remarks>
/// <strong>Property</strong>: targetType: The type of destination to which network traffic is mirrored. Valid values:
/// ForwardGroupMirror: a server group
/// SlsMirror: Log Service
/// </remarks>
[JsiiProperty(name: "targetType", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
object TargetType
{
get;
}
[JsiiTypeProxy(nativeType: typeof(ITrafficMirrorConfigProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.TrafficMirrorConfigProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ITrafficMirrorConfigProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: mirrorGroupConfig: Traffic mirroring to server groups.
/// </remarks>
[JsiiProperty(name: "mirrorGroupConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigProperty\"}]}}")]
public object MirrorGroupConfig
{
get => GetInstanceProperty<object>()!;
}
/// <remarks>
/// <strong>Property</strong>: targetType: The type of destination to which network traffic is mirrored. Valid values:
/// ForwardGroupMirror: a server group
/// SlsMirror: Log Service
/// </remarks>
[JsiiProperty(name: "targetType", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object TargetType
{
get => GetInstanceProperty<object>()!;
}
}
}
#pragma warning disable CS8618
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.TrafficMirrorConfigProperty")]
public class TrafficMirrorConfigProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.ITrafficMirrorConfigProperty
{
private object _mirrorGroupConfig;
/// <remarks>
/// <strong>Property</strong>: mirrorGroupConfig: Traffic mirroring to server groups.
/// </remarks>
[JsiiProperty(name: "mirrorGroupConfig", typeJson: "{\"union\":{\"types\":[{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"},{\"fqn\":\"@alicloud/ros-cdk-alb.RosRule.MirrorGroupConfigProperty\"}]}}")]
public object MirrorGroupConfig
{
get => _mirrorGroupConfig;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMirrorGroupConfigProperty cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMirrorGroupConfigProperty).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}, {typeof(AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IMirrorGroupConfigProperty).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_mirrorGroupConfig = value;
}
}
private object _targetType;
/// <remarks>
/// <strong>Property</strong>: targetType: The type of destination to which network traffic is mirrored. Valid values:
/// ForwardGroupMirror: a server group
/// SlsMirror: Log Service
/// </remarks>
[JsiiProperty(name: "targetType", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}")]
public object TargetType
{
get => _targetType;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received null", nameof(value));
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_targetType = value;
}
}
}
[JsiiInterface(nativeType: typeof(IValuesProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ValuesProperty")]
public interface IValuesProperty
{
/// <remarks>
/// <strong>Property</strong>: key: The key of the cookie.
/// The key must be 1 to 100 characters in length
/// It can contain asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters.
/// It cannot contain space characters or the following special characters: ; # [ ] { } \ | < > &.
/// </remarks>
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Key
{
get
{
return null;
}
}
/// <remarks>
/// <strong>Property</strong>: value: The value of the cookie.
/// The key must be 1 to 100 characters in length.
/// It can contain asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters.
/// It cannot contain space characters or the following special characters: ; # [ ] { } \ | < > &.
/// </remarks>
[JsiiProperty(name: "value", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
[Amazon.JSII.Runtime.Deputy.JsiiOptional]
object? Value
{
get
{
return null;
}
}
[JsiiTypeProxy(nativeType: typeof(IValuesProperty), fullyQualifiedName: "@alicloud/ros-cdk-alb.RosRule.ValuesProperty")]
internal sealed class _Proxy : DeputyBase, AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IValuesProperty
{
private _Proxy(ByRefValue reference): base(reference)
{
}
/// <remarks>
/// <strong>Property</strong>: key: The key of the cookie.
/// The key must be 1 to 100 characters in length
/// It can contain asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters.
/// It cannot contain space characters or the following special characters: ; # [ ] { } \ | < > &.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => GetInstanceProperty<object?>();
}
/// <remarks>
/// <strong>Property</strong>: value: The value of the cookie.
/// The key must be 1 to 100 characters in length.
/// It can contain asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters.
/// It cannot contain space characters or the following special characters: ; # [ ] { } \ | < > &.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "value", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Value
{
get => GetInstanceProperty<object?>();
}
}
}
[JsiiByValue(fqn: "@alicloud/ros-cdk-alb.RosRule.ValuesProperty")]
public class ValuesProperty : AlibabaCloud.SDK.ROS.CDK.Alb.RosRule.IValuesProperty
{
private object? _key;
/// <remarks>
/// <strong>Property</strong>: key: The key of the cookie.
/// The key must be 1 to 100 characters in length
/// It can contain asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters.
/// It cannot contain space characters or the following special characters: ; # [ ] { } \ | < > &.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "key", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Key
{
get => _key;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_key = value;
}
}
private object? _value;
/// <remarks>
/// <strong>Property</strong>: value: The value of the cookie.
/// The key must be 1 to 100 characters in length.
/// It can contain asterisks (*), question marks (?), and other printable characters. It cannot contain uppercase letters.
/// It cannot contain space characters or the following special characters: ; # [ ] { } \ | < > &.
/// </remarks>
[JsiiOptional]
[JsiiProperty(name: "value", typeJson: "{\"union\":{\"types\":[{\"primitive\":\"string\"},{\"fqn\":\"@alicloud/ros-cdk-core.IResolvable\"}]}}", isOptional: true)]
public object? Value
{
get => _value;
set
{
if (Amazon.JSII.Runtime.Configuration.RuntimeTypeChecking)
{
switch (value)
{
case string cast_cd4240:
break;
case AlibabaCloud.SDK.ROS.CDK.Core.IResolvable cast_cd4240:
break;
case Amazon.JSII.Runtime.Deputy.AnonymousObject cast_cd4240:
// Not enough information to type-check...
break;
case null:
break;
default:
throw new System.ArgumentException($"Expected {nameof(value)} to be one of: string, {typeof(AlibabaCloud.SDK.ROS.CDK.Core.IResolvable).FullName}; received {value.GetType().FullName}", nameof(value));
}
}
_value = value;
}
}
}
}
}