import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * The AWS::GameLift::ContainerFleet resource creates an Amazon GameLift (GameLift) container fleet to host game servers.
 */
export declare class ContainerFleet extends pulumi.CustomResource {
    /**
     * Get an existing ContainerFleet resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): ContainerFleet;
    /**
     * Returns true if the given object is an instance of ContainerFleet.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is ContainerFleet;
    /**
     * Indicates whether to use On-Demand instances or Spot instances for this fleet. If empty, the default is ON_DEMAND. Both categories of instances use identical hardware and configurations based on the instance type selected for this fleet.
     */
    readonly billingType: pulumi.Output<enums.gamelift.ContainerFleetBillingType | undefined>;
    /**
     * A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057").
     */
    readonly creationTime: pulumi.Output<string>;
    /**
     * Set of rules for processing a deployment for a container fleet update.
     */
    readonly deploymentConfiguration: pulumi.Output<outputs.gamelift.ContainerFleetDeploymentConfiguration | undefined>;
    readonly deploymentDetails: pulumi.Output<outputs.gamelift.ContainerFleetDeploymentDetails>;
    /**
     * A human-readable description of a fleet.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container fleet resource and uniquely identifies it across all AWS Regions.
     */
    readonly fleetArn: pulumi.Output<string>;
    /**
     * Unique fleet ID
     */
    readonly fleetId: pulumi.Output<string>;
    /**
     * A unique identifier for an AWS IAM role that manages access to your AWS services. Create a role or look up a role's ARN from the IAM dashboard in the AWS Management Console.
     */
    readonly fleetRoleArn: pulumi.Output<string>;
    /**
     * The Amazon Resource Name (ARN) of the game server container group definition. This field will be empty if GameServerContainerGroupDefinitionName is not specified.
     */
    readonly gameServerContainerGroupDefinitionArn: pulumi.Output<string>;
    /**
     * The name of the container group definition that will be created per game server. You must specify GAME_SERVER container group. You have the option to also specify one PER_INSTANCE container group.
     */
    readonly gameServerContainerGroupDefinitionName: pulumi.Output<string | undefined>;
    /**
     * The number of desired game server container groups per instance, a number between 1-5000.
     */
    readonly gameServerContainerGroupsPerInstance: pulumi.Output<number | undefined>;
    /**
     * A policy that limits the number of game sessions an individual player can create over a span of time for this fleet.
     */
    readonly gameSessionCreationLimitPolicy: pulumi.Output<outputs.gamelift.ContainerFleetGameSessionCreationLimitPolicy | undefined>;
    /**
     * The set of port numbers to open on each instance in a container fleet. Connection ports are used by inbound traffic to connect with processes that are running in containers on the fleet.
     */
    readonly instanceConnectionPortRange: pulumi.Output<outputs.gamelift.ContainerFleetConnectionPortRange | undefined>;
    /**
     * A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an Amazon GameLift server.
     */
    readonly instanceInboundPermissions: pulumi.Output<outputs.gamelift.ContainerFleetIpPermission[] | undefined>;
    /**
     * The name of an EC2 instance type that is supported in Amazon GameLift. A fleet instance type determines the computing resources of each instance in the fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift supports the following EC2 instance types. See Amazon EC2 Instance Types for detailed descriptions.
     */
    readonly instanceType: pulumi.Output<string | undefined>;
    readonly locations: pulumi.Output<outputs.gamelift.ContainerFleetLocationConfiguration[] | undefined>;
    /**
     * The method that is used to collect container logs for the fleet. Amazon GameLift Servers saves all standard output for each container in logs, including game session logs.
     *
     * - `CLOUDWATCH` -- Send logs to an Amazon CloudWatch log group that you define. Each container emits a log stream, which is organized in the log group.
     * - `S3` -- Store logs in an Amazon S3 bucket that you define.
     * - `NONE` -- Don't collect container logs.
     */
    readonly logConfiguration: pulumi.Output<outputs.gamelift.ContainerFleetLogConfiguration | undefined>;
    /**
     * The maximum number of game server container groups per instance, a number between 1-5000.
     */
    readonly maximumGameServerContainerGroupsPerInstance: pulumi.Output<number>;
    /**
     * The name of an Amazon CloudWatch metric group. A metric group aggregates the metrics for all fleets in the group. Specify a string containing the metric group name. You can use an existing name or use a new name to create a new metric group. Currently, this parameter can have only one string.
     */
    readonly metricGroups: pulumi.Output<string[] | undefined>;
    /**
     * A game session protection policy to apply to all game sessions hosted on instances in this fleet. When protected, active game sessions cannot be terminated during a scale-down event. If this parameter is not set, instances in this fleet default to no protection. You can change a fleet's protection policy to affect future game sessions on the fleet. You can also set protection for individual game sessions.
     */
    readonly newGameSessionProtectionPolicy: pulumi.Output<enums.gamelift.ContainerFleetNewGameSessionProtectionPolicy | undefined>;
    /**
     * The Amazon Resource Name (ARN) of the per instance container group definition. This field will be empty if PerInstanceContainerGroupDefinitionName is not specified.
     */
    readonly perInstanceContainerGroupDefinitionArn: pulumi.Output<string>;
    /**
     * The name of the container group definition that will be created per instance. This field is optional if you specify GameServerContainerGroupDefinitionName.
     */
    readonly perInstanceContainerGroupDefinitionName: pulumi.Output<string | undefined>;
    /**
     * A list of rules that control how a fleet is scaled.
     */
    readonly scalingPolicies: pulumi.Output<outputs.gamelift.ContainerFleetScalingPolicy[] | undefined>;
    /**
     * The current status of the container fleet.
     */
    readonly status: pulumi.Output<enums.gamelift.ContainerFleetStatus>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * Create a ContainerFleet resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: ContainerFleetArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a ContainerFleet resource.
 */
export interface ContainerFleetArgs {
    /**
     * Indicates whether to use On-Demand instances or Spot instances for this fleet. If empty, the default is ON_DEMAND. Both categories of instances use identical hardware and configurations based on the instance type selected for this fleet.
     */
    billingType?: pulumi.Input<enums.gamelift.ContainerFleetBillingType>;
    /**
     * Set of rules for processing a deployment for a container fleet update.
     */
    deploymentConfiguration?: pulumi.Input<inputs.gamelift.ContainerFleetDeploymentConfigurationArgs>;
    /**
     * A human-readable description of a fleet.
     */
    description?: pulumi.Input<string>;
    /**
     * A unique identifier for an AWS IAM role that manages access to your AWS services. Create a role or look up a role's ARN from the IAM dashboard in the AWS Management Console.
     */
    fleetRoleArn: pulumi.Input<string>;
    /**
     * The name of the container group definition that will be created per game server. You must specify GAME_SERVER container group. You have the option to also specify one PER_INSTANCE container group.
     */
    gameServerContainerGroupDefinitionName?: pulumi.Input<string>;
    /**
     * The number of desired game server container groups per instance, a number between 1-5000.
     */
    gameServerContainerGroupsPerInstance?: pulumi.Input<number>;
    /**
     * A policy that limits the number of game sessions an individual player can create over a span of time for this fleet.
     */
    gameSessionCreationLimitPolicy?: pulumi.Input<inputs.gamelift.ContainerFleetGameSessionCreationLimitPolicyArgs>;
    /**
     * The set of port numbers to open on each instance in a container fleet. Connection ports are used by inbound traffic to connect with processes that are running in containers on the fleet.
     */
    instanceConnectionPortRange?: pulumi.Input<inputs.gamelift.ContainerFleetConnectionPortRangeArgs>;
    /**
     * A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an Amazon GameLift server.
     */
    instanceInboundPermissions?: pulumi.Input<pulumi.Input<inputs.gamelift.ContainerFleetIpPermissionArgs>[]>;
    /**
     * The name of an EC2 instance type that is supported in Amazon GameLift. A fleet instance type determines the computing resources of each instance in the fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift supports the following EC2 instance types. See Amazon EC2 Instance Types for detailed descriptions.
     */
    instanceType?: pulumi.Input<string>;
    locations?: pulumi.Input<pulumi.Input<inputs.gamelift.ContainerFleetLocationConfigurationArgs>[]>;
    /**
     * The method that is used to collect container logs for the fleet. Amazon GameLift Servers saves all standard output for each container in logs, including game session logs.
     *
     * - `CLOUDWATCH` -- Send logs to an Amazon CloudWatch log group that you define. Each container emits a log stream, which is organized in the log group.
     * - `S3` -- Store logs in an Amazon S3 bucket that you define.
     * - `NONE` -- Don't collect container logs.
     */
    logConfiguration?: pulumi.Input<inputs.gamelift.ContainerFleetLogConfigurationArgs>;
    /**
     * The name of an Amazon CloudWatch metric group. A metric group aggregates the metrics for all fleets in the group. Specify a string containing the metric group name. You can use an existing name or use a new name to create a new metric group. Currently, this parameter can have only one string.
     */
    metricGroups?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * A game session protection policy to apply to all game sessions hosted on instances in this fleet. When protected, active game sessions cannot be terminated during a scale-down event. If this parameter is not set, instances in this fleet default to no protection. You can change a fleet's protection policy to affect future game sessions on the fleet. You can also set protection for individual game sessions.
     */
    newGameSessionProtectionPolicy?: pulumi.Input<enums.gamelift.ContainerFleetNewGameSessionProtectionPolicy>;
    /**
     * The name of the container group definition that will be created per instance. This field is optional if you specify GameServerContainerGroupDefinitionName.
     */
    perInstanceContainerGroupDefinitionName?: pulumi.Input<string>;
    /**
     * A list of rules that control how a fleet is scaled.
     */
    scalingPolicies?: pulumi.Input<pulumi.Input<inputs.gamelift.ContainerFleetScalingPolicyArgs>[]>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
}
