Class StatefulEngineOptions

java.lang.Object
software.amazon.awssdk.services.fms.model.StatefulEngineOptions
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<StatefulEngineOptions.Builder,StatefulEngineOptions>

@Generated("software.amazon.awssdk:codegen") public final class StatefulEngineOptions extends Object implements SdkPojo, Serializable, ToCopyableBuilder<StatefulEngineOptions.Builder,StatefulEngineOptions>

Configuration settings for the handling of the stateful rule groups in a Network Firewall firewall policy.

See Also:
  • Method Details

    • ruleOrder

      public final RuleOrder ruleOrder()

      Indicates how to manage the order of stateful rule evaluation for the policy. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings. For more information, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

      Default: DEFAULT_ACTION_ORDER

      If the service returns an enum value that is not available in the current SDK version, ruleOrder will return RuleOrder.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from ruleOrderAsString().

      Returns:
      Indicates how to manage the order of stateful rule evaluation for the policy. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings. For more information, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

      Default: DEFAULT_ACTION_ORDER

      See Also:
    • ruleOrderAsString

      public final String ruleOrderAsString()

      Indicates how to manage the order of stateful rule evaluation for the policy. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings. For more information, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

      Default: DEFAULT_ACTION_ORDER

      If the service returns an enum value that is not available in the current SDK version, ruleOrder will return RuleOrder.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from ruleOrderAsString().

      Returns:
      Indicates how to manage the order of stateful rule evaluation for the policy. Stateful rules are provided to the rule engine as Suricata compatible strings, and Suricata evaluates them based on certain settings. For more information, see Evaluation order for stateful rules in the Network Firewall Developer Guide.

      Default: DEFAULT_ACTION_ORDER

      See Also:
    • streamExceptionPolicy

      public final StreamExceptionPolicy streamExceptionPolicy()

      Indicates how Network Firewall should handle traffic when a network connection breaks midstream.

      • DROP - Fail closed and drop all subsequent traffic going to the firewall.

      • CONTINUE - Continue to apply rules to subsequent traffic without context from traffic before the break. This impacts the behavior of rules that depend on context. For example, with a stateful rule that drops HTTP traffic, Network Firewall won't match subsequent traffic because the it won't have the context from session initialization, which defines the application layer protocol as HTTP. However, a TCP-layer rule using a flow:stateless rule would still match, and so would the aws:drop_strict default action.

      • REJECT - Fail closed and drop all subsequent traffic going to the firewall. With this option, Network Firewall also sends a TCP reject packet back to the client so the client can immediately establish a new session. With the new session, Network Firewall will have context and will apply rules appropriately.

        For applications that are reliant on long-lived TCP connections that trigger Gateway Load Balancer idle timeouts, this is the recommended setting.

      • FMS_IGNORE - Firewall Manager doesn't monitor or modify the Network Firewall stream exception policy settings.

      For more information, see Stream exception policy in your firewall policy in the Network Firewall Developer Guide.

      Default: FMS_IGNORE

      If the service returns an enum value that is not available in the current SDK version, streamExceptionPolicy will return StreamExceptionPolicy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from streamExceptionPolicyAsString().

      Returns:
      Indicates how Network Firewall should handle traffic when a network connection breaks midstream.

      • DROP - Fail closed and drop all subsequent traffic going to the firewall.

      • CONTINUE - Continue to apply rules to subsequent traffic without context from traffic before the break. This impacts the behavior of rules that depend on context. For example, with a stateful rule that drops HTTP traffic, Network Firewall won't match subsequent traffic because the it won't have the context from session initialization, which defines the application layer protocol as HTTP. However, a TCP-layer rule using a flow:stateless rule would still match, and so would the aws:drop_strict default action.

      • REJECT - Fail closed and drop all subsequent traffic going to the firewall. With this option, Network Firewall also sends a TCP reject packet back to the client so the client can immediately establish a new session. With the new session, Network Firewall will have context and will apply rules appropriately.

        For applications that are reliant on long-lived TCP connections that trigger Gateway Load Balancer idle timeouts, this is the recommended setting.

      • FMS_IGNORE - Firewall Manager doesn't monitor or modify the Network Firewall stream exception policy settings.

      For more information, see Stream exception policy in your firewall policy in the Network Firewall Developer Guide.

      Default: FMS_IGNORE

      See Also:
    • streamExceptionPolicyAsString

      public final String streamExceptionPolicyAsString()

      Indicates how Network Firewall should handle traffic when a network connection breaks midstream.

      • DROP - Fail closed and drop all subsequent traffic going to the firewall.

      • CONTINUE - Continue to apply rules to subsequent traffic without context from traffic before the break. This impacts the behavior of rules that depend on context. For example, with a stateful rule that drops HTTP traffic, Network Firewall won't match subsequent traffic because the it won't have the context from session initialization, which defines the application layer protocol as HTTP. However, a TCP-layer rule using a flow:stateless rule would still match, and so would the aws:drop_strict default action.

      • REJECT - Fail closed and drop all subsequent traffic going to the firewall. With this option, Network Firewall also sends a TCP reject packet back to the client so the client can immediately establish a new session. With the new session, Network Firewall will have context and will apply rules appropriately.

        For applications that are reliant on long-lived TCP connections that trigger Gateway Load Balancer idle timeouts, this is the recommended setting.

      • FMS_IGNORE - Firewall Manager doesn't monitor or modify the Network Firewall stream exception policy settings.

      For more information, see Stream exception policy in your firewall policy in the Network Firewall Developer Guide.

      Default: FMS_IGNORE

      If the service returns an enum value that is not available in the current SDK version, streamExceptionPolicy will return StreamExceptionPolicy.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from streamExceptionPolicyAsString().

      Returns:
      Indicates how Network Firewall should handle traffic when a network connection breaks midstream.

      • DROP - Fail closed and drop all subsequent traffic going to the firewall.

      • CONTINUE - Continue to apply rules to subsequent traffic without context from traffic before the break. This impacts the behavior of rules that depend on context. For example, with a stateful rule that drops HTTP traffic, Network Firewall won't match subsequent traffic because the it won't have the context from session initialization, which defines the application layer protocol as HTTP. However, a TCP-layer rule using a flow:stateless rule would still match, and so would the aws:drop_strict default action.

      • REJECT - Fail closed and drop all subsequent traffic going to the firewall. With this option, Network Firewall also sends a TCP reject packet back to the client so the client can immediately establish a new session. With the new session, Network Firewall will have context and will apply rules appropriately.

        For applications that are reliant on long-lived TCP connections that trigger Gateway Load Balancer idle timeouts, this is the recommended setting.

      • FMS_IGNORE - Firewall Manager doesn't monitor or modify the Network Firewall stream exception policy settings.

      For more information, see Stream exception policy in your firewall policy in the Network Firewall Developer Guide.

      Default: FMS_IGNORE

      See Also:
    • toBuilder

      public StatefulEngineOptions.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<StatefulEngineOptions.Builder,StatefulEngineOptions>
      Returns:
      a builder for type T
    • builder

      public static StatefulEngineOptions.Builder builder()
    • serializableBuilderClass

      public static Class<? extends StatefulEngineOptions.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.