/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.gamelift.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* Custom prioritization settings for use by a game session queue when placing new game sessions with available game * servers. When defined, this configuration replaces the default FleetIQ prioritization process, which is as follows: *
** If player latency data is included in a game session request, destinations and locations are prioritized first based * on lowest average latency (1), then on lowest hosting cost (2), then on destination list order (3), and finally on * location (alphabetical) (4). This approach ensures that the queue's top priority is to place game sessions where * average player latency is lowest, and--if latency is the same--where the hosting cost is less, etc. *
** If player latency data is not included, destinations and locations are prioritized first on destination list order * (1), and then on location (alphabetical) (2). This approach ensures that the queue's top priority is to place game * sessions on the first destination fleet listed. If that fleet has multiple locations, the game session is placed on * the first location (when listed alphabetically). *
** Changing the priority order will affect how game sessions are placed. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class PriorityConfiguration implements Serializable, Cloneable, StructuredPojo { /** ** The recommended sequence to use when prioritizing where to place new game sessions. Each type can only be listed * once. *
*
* LATENCY
-- FleetIQ prioritizes locations where the average player latency (provided in each game
* session request) is lowest.
*
* COST
-- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is evaluated
* based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue.
*
* DESTINATION
-- FleetIQ prioritizes based on the order that destinations are listed in the queue
* configuration.
*
* LOCATION
-- FleetIQ prioritizes based on the provided order of locations, as defined in
* LocationOrder
.
*
* The prioritization order to use for fleet locations, when the PriorityOrder
property includes
* LOCATION
. Locations are identified by Amazon Web Services Region codes such as
* us-west-2
. Each location can only be listed once.
*
* The recommended sequence to use when prioritizing where to place new game sessions. Each type can only be listed * once. *
*
* LATENCY
-- FleetIQ prioritizes locations where the average player latency (provided in each game
* session request) is lowest.
*
* COST
-- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is evaluated
* based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue.
*
* DESTINATION
-- FleetIQ prioritizes based on the order that destinations are listed in the queue
* configuration.
*
* LOCATION
-- FleetIQ prioritizes based on the provided order of locations, as defined in
* LocationOrder
.
*
* LATENCY
-- FleetIQ prioritizes locations where the average player latency (provided in each
* game session request) is lowest.
*
* COST
-- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is
* evaluated based on the location, instance type, and fleet type (Spot or On-Demand) for each destination
* in the queue.
*
* DESTINATION
-- FleetIQ prioritizes based on the order that destinations are listed in the
* queue configuration.
*
* LOCATION
-- FleetIQ prioritizes based on the provided order of locations, as defined in
* LocationOrder
.
*
* The recommended sequence to use when prioritizing where to place new game sessions. Each type can only be listed * once. *
*
* LATENCY
-- FleetIQ prioritizes locations where the average player latency (provided in each game
* session request) is lowest.
*
* COST
-- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is evaluated
* based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue.
*
* DESTINATION
-- FleetIQ prioritizes based on the order that destinations are listed in the queue
* configuration.
*
* LOCATION
-- FleetIQ prioritizes based on the provided order of locations, as defined in
* LocationOrder
.
*
* LATENCY
-- FleetIQ prioritizes locations where the average player latency (provided in each
* game session request) is lowest.
*
* COST
-- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is
* evaluated based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in
* the queue.
*
* DESTINATION
-- FleetIQ prioritizes based on the order that destinations are listed in the
* queue configuration.
*
* LOCATION
-- FleetIQ prioritizes based on the provided order of locations, as defined in
* LocationOrder
.
*
* The recommended sequence to use when prioritizing where to place new game sessions. Each type can only be listed * once. *
*
* LATENCY
-- FleetIQ prioritizes locations where the average player latency (provided in each game
* session request) is lowest.
*
* COST
-- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is evaluated
* based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue.
*
* DESTINATION
-- FleetIQ prioritizes based on the order that destinations are listed in the queue
* configuration.
*
* LOCATION
-- FleetIQ prioritizes based on the provided order of locations, as defined in
* LocationOrder
.
*
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setPriorityOrder(java.util.Collection)} or {@link #withPriorityOrder(java.util.Collection)} if you want * to override the existing values. *
* * @param priorityOrder * The recommended sequence to use when prioritizing where to place new game sessions. Each type can only be * listed once. *
* LATENCY
-- FleetIQ prioritizes locations where the average player latency (provided in each
* game session request) is lowest.
*
* COST
-- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is
* evaluated based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in
* the queue.
*
* DESTINATION
-- FleetIQ prioritizes based on the order that destinations are listed in the
* queue configuration.
*
* LOCATION
-- FleetIQ prioritizes based on the provided order of locations, as defined in
* LocationOrder
.
*
* The recommended sequence to use when prioritizing where to place new game sessions. Each type can only be listed * once. *
*
* LATENCY
-- FleetIQ prioritizes locations where the average player latency (provided in each game
* session request) is lowest.
*
* COST
-- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is evaluated
* based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue.
*
* DESTINATION
-- FleetIQ prioritizes based on the order that destinations are listed in the queue
* configuration.
*
* LOCATION
-- FleetIQ prioritizes based on the provided order of locations, as defined in
* LocationOrder
.
*
* LATENCY
-- FleetIQ prioritizes locations where the average player latency (provided in each
* game session request) is lowest.
*
* COST
-- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is
* evaluated based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in
* the queue.
*
* DESTINATION
-- FleetIQ prioritizes based on the order that destinations are listed in the
* queue configuration.
*
* LOCATION
-- FleetIQ prioritizes based on the provided order of locations, as defined in
* LocationOrder
.
*
* The recommended sequence to use when prioritizing where to place new game sessions. Each type can only be listed * once. *
*
* LATENCY
-- FleetIQ prioritizes locations where the average player latency (provided in each game
* session request) is lowest.
*
* COST
-- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is evaluated
* based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in the queue.
*
* DESTINATION
-- FleetIQ prioritizes based on the order that destinations are listed in the queue
* configuration.
*
* LOCATION
-- FleetIQ prioritizes based on the provided order of locations, as defined in
* LocationOrder
.
*
* LATENCY
-- FleetIQ prioritizes locations where the average player latency (provided in each
* game session request) is lowest.
*
* COST
-- FleetIQ prioritizes destinations with the lowest current hosting costs. Cost is
* evaluated based on the location, instance type, and fleet type (Spot or On-Demand) for each destination in
* the queue.
*
* DESTINATION
-- FleetIQ prioritizes based on the order that destinations are listed in the
* queue configuration.
*
* LOCATION
-- FleetIQ prioritizes based on the provided order of locations, as defined in
* LocationOrder
.
*
* The prioritization order to use for fleet locations, when the PriorityOrder
property includes
* LOCATION
. Locations are identified by Amazon Web Services Region codes such as
* us-west-2
. Each location can only be listed once.
*
PriorityOrder
property
* includes LOCATION
. Locations are identified by Amazon Web Services Region codes such as
* us-west-2
. Each location can only be listed once.
*/
public java.util.List
* The prioritization order to use for fleet locations, when the PriorityOrder
property includes
* LOCATION
. Locations are identified by Amazon Web Services Region codes such as
* us-west-2
. Each location can only be listed once.
*
PriorityOrder
property includes
* LOCATION
. Locations are identified by Amazon Web Services Region codes such as
* us-west-2
. Each location can only be listed once.
*/
public void setLocationOrder(java.util.Collection
* The prioritization order to use for fleet locations, when the PriorityOrder
property includes
* LOCATION
. Locations are identified by Amazon Web Services Region codes such as
* us-west-2
. Each location can only be listed once.
*
* NOTE: This method appends the values to the existing list (if any). Use * {@link #setLocationOrder(java.util.Collection)} or {@link #withLocationOrder(java.util.Collection)} if you want * to override the existing values. *
* * @param locationOrder * The prioritization order to use for fleet locations, when thePriorityOrder
property includes
* LOCATION
. Locations are identified by Amazon Web Services Region codes such as
* us-west-2
. Each location can only be listed once.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PriorityConfiguration withLocationOrder(String... locationOrder) {
if (this.locationOrder == null) {
setLocationOrder(new java.util.ArrayList
* The prioritization order to use for fleet locations, when the PriorityOrder
property includes
* LOCATION
. Locations are identified by Amazon Web Services Region codes such as
* us-west-2
. Each location can only be listed once.
*
PriorityOrder
property includes
* LOCATION
. Locations are identified by Amazon Web Services Region codes such as
* us-west-2
. Each location can only be listed once.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PriorityConfiguration withLocationOrder(java.util.Collection