All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.cloudshiftdev.awscdk.services.gamelift.CfnGameSessionQueueProps.kt Maven / Gradle / Ivy

The newest version!
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")

package io.cloudshiftdev.awscdk.services.gamelift

import io.cloudshiftdev.awscdk.CfnTag
import io.cloudshiftdev.awscdk.IResolvable
import io.cloudshiftdev.awscdk.common.CdkDslMarker
import io.cloudshiftdev.awscdk.common.CdkObject
import io.cloudshiftdev.awscdk.common.CdkObjectWrappers
import kotlin.Any
import kotlin.Number
import kotlin.String
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Properties for defining a `CfnGameSessionQueue`.
 *
 * Example:
 *
 * ```
 * // The code below shows an example of how to instantiate this type.
 * // The values are placeholders you should change.
 * import io.cloudshiftdev.awscdk.services.gamelift.*;
 * CfnGameSessionQueueProps cfnGameSessionQueueProps = CfnGameSessionQueueProps.builder()
 * .name("name")
 * // the properties below are optional
 * .customEventData("customEventData")
 * .destinations(List.of(DestinationProperty.builder()
 * .destinationArn("destinationArn")
 * .build()))
 * .filterConfiguration(FilterConfigurationProperty.builder()
 * .allowedLocations(List.of("allowedLocations"))
 * .build())
 * .notificationTarget("notificationTarget")
 * .playerLatencyPolicies(List.of(PlayerLatencyPolicyProperty.builder()
 * .maximumIndividualPlayerLatencyMilliseconds(123)
 * .policyDurationSeconds(123)
 * .build()))
 * .priorityConfiguration(PriorityConfigurationProperty.builder()
 * .locationOrder(List.of("locationOrder"))
 * .priorityOrder(List.of("priorityOrder"))
 * .build())
 * .tags(List.of(CfnTag.builder()
 * .key("key")
 * .value("value")
 * .build()))
 * .timeoutInSeconds(123)
 * .build();
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html)
 */
public interface CfnGameSessionQueueProps {
  /**
   * Information to be added to all events that are related to this game session queue.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-customeventdata)
   */
  public fun customEventData(): String? = unwrap(this).getCustomEventData()

  /**
   * A list of fleets and/or fleet aliases that can be used to fulfill game session placement
   * requests in the queue.
   *
   * Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in order
   * of placement preference.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-destinations)
   */
  public fun destinations(): Any? = unwrap(this).getDestinations()

  /**
   * A list of locations where a queue is allowed to place new game sessions.
   *
   * Locations are specified in the form of AWS Region codes, such as `us-west-2` . If this
   * parameter is not set, game sessions can be placed in any queue location.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-filterconfiguration)
   */
  public fun filterConfiguration(): Any? = unwrap(this).getFilterConfiguration()

  /**
   * A descriptive label that is associated with game session queue.
   *
   * Queue names must be unique within each Region.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-name)
   */
  public fun name(): String

  /**
   * An SNS topic ARN that is set up to receive game session placement notifications.
   *
   * See [Setting up notifications for game session
   * placement](https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html) .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-notificationtarget)
   */
  public fun notificationTarget(): String? = unwrap(this).getNotificationTarget()

  /**
   * A set of policies that act as a sliding cap on player latency.
   *
   * FleetIQ works to deliver low latency for most players in a game session. These policies ensure
   * that no individual player can be placed into a game with unreasonably high latency. Use multiple
   * policies to gradually relax latency requirements a step at a time. Multiple policies are applied
   * based on their maximum allowed latency, starting with the lowest value.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-playerlatencypolicies)
   */
  public fun playerLatencyPolicies(): Any? = unwrap(this).getPlayerLatencyPolicies()

  /**
   * Custom settings to use when prioritizing destinations and locations for game session
   * placements.
   *
   * This configuration replaces the FleetIQ default prioritization process. Priority types that are
   * not explicitly named will be automatically applied at the end of the prioritization process.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-priorityconfiguration)
   */
  public fun priorityConfiguration(): Any? = unwrap(this).getPriorityConfiguration()

  /**
   * A list of labels to assign to the new game session queue resource.
   *
   * Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource
   * management, access management and cost allocation. For more information, see [Tagging AWS
   * Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the *AWS General
   * Reference* . Once the resource is created, you can use TagResource, UntagResource, and
   * ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated.
   * See the AWS General Reference for actual tagging limits.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-tags)
   */
  public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

  /**
   * The maximum time, in seconds, that a new game session placement request remains in the queue.
   *
   * When a request exceeds this time, the game session placement changes to a `TIMED_OUT` status.
   * By default, this property is set to `600` .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-timeoutinseconds)
   */
  public fun timeoutInSeconds(): Number? = unwrap(this).getTimeoutInSeconds()

  /**
   * A builder for [CfnGameSessionQueueProps]
   */
  @CdkDslMarker
  public interface Builder {
    /**
     * @param customEventData Information to be added to all events that are related to this game
     * session queue.
     */
    public fun customEventData(customEventData: String)

    /**
     * @param destinations A list of fleets and/or fleet aliases that can be used to fulfill game
     * session placement requests in the queue.
     * Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in
     * order of placement preference.
     */
    public fun destinations(destinations: IResolvable)

    /**
     * @param destinations A list of fleets and/or fleet aliases that can be used to fulfill game
     * session placement requests in the queue.
     * Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in
     * order of placement preference.
     */
    public fun destinations(destinations: List)

    /**
     * @param destinations A list of fleets and/or fleet aliases that can be used to fulfill game
     * session placement requests in the queue.
     * Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in
     * order of placement preference.
     */
    public fun destinations(vararg destinations: Any)

    /**
     * @param filterConfiguration A list of locations where a queue is allowed to place new game
     * sessions.
     * Locations are specified in the form of AWS Region codes, such as `us-west-2` . If this
     * parameter is not set, game sessions can be placed in any queue location.
     */
    public fun filterConfiguration(filterConfiguration: IResolvable)

    /**
     * @param filterConfiguration A list of locations where a queue is allowed to place new game
     * sessions.
     * Locations are specified in the form of AWS Region codes, such as `us-west-2` . If this
     * parameter is not set, game sessions can be placed in any queue location.
     */
    public
        fun filterConfiguration(filterConfiguration: CfnGameSessionQueue.FilterConfigurationProperty)

    /**
     * @param filterConfiguration A list of locations where a queue is allowed to place new game
     * sessions.
     * Locations are specified in the form of AWS Region codes, such as `us-west-2` . If this
     * parameter is not set, game sessions can be placed in any queue location.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("7ee629f678dc10d378126b98cf23a19aec2e85b6dd1c79670aa81dfc33559e5e")
    public
        fun filterConfiguration(filterConfiguration: CfnGameSessionQueue.FilterConfigurationProperty.Builder.() -> Unit)

    /**
     * @param name A descriptive label that is associated with game session queue. 
     * Queue names must be unique within each Region.
     */
    public fun name(name: String)

    /**
     * @param notificationTarget An SNS topic ARN that is set up to receive game session placement
     * notifications.
     * See [Setting up notifications for game session
     * placement](https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html) .
     */
    public fun notificationTarget(notificationTarget: String)

    /**
     * @param playerLatencyPolicies A set of policies that act as a sliding cap on player latency.
     * FleetIQ works to deliver low latency for most players in a game session. These policies
     * ensure that no individual player can be placed into a game with unreasonably high latency. Use
     * multiple policies to gradually relax latency requirements a step at a time. Multiple policies
     * are applied based on their maximum allowed latency, starting with the lowest value.
     */
    public fun playerLatencyPolicies(playerLatencyPolicies: IResolvable)

    /**
     * @param playerLatencyPolicies A set of policies that act as a sliding cap on player latency.
     * FleetIQ works to deliver low latency for most players in a game session. These policies
     * ensure that no individual player can be placed into a game with unreasonably high latency. Use
     * multiple policies to gradually relax latency requirements a step at a time. Multiple policies
     * are applied based on their maximum allowed latency, starting with the lowest value.
     */
    public fun playerLatencyPolicies(playerLatencyPolicies: List)

    /**
     * @param playerLatencyPolicies A set of policies that act as a sliding cap on player latency.
     * FleetIQ works to deliver low latency for most players in a game session. These policies
     * ensure that no individual player can be placed into a game with unreasonably high latency. Use
     * multiple policies to gradually relax latency requirements a step at a time. Multiple policies
     * are applied based on their maximum allowed latency, starting with the lowest value.
     */
    public fun playerLatencyPolicies(vararg playerLatencyPolicies: Any)

    /**
     * @param priorityConfiguration Custom settings to use when prioritizing destinations and
     * locations for game session placements.
     * This configuration replaces the FleetIQ default prioritization process. Priority types that
     * are not explicitly named will be automatically applied at the end of the prioritization process.
     */
    public fun priorityConfiguration(priorityConfiguration: IResolvable)

    /**
     * @param priorityConfiguration Custom settings to use when prioritizing destinations and
     * locations for game session placements.
     * This configuration replaces the FleetIQ default prioritization process. Priority types that
     * are not explicitly named will be automatically applied at the end of the prioritization process.
     */
    public
        fun priorityConfiguration(priorityConfiguration: CfnGameSessionQueue.PriorityConfigurationProperty)

    /**
     * @param priorityConfiguration Custom settings to use when prioritizing destinations and
     * locations for game session placements.
     * This configuration replaces the FleetIQ default prioritization process. Priority types that
     * are not explicitly named will be automatically applied at the end of the prioritization process.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("54230d7209758eb9ffae19555357a8734a2df16adec9c256d744ecff7c0bef91")
    public
        fun priorityConfiguration(priorityConfiguration: CfnGameSessionQueue.PriorityConfigurationProperty.Builder.() -> Unit)

    /**
     * @param tags A list of labels to assign to the new game session queue resource.
     * Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource
     * management, access management and cost allocation. For more information, see [Tagging AWS
     * Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the *AWS General
     * Reference* . Once the resource is created, you can use TagResource, UntagResource, and
     * ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than
     * stated. See the AWS General Reference for actual tagging limits.
     */
    public fun tags(tags: List)

    /**
     * @param tags A list of labels to assign to the new game session queue resource.
     * Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource
     * management, access management and cost allocation. For more information, see [Tagging AWS
     * Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the *AWS General
     * Reference* . Once the resource is created, you can use TagResource, UntagResource, and
     * ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than
     * stated. See the AWS General Reference for actual tagging limits.
     */
    public fun tags(vararg tags: CfnTag)

    /**
     * @param timeoutInSeconds The maximum time, in seconds, that a new game session placement
     * request remains in the queue.
     * When a request exceeds this time, the game session placement changes to a `TIMED_OUT` status.
     * By default, this property is set to `600` .
     */
    public fun timeoutInSeconds(timeoutInSeconds: Number)
  }

  private class BuilderImpl : Builder {
    private val cdkBuilder:
        software.amazon.awscdk.services.gamelift.CfnGameSessionQueueProps.Builder =
        software.amazon.awscdk.services.gamelift.CfnGameSessionQueueProps.builder()

    /**
     * @param customEventData Information to be added to all events that are related to this game
     * session queue.
     */
    override fun customEventData(customEventData: String) {
      cdkBuilder.customEventData(customEventData)
    }

    /**
     * @param destinations A list of fleets and/or fleet aliases that can be used to fulfill game
     * session placement requests in the queue.
     * Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in
     * order of placement preference.
     */
    override fun destinations(destinations: IResolvable) {
      cdkBuilder.destinations(destinations.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param destinations A list of fleets and/or fleet aliases that can be used to fulfill game
     * session placement requests in the queue.
     * Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in
     * order of placement preference.
     */
    override fun destinations(destinations: List) {
      cdkBuilder.destinations(destinations.map{CdkObjectWrappers.unwrap(it)})
    }

    /**
     * @param destinations A list of fleets and/or fleet aliases that can be used to fulfill game
     * session placement requests in the queue.
     * Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in
     * order of placement preference.
     */
    override fun destinations(vararg destinations: Any): Unit = destinations(destinations.toList())

    /**
     * @param filterConfiguration A list of locations where a queue is allowed to place new game
     * sessions.
     * Locations are specified in the form of AWS Region codes, such as `us-west-2` . If this
     * parameter is not set, game sessions can be placed in any queue location.
     */
    override fun filterConfiguration(filterConfiguration: IResolvable) {
      cdkBuilder.filterConfiguration(filterConfiguration.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param filterConfiguration A list of locations where a queue is allowed to place new game
     * sessions.
     * Locations are specified in the form of AWS Region codes, such as `us-west-2` . If this
     * parameter is not set, game sessions can be placed in any queue location.
     */
    override
        fun filterConfiguration(filterConfiguration: CfnGameSessionQueue.FilterConfigurationProperty) {
      cdkBuilder.filterConfiguration(filterConfiguration.let(CfnGameSessionQueue.FilterConfigurationProperty.Companion::unwrap))
    }

    /**
     * @param filterConfiguration A list of locations where a queue is allowed to place new game
     * sessions.
     * Locations are specified in the form of AWS Region codes, such as `us-west-2` . If this
     * parameter is not set, game sessions can be placed in any queue location.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("7ee629f678dc10d378126b98cf23a19aec2e85b6dd1c79670aa81dfc33559e5e")
    override
        fun filterConfiguration(filterConfiguration: CfnGameSessionQueue.FilterConfigurationProperty.Builder.() -> Unit):
        Unit =
        filterConfiguration(CfnGameSessionQueue.FilterConfigurationProperty(filterConfiguration))

    /**
     * @param name A descriptive label that is associated with game session queue. 
     * Queue names must be unique within each Region.
     */
    override fun name(name: String) {
      cdkBuilder.name(name)
    }

    /**
     * @param notificationTarget An SNS topic ARN that is set up to receive game session placement
     * notifications.
     * See [Setting up notifications for game session
     * placement](https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html) .
     */
    override fun notificationTarget(notificationTarget: String) {
      cdkBuilder.notificationTarget(notificationTarget)
    }

    /**
     * @param playerLatencyPolicies A set of policies that act as a sliding cap on player latency.
     * FleetIQ works to deliver low latency for most players in a game session. These policies
     * ensure that no individual player can be placed into a game with unreasonably high latency. Use
     * multiple policies to gradually relax latency requirements a step at a time. Multiple policies
     * are applied based on their maximum allowed latency, starting with the lowest value.
     */
    override fun playerLatencyPolicies(playerLatencyPolicies: IResolvable) {
      cdkBuilder.playerLatencyPolicies(playerLatencyPolicies.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param playerLatencyPolicies A set of policies that act as a sliding cap on player latency.
     * FleetIQ works to deliver low latency for most players in a game session. These policies
     * ensure that no individual player can be placed into a game with unreasonably high latency. Use
     * multiple policies to gradually relax latency requirements a step at a time. Multiple policies
     * are applied based on their maximum allowed latency, starting with the lowest value.
     */
    override fun playerLatencyPolicies(playerLatencyPolicies: List) {
      cdkBuilder.playerLatencyPolicies(playerLatencyPolicies.map{CdkObjectWrappers.unwrap(it)})
    }

    /**
     * @param playerLatencyPolicies A set of policies that act as a sliding cap on player latency.
     * FleetIQ works to deliver low latency for most players in a game session. These policies
     * ensure that no individual player can be placed into a game with unreasonably high latency. Use
     * multiple policies to gradually relax latency requirements a step at a time. Multiple policies
     * are applied based on their maximum allowed latency, starting with the lowest value.
     */
    override fun playerLatencyPolicies(vararg playerLatencyPolicies: Any): Unit =
        playerLatencyPolicies(playerLatencyPolicies.toList())

    /**
     * @param priorityConfiguration Custom settings to use when prioritizing destinations and
     * locations for game session placements.
     * This configuration replaces the FleetIQ default prioritization process. Priority types that
     * are not explicitly named will be automatically applied at the end of the prioritization process.
     */
    override fun priorityConfiguration(priorityConfiguration: IResolvable) {
      cdkBuilder.priorityConfiguration(priorityConfiguration.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param priorityConfiguration Custom settings to use when prioritizing destinations and
     * locations for game session placements.
     * This configuration replaces the FleetIQ default prioritization process. Priority types that
     * are not explicitly named will be automatically applied at the end of the prioritization process.
     */
    override
        fun priorityConfiguration(priorityConfiguration: CfnGameSessionQueue.PriorityConfigurationProperty) {
      cdkBuilder.priorityConfiguration(priorityConfiguration.let(CfnGameSessionQueue.PriorityConfigurationProperty.Companion::unwrap))
    }

    /**
     * @param priorityConfiguration Custom settings to use when prioritizing destinations and
     * locations for game session placements.
     * This configuration replaces the FleetIQ default prioritization process. Priority types that
     * are not explicitly named will be automatically applied at the end of the prioritization process.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("54230d7209758eb9ffae19555357a8734a2df16adec9c256d744ecff7c0bef91")
    override
        fun priorityConfiguration(priorityConfiguration: CfnGameSessionQueue.PriorityConfigurationProperty.Builder.() -> Unit):
        Unit =
        priorityConfiguration(CfnGameSessionQueue.PriorityConfigurationProperty(priorityConfiguration))

    /**
     * @param tags A list of labels to assign to the new game session queue resource.
     * Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource
     * management, access management and cost allocation. For more information, see [Tagging AWS
     * Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the *AWS General
     * Reference* . Once the resource is created, you can use TagResource, UntagResource, and
     * ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than
     * stated. See the AWS General Reference for actual tagging limits.
     */
    override fun tags(tags: List) {
      cdkBuilder.tags(tags.map(CfnTag.Companion::unwrap))
    }

    /**
     * @param tags A list of labels to assign to the new game session queue resource.
     * Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource
     * management, access management and cost allocation. For more information, see [Tagging AWS
     * Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the *AWS General
     * Reference* . Once the resource is created, you can use TagResource, UntagResource, and
     * ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than
     * stated. See the AWS General Reference for actual tagging limits.
     */
    override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList())

    /**
     * @param timeoutInSeconds The maximum time, in seconds, that a new game session placement
     * request remains in the queue.
     * When a request exceeds this time, the game session placement changes to a `TIMED_OUT` status.
     * By default, this property is set to `600` .
     */
    override fun timeoutInSeconds(timeoutInSeconds: Number) {
      cdkBuilder.timeoutInSeconds(timeoutInSeconds)
    }

    public fun build(): software.amazon.awscdk.services.gamelift.CfnGameSessionQueueProps =
        cdkBuilder.build()
  }

  private class Wrapper(
    cdkObject: software.amazon.awscdk.services.gamelift.CfnGameSessionQueueProps,
  ) : CdkObject(cdkObject),
      CfnGameSessionQueueProps {
    /**
     * Information to be added to all events that are related to this game session queue.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-customeventdata)
     */
    override fun customEventData(): String? = unwrap(this).getCustomEventData()

    /**
     * A list of fleets and/or fleet aliases that can be used to fulfill game session placement
     * requests in the queue.
     *
     * Destinations are identified by either a fleet ARN or a fleet alias ARN, and are listed in
     * order of placement preference.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-destinations)
     */
    override fun destinations(): Any? = unwrap(this).getDestinations()

    /**
     * A list of locations where a queue is allowed to place new game sessions.
     *
     * Locations are specified in the form of AWS Region codes, such as `us-west-2` . If this
     * parameter is not set, game sessions can be placed in any queue location.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-filterconfiguration)
     */
    override fun filterConfiguration(): Any? = unwrap(this).getFilterConfiguration()

    /**
     * A descriptive label that is associated with game session queue.
     *
     * Queue names must be unique within each Region.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-name)
     */
    override fun name(): String = unwrap(this).getName()

    /**
     * An SNS topic ARN that is set up to receive game session placement notifications.
     *
     * See [Setting up notifications for game session
     * placement](https://docs.aws.amazon.com/gamelift/latest/developerguide/queue-notification.html) .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-notificationtarget)
     */
    override fun notificationTarget(): String? = unwrap(this).getNotificationTarget()

    /**
     * A set of policies that act as a sliding cap on player latency.
     *
     * FleetIQ works to deliver low latency for most players in a game session. These policies
     * ensure that no individual player can be placed into a game with unreasonably high latency. Use
     * multiple policies to gradually relax latency requirements a step at a time. Multiple policies
     * are applied based on their maximum allowed latency, starting with the lowest value.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-playerlatencypolicies)
     */
    override fun playerLatencyPolicies(): Any? = unwrap(this).getPlayerLatencyPolicies()

    /**
     * Custom settings to use when prioritizing destinations and locations for game session
     * placements.
     *
     * This configuration replaces the FleetIQ default prioritization process. Priority types that
     * are not explicitly named will be automatically applied at the end of the prioritization process.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-priorityconfiguration)
     */
    override fun priorityConfiguration(): Any? = unwrap(this).getPriorityConfiguration()

    /**
     * A list of labels to assign to the new game session queue resource.
     *
     * Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource
     * management, access management and cost allocation. For more information, see [Tagging AWS
     * Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the *AWS General
     * Reference* . Once the resource is created, you can use TagResource, UntagResource, and
     * ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than
     * stated. See the AWS General Reference for actual tagging limits.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-tags)
     */
    override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

    /**
     * The maximum time, in seconds, that a new game session placement request remains in the queue.
     *
     * When a request exceeds this time, the game session placement changes to a `TIMED_OUT` status.
     * By default, this property is set to `600` .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-timeoutinseconds)
     */
    override fun timeoutInSeconds(): Number? = unwrap(this).getTimeoutInSeconds()
  }

  public companion object {
    public operator fun invoke(block: Builder.() -> Unit = {}): CfnGameSessionQueueProps {
      val builderImpl = BuilderImpl()
      return Wrapper(builderImpl.apply(block).build())
    }

    internal fun wrap(cdkObject: software.amazon.awscdk.services.gamelift.CfnGameSessionQueueProps):
        CfnGameSessionQueueProps = CdkObjectWrappers.wrap(cdkObject) as? CfnGameSessionQueueProps ?:
        Wrapper(cdkObject)

    internal fun unwrap(wrapped: CfnGameSessionQueueProps):
        software.amazon.awscdk.services.gamelift.CfnGameSessionQueueProps = (wrapped as
        CdkObject).cdkObject as software.amazon.awscdk.services.gamelift.CfnGameSessionQueueProps
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy