// Code generated by smithy-go-codegen DO NOT EDIT. package types import ( smithydocument "github.com/aws/smithy-go/document" "time" ) // An accelerator is a complex type that includes one or more listeners that // process inbound connections and then direct traffic to one or more endpoint // groups, each of which includes endpoints, such as load balancers. type Accelerator struct { // The Amazon Resource Name (ARN) of the accelerator. AcceleratorArn *string // The date and time that the accelerator was created. CreatedTime *time.Time // The Domain Name System (DNS) name that Global Accelerator creates that points // to an accelerator's static IPv4 addresses. The naming convention for the DNS // name for an accelerator is the following: A lowercase letter a, followed by a // 16-bit random hex string, followed by .awsglobalaccelerator.com. For example: // a1234567890abcdef.awsglobalaccelerator.com. If you have a dual-stack // accelerator, you also have a second DNS name, DualStackDnsName , that points to // both the A record and the AAAA record for all four static addresses for the // accelerator: two IPv4 addresses and two IPv6 addresses. For more information // about the default DNS name, see Support for DNS addressing in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html) // in the Global Accelerator Developer Guide. DnsName *string // The Domain Name System (DNS) name that Global Accelerator creates that points // to a dual-stack accelerator's four static IP addresses: two IPv4 addresses and // two IPv6 addresses. The naming convention for the dual-stack DNS name is the // following: A lowercase letter a, followed by a 16-bit random hex string, // followed by .dualstack.awsglobalaccelerator.com. For example: // a1234567890abcdef.dualstack.awsglobalaccelerator.com. Note: Global Accelerator // also assigns a default DNS name, DnsName , to your accelerator that points just // to the static IPv4 addresses. For more information, see Support for DNS // addressing in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-accelerators.html#about-accelerators.dns-addressing) // in the Global Accelerator Developer Guide. DualStackDnsName *string // Indicates whether the accelerator is enabled. The value is true or false. The // default value is true. If the value is set to true, the accelerator cannot be // deleted. If set to false, accelerator can be deleted. Enabled *bool // A history of changes that you make to an accelerator in Global Accelerator. Events []AcceleratorEvent // The IP address type that an accelerator supports. For a standard accelerator, // the value can be IPV4 or DUAL_STACK. IpAddressType IpAddressType // The static IP addresses that Global Accelerator associates with the accelerator. IpSets []IpSet // The date and time that the accelerator was last modified. LastModifiedTime *time.Time // The name of the accelerator. The name must contain only alphanumeric characters // or hyphens (-), and must not begin or end with a hyphen. Name *string // Describes the deployment status of the accelerator. Status AcceleratorStatus noSmithyDocumentSerde } // Attributes of an accelerator. type AcceleratorAttributes struct { // Indicates whether flow logs are enabled. The default value is false. If the // value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified. For // more information, see Flow logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html) // in the Global Accelerator Developer Guide. FlowLogsEnabled *bool // The name of the Amazon S3 bucket for the flow logs. Attribute is required if // FlowLogsEnabled is true . The bucket must exist and have a bucket policy that // grants Global Accelerator permission to write to the bucket. FlowLogsS3Bucket *string // The prefix for the location in the Amazon S3 bucket for the flow logs. // Attribute is required if FlowLogsEnabled is true . If you specify slash (/) for // the S3 bucket prefix, the log file bucket folder structure will include a double // slash (//), like the following: s3-bucket_name//AWSLogs/aws_account_id FlowLogsS3Prefix *string noSmithyDocumentSerde } // A complex type that contains a Timestamp value and Message for changes that you // make to an accelerator in Global Accelerator. Messages stored here provide // progress or error information when you update an accelerator from IPv4 to // dual-stack, or from dual-stack to IPv4. Global Accelerator stores a maximum of // ten event messages. type AcceleratorEvent struct { // A string that contains an Event message describing changes or errors when you // update an accelerator in Global Accelerator from IPv4 to dual-stack, or // dual-stack to IPv4. Message *string // A timestamp for when you update an accelerator in Global Accelerator from IPv4 // to dual-stack, or dual-stack to IPv4. Timestamp *time.Time noSmithyDocumentSerde } // Information about an IP address range that is provisioned for use with your // Amazon Web Services resources through bring your own IP address (BYOIP). The // following describes each BYOIP State that your IP address range can be in. // - PENDING_PROVISIONING — You’ve submitted a request to provision an IP // address range but it is not yet provisioned with Global Accelerator. // - READY — The address range is provisioned with Global Accelerator and can be // advertised. // - PENDING_ADVERTISING — You’ve submitted a request for Global Accelerator to // advertise an address range but it is not yet being advertised. // - ADVERTISING — The address range is being advertised by Global Accelerator. // - PENDING_WITHDRAWING — You’ve submitted a request to withdraw an address // range from being advertised but it is still being advertised by Global // Accelerator. // - PENDING_DEPROVISIONING — You’ve submitted a request to deprovision an // address range from Global Accelerator but it is still provisioned. // - DEPROVISIONED — The address range is deprovisioned from Global Accelerator. // - FAILED_PROVISION — The request to provision the address range from Global // Accelerator was not successful. Please make sure that you provide all of the // correct information, and try again. If the request fails a second time, contact // Amazon Web Services support. // - FAILED_ADVERTISING — The request for Global Accelerator to advertise the // address range was not successful. Please make sure that you provide all of the // correct information, and try again. If the request fails a second time, contact // Amazon Web Services support. // - FAILED_WITHDRAW — The request to withdraw the address range from // advertising by Global Accelerator was not successful. Please make sure that you // provide all of the correct information, and try again. If the request fails a // second time, contact Amazon Web Services support. // - FAILED_DEPROVISION — The request to deprovision the address range from // Global Accelerator was not successful. Please make sure that you provide all of // the correct information, and try again. If the request fails a second time, // contact Amazon Web Services support. type ByoipCidr struct { // The address range, in CIDR notation. Cidr *string // A history of status changes for an IP address range that you bring to Global // Accelerator through bring your own IP address (BYOIP). Events []ByoipCidrEvent // The state of the address pool. State ByoipCidrState noSmithyDocumentSerde } // A complex type that contains a Message and a Timestamp value for changes that // you make in the status of an IP address range that you bring to Global // Accelerator through bring your own IP address (BYOIP). type ByoipCidrEvent struct { // A string that contains an Event message describing changes that you make in the // status of an IP address range that you bring to Global Accelerator through bring // your own IP address (BYOIP). Message *string // A timestamp for when you make a status change for an IP address range that you // bring to Global Accelerator through bring your own IP address (BYOIP). Timestamp *time.Time noSmithyDocumentSerde } // Provides authorization for Amazon to bring a specific IP address range to a // specific Amazon Web Services account using bring your own IP addresses (BYOIP). // For more information, see Bring your own IP addresses (BYOIP) (https://docs.aws.amazon.com/global-accelerator/latest/dg/using-byoip.html) // in the Global Accelerator Developer Guide. type CidrAuthorizationContext struct { // The plain-text authorization message for the prefix and account. // // This member is required. Message *string // The signed authorization message for the prefix and account. // // This member is required. Signature *string noSmithyDocumentSerde } // Attributes of a custom routing accelerator. type CustomRoutingAccelerator struct { // The Amazon Resource Name (ARN) of the custom routing accelerator. AcceleratorArn *string // The date and time that the accelerator was created. CreatedTime *time.Time // The Domain Name System (DNS) name that Global Accelerator creates that points // to an accelerator's static IPv4 addresses. The naming convention for the DNS // name is the following: A lowercase letter a, followed by a 16-bit random hex // string, followed by .awsglobalaccelerator.com. For example: // a1234567890abcdef.awsglobalaccelerator.com. If you have a dual-stack // accelerator, you also have a second DNS name, DualStackDnsName , that points to // both the A record and the AAAA record for all four static addresses for the // accelerator: two IPv4 addresses and two IPv6 addresses. For more information // about the default DNS name, see Support for DNS addressing in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/dns-addressing-custom-domains.dns-addressing.html) // in the Global Accelerator Developer Guide. DnsName *string // Indicates whether the accelerator is enabled. The value is true or false. The // default value is true. If the value is set to true, the accelerator cannot be // deleted. If set to false, accelerator can be deleted. Enabled *bool // The IP address type that an accelerator supports. For a custom routing // accelerator, the value must be IPV4. IpAddressType IpAddressType // The static IP addresses that Global Accelerator associates with the accelerator. IpSets []IpSet // The date and time that the accelerator was last modified. LastModifiedTime *time.Time // The name of the accelerator. The name must contain only alphanumeric characters // or hyphens (-), and must not begin or end with a hyphen. Name *string // Describes the deployment status of the accelerator. Status CustomRoutingAcceleratorStatus noSmithyDocumentSerde } // Attributes of a custom routing accelerator. type CustomRoutingAcceleratorAttributes struct { // Indicates whether flow logs are enabled. The default value is false. If the // value is true, FlowLogsS3Bucket and FlowLogsS3Prefix must be specified. For // more information, see Flow logs (https://docs.aws.amazon.com/global-accelerator/latest/dg/monitoring-global-accelerator.flow-logs.html) // in the Global Accelerator Developer Guide. FlowLogsEnabled *bool // The name of the Amazon S3 bucket for the flow logs. Attribute is required if // FlowLogsEnabled is true . The bucket must exist and have a bucket policy that // grants Global Accelerator permission to write to the bucket. FlowLogsS3Bucket *string // The prefix for the location in the Amazon S3 bucket for the flow logs. // Attribute is required if FlowLogsEnabled is true . If you don’t specify a // prefix, the flow logs are stored in the root of the bucket. If you specify slash // (/) for the S3 bucket prefix, the log file bucket folder structure will include // a double slash (//), like the following: // DOC-EXAMPLE-BUCKET//AWSLogs/aws_account_id FlowLogsS3Prefix *string noSmithyDocumentSerde } // For a custom routing accelerator, sets the port range and protocol for all // endpoints (virtual private cloud subnets) in an endpoint group to accept client // traffic on. type CustomRoutingDestinationConfiguration struct { // The first port, inclusive, in the range of ports for the endpoint group that is // associated with a custom routing accelerator. // // This member is required. FromPort *int32 // The protocol for the endpoint group that is associated with a custom routing // accelerator. The protocol can be either TCP or UDP. // // This member is required. Protocols []CustomRoutingProtocol // The last port, inclusive, in the range of ports for the endpoint group that is // associated with a custom routing accelerator. // // This member is required. ToPort *int32 noSmithyDocumentSerde } // For a custom routing accelerator, describes the port range and protocol for all // endpoints (virtual private cloud subnets) in an endpoint group to accept client // traffic on. type CustomRoutingDestinationDescription struct { // The first port, inclusive, in the range of ports for the endpoint group that is // associated with a custom routing accelerator. FromPort *int32 // The protocol for the endpoint group that is associated with a custom routing // accelerator. The protocol can be either TCP or UDP. Protocols []Protocol // The last port, inclusive, in the range of ports for the endpoint group that is // associated with a custom routing accelerator. ToPort *int32 noSmithyDocumentSerde } // The list of endpoint objects. For custom routing, this is a list of virtual // private cloud (VPC) subnet IDs. type CustomRoutingEndpointConfiguration struct { // An ID for the endpoint. For custom routing accelerators, this is the virtual // private cloud (VPC) subnet ID. EndpointId *string noSmithyDocumentSerde } // A complex type for an endpoint for a custom routing accelerator. Each endpoint // group can include one or more endpoints, which are virtual private cloud (VPC) // subnets. type CustomRoutingEndpointDescription struct { // An ID for the endpoint. For custom routing accelerators, this is the virtual // private cloud (VPC) subnet ID. EndpointId *string noSmithyDocumentSerde } // A complex type for the endpoint group for a custom routing accelerator. An // Amazon Web Services Region can have only one endpoint group for a specific // listener. type CustomRoutingEndpointGroup struct { // For a custom routing accelerator, describes the port range and protocol for all // endpoints (virtual private cloud subnets) in an endpoint group to accept client // traffic on. DestinationDescriptions []CustomRoutingDestinationDescription // For a custom routing accelerator, describes the endpoints (virtual private // cloud subnets) in an endpoint group to accept client traffic on. EndpointDescriptions []CustomRoutingEndpointDescription // The Amazon Resource Name (ARN) of the endpoint group. EndpointGroupArn *string // The Amazon Web Services Region where the endpoint group is located. EndpointGroupRegion *string noSmithyDocumentSerde } // A complex type for a listener for a custom routing accelerator. type CustomRoutingListener struct { // The Amazon Resource Name (ARN) of the listener. ListenerArn *string // The port range to support for connections from clients to your accelerator. // Separately, you set port ranges for endpoints. For more information, see About // endpoints for custom routing accelerators (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-endpoints.html) // . PortRanges []PortRange noSmithyDocumentSerde } // The port mappings for a specified endpoint IP address (destination). type DestinationPortMapping struct { // The Amazon Resource Name (ARN) of the custom routing accelerator that you have // port mappings for. AcceleratorArn *string // The IP address/port combinations (sockets) that map to a given destination // socket address. AcceleratorSocketAddresses []SocketAddress // The endpoint IP address/port combination for traffic received on the // accelerator socket address. DestinationSocketAddress *SocketAddress // Indicates whether or not a port mapping destination can receive traffic. The // value is either ALLOW, if traffic is allowed to the destination, or DENY, if // traffic is not allowed to the destination. DestinationTrafficState CustomRoutingDestinationTrafficState // The Amazon Resource Name (ARN) of the endpoint group. EndpointGroupArn *string // The Amazon Web Services Region for the endpoint group. EndpointGroupRegion *string // The ID for the virtual private cloud (VPC) subnet. EndpointId *string // The IP address type that an accelerator supports. For a custom routing // accelerator, the value must be IPV4. IpAddressType IpAddressType noSmithyDocumentSerde } // A complex type for endpoints. A resource must be valid and active when you add // it as an endpoint. type EndpointConfiguration struct { // Indicates whether client IP address preservation is enabled for an endpoint. // The value is true or false. The default value is true for new accelerators. If // the value is set to true, the client's IP address is preserved in the // X-Forwarded-For request header as traffic travels to applications on the // endpoint fronted by the accelerator. Client IP address preservation is // supported, in specific Amazon Web Services Regions, for endpoints that are // Application Load Balancers and Amazon EC2 instances. For more information, see // Preserve client IP addresses in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) // in the Global Accelerator Developer Guide. ClientIPPreservationEnabled *bool // An ID for the endpoint. If the endpoint is a Network Load Balancer or // Application Load Balancer, this is the Amazon Resource Name (ARN) of the // resource. If the endpoint is an Elastic IP address, this is the Elastic IP // address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. A // resource must be valid and active when you add it as an endpoint. An Application // Load Balancer can be either internal or internet-facing. EndpointId *string // The weight associated with the endpoint. When you add weights to endpoints, you // configure Global Accelerator to route traffic based on proportions that you // specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 // (sum=20). The result is that 4/20 of your traffic, on average, is routed to the // first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 // is routed to the last endpoint. For more information, see Endpoint weights (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html) // in the Global Accelerator Developer Guide. Weight *int32 noSmithyDocumentSerde } // A complex type for an endpoint. Each endpoint group can include one or more // endpoints, such as load balancers. type EndpointDescription struct { // Indicates whether client IP address preservation is enabled for an endpoint. // The value is true or false. The default value is true for new accelerators. If // the value is set to true, the client's IP address is preserved in the // X-Forwarded-For request header as traffic travels to applications on the // endpoint fronted by the accelerator. Client IP address preservation is // supported, in specific Amazon Web Services Regions, for endpoints that are // Application Load Balancers and Amazon EC2 instances. For more information, see // Preserve client IP addresses in Global Accelerator (https://docs.aws.amazon.com/global-accelerator/latest/dg/preserve-client-ip-address.html) // in the Global Accelerator Developer Guide. ClientIPPreservationEnabled *bool // An ID for the endpoint. If the endpoint is a Network Load Balancer or // Application Load Balancer, this is the Amazon Resource Name (ARN) of the // resource. If the endpoint is an Elastic IP address, this is the Elastic IP // address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. An // Application Load Balancer can be either internal or internet-facing. EndpointId *string // Returns a null result. HealthReason *string // The health status of the endpoint. HealthState HealthState // The weight associated with the endpoint. When you add weights to endpoints, you // configure Global Accelerator to route traffic based on proportions that you // specify. For example, you might specify endpoint weights of 4, 5, 5, and 6 // (sum=20). The result is that 4/20 of your traffic, on average, is routed to the // first endpoint, 5/20 is routed both to the second and third endpoints, and 6/20 // is routed to the last endpoint. For more information, see Endpoint weights (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html) // in the Global Accelerator Developer Guide. Weight *int32 noSmithyDocumentSerde } // A complex type for the endpoint group. An Amazon Web Services Region can have // only one endpoint group for a specific listener. type EndpointGroup struct { // The list of endpoint objects. EndpointDescriptions []EndpointDescription // The Amazon Resource Name (ARN) of the endpoint group. EndpointGroupArn *string // The Amazon Web Services Region where the endpoint group is located. EndpointGroupRegion *string // The time—10 seconds or 30 seconds—between health checks for each endpoint. The // default value is 30. HealthCheckIntervalSeconds *int32 // If the protocol is HTTP/S, then this value provides the ping path that Global // Accelerator uses for the destination on the endpoints for health checks. The // default is slash (/). HealthCheckPath *string // The port that Global Accelerator uses to perform health checks on endpoints // that are part of this endpoint group. The default port is the port for the // listener that this endpoint group is associated with. If the listener port is a // list, Global Accelerator uses the first specified port in the list of ports. HealthCheckPort *int32 // The protocol that Global Accelerator uses to perform health checks on endpoints // that are part of this endpoint group. The default value is TCP. HealthCheckProtocol HealthCheckProtocol // Allows you to override the destination ports used to route traffic to an // endpoint. Using a port override lets you map a list of external destination // ports (that your users send traffic to) to a list of internal destination ports // that you want an application endpoint to receive traffic on. PortOverrides []PortOverride // The number of consecutive health checks required to set the state of a healthy // endpoint to unhealthy, or to set an unhealthy endpoint to healthy. The default // value is 3. ThresholdCount *int32 // The percentage of traffic to send to an Amazon Web Services Region. Additional // traffic is distributed to other endpoint groups for this listener. Use this // action to increase (dial up) or decrease (dial down) traffic to a specific // Region. The percentage is applied to the traffic that would otherwise have been // routed to the Region based on optimal routing. The default value is 100. TrafficDialPercentage *float32 noSmithyDocumentSerde } // A complex type for an endpoint. Specifies information about the endpoint to // remove from the endpoint group. type EndpointIdentifier struct { // An ID for the endpoint. If the endpoint is a Network Load Balancer or // Application Load Balancer, this is the Amazon Resource Name (ARN) of the // resource. If the endpoint is an Elastic IP address, this is the Elastic IP // address allocation ID. For Amazon EC2 instances, this is the EC2 instance ID. An // Application Load Balancer can be either internal or internet-facing. // // This member is required. EndpointId *string // Indicates whether client IP address preservation is enabled for an endpoint. // The value is true or false. If the value is set to true, the client's IP address // is preserved in the X-Forwarded-For request header as traffic travels to // applications on the endpoint fronted by the accelerator. ClientIPPreservationEnabled *bool noSmithyDocumentSerde } // A complex type for the set of IP addresses for an accelerator. type IpSet struct { // The types of IP addresses included in this IP set. IpAddressFamily IpAddressFamily // The array of IP addresses in the IP address set. An IP address set can have a // maximum of two IP addresses. IpAddresses []string // IpFamily is deprecated and has been replaced by IpAddressFamily. // // Deprecated: IpFamily has been replaced by IpAddressFamily IpFamily *string noSmithyDocumentSerde } // A complex type for a listener. type Listener struct { // Client affinity lets you direct all requests from a user to the same endpoint, // if you have stateful applications, regardless of the port and protocol of the // client request. Client affinity gives you control over whether to always route // each client to the same specific endpoint. Global Accelerator uses a // consistent-flow hashing algorithm to choose the optimal endpoint for a // connection. If client affinity is NONE , Global Accelerator uses the // "five-tuple" (5-tuple) properties—source IP address, source port, destination IP // address, destination port, and protocol—to select the hash value, and then // chooses the best endpoint. However, with this setting, if someone uses different // ports to connect to Global Accelerator, their connections might not be always // routed to the same endpoint because the hash value changes. If you want a given // client to always be routed to the same endpoint, set client affinity to // SOURCE_IP instead. When you use the SOURCE_IP setting, Global Accelerator uses // the "two-tuple" (2-tuple) properties— source (client) IP address and destination // IP address—to select the hash value. The default value is NONE . ClientAffinity ClientAffinity // The Amazon Resource Name (ARN) of the listener. ListenerArn *string // The list of port ranges for the connections from clients to the accelerator. PortRanges []PortRange // The protocol for the connections from clients to the accelerator. Protocol Protocol noSmithyDocumentSerde } // Returns the ports and associated IP addresses and ports of Amazon EC2 instances // in your virtual private cloud (VPC) subnets. Custom routing is a port mapping // protocol in Global Accelerator that statically associates port ranges with VPC // subnets, which allows Global Accelerator to route to specific instances and // ports within one or more subnets. type PortMapping struct { // The accelerator port. AcceleratorPort *int32 // The EC2 instance IP address and port number in the virtual private cloud (VPC) // subnet. DestinationSocketAddress *SocketAddress // Indicates whether or not a port mapping destination can receive traffic. The // value is either ALLOW, if traffic is allowed to the destination, or DENY, if // traffic is not allowed to the destination. DestinationTrafficState CustomRoutingDestinationTrafficState // The Amazon Resource Name (ARN) of the endpoint group. EndpointGroupArn *string // The IP address of the VPC subnet (the subnet ID). EndpointId *string // The protocols supported by the endpoint group. Protocols []CustomRoutingProtocol noSmithyDocumentSerde } // Override specific listener ports used to route traffic to endpoints that are // part of an endpoint group. For example, you can create a port override in which // the listener receives user traffic on ports 80 and 443, but your accelerator // routes that traffic to ports 1080 and 1443, respectively, on the endpoints. For // more information, see Overriding listener ports (https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-port-override.html) // in the Global Accelerator Developer Guide. type PortOverride struct { // The endpoint port that you want a listener port to be mapped to. This is the // port on the endpoint, such as the Application Load Balancer or Amazon EC2 // instance. EndpointPort *int32 // The listener port that you want to map to a specific endpoint port. This is the // port that user traffic arrives to the Global Accelerator on. ListenerPort *int32 noSmithyDocumentSerde } // A complex type for a range of ports for a listener. type PortRange struct { // The first port in the range of ports, inclusive. FromPort *int32 // The last port in the range of ports, inclusive. ToPort *int32 noSmithyDocumentSerde } // An IP address/port combination. type SocketAddress struct { // The IP address for the socket address. IpAddress *string // The port for the socket address. Port *int32 noSmithyDocumentSerde } // A complex type that contains a Tag key and Tag value. type Tag struct { // A string that contains a Tag key. // // This member is required. Key *string // A string that contains a Tag value. // // This member is required. Value *string noSmithyDocumentSerde } type noSmithyDocumentSerde = smithydocument.NoSerde