import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class ForwardConfig { TargetGroupStickinessConfig ? : TargetGroupStickinessConfig ; TargetGroups ? : List < TargetGroupTuple > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AuthenticateOidcConfig { OnUnauthenticatedRequest ? : Value < string > ; TokenEndpoint ! : Value < string > ; SessionTimeout ? : Value < string > ; Scope ? : Value < string > ; Issuer ! : Value < string > ; ClientSecret ! : Value < string > ; UserInfoEndpoint ! : Value < string > ; ClientId ! : Value < string > ; AuthorizationEndpoint ! : Value < string > ; SessionCookieName ? : Value < string > ; AuthenticationRequestExtraParams ? : { [ key ] : Value < string > ; } ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Certificate { CertificateArn ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TargetGroupStickinessConfig { Enabled ? : Value < boolean > ; DurationSeconds ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AuthenticateCognitoConfig { OnUnauthenticatedRequest ? : Value < string > ; UserPoolClientId ! : Value < string > ; UserPoolDomain ! : Value < string > ; SessionTimeout ? : Value < string > ; Scope ? : Value < string > ; SessionCookieName ? : Value < string > ; UserPoolArn ! : Value < string > ; AuthenticationRequestExtraParams ? : { [ key ] : Value < string > ; } ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Action { Order ? : Value < number > ; TargetGroupArn ? : Value < string > ; FixedResponseConfig ? : FixedResponseConfig ; AuthenticateCognitoConfig ? : AuthenticateCognitoConfig ; Type ! : Value < string > ; RedirectConfig ? : RedirectConfig ; ForwardConfig ? : ForwardConfig ; AuthenticateOidcConfig ? : AuthenticateOidcConfig ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RedirectConfig { Path ? : Value < string > ; Query ? : Value < string > ; Port ? : Value < string > ; Host ? : Value < string > ; Protocol ? : Value < string > ; StatusCode ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class FixedResponseConfig { ContentType ? : Value < string > ; StatusCode ! : Value < string > ; MessageBody ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TargetGroupTuple { TargetGroupArn ? : Value < string > ; Weight ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ListenerProperties { SslPolicy ? : Value < string > ; LoadBalancerArn : Value < string > ; DefaultActions : List < Action > ; Port ? : Value < number > ; Certificates ? : List < Certificate > ; Protocol ? : Value < string > ; AlpnPolicy ? : List < Value < string > > ; } export default class Listener extends ResourceBase < ListenerProperties > { static ForwardConfig = ForwardConfig ; static AuthenticateOidcConfig = AuthenticateOidcConfig ; static Certificate = Certificate ; static TargetGroupStickinessConfig = TargetGroupStickinessConfig ; static AuthenticateCognitoConfig = AuthenticateCognitoConfig ; static Action = Action ; static RedirectConfig = RedirectConfig ; static FixedResponseConfig = FixedResponseConfig ; static TargetGroupTuple = TargetGroupTuple ; constructor ( properties ) { super ( 'AWS::ElasticLoadBalancingV2::Listener' , properties ) ; } }