class Aws::GameLift::Types::CreateFleetInput

Represents the input for a request operation.

@note When making an API call, you may pass CreateFleetInput

data as a hash:

    {
      name: "NonZeroAndMaxString", # required
      description: "NonZeroAndMaxString",
      build_id: "BuildIdOrArn",
      script_id: "ScriptIdOrArn",
      server_launch_path: "NonZeroAndMaxString",
      server_launch_parameters: "NonZeroAndMaxString",
      log_paths: ["NonZeroAndMaxString"],
      ec2_instance_type: "t2.micro", # required, accepts t2.micro, t2.small, t2.medium, t2.large, c3.large, c3.xlarge, c3.2xlarge, c3.4xlarge, c3.8xlarge, c4.large, c4.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge, c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.12xlarge, c5.18xlarge, c5.24xlarge, c5a.large, c5a.xlarge, c5a.2xlarge, c5a.4xlarge, c5a.8xlarge, c5a.12xlarge, c5a.16xlarge, c5a.24xlarge, r3.large, r3.xlarge, r3.2xlarge, r3.4xlarge, r3.8xlarge, r4.large, r4.xlarge, r4.2xlarge, r4.4xlarge, r4.8xlarge, r4.16xlarge, r5.large, r5.xlarge, r5.2xlarge, r5.4xlarge, r5.8xlarge, r5.12xlarge, r5.16xlarge, r5.24xlarge, r5a.large, r5a.xlarge, r5a.2xlarge, r5a.4xlarge, r5a.8xlarge, r5a.12xlarge, r5a.16xlarge, r5a.24xlarge, m3.medium, m3.large, m3.xlarge, m3.2xlarge, m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.8xlarge, m5.12xlarge, m5.16xlarge, m5.24xlarge, m5a.large, m5a.xlarge, m5a.2xlarge, m5a.4xlarge, m5a.8xlarge, m5a.12xlarge, m5a.16xlarge, m5a.24xlarge
      ec2_inbound_permissions: [
        {
          from_port: 1, # required
          to_port: 1, # required
          ip_range: "NonBlankString", # required
          protocol: "TCP", # required, accepts TCP, UDP
        },
      ],
      new_game_session_protection_policy: "NoProtection", # accepts NoProtection, FullProtection
      runtime_configuration: {
        server_processes: [
          {
            launch_path: "NonZeroAndMaxString", # required
            parameters: "NonZeroAndMaxString",
            concurrent_executions: 1, # required
          },
        ],
        max_concurrent_game_session_activations: 1,
        game_session_activation_timeout_seconds: 1,
      },
      resource_creation_limit_policy: {
        new_game_sessions_per_creator: 1,
        policy_period_in_minutes: 1,
      },
      metric_groups: ["MetricGroup"],
      peer_vpc_aws_account_id: "NonZeroAndMaxString",
      peer_vpc_id: "NonZeroAndMaxString",
      fleet_type: "ON_DEMAND", # accepts ON_DEMAND, SPOT
      instance_role_arn: "NonEmptyString",
      certificate_configuration: {
        certificate_type: "DISABLED", # required, accepts DISABLED, GENERATED
      },
      locations: [
        {
          location: "LocationStringModel",
        },
      ],
      tags: [
        {
          key: "TagKey", # required
          value: "TagValue", # required
        },
      ],
    }

@!attribute [rw] name

A descriptive label that is associated with a fleet. Fleet names do
not need to be unique.
@return [String]

@!attribute [rw] description

A human-readable description of the fleet.
@return [String]

@!attribute [rw] build_id

The unique identifier for a custom game server build to be deployed
on fleet instances. You can use either the build ID or ARN. The
build must be uploaded to GameLift and in `READY` status. This fleet
property cannot be changed later.
@return [String]

@!attribute [rw] script_id

The unique identifier for a Realtime configuration script to be
deployed on fleet instances. You can use either the script ID or
ARN. Scripts must be uploaded to GameLift prior to creating the
fleet. This fleet property cannot be changed later.
@return [String]

@!attribute [rw] server_launch_path

**This parameter is no longer used.** Specify a server launch path
using the `RuntimeConfiguration` parameter. Requests that use this
parameter instead continue to be valid.
@return [String]

@!attribute [rw] server_launch_parameters

**This parameter is no longer used.** Specify server launch
parameters using the `RuntimeConfiguration` parameter. Requests that
use this parameter instead continue to be valid.
@return [String]

@!attribute [rw] log_paths

**This parameter is no longer used.** To specify where GameLift
should store log files once a server process shuts down, use the
GameLift server API `ProcessReady()` and specify one or more
directory paths in `logParameters`. See more information in the
[Server API Reference][1].

[1]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api-ref.html#gamelift-sdk-server-api-ref-dataypes-process
@return [Array<String>]

@!attribute [rw] ec2_instance_type

The GameLift-supported EC2 instance type to use for all fleet
instances. Instance type determines the computing resources that
will be used to host your game servers, including CPU, memory,
storage, and networking capacity. See [Amazon EC2 Instance Types][1]
for detailed descriptions of EC2 instance types.

[1]: http://aws.amazon.com/ec2/instance-types/
@return [String]

@!attribute [rw] ec2_inbound_permissions

The allowed IP address ranges and port settings that allow inbound
traffic to access game sessions on this fleet. If the fleet is
hosting a custom game build, this property must be set before
players can connect to game sessions. For Realtime Servers fleets,
GameLift automatically sets TCP and UDP ranges.
@return [Array<Types::IpPermission>]

@!attribute [rw] new_game_session_protection_policy

The status of termination protection for active game sessions on the
fleet. By default, this property is set to `NoProtection`. You can
also set game session protection for an individual game session by
calling UpdateGameSession.

* **NoProtection** - Game sessions can be terminated during active
  gameplay as a result of a scale-down event.

* **FullProtection** - Game sessions in `ACTIVE` status cannot be
  terminated during a scale-down event.
@return [String]

@!attribute [rw] runtime_configuration

Instructions for how to launch and maintain server processes on
instances in the fleet. The runtime configuration defines one or
more server process configurations, each identifying a build
executable or Realtime script file and the number of processes of
that type to run concurrently.

<note markdown="1"> The `RuntimeConfiguration` parameter is required unless the fleet is
being configured using the older parameters `ServerLaunchPath` and
`ServerLaunchParameters`, which are still supported for backward
compatibility.

 </note>
@return [Types::RuntimeConfiguration]

@!attribute [rw] resource_creation_limit_policy

A policy that limits the number of game sessions that an individual
player can create on instances in this fleet within a specified span
of time.
@return [Types::ResourceCreationLimitPolicy]

@!attribute [rw] metric_groups

The name of an AWS CloudWatch metric group to add this fleet to. A
metric group is used to aggregate the metrics for multiple fleets.
You can specify an existing metric group name or set a new name to
create a new metric group. A fleet can be included in only one
metric group at a time.
@return [Array<String>]

@!attribute [rw] peer_vpc_aws_account_id

Used when peering your GameLift fleet with a VPC, the unique
identifier for the AWS account that owns the VPC. You can find your
account ID in the AWS Management Console under account settings.
@return [String]

@!attribute [rw] peer_vpc_id

A unique identifier for a VPC with resources to be accessed by your
GameLift fleet. The VPC must be in the same Region as your fleet. To
look up a VPC ID, use the [VPC Dashboard][1] in the AWS Management
Console. Learn more about VPC peering in [VPC Peering with GameLift
Fleets][2].

[1]: https://console.aws.amazon.com/vpc/
[2]: https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html
@return [String]

@!attribute [rw] fleet_type

Indicates whether to use On-Demand or Spot instances for this fleet.
By default, this property is set to `ON_DEMAND`. Learn more about
when to use [ On-Demand versus Spot Instances][1]. This property
cannot be changed after the fleet is created.

[1]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot
@return [String]

@!attribute [rw] instance_role_arn

A unique identifier for an AWS IAM role that manages access to your
AWS services. With an instance role ARN set, any application that
runs on an instance in this fleet can assume the role, including
install scripts, server processes, and daemons (background
processes). Create a role or look up a role's ARN by using the [IAM
dashboard][1] in the AWS Management Console. Learn more about using
on-box credentials for your game servers at [ Access external
resources from a game server][2]. This property cannot be changed
after the fleet is created.

[1]: https://console.aws.amazon.com/iam/
[2]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html
@return [String]

@!attribute [rw] certificate_configuration

Prompts GameLift to generate a TLS/SSL certificate for the fleet.
TLS certificates are used for encrypting traffic between game
clients and the game servers that are running on GameLift. By
default, the `CertificateConfiguration` is set to `DISABLED`. Learn
more at [Securing Client/Server Communication][1]. This property
cannot be changed after the fleet is created.

Note: This feature requires the AWS Certificate Manager (ACM)
service, which is not available in all AWS regions. When working in
a region that does not support this feature, a fleet creation
request with certificate generation fails with a 4xx error.

[1]: https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-howitworks.html#gamelift-howitworks-security
@return [Types::CertificateConfiguration]

@!attribute [rw] locations

A set of remote locations to deploy additional instances to and
manage as part of the fleet. This parameter can only be used when
creating fleets in AWS Regions that support multiple locations. You
can add any GameLift-supported AWS Region as a remote location, in
the form of an AWS Region code such as `us-west-2`. To create a
fleet with instances in the home Region only, omit this parameter.
@return [Array<Types::LocationConfiguration>]

@!attribute [rw] tags

A list of labels to assign to the new fleet 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][1] in the *AWS
General Reference*. Once the fleet 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.

[1]: https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html
@return [Array<Types::Tag>]

@see docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateFleetInput AWS API Documentation

Constants

SENSITIVE