import * as core from "@terrascript/core"; export interface PlayerLatencyPolicyArgs extends core.SchemaArgs { maximumIndividualPlayerLatencyMilliseconds: number | core.NumberOut; policyDurationSeconds?: number | core.NumberOut; } export class PlayerLatencyPolicy extends core.Schema { @core.attr(Number) public maximumIndividualPlayerLatencyMilliseconds!: number | core.NumberOut; @core.attr(Number) public policyDurationSeconds?: number | core.NumberOut; } export interface GameSessionQueueArgs extends core.ResourceArgs { /** * (Optional) List of fleet/alias ARNs used by session queue for placing game sessions. */ destinations?: core.Array | core.ArrayOut; /** * (Required) Name of the session queue. */ name: string | core.StringOut; /** * (Optional) An SNS topic ARN that is set up to receive game session placement notifications. */ notificationTarget?: string | core.StringOut; /** * (Optional) One or more policies used to choose fleet based on player latency. See below. */ playerLatencyPolicy?: | core.Array | core.ArrayOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Required) Maximum time a game session request can remain in the queue. */ timeoutInSeconds?: number | core.NumberOut; } export class GameSessionQueue extends core.Resource { /** * Game Session Queue ARN. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) List of fleet/alias ARNs used by session queue for placing game sessions. */ @core.attr(String, { kind: "array" }) public destinations?: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) Name of the session queue. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) An SNS topic ARN that is set up to receive game session placement notifications. */ @core.attr(String) public notificationTarget?: string | core.StringOut; /** * (Optional) One or more policies used to choose fleet based on player latency. See below. */ @core.attr(PlayerLatencyPolicy, { kind: "array" }) public playerLatencyPolicy?: | core.Array | core.ArrayOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Required) Maximum time a game session request can remain in the queue. */ @core.attr(Number) public timeoutInSeconds?: number | core.NumberOut; constructor(name: string, args?: GameSessionQueueArgs) { super(name, "aws_gamelift_game_session_queue", args); } public override getNamespace(): string { return "aws_gamelift"; } }