Amazon Elastic Load Balancing · JSON Structure
Amazon Elastic Load Balancing Structure
Represents an Amazon Elastic Load Balancer with its associated configuration, state, listeners, and target groups.
Type: object
Properties: 16
Required: 4
Amazon Web ServicesHigh AvailabilityLoad BalancingNetworkingScalability
Amazon Elastic Load Balancer is a JSON Structure definition published by Amazon Elastic Load Balancing, describing 16 properties, of which 4 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.
Properties
loadBalancerArn
loadBalancerName
dnsName
canonicalHostedZoneId
createdTime
scheme
vpcId
state
type
availabilityZones
securityGroups
ipAddressType
customerOwnedIpv4Pool
listeners
targetGroups
tags
Meta-schema: https://json-structure.org/meta/core/v0/#
JSON Structure
{
"$schema": "https://json-structure.org/meta/core/v0/#",
"$id": "https://api-evangelist.com/schemas/amazon/elasticloadbalancing/load-balancer.json",
"name": "Amazon Elastic Load Balancer",
"description": "Represents an Amazon Elastic Load Balancer with its associated configuration, state, listeners, and target groups.",
"type": "object",
"required": [
"loadBalancerArn",
"loadBalancerName",
"type",
"scheme"
],
"properties": {
"loadBalancerArn": {
"type": "string",
"description": "The Amazon Resource Name (ARN) of the load balancer",
"pattern": "^arn:aws:elasticloadbalancing:[a-z0-9-]+:[0-9]{12}:loadbalancer/.+$"
},
"loadBalancerName": {
"type": "string",
"description": "The name of the load balancer",
"maxLength": 32
},
"dnsName": {
"type": "string",
"description": "The public DNS name of the load balancer"
},
"canonicalHostedZoneId": {
"type": "string",
"description": "The ID of the Amazon Route 53 hosted zone associated with the load balancer"
},
"createdTime": {
"type": "datetime",
"description": "The date and time the load balancer was created"
},
"scheme": {
"type": "string",
"description": "The scheme of the load balancer (internet-facing or internal)",
"enum": [
"internet-facing",
"internal"
]
},
"vpcId": {
"type": "string",
"description": "The ID of the VPC for the load balancer",
"pattern": "^vpc-[a-f0-9]{8,17}$"
},
"state": {
"$ref": "#/$defs/LoadBalancerState"
},
"type": {
"type": "string",
"description": "The type of load balancer",
"enum": [
"application",
"network",
"gateway"
]
},
"availabilityZones": {
"type": "array",
"description": "The Availability Zones for the load balancer",
"items": {
"$ref": "#/$defs/AvailabilityZone"
}
},
"securityGroups": {
"type": "array",
"description": "The IDs of the security groups for the load balancer",
"items": {
"type": "string",
"pattern": "^sg-[a-f0-9]{8,17}$"
}
},
"ipAddressType": {
"type": "string",
"description": "The type of IP addresses used by the subnets for the load balancer",
"enum": [
"ipv4",
"dualstack"
]
},
"customerOwnedIpv4Pool": {
"type": "string",
"description": "The ID of the customer-owned address pool"
},
"listeners": {
"type": "array",
"description": "The listeners configured for the load balancer",
"items": {
"$ref": "#/$defs/Listener"
}
},
"targetGroups": {
"type": "array",
"description": "The target groups associated with the load balancer",
"items": {
"$ref": "#/$defs/TargetGroup"
}
},
"tags": {
"type": "array",
"description": "Tags assigned to the load balancer",
"items": {
"$ref": "#/$defs/Tag"
}
}
},
"definitions": {
"LoadBalancerState": {
"type": "object",
"description": "Describes the state of a load balancer",
"properties": {
"code": {
"type": "string",
"description": "The state code",
"enum": [
"active",
"provisioning",
"active_impaired",
"failed"
]
},
"reason": {
"type": "string",
"description": "A description of the state"
}
},
"name": "LoadBalancerState"
},
"AvailabilityZone": {
"type": "object",
"description": "Describes an Availability Zone for a load balancer",
"properties": {
"zoneName": {
"type": "string",
"description": "The name of the Availability Zone"
},
"subnetId": {
"type": "string",
"description": "The ID of the subnet",
"pattern": "^subnet-[a-f0-9]{8,17}$"
},
"loadBalancerAddresses": {
"type": "array",
"description": "The static IP addresses associated with the load balancer",
"items": {
"type": "object",
"properties": {
"ipAddress": {
"type": "string",
"description": "The static IP address"
},
"allocationId": {
"type": "string",
"description": "The allocation ID of the Elastic IP address"
}
}
}
}
},
"name": "AvailabilityZone"
},
"Listener": {
"type": "object",
"description": "Describes a listener for a load balancer",
"properties": {
"listenerArn": {
"type": "string",
"description": "The ARN of the listener"
},
"protocol": {
"type": "string",
"description": "The protocol for connections from clients",
"enum": [
"HTTP",
"HTTPS",
"TCP",
"TLS",
"UDP",
"TCP_UDP",
"GENEVE"
]
},
"port": {
"type": "int32",
"description": "The port on which the load balancer is listening",
"minimum": 1,
"maximum": 65535
},
"sslPolicy": {
"type": "string",
"description": "The security policy that defines supported protocols and ciphers"
},
"certificates": {
"type": "array",
"description": "The SSL server certificates",
"items": {
"type": "object",
"properties": {
"certificateArn": {
"type": "string",
"description": "The ARN of the certificate"
}
}
}
},
"defaultActions": {
"type": "array",
"description": "The default actions for the listener",
"items": {
"$ref": "#/$defs/Action"
}
}
},
"name": "Listener"
},
"TargetGroup": {
"type": "object",
"description": "Describes a target group",
"properties": {
"targetGroupArn": {
"type": "string",
"description": "The ARN of the target group"
},
"targetGroupName": {
"type": "string",
"description": "The name of the target group"
},
"protocol": {
"type": "string",
"description": "The protocol to use for routing traffic to the targets",
"enum": [
"HTTP",
"HTTPS",
"TCP",
"TLS",
"UDP",
"TCP_UDP",
"GENEVE"
]
},
"port": {
"type": "int32",
"description": "The port on which the targets are listening",
"minimum": 1,
"maximum": 65535
},
"targetType": {
"type": "string",
"description": "The type of target",
"enum": [
"instance",
"ip",
"lambda",
"alb"
]
},
"healthCheckEnabled": {
"type": "boolean",
"description": "Whether health checks are enabled"
},
"healthCheckPath": {
"type": "string",
"description": "The destination for health checks"
}
},
"name": "TargetGroup"
},
"Action": {
"type": "object",
"description": "Describes an action for a listener or rule",
"properties": {
"type": {
"type": "string",
"description": "The type of action",
"enum": [
"forward",
"authenticate-oidc",
"authenticate-cognito",
"redirect",
"fixed-response"
]
},
"targetGroupArn": {
"type": "string",
"description": "The ARN of the target group"
},
"order": {
"type": "int32",
"description": "The order for the action"
}
},
"required": [
"type"
],
"name": "Action"
},
"Tag": {
"type": "object",
"description": "Describes a resource tag",
"properties": {
"key": {
"type": "string",
"description": "The key of the tag",
"maxLength": 128
},
"value": {
"type": "string",
"description": "The value of the tag",
"maxLength": 256
}
},
"required": [
"key"
],
"name": "Tag"
}
}
}