elbv2

package
v0.0.0-...-ba4152c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CapacityUnits string = "CapacityUnits"
)

Unit for setting the capacity on load balancer

View Source
const OFF = "off"
View Source
const ON = "on"
View Source
const SourceNatIpv6PrefixAutoAssigned = "auto_assigned"

Variables

This section is empty.

Functions

This section is empty.

Types

type ALPNPolicy

type ALPNPolicy string

ALPNPolicy ALPN policy configuration for TLS listeners forwarding to TLS target groups

const (
	ALPNPolicyNone           ALPNPolicy = "None"
	ALPNPolicyHTTP1Only      ALPNPolicy = "HTTP1Only"
	ALPNPolicyHTTP2Only      ALPNPolicy = "HTTP2Only"
	ALPNPolicyHTTP2Optional  ALPNPolicy = "HTTP2Optional"
	ALPNPolicyHTTP2Preferred ALPNPolicy = "HTTP2Preferred"
)

Supported ALPN policies

type Action

type Action struct {
	// The type of action.
	Type ActionType `json:"type"`

	// Information for using Amazon Cognito to authenticate users.
	// +optional
	AuthenticateCognitoConfig *AuthenticateCognitoActionConfig `json:"authenticateCognitoConfig,omitempty"`

	// Information about an identity provider that is compliant with OpenID Connect (OIDC).
	// +optional
	AuthenticateOIDCConfig *AuthenticateOIDCActionConfig `json:"authenticateOIDCConfig,omitempty"`

	// [Application Load Balancer] Information for creating an action that returns a custom HTTP response.
	// +optional
	FixedResponseConfig *FixedResponseActionConfig `json:"fixedResponseConfig,omitempty"`

	// [Application Load Balancer] Information for creating a redirect action.
	// +optional
	RedirectConfig *RedirectActionConfig `json:"redirectConfig,omitempty"`

	// Information for creating an action that distributes requests among one or more target groups.
	// +optional
	ForwardConfig *ForwardActionConfig `json:"forwardConfig,omitempty"`
}

Information about an action.

type ActionType

type ActionType string

The type of action.

const (
	ActionTypeAuthenticateCognito ActionType = "authenticate-cognito"
	ActionTypeAuthenticateOIDC    ActionType = "authenticate-oidc"
	ActionTypeFixedResponse       ActionType = "fixed-response"
	ActionTypeForward             ActionType = "forward"
	ActionTypeRedirect            ActionType = "redirect"
)

type AuthenticateCognitoActionConditionalBehavior

type AuthenticateCognitoActionConditionalBehavior string
const (
	AuthenticateCognitoActionConditionalBehaviorDeny         AuthenticateCognitoActionConditionalBehavior = "deny"
	AuthenticateCognitoActionConditionalBehaviorAllow        AuthenticateCognitoActionConditionalBehavior = "allow"
	AuthenticateCognitoActionConditionalBehaviorAuthenticate AuthenticateCognitoActionConditionalBehavior = "authenticate"
)

type AuthenticateCognitoActionConfig

type AuthenticateCognitoActionConfig struct {
	// The query parameters (up to 10) to include in the redirect request to the authorization endpoint.
	// +optional
	AuthenticationRequestExtraParams map[string]string `json:"authenticationRequestExtraParams,omitempty"`

	// The behavior if the user is not authenticated.
	// +optional
	OnUnauthenticatedRequest AuthenticateCognitoActionConditionalBehavior `json:"onUnauthenticatedRequest,omitempty"`

	// The set of user claims to be requested from the IdP.
	// +optional
	Scope *string `json:"scope,omitempty"`

	// The name of the cookie used to maintain session information.
	// +optional
	SessionCookieName *string `json:"sessionCookieName,omitempty"`

	// The maximum duration of the authentication session in seconds.
	// +optional
	SessionTimeout *int64 `json:"sessionTimeout,omitempty"`

	// The Amazon Resource Name (ARN) of the Amazon Cognito user pool.
	UserPoolARN string `json:"userPoolARN"`

	// The ID of the Amazon Cognito user pool client.
	UserPoolClientID string `json:"userPoolClientID"`

	// The domain prefix or fully-qualified domain name of the Amazon Cognito user pool.
	UserPoolDomain string `json:"userPoolDomain"`
}

Request parameters to use when integrating with Amazon Cognito to authenticate users.

type AuthenticateOIDCActionConditionalBehavior

type AuthenticateOIDCActionConditionalBehavior string
const (
	AuthenticateOIDCActionConditionalBehaviorDeny         AuthenticateOIDCActionConditionalBehavior = "deny"
	AuthenticateOIDCActionConditionalBehaviorAllow        AuthenticateOIDCActionConditionalBehavior = "allow"
	AuthenticateOIDCActionConditionalBehaviorAuthenticate AuthenticateOIDCActionConditionalBehavior = "authenticate"
)

type AuthenticateOIDCActionConfig

type AuthenticateOIDCActionConfig struct {
	// The query parameters (up to 10) to include in the redirect request to the authorization endpoint.
	// +optional
	AuthenticationRequestExtraParams map[string]string `json:"authenticationRequestExtraParams,omitempty"`

	// The behavior if the user is not authenticated.
	// +optional
	OnUnauthenticatedRequest AuthenticateOIDCActionConditionalBehavior `json:"onUnauthenticatedRequest,omitempty"`

	// The set of user claims to be requested from the IdP.
	// +optional
	Scope *string `json:"scope,omitempty"`

	// The name of the cookie used to maintain session information.
	// +optional
	SessionCookieName *string `json:"sessionCookieName,omitempty"`

	// The maximum duration of the authentication session in seconds.
	// +optional
	SessionTimeout *int64 `json:"sessionTimeout,omitempty"`

	// The OIDC issuer identifier of the IdP.
	Issuer string `json:"issuer"`

	// The authorization endpoint of the IdP.
	AuthorizationEndpoint string `json:"authorizationEndpoint"`

	// The token endpoint of the IdP.
	TokenEndpoint string `json:"tokenEndpoint"`

	// The user info endpoint of the IdP.
	UserInfoEndpoint string `json:"userInfoEndpoint"`

	// The OAuth 2.0 client identifier.
	ClientID string `json:"clientID"`

	// The OAuth 2.0 client secret.
	ClientSecret string `json:"clientSecret"`
}

Request parameters when using an identity provider (IdP) that is compliant with OpenID Connect (OIDC) to authenticate users.

func (AuthenticateOIDCActionConfig) MarshalJSON

func (cfg AuthenticateOIDCActionConfig) MarshalJSON() ([]byte, error)

type Certificate

type Certificate struct {
	// The Amazon Resource Name (ARN) of the certificate.
	// +optional
	CertificateARN *string `json:"certificateARN,omitempty"`
}

Information about an SSL server certificate.

type EnablePrefixForIpv6SourceNat

type EnablePrefixForIpv6SourceNat string
const (
	EnablePrefixForIpv6SourceNatOn  EnablePrefixForIpv6SourceNat = ON
	EnablePrefixForIpv6SourceNatOff EnablePrefixForIpv6SourceNat = OFF
)

type FixedResponseActionConfig

type FixedResponseActionConfig struct {
	// The content type.
	// +optional
	ContentType *string `json:"contentType,omitempty"`

	// The message.
	// +optional
	MessageBody *string `json:"messageBody,omitempty"`

	// The HTTP response code.
	// +optional
	StatusCode string `json:"statusCode"`
}

Information about an action that returns a custom HTTP response.

type ForwardActionConfig

type ForwardActionConfig struct {
	// One or more target groups.
	// [Network Load Balancers] you can specify a single target group.
	TargetGroups []TargetGroupTuple `json:"targetGroups"`

	// The target group stickiness for the rule.
	// +optional
	TargetGroupStickinessConfig *TargetGroupStickinessConfig `json:"targetGroupStickinessConfig,omitempty"`
}

Information about a forward action.

type HTTPHeaderConditionConfig

type HTTPHeaderConditionConfig struct {
	// The name of the HTTP header field.
	HTTPHeaderName string `json:"httpHeaderName"`
	// One or more strings to compare against the value of the HTTP header.
	Values []string `json:"values"`
}

Information for an HTTP header condition.

type HTTPRequestMethodConditionConfig

type HTTPRequestMethodConditionConfig struct {
	// The name of the request method.
	Values []string `json:"values"`
}

Information for an HTTP method condition.

type HealthCheckMatcher

type HealthCheckMatcher struct {
	// The HTTP codes.
	HTTPCode *string `json:"httpCode,omitempty"`

	// The gRPC codes
	GRPCCode *string `json:"grpcCode,omitempty"`
}

Information to use when checking for a successful response from a target.

type HostHeaderConditionConfig

type HostHeaderConditionConfig struct {
	// One or more host names.
	Values []string `json:"values"`
}

Information for a host header condition.

type IPAddressType

type IPAddressType string
const (
	IPAddressTypeIPV4                       IPAddressType = "ipv4"
	IPAddressTypeDualStack                  IPAddressType = "dualstack"
	IPAddressTypeDualStackWithoutPublicIPV4 IPAddressType = "dualstack-without-public-ipv4"
)

type Listener

type Listener struct {
	core.ResourceMeta `json:"-"`

	// desired state of LoadBalancer
	Spec ListenerSpec `json:"spec"`

	// observed state of LoadBalancer
	// +optional
	Status *ListenerStatus `json:"status,omitempty"`
}

Listener represents a ELBV2 Listener

func NewListener

func NewListener(stack core.Stack, id string, spec ListenerSpec) *Listener

NewListener constructs new Listener resource.

func (*Listener) ListenerARN

func (ls *Listener) ListenerARN() core.StringToken

ListenerARN returns The Amazon Resource Name (ARN) of the Listener

func (*Listener) SetStatus

func (ls *Listener) SetStatus(status ListenerStatus)

SetStatus sets the Listener's status

type ListenerAttribute

type ListenerAttribute struct {
	Key   string `type:"string"`
	Value string `type:"string"`
}

type ListenerRule

type ListenerRule struct {
	core.ResourceMeta `json:"-"`

	// desired state of ListenerRule
	Spec ListenerRuleSpec `json:"spec"`

	// observed state of ListenerRule
	// +optional
	Status *ListenerRuleStatus `json:"status,omitempty"`
}

ListenerRule represents a ELBV2 ListenerRule

func NewListenerRule

func NewListenerRule(stack core.Stack, id string, spec ListenerRuleSpec) *ListenerRule

NewListenerRule constructs new ListenerRule resource.

func (*ListenerRule) SetStatus

func (lr *ListenerRule) SetStatus(status ListenerRuleStatus)

SetStatus sets the ListenerRule's status

type ListenerRuleSpec

type ListenerRuleSpec struct {
	// The Amazon Resource Name (ARN) of the listener.
	ListenerARN core.StringToken `json:"listenerARN"`
	// The rule priority.
	Priority int32 `json:"priority"`
	// The actions.
	Actions []Action `json:"actions"`
	// The conditions.
	Conditions []RuleCondition `json:"conditions"`
	// The tags.
	// +optional
	Tags map[string]string `json:"tags,omitempty"`
}

ListenerRuleSpec defines the desired state of ListenerRule

type ListenerRuleStatus

type ListenerRuleStatus struct {
	// The Amazon Resource Name (ARN) of the rule.
	RuleARN string `json:"ruleARN"`
}

ListenerRuleStatus defines the observed state of ListenerRule

type ListenerSpec

type ListenerSpec struct {
	// The Amazon Resource Name (ARN) of the load balancer.
	LoadBalancerARN core.StringToken `json:"loadBalancerARN"`

	// The port on which the load balancer is listening.
	Port int32 `json:"port"`

	// The protocol for connections from clients to the load balancer.
	Protocol Protocol `json:"protocol"`

	// The actions for the default rule.
	// +optional
	DefaultActions []Action `json:"defaultActions,omitempty"`

	// The SSL server certificate for a secure listener.
	// The first certificate is the default certificate.
	// +optional
	Certificates []Certificate `json:"certificates,omitempty"`

	// [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported.
	// +optional
	SSLPolicy *string `json:"sslPolicy,omitempty"`

	// [TLS listener] The name of the Application-Layer Protocol Negotiation (ALPN) policy.
	// +optional
	ALPNPolicy []string `json:"alpnPolicy,omitempty"`

	// [HTTPS listener] The mutual TLS authentication config for a secure ALB listener.
	// +optional
	MutualAuthentication *MutualAuthenticationAttributes `json:"mutualAuthentication,omitempty"`

	// The tags.
	// +optional
	Tags map[string]string `json:"tags,omitempty"`

	// Listener attributes
	// +optional
	ListenerAttributes []ListenerAttribute `json:"listenerAttributes,omitempty"`
}

ListenerSpec defines the desired state of Listener

type ListenerStatus

type ListenerStatus struct {
	// The Amazon Resource Name (ARN) of the listener.
	ListenerARN string `json:"listenerARN"`
}

ListenerStatus defines the observed state of Listener

type LoadBalancer

type LoadBalancer struct {
	core.ResourceMeta `json:"-"`

	// desired state of LoadBalancer
	Spec LoadBalancerSpec `json:"spec"`

	// observed state of LoadBalancer
	// +optional
	Status *LoadBalancerStatus `json:"status,omitempty"`
}

LoadBalancer represents a ELBV2 LoadBalancer.

func NewLoadBalancer

func NewLoadBalancer(stack core.Stack, id string, spec LoadBalancerSpec) *LoadBalancer

NewLoadBalancer constructs new LoadBalancer resource.

func (*LoadBalancer) DNSName

func (lb *LoadBalancer) DNSName() core.StringToken

DNSName returns The public DNS name of the load balancer.

func (*LoadBalancer) LoadBalancerARN

func (lb *LoadBalancer) LoadBalancerARN() core.StringToken

LoadBalancerARN returns The Amazon Resource Name (ARN) of the load balancer.

func (*LoadBalancer) SetStatus

func (lb *LoadBalancer) SetStatus(status LoadBalancerStatus)

SetStatus sets the LoadBalancer's status

type LoadBalancerAttribute

type LoadBalancerAttribute struct {
	// The name of the attribute.
	Key string `json:"key"`

	// The value of the attribute.
	Value string `json:"value"`
}

Information about a load balancer attribute.

type LoadBalancerScheme

type LoadBalancerScheme string
const (
	LoadBalancerSchemeInternal       LoadBalancerScheme = "internal"
	LoadBalancerSchemeInternetFacing LoadBalancerScheme = "internet-facing"
)

type LoadBalancerSpec

type LoadBalancerSpec struct {
	// The name of the load balancer.
	Name string `json:"name"`

	// The type of load balancer.
	Type LoadBalancerType `json:"type"`

	// The nodes of an Internet-facing load balancer have public IP addresses.
	// The nodes of an internal load balancer have only private IP addresses.
	// +optional
	Scheme LoadBalancerScheme `json:"scheme,omitempty"`

	// The type of IP addresses used by the subnets for your load balancer.
	// +optional
	IPAddressType IPAddressType `json:"ipAddressType,omitempty"`

	// Tells whether Prefix for Source NAT is enabled or not.
	// +optional
	EnablePrefixForIpv6SourceNat EnablePrefixForIpv6SourceNat `json:"enablePrefixForIpv6SourceNat,omitempty"`

	// The IDs of the public subnets. You can specify only one subnet per Availability Zone.
	// +optional
	SubnetMappings []SubnetMapping `json:"subnetMapping,omitempty"`

	// [Application Load Balancers] The IDs of the security groups for the load balancer.
	// +optional
	SecurityGroups []core.StringToken `json:"securityGroups,omitempty"`

	// [Network Load Balancers] The status of the security groups inbound rules on private link.
	// +optional
	SecurityGroupsInboundRulesOnPrivateLink *SecurityGroupsInboundRulesOnPrivateLinkStatus `json:"securityGroupsInboundRulesOnPrivateLink,omitempty"`

	// [Application Load Balancers on Outposts] The ID of the customer-owned address pool (CoIP pool).
	// +optional
	CustomerOwnedIPv4Pool *string `json:"customerOwnedIPv4Pool,omitempty"`

	// The load balancer attributes.
	// +optional
	LoadBalancerAttributes []LoadBalancerAttribute `json:"loadBalancerAttributes,omitempty"`

	// The load balancer capacity reservation
	// +optional
	MinimumLoadBalancerCapacity *MinimumLoadBalancerCapacity `json:"minimumLoadBalancerCapacity,omitempty"`

	// The tags.
	// +optional
	Tags map[string]string `json:"tags,omitempty"`
}

LoadBalancerSpec defines the desired state of LoadBalancer

type LoadBalancerStatus

type LoadBalancerStatus struct {
	// The Amazon Resource Name (ARN) of the load balancer.
	LoadBalancerARN string `json:"loadBalancerARN"`

	// The public DNS name of the load balancer.
	DNSName string `json:"dnsName"`
}

LoadBalancerStatus defines the observed state of LoadBalancer

type LoadBalancerType

type LoadBalancerType string
const (
	LoadBalancerTypeApplication LoadBalancerType = "application"
	LoadBalancerTypeNetwork     LoadBalancerType = "network"
)

type MinimumLoadBalancerCapacity

type MinimumLoadBalancerCapacity struct {
	// The Capacity Units Value.
	CapacityUnits int32 `json:"capacityUnits"`
}

Information about a load balancer capacity reservation.

type MutualAuthenticationAttributes

type MutualAuthenticationAttributes struct {
	Mode string `json:"mode"`

	TrustStoreArn *string `json:"trustStoreArn,omitempty"`

	IgnoreClientCertificateExpiry *bool `json:"ignoreClientCertificateExpiry,omitempty"`
}

type MutualAuthenticationMode

type MutualAuthenticationMode string

MutualAuthenticationMode mTLS mode for mutual TLS authentication config for listener

const (
	MutualAuthenticationOffMode         MutualAuthenticationMode = "off"
	MutualAuthenticationPassthroughMode MutualAuthenticationMode = "passthrough"
	MutualAuthenticationVerifyMode      MutualAuthenticationMode = "verify"
)

Supported mTLS modes

type NetworkingIngressRule

type NetworkingIngressRule struct {
	// List of peers which should be able to access the targets in TargetGroup.
	// At least one NetworkingPeer should be specified.
	From []NetworkingPeer `json:"from"`

	// List of ports which should be made accessible on the targets in TargetGroup.
	// At least one NetworkingPort should be specified.
	Ports []elbv2api.NetworkingPort `json:"ports"`
}

type NetworkingPeer

type NetworkingPeer struct {
	// IPBlock defines an IPBlock peer.
	// If specified, none of the other fields can be set.
	// +optional
	IPBlock *elbv2api.IPBlock `json:"ipBlock,omitempty"`

	// SecurityGroup defines a SecurityGroup peer.
	// If specified, none of the other fields can be set.
	// +optional
	SecurityGroup *SecurityGroup `json:"securityGroup,omitempty"`
}

NetworkingPeer defines the source/destination peer for networking rules.

type PathPatternConditionConfig

type PathPatternConditionConfig struct {
	// One or more path patterns to compare against the request URL.
	Values []string `json:"values"`
}

Information about a path pattern condition.

type Protocol

type Protocol string
const (
	ProtocolHTTP    Protocol = "HTTP"
	ProtocolHTTPS   Protocol = "HTTPS"
	ProtocolTCP     Protocol = "TCP"
	ProtocolTLS     Protocol = "TLS"
	ProtocolUDP     Protocol = "UDP"
	ProtocolTCP_UDP Protocol = "TCP_UDP"
)

type ProtocolVersion

type ProtocolVersion string
const (
	ProtocolVersionHTTP1 ProtocolVersion = "HTTP1"
	ProtocolVersionHTTP2 ProtocolVersion = "HTTP2"
	ProtocolVersionGRPC  ProtocolVersion = "GRPC"
)

type QueryStringConditionConfig

type QueryStringConditionConfig struct {
	// One or more key/value pairs or values to find in the query string.
	Values []QueryStringKeyValuePair `json:"values"`
}

Information about a query string condition.

type QueryStringKeyValuePair

type QueryStringKeyValuePair struct {
	// The key.
	// +optional
	Key *string `json:"key,omitempty"`

	// The value.
	Value string `json:"value"`
}

Information about a key/value pair.

type RedirectActionConfig

type RedirectActionConfig struct {
	// The hostname.
	// +optional
	Host *string `json:"host,omitempty"`

	// The absolute path.
	// +optional
	Path *string `json:"path,omitempty"`

	// The port.
	// +optional
	Port *string `json:"port,omitempty"`

	// The protocol.
	// +optional
	Protocol *string `json:"protocol,omitempty"`

	// The query parameters
	// +optional
	Query *string `json:"query,omitempty"`

	// The HTTP redirect code.
	// +optional
	StatusCode string `json:"statusCode"`
}

Information about a redirect action.

type RuleCondition

type RuleCondition struct {
	// The field in the HTTP request.
	Field RuleConditionField `json:"field"`
	// Information for a host header condition.
	// +optional
	HostHeaderConfig *HostHeaderConditionConfig `json:"hostHeaderConfig,omitempty"`
	// Information for an HTTP header condition.
	// +optional
	HTTPHeaderConfig *HTTPHeaderConditionConfig `json:"httpHeaderConfig,omitempty"`
	// Information for an HTTP method condition.
	// +optional
	HTTPRequestMethodConfig *HTTPRequestMethodConditionConfig `json:"httpRequestMethodConfig,omitempty"`
	// Information for a path pattern condition.
	// +optional
	PathPatternConfig *PathPatternConditionConfig `json:"pathPatternConfig,omitempty"`
	// Information for a query string condition.
	// +optional
	QueryStringConfig *QueryStringConditionConfig `json:"queryStringConfig,omitempty"`
	// Information for a source IP condition.
	// +optional
	SourceIPConfig *SourceIPConditionConfig `json:"sourceIPConfig,omitempty"`
}

Information about a condition for a rule.

type RuleConditionField

type RuleConditionField string
const (
	RuleConditionFieldHTTPHeader        RuleConditionField = "http-header"
	RuleConditionFieldHTTPRequestMethod RuleConditionField = "http-request-method"
	RuleConditionFieldHostHeader        RuleConditionField = "host-header"
	RuleConditionFieldPathPattern       RuleConditionField = "path-pattern"
	RuleConditionFieldQueryString       RuleConditionField = "query-string"
	RuleConditionFieldSourceIP          RuleConditionField = "source-ip"
)

type SecurityGroup

type SecurityGroup struct {
	// GroupID is the EC2 SecurityGroupID.
	GroupID core.StringToken `json:"groupID"`
}

SecurityGroup defines reference to an AWS EC2 SecurityGroup.

type SecurityGroupsInboundRulesOnPrivateLinkStatus

type SecurityGroupsInboundRulesOnPrivateLinkStatus string
const (
	SecurityGroupsInboundRulesOnPrivateLinkOn  SecurityGroupsInboundRulesOnPrivateLinkStatus = "on"
	SecurityGroupsInboundRulesOnPrivateLinkOff SecurityGroupsInboundRulesOnPrivateLinkStatus = "off"
)

type SourceIPConditionConfig

type SourceIPConditionConfig struct {
	// One or more source IP addresses, in CIDR format.
	Values []string `json:"values"`
}

Information about a source IP condition.

type SubnetMapping

type SubnetMapping struct {
	// [Network Load Balancers] The allocation ID of the Elastic IP address for
	// an internet-facing load balancer.
	AllocationID *string `json:"allocationID,omitempty"`

	// [Network Load Balancers] The private IPv4 address for an internal load balancer.
	PrivateIPv4Address *string `json:"privateIPv4Address,omitempty"`

	// [Network Load Balancers] The IPv6 address.
	IPv6Address *string `json:"ipv6Address,omitempty"`

	// [Network Load Balancers] the SourceNatIpv6Prefix
	SourceNatIpv6Prefix *string `json:"sourceNatIpv6Prefix,omitempty"`

	// The ID of the subnet.
	SubnetID string `json:"subnetID"`
}

Information about a subnet mapping.

type TargetGroup

type TargetGroup struct {
	core.ResourceMeta `json:"-"`

	// desired state of TargetGroup
	Spec TargetGroupSpec `json:"spec"`

	// observed state of TargetGroup
	// +optional
	Status *TargetGroupStatus `json:"status,omitempty"`
}

TargetGroup represents a ELBV2 TargetGroup

func NewTargetGroup

func NewTargetGroup(stack core.Stack, id string, spec TargetGroupSpec) *TargetGroup

NewTargetGroup constructs new TargetGroup resource.

func (*TargetGroup) SetStatus

func (tg *TargetGroup) SetStatus(status TargetGroupStatus)

SetStatus sets the TargetGroup's status

func (*TargetGroup) TargetGroupARN

func (tg *TargetGroup) TargetGroupARN() core.StringToken

LoadBalancerARN returns The Amazon Resource Name (ARN) of the target group.

type TargetGroupAttribute

type TargetGroupAttribute struct {
	// The name of the attribute.
	Key string `json:"key"`

	// The value of the attribute.
	Value string `json:"value"`
}

Specifies a target group attribute.

type TargetGroupBindingNetworking

type TargetGroupBindingNetworking struct {
	// List of ingress rules to allow ELBV2 LoadBalancer to access targets in TargetGroup.
	// +optional
	Ingress []NetworkingIngressRule `json:"ingress,omitempty"`
}

type TargetGroupBindingResource

type TargetGroupBindingResource struct {
	core.ResourceMeta `json:"-"`

	// desired state of TargetGroupBindingResource
	Spec TargetGroupBindingResourceSpec `json:"spec"`

	// observed state of TargetGroupBindingResource
	// +optional
	Status *TargetGroupBindingResourceStatus `json:"status,omitempty"`
}

TargetGroupBindingResource represents an TargetGroupBinding Custom Resource.

func NewTargetGroupBindingResource

func NewTargetGroupBindingResource(stack core.Stack, id string, spec TargetGroupBindingResourceSpec) *TargetGroupBindingResource

NewTargetGroupBindingResource constructs new TargetGroupBindingResource resource.

func (*TargetGroupBindingResource) SetStatus

SetStatus sets the TargetGroup's status

type TargetGroupBindingResourceSpec

type TargetGroupBindingResourceSpec struct {
	// Describes the TargetGroupBinding Custom Resource that will be created when synthesize this TargetGroupBindingResource.
	Template TargetGroupBindingTemplate `json:"template"`
}

desired state of TargetGroupBindingResource

type TargetGroupBindingResourceStatus

type TargetGroupBindingResourceStatus struct {
	// reference to the TargetGroupBinding Custom Resource.
	TargetGroupBindingRef corev1.ObjectReference `json:"targetGroupBindingRef"`
}

observed state of TargetGroupBindingResource

type TargetGroupBindingSpec

type TargetGroupBindingSpec struct {
	// targetGroupARN is the Amazon Resource Name (ARN) for the TargetGroup.
	TargetGroupARN core.StringToken `json:"targetGroupARN"`

	// targetType is the TargetType of TargetGroup. If unspecified, it will be automatically inferred.
	// +optional
	TargetType *elbv2api.TargetType `json:"targetType,omitempty"`

	// serviceRef is a reference to a Kubernetes Service and ServicePort.
	ServiceRef elbv2api.ServiceReference `json:"serviceRef"`

	// networking provides the networking setup for ELBV2 LoadBalancer to access targets in TargetGroup.
	// +optional
	Networking *TargetGroupBindingNetworking `json:"networking,omitempty"`

	// node selector for instance type target groups to only register certain nodes
	// +optional
	NodeSelector *metav1.LabelSelector `json:"nodeSelector,omitempty"`

	// ipAddressType specifies whether the target group is of type IPv4 or IPv6. If unspecified, it will be automatically inferred.
	// +optional
	IPAddressType elbv2api.TargetGroupIPAddressType `json:"ipAddressType,omitempty"`

	// VpcID is the VPC of the TargetGroup. If unspecified, it will be automatically inferred.
	// +optional
	VpcID string `json:"vpcID,omitempty"`

	// multiClusterTargetGroup Denotes if the TargetGroup is shared among multiple clusters
	// +optional
	MultiClusterTargetGroup bool `json:"multiClusterTargetGroup,omitempty"`
}

TargetGroupBindingSpec defines the desired state of TargetGroupBinding

type TargetGroupBindingTemplate

type TargetGroupBindingTemplate struct {
	// Standard object's metadata.
	metav1.ObjectMeta `json:"metadata"`

	// Specification of TargetGroupBinding Custom Resource.
	Spec TargetGroupBindingSpec `json:"spec"`
}

Template for TargetGroupBinding Custom Resource.

type TargetGroupHealthCheckConfig

type TargetGroupHealthCheckConfig struct {
	// The port the load balancer uses when performing health checks on targets.
	// +optional
	Port *intstr.IntOrString `json:"port,omitempty"`

	// The protocol the load balancer uses when performing health checks on targets.
	// +optional
	Protocol Protocol `json:"protocol,omitempty"`

	// [HTTP/HTTPS health checks] The ping path that is the destination on the targets for health checks.
	// +optional
	Path *string `json:"path,omitempty"`

	// [HTTP/HTTPS health checks] The HTTP codes to use when checking for a successful response from a target.
	// +optional
	Matcher *HealthCheckMatcher `json:"matcher,omitempty"`

	// The approximate amount of time, in seconds, between health checks of an individual target.
	// +optional
	IntervalSeconds *int32 `json:"intervalSeconds,omitempty"`

	// The amount of time, in seconds, during which no response from a target means a failed health check.
	// +optional
	TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"`

	// The number of consecutive health checks successes required before considering an unhealthy target healthy.
	// +optional
	HealthyThresholdCount *int32 `json:"healthyThresholdCount,omitempty"`

	// The number of consecutive health check failures required before considering a target unhealthy.
	// +optional
	UnhealthyThresholdCount *int32 `json:"unhealthyThresholdCount,omitempty"`
}

Configuration for TargetGroup's HealthCheck.

type TargetGroupIPAddressType

type TargetGroupIPAddressType string
const (
	TargetGroupIPAddressTypeIPv4 TargetGroupIPAddressType = "ipv4"
	TargetGroupIPAddressTypeIPv6 TargetGroupIPAddressType = "ipv6"
)

type TargetGroupSpec

type TargetGroupSpec struct {
	// The name of the target group.
	Name string `json:"name"`

	// The type of target that you must specify when registering targets with this target group.
	TargetType TargetType `json:"targetType"`

	// The port on which the targets receive traffic.
	Port *int32 `json:"port"`

	// The protocol to use for routing traffic to the targets.
	Protocol Protocol `json:"protocol"`

	// The target group protocol version.
	// +optional
	ProtocolVersion *ProtocolVersion `json:"protocolVersion,omitempty"`

	// Target group IP address type IPv4 or IPv6
	// +optional
	IPAddressType TargetGroupIPAddressType `json:"ipAddressType,omitempty"`

	// Configuration for TargetGroup's HealthCheck.
	// +optional
	HealthCheckConfig *TargetGroupHealthCheckConfig `json:"healthCheckConfig,omitempty"`

	// The target group attributes.
	// +optional
	TargetGroupAttributes []TargetGroupAttribute `json:"targetGroupAttributes,omitempty"`

	// The tags.
	// +optional
	Tags map[string]string `json:"tags,omitempty"`
}

TargetGroupSpec defines the observed state of TargetGroup

type TargetGroupStatus

type TargetGroupStatus struct {
	// The Amazon Resource Name (ARN) of the target group.
	TargetGroupARN string `json:"targetGroupARN"`
}

TargetGroupStatus defines the observed state of TargetGroup

type TargetGroupStickinessConfig

type TargetGroupStickinessConfig struct {
	// Indicates whether target group stickiness is enabled.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// The time period, in seconds, during which requests from a client should be routed to the same target group.
	// +optional
	DurationSeconds *int32 `json:"durationSeconds,omitempty"`
}

Information about the target group stickiness for a rule.

type TargetGroupTuple

type TargetGroupTuple struct {
	// The Amazon Resource Name (ARN) of the target group.
	TargetGroupARN core.StringToken `json:"targetGroupARN"`

	// The weight.
	// +optional
	Weight *int32 `json:"weight,omitempty"`
}

Information about how traffic will be distributed between multiple target groups in a forward rule.

type TargetType

type TargetType string
const (
	TargetTypeInstance TargetType = "instance"
	TargetTypeIP       TargetType = "ip"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL