import * as core from "@terrascript/core"; export interface ResourceCreationLimitPolicyArgs extends core.SchemaArgs { newGameSessionsPerCreator?: number | core.NumberOut; policyPeriodInMinutes?: number | core.NumberOut; } export class ResourceCreationLimitPolicy extends core.Schema { @core.attr(Number) public newGameSessionsPerCreator?: number | core.NumberOut; @core.attr(Number) public policyPeriodInMinutes?: number | core.NumberOut; } export interface Ec2InboundPermissionArgs extends core.SchemaArgs { fromPort: number | core.NumberOut; ipRange: string | core.StringOut; protocol: string | core.StringOut; toPort: number | core.NumberOut; } export class Ec2InboundPermission extends core.Schema { @core.attr(Number) public fromPort!: number | core.NumberOut; @core.attr(String) public ipRange!: string | core.StringOut; @core.attr(String) public protocol!: string | core.StringOut; @core.attr(Number) public toPort!: number | core.NumberOut; } export interface ServerProcessArgs extends core.SchemaArgs { concurrentExecutions: number | core.NumberOut; launchPath: string | core.StringOut; parameters?: string | core.StringOut; } export class ServerProcess extends core.Schema { @core.attr(Number) public concurrentExecutions!: number | core.NumberOut; @core.attr(String) public launchPath!: string | core.StringOut; @core.attr(String) public parameters?: string | core.StringOut; } export interface RuntimeConfigurationArgs extends core.SchemaArgs { gameSessionActivationTimeoutSeconds?: number | core.NumberOut; maxConcurrentGameSessionActivations?: number | core.NumberOut; serverProcess?: core.Array | core.ArrayOut; } export class RuntimeConfiguration extends core.Schema { @core.attr(Number) public gameSessionActivationTimeoutSeconds?: number | core.NumberOut; @core.attr(Number) public maxConcurrentGameSessionActivations?: number | core.NumberOut; @core.attr(ServerProcess, { kind: "array" }) public serverProcess?: | core.Array | core.ArrayOut; } export interface CertificateConfigurationArgs extends core.SchemaArgs { certificateType?: string | core.StringOut; } export class CertificateConfiguration extends core.Schema { @core.attr(String) public certificateType?: string | core.StringOut; } export interface FleetArgs extends core.ResourceArgs { /** * (Optional) ID of the GameLift Build to be deployed on the fleet. */ buildId?: string | core.StringOut; /** * (Optional) Prompts GameLift to generate a TLS/SSL certificate for the fleet. See [certificate_config * uration](#certificate_configuration). */ certificateConfiguration?: CertificateConfiguration; /** * (Optional) Human-readable description of the fleet. */ description?: string | core.StringOut; /** * (Optional) Range of IP addresses and port settings that permit inbound traffic to access server proc * esses running on the fleet. See below. */ ec2InboundPermission?: | core.Array | core.ArrayOut; /** * (Required) Name of an EC2 instance typeE.g., `t2.micro` */ ec2InstanceType: string | core.StringOut; /** * (Optional) Type of fleet. This value must be `ON_DEMAND` or `SPOT`. Defaults to `ON_DEMAND`. */ fleetType?: string | core.StringOut; /** * (Optional) ARN of an IAM role that instances in the fleet can assume. */ instanceRoleArn?: string | core.StringOut; /** * (Optional) List of names of metric groups to add this fleet to. A metric group tracks metrics across * all fleets in the group. Defaults to `default`. */ metricGroups?: core.Array | core.ArrayOut; /** * (Required) The name of the fleet. */ name: string | core.StringOut; /** * (Optional) Game session protection policy to apply to all instances in this fleetE.g., `FullProtecti * on`. Defaults to `NoProtection`. */ newGameSessionProtectionPolicy?: string | core.StringOut; /** * (Optional) Policy that limits the number of game sessions an individual player can create over a spa * n of time for this fleet. See below. */ resourceCreationLimitPolicy?: ResourceCreationLimitPolicy; /** * (Optional) Instructions for launching server processes on each instance in the fleet. See below. */ runtimeConfiguration?: RuntimeConfiguration; /** * (Optional) ID of the GameLift Script to be deployed on the fleet. */ scriptId?: string | core.StringOut; /** * (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; } export class Fleet extends core.Resource { /** * Fleet ARN. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Build ARN. */ @core.attr(String, { computed: true }) public buildArn!: string | core.StringOut; /** * (Optional) ID of the GameLift Build to be deployed on the fleet. */ @core.attr(String) public buildId?: string | core.StringOut; /** * (Optional) Prompts GameLift to generate a TLS/SSL certificate for the fleet. See [certificate_config * uration](#certificate_configuration). */ @core.attr(CertificateConfiguration, { computed: true }) public certificateConfiguration?: CertificateConfiguration; /** * (Optional) Human-readable description of the fleet. */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) Range of IP addresses and port settings that permit inbound traffic to access server proc * esses running on the fleet. See below. */ @core.attr(Ec2InboundPermission, { computed: true, kind: "array" }) public ec2InboundPermission?: | core.Array | core.ArrayOut; /** * (Required) Name of an EC2 instance typeE.g., `t2.micro` */ @core.attr(String) public ec2InstanceType!: string | core.StringOut; /** * (Optional) Type of fleet. This value must be `ON_DEMAND` or `SPOT`. Defaults to `ON_DEMAND`. */ @core.attr(String) public fleetType?: string | core.StringOut; /** * Fleet ID. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) ARN of an IAM role that instances in the fleet can assume. */ @core.attr(String) public instanceRoleArn?: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public logPaths!: core.Array | core.ArrayOut; /** * (Optional) List of names of metric groups to add this fleet to. A metric group tracks metrics across * all fleets in the group. Defaults to `default`. */ @core.attr(String, { computed: true, kind: "array" }) public metricGroups?: core.Array | core.ArrayOut; /** * (Required) The name of the fleet. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) Game session protection policy to apply to all instances in this fleetE.g., `FullProtecti * on`. Defaults to `NoProtection`. */ @core.attr(String) public newGameSessionProtectionPolicy?: string | core.StringOut; /** * Operating system of the fleet's computing resources. */ @core.attr(String, { computed: true }) public operatingSystem!: string | core.StringOut; /** * (Optional) Policy that limits the number of game sessions an individual player can create over a spa * n of time for this fleet. See below. */ @core.attr(ResourceCreationLimitPolicy) public resourceCreationLimitPolicy?: ResourceCreationLimitPolicy; /** * (Optional) Instructions for launching server processes on each instance in the fleet. See below. */ @core.attr(RuntimeConfiguration) public runtimeConfiguration?: RuntimeConfiguration; /** * Script ARN. */ @core.attr(String, { computed: true }) public scriptArn!: string | core.StringOut; /** * (Optional) ID of the GameLift Script to be deployed on the fleet. */ @core.attr(String) public scriptId?: string | core.StringOut; /** * (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; constructor(name: string, args?: FleetArgs) { super(name, "aws_gamelift_fleet", args); } public override getNamespace(): string { return "aws_gamelift"; } }