class Aws::ElasticLoadBalancingV2::Types::CreateListenerInput

@note When making an API call, you may pass CreateListenerInput

data as a hash:

    {
      load_balancer_arn: "LoadBalancerArn", # required
      protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
      port: 1,
      ssl_policy: "SslPolicyName",
      certificates: [
        {
          certificate_arn: "CertificateArn",
          is_default: false,
        },
      ],
      default_actions: [ # required
        {
          type: "forward", # required, accepts forward, authenticate-oidc, authenticate-cognito, redirect, fixed-response
          target_group_arn: "TargetGroupArn",
          authenticate_oidc_config: {
            issuer: "AuthenticateOidcActionIssuer", # required
            authorization_endpoint: "AuthenticateOidcActionAuthorizationEndpoint", # required
            token_endpoint: "AuthenticateOidcActionTokenEndpoint", # required
            user_info_endpoint: "AuthenticateOidcActionUserInfoEndpoint", # required
            client_id: "AuthenticateOidcActionClientId", # required
            client_secret: "AuthenticateOidcActionClientSecret",
            session_cookie_name: "AuthenticateOidcActionSessionCookieName",
            scope: "AuthenticateOidcActionScope",
            session_timeout: 1,
            authentication_request_extra_params: {
              "AuthenticateOidcActionAuthenticationRequestParamName" => "AuthenticateOidcActionAuthenticationRequestParamValue",
            },
            on_unauthenticated_request: "deny", # accepts deny, allow, authenticate
            use_existing_client_secret: false,
          },
          authenticate_cognito_config: {
            user_pool_arn: "AuthenticateCognitoActionUserPoolArn", # required
            user_pool_client_id: "AuthenticateCognitoActionUserPoolClientId", # required
            user_pool_domain: "AuthenticateCognitoActionUserPoolDomain", # required
            session_cookie_name: "AuthenticateCognitoActionSessionCookieName",
            scope: "AuthenticateCognitoActionScope",
            session_timeout: 1,
            authentication_request_extra_params: {
              "AuthenticateCognitoActionAuthenticationRequestParamName" => "AuthenticateCognitoActionAuthenticationRequestParamValue",
            },
            on_unauthenticated_request: "deny", # accepts deny, allow, authenticate
          },
          order: 1,
          redirect_config: {
            protocol: "RedirectActionProtocol",
            port: "RedirectActionPort",
            host: "RedirectActionHost",
            path: "RedirectActionPath",
            query: "RedirectActionQuery",
            status_code: "HTTP_301", # required, accepts HTTP_301, HTTP_302
          },
          fixed_response_config: {
            message_body: "FixedResponseActionMessage",
            status_code: "FixedResponseActionStatusCode", # required
            content_type: "FixedResponseActionContentType",
          },
          forward_config: {
            target_groups: [
              {
                target_group_arn: "TargetGroupArn",
                weight: 1,
              },
            ],
            target_group_stickiness_config: {
              enabled: false,
              duration_seconds: 1,
            },
          },
        },
      ],
      alpn_policy: ["AlpnPolicyValue"],
      tags: [
        {
          key: "TagKey", # required
          value: "TagValue",
        },
      ],
    }

@!attribute [rw] load_balancer_arn

The Amazon Resource Name (ARN) of the load balancer.
@return [String]

@!attribute [rw] protocol

The protocol for connections from clients to the load balancer. For
Application Load Balancers, the supported protocols are HTTP and
HTTPS. For Network Load Balancers, the supported protocols are TCP,
TLS, UDP, and TCP\_UDP. You can’t specify the UDP or TCP\_UDP
protocol if dual-stack mode is enabled. You cannot specify a
protocol for a Gateway Load Balancer.
@return [String]

@!attribute [rw] port

The port on which the load balancer is listening. You cannot specify
a port for a Gateway Load Balancer.
@return [Integer]

@!attribute [rw] ssl_policy

\[HTTPS and TLS listeners\] The security policy that defines which
protocols and ciphers are supported.

For more information, see [Security policies][1] in the *Application
Load Balancers Guide* and [Security policies][2] in the *Network
Load Balancers Guide*.

[1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies
[2]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies
@return [String]

@!attribute [rw] certificates

\[HTTPS and TLS listeners\] The default certificate for the
listener. You must provide exactly one certificate. Set
`CertificateArn` to the certificate ARN but do not set `IsDefault`.
@return [Array<Types::Certificate>]

@!attribute [rw] default_actions

The actions for the default rule.
@return [Array<Types::Action>]

@!attribute [rw] alpn_policy

\[TLS listeners\] The name of the Application-Layer Protocol
Negotiation (ALPN) policy. You can specify one policy name. The
following are the possible values:

* `HTTP1Only`

* `HTTP2Only`

* `HTTP2Optional`

* `HTTP2Preferred`

* `None`

For more information, see [ALPN policies][1] in the *Network Load
Balancers Guide*.

[1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies
@return [Array<String>]

@!attribute [rw] tags

The tags to assign to the listener.
@return [Array<Types::Tag>]

@see docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateListenerInput AWS API Documentation

Constants

SENSITIVE