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

commonMain.aws.sdk.kotlin.services.gamelift.model.CreateFleetRequest.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.gamelift.model

import aws.smithy.kotlin.runtime.SdkDsl

public class CreateFleetRequest private constructor(builder: Builder) {
    /**
     * Amazon GameLift Anywhere configuration options.
     */
    public val anywhereConfiguration: aws.sdk.kotlin.services.gamelift.model.AnywhereConfiguration? = builder.anywhereConfiguration
    /**
     * The unique identifier for a custom game server build to be deployed to a fleet with compute type `EC2`. You can use either the build ID or ARN. The build must be uploaded to Amazon GameLift and in `READY` status. This fleet property can't be changed after the fleet is created.
     */
    public val buildId: kotlin.String? = builder.buildId
    /**
     * Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet. Amazon GameLift uses the certificates to encrypt traffic between game clients and the game servers running on Amazon GameLift. By default, the `CertificateConfiguration` is `DISABLED`. You can't change this property after you create the fleet.
     *
     * Certificate Manager (ACM) certificates expire after 13 months. Certificate expiration can cause fleets to fail, preventing players from connecting to instances in the fleet. We recommend you replace fleets before 13 months, consider using fleet aliases for a smooth transition.
     *
     * ACM isn't available in all Amazon Web Services regions. A fleet creation request with certificate generation enabled in an unsupported Region, fails with a 4xx error. For more information about the supported Regions, see [Supported Regions](https://docs.aws.amazon.com/acm/latest/userguide/acm-regions.html) in the *Certificate Manager User Guide*.
     */
    public val certificateConfiguration: aws.sdk.kotlin.services.gamelift.model.CertificateConfiguration? = builder.certificateConfiguration
    /**
     * The type of compute resource used to host your game servers.
     * + `EC2` – The game server build is deployed to Amazon EC2 instances for cloud hosting. This is the default setting.
     * + `ANYWHERE` – Your game server and supporting software is deployed to compute resources that are provided and managed by you. With this compute type, you can also set the `AnywhereConfiguration` parameter.
     */
    public val computeType: aws.sdk.kotlin.services.gamelift.model.ComputeType? = builder.computeType
    /**
     * A description for the fleet.
     */
    public val description: kotlin.String? = builder.description
    /**
     * The IP address ranges and port settings that allow inbound traffic to access game server processes and other processes on this fleet. Set this parameter for managed EC2 fleets. You can leave this parameter empty when creating the fleet, but you must call UpdateFleetPortSettings to set it before players can connect to game sessions. As a best practice, we recommend opening ports for remote access only when you need them and closing them when you're finished. For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges.
     */
    public val ec2InboundPermissions: List? = builder.ec2InboundPermissions
    /**
     * The Amazon GameLift-supported Amazon EC2 instance type to use with managed EC2 fleets. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity. See [Amazon Elastic Compute Cloud Instance Types](http://aws.amazon.com/ec2/instance-types/) for detailed descriptions of Amazon EC2 instance types.
     */
    public val ec2InstanceType: aws.sdk.kotlin.services.gamelift.model.Ec2InstanceType? = builder.ec2InstanceType
    /**
     * 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](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot). This fleet property can't be changed after the fleet is created.
     */
    public val fleetType: aws.sdk.kotlin.services.gamelift.model.FleetType? = builder.fleetType
    /**
     * A unique identifier for an IAM role that manages access to your Amazon Web Services 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](https://console.aws.amazon.com/iam/) in the Amazon Web Services Management Console. Learn more about using on-box credentials for your game servers at [ Access external resources from a game server](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html). This fleet property can't be changed after the fleet is created.
     */
    public val instanceRoleArn: kotlin.String? = builder.instanceRoleArn
    /**
     * Prompts Amazon GameLift to generate a shared credentials file for the IAM role that's defined in `InstanceRoleArn`. The shared credentials file is stored on each fleet instance and refreshed as needed. Use shared credentials for applications that are deployed along with the game server executable, if the game server is integrated with server SDK version 5.x. For more information about using shared credentials, see [ Communicate with other Amazon Web Services resources from your fleets](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html).
     */
    public val instanceRoleCredentialsProvider: aws.sdk.kotlin.services.gamelift.model.InstanceRoleCredentialsProvider? = builder.instanceRoleCredentialsProvider
    /**
     * A set of remote locations to deploy additional instances to and manage as a multi-location fleet. Use this parameter when creating a fleet in Amazon Web Services Regions that support multiple locations. You can add any Amazon Web Services Region or Local Zone that's supported by Amazon GameLift. Provide a list of one or more Amazon Web Services Region codes, such as `us-west-2`, or Local Zone names. When using this parameter, Amazon GameLift requires you to include your home location in the request. For a list of supported Regions and Local Zones, see [ Amazon GameLift service locations](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-regions.html) for managed hosting.
     */
    public val locations: List? = builder.locations
    /**
     * **This parameter is no longer used.** To specify where Amazon GameLift should store log files once a server process shuts down, use the Amazon GameLift server API `ProcessReady()` and specify one or more directory paths in `logParameters`. For more information, see [Initialize the server process](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-initialize) in the *Amazon GameLift Developer Guide*.
     */
    public val logPaths: List? = builder.logPaths
    /**
     * The name of an Amazon Web Services 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.
     */
    public val metricGroups: List? = builder.metricGroups
    /**
     * A descriptive label that is associated with a fleet. Fleet names do not need to be unique.
     */
    public val name: kotlin.String? = builder.name
    /**
     * 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](gamelift/latest/apireference/API_UpdateGameSession.html).
     * + **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.
     */
    public val newGameSessionProtectionPolicy: aws.sdk.kotlin.services.gamelift.model.ProtectionPolicy? = builder.newGameSessionProtectionPolicy
    /**
     * Used when peering your Amazon GameLift fleet with a VPC, the unique identifier for the Amazon Web Services account that owns the VPC. You can find your account ID in the Amazon Web Services Management Console under account settings.
     */
    public val peerVpcAwsAccountId: kotlin.String? = builder.peerVpcAwsAccountId
    /**
     * A unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the [VPC Dashboard](https://console.aws.amazon.com/vpc/) in the Amazon Web Services Management Console. Learn more about VPC peering in [VPC Peering with Amazon GameLift Fleets](https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html).
     */
    public val peerVpcId: kotlin.String? = builder.peerVpcId
    /**
     * 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.
     */
    public val resourceCreationLimitPolicy: aws.sdk.kotlin.services.gamelift.model.ResourceCreationLimitPolicy? = builder.resourceCreationLimitPolicy
    /**
     * Instructions for how to launch and run server processes on the fleet. Set runtime configuration for managed EC2 fleets. For an Anywhere fleets, set this parameter only if the fleet is running the Amazon GameLift Agent. The runtime configuration defines one or more server process configurations. Each server process identifies a game executable or Realtime script file and the number of processes to run concurrently.
     *
     * This parameter replaces the parameters `ServerLaunchPath` and `ServerLaunchParameters`, which are still supported for backward compatibility.
     */
    public val runtimeConfiguration: aws.sdk.kotlin.services.gamelift.model.RuntimeConfiguration? = builder.runtimeConfiguration
    /**
     * The unique identifier for a Realtime configuration script to be deployed to a fleet with compute type `EC2`. You can use either the script ID or ARN. Scripts must be uploaded to Amazon GameLift prior to creating the fleet. This fleet property can't be changed after the fleet is created.
     */
    public val scriptId: kotlin.String? = builder.scriptId
    /**
     * **This parameter is no longer used.** Specify server launch parameters using the `RuntimeConfiguration` parameter. Requests that use this parameter instead continue to be valid.
     */
    public val serverLaunchParameters: kotlin.String? = builder.serverLaunchParameters
    /**
     * **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.
     */
    public val serverLaunchPath: kotlin.String? = builder.serverLaunchPath
    /**
     * A list of labels to assign to the new fleet resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see [ Tagging Amazon Web Services Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the *Amazon Web Services General Reference*.
     */
    public val tags: List? = builder.tags

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.gamelift.model.CreateFleetRequest = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("CreateFleetRequest(")
        append("anywhereConfiguration=$anywhereConfiguration,")
        append("buildId=$buildId,")
        append("certificateConfiguration=$certificateConfiguration,")
        append("computeType=$computeType,")
        append("description=$description,")
        append("ec2InboundPermissions=$ec2InboundPermissions,")
        append("ec2InstanceType=$ec2InstanceType,")
        append("fleetType=$fleetType,")
        append("instanceRoleArn=$instanceRoleArn,")
        append("instanceRoleCredentialsProvider=$instanceRoleCredentialsProvider,")
        append("locations=$locations,")
        append("logPaths=$logPaths,")
        append("metricGroups=$metricGroups,")
        append("name=$name,")
        append("newGameSessionProtectionPolicy=$newGameSessionProtectionPolicy,")
        append("peerVpcAwsAccountId=$peerVpcAwsAccountId,")
        append("peerVpcId=$peerVpcId,")
        append("resourceCreationLimitPolicy=$resourceCreationLimitPolicy,")
        append("runtimeConfiguration=$runtimeConfiguration,")
        append("scriptId=$scriptId,")
        append("serverLaunchParameters=$serverLaunchParameters,")
        append("serverLaunchPath=$serverLaunchPath,")
        append("tags=$tags")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = anywhereConfiguration?.hashCode() ?: 0
        result = 31 * result + (buildId?.hashCode() ?: 0)
        result = 31 * result + (certificateConfiguration?.hashCode() ?: 0)
        result = 31 * result + (computeType?.hashCode() ?: 0)
        result = 31 * result + (description?.hashCode() ?: 0)
        result = 31 * result + (ec2InboundPermissions?.hashCode() ?: 0)
        result = 31 * result + (ec2InstanceType?.hashCode() ?: 0)
        result = 31 * result + (fleetType?.hashCode() ?: 0)
        result = 31 * result + (instanceRoleArn?.hashCode() ?: 0)
        result = 31 * result + (instanceRoleCredentialsProvider?.hashCode() ?: 0)
        result = 31 * result + (locations?.hashCode() ?: 0)
        result = 31 * result + (logPaths?.hashCode() ?: 0)
        result = 31 * result + (metricGroups?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (newGameSessionProtectionPolicy?.hashCode() ?: 0)
        result = 31 * result + (peerVpcAwsAccountId?.hashCode() ?: 0)
        result = 31 * result + (peerVpcId?.hashCode() ?: 0)
        result = 31 * result + (resourceCreationLimitPolicy?.hashCode() ?: 0)
        result = 31 * result + (runtimeConfiguration?.hashCode() ?: 0)
        result = 31 * result + (scriptId?.hashCode() ?: 0)
        result = 31 * result + (serverLaunchParameters?.hashCode() ?: 0)
        result = 31 * result + (serverLaunchPath?.hashCode() ?: 0)
        result = 31 * result + (tags?.hashCode() ?: 0)
        return result
    }

    override fun equals(other: kotlin.Any?): kotlin.Boolean {
        if (this === other) return true
        if (other == null || this::class != other::class) return false

        other as CreateFleetRequest

        if (anywhereConfiguration != other.anywhereConfiguration) return false
        if (buildId != other.buildId) return false
        if (certificateConfiguration != other.certificateConfiguration) return false
        if (computeType != other.computeType) return false
        if (description != other.description) return false
        if (ec2InboundPermissions != other.ec2InboundPermissions) return false
        if (ec2InstanceType != other.ec2InstanceType) return false
        if (fleetType != other.fleetType) return false
        if (instanceRoleArn != other.instanceRoleArn) return false
        if (instanceRoleCredentialsProvider != other.instanceRoleCredentialsProvider) return false
        if (locations != other.locations) return false
        if (logPaths != other.logPaths) return false
        if (metricGroups != other.metricGroups) return false
        if (name != other.name) return false
        if (newGameSessionProtectionPolicy != other.newGameSessionProtectionPolicy) return false
        if (peerVpcAwsAccountId != other.peerVpcAwsAccountId) return false
        if (peerVpcId != other.peerVpcId) return false
        if (resourceCreationLimitPolicy != other.resourceCreationLimitPolicy) return false
        if (runtimeConfiguration != other.runtimeConfiguration) return false
        if (scriptId != other.scriptId) return false
        if (serverLaunchParameters != other.serverLaunchParameters) return false
        if (serverLaunchPath != other.serverLaunchPath) return false
        if (tags != other.tags) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.gamelift.model.CreateFleetRequest = Builder(this).apply(block).build()

    @SdkDsl
    public class Builder {
        /**
         * Amazon GameLift Anywhere configuration options.
         */
        public var anywhereConfiguration: aws.sdk.kotlin.services.gamelift.model.AnywhereConfiguration? = null
        /**
         * The unique identifier for a custom game server build to be deployed to a fleet with compute type `EC2`. You can use either the build ID or ARN. The build must be uploaded to Amazon GameLift and in `READY` status. This fleet property can't be changed after the fleet is created.
         */
        public var buildId: kotlin.String? = null
        /**
         * Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet. Amazon GameLift uses the certificates to encrypt traffic between game clients and the game servers running on Amazon GameLift. By default, the `CertificateConfiguration` is `DISABLED`. You can't change this property after you create the fleet.
         *
         * Certificate Manager (ACM) certificates expire after 13 months. Certificate expiration can cause fleets to fail, preventing players from connecting to instances in the fleet. We recommend you replace fleets before 13 months, consider using fleet aliases for a smooth transition.
         *
         * ACM isn't available in all Amazon Web Services regions. A fleet creation request with certificate generation enabled in an unsupported Region, fails with a 4xx error. For more information about the supported Regions, see [Supported Regions](https://docs.aws.amazon.com/acm/latest/userguide/acm-regions.html) in the *Certificate Manager User Guide*.
         */
        public var certificateConfiguration: aws.sdk.kotlin.services.gamelift.model.CertificateConfiguration? = null
        /**
         * The type of compute resource used to host your game servers.
         * + `EC2` – The game server build is deployed to Amazon EC2 instances for cloud hosting. This is the default setting.
         * + `ANYWHERE` – Your game server and supporting software is deployed to compute resources that are provided and managed by you. With this compute type, you can also set the `AnywhereConfiguration` parameter.
         */
        public var computeType: aws.sdk.kotlin.services.gamelift.model.ComputeType? = null
        /**
         * A description for the fleet.
         */
        public var description: kotlin.String? = null
        /**
         * The IP address ranges and port settings that allow inbound traffic to access game server processes and other processes on this fleet. Set this parameter for managed EC2 fleets. You can leave this parameter empty when creating the fleet, but you must call UpdateFleetPortSettings to set it before players can connect to game sessions. As a best practice, we recommend opening ports for remote access only when you need them and closing them when you're finished. For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges.
         */
        public var ec2InboundPermissions: List? = null
        /**
         * The Amazon GameLift-supported Amazon EC2 instance type to use with managed EC2 fleets. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity. See [Amazon Elastic Compute Cloud Instance Types](http://aws.amazon.com/ec2/instance-types/) for detailed descriptions of Amazon EC2 instance types.
         */
        public var ec2InstanceType: aws.sdk.kotlin.services.gamelift.model.Ec2InstanceType? = null
        /**
         * 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](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot). This fleet property can't be changed after the fleet is created.
         */
        public var fleetType: aws.sdk.kotlin.services.gamelift.model.FleetType? = null
        /**
         * A unique identifier for an IAM role that manages access to your Amazon Web Services 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](https://console.aws.amazon.com/iam/) in the Amazon Web Services Management Console. Learn more about using on-box credentials for your game servers at [ Access external resources from a game server](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html). This fleet property can't be changed after the fleet is created.
         */
        public var instanceRoleArn: kotlin.String? = null
        /**
         * Prompts Amazon GameLift to generate a shared credentials file for the IAM role that's defined in `InstanceRoleArn`. The shared credentials file is stored on each fleet instance and refreshed as needed. Use shared credentials for applications that are deployed along with the game server executable, if the game server is integrated with server SDK version 5.x. For more information about using shared credentials, see [ Communicate with other Amazon Web Services resources from your fleets](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html).
         */
        public var instanceRoleCredentialsProvider: aws.sdk.kotlin.services.gamelift.model.InstanceRoleCredentialsProvider? = null
        /**
         * A set of remote locations to deploy additional instances to and manage as a multi-location fleet. Use this parameter when creating a fleet in Amazon Web Services Regions that support multiple locations. You can add any Amazon Web Services Region or Local Zone that's supported by Amazon GameLift. Provide a list of one or more Amazon Web Services Region codes, such as `us-west-2`, or Local Zone names. When using this parameter, Amazon GameLift requires you to include your home location in the request. For a list of supported Regions and Local Zones, see [ Amazon GameLift service locations](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-regions.html) for managed hosting.
         */
        public var locations: List? = null
        /**
         * **This parameter is no longer used.** To specify where Amazon GameLift should store log files once a server process shuts down, use the Amazon GameLift server API `ProcessReady()` and specify one or more directory paths in `logParameters`. For more information, see [Initialize the server process](https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-initialize) in the *Amazon GameLift Developer Guide*.
         */
        public var logPaths: List? = null
        /**
         * The name of an Amazon Web Services 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.
         */
        public var metricGroups: List? = null
        /**
         * A descriptive label that is associated with a fleet. Fleet names do not need to be unique.
         */
        public var name: kotlin.String? = null
        /**
         * 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](gamelift/latest/apireference/API_UpdateGameSession.html).
         * + **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.
         */
        public var newGameSessionProtectionPolicy: aws.sdk.kotlin.services.gamelift.model.ProtectionPolicy? = null
        /**
         * Used when peering your Amazon GameLift fleet with a VPC, the unique identifier for the Amazon Web Services account that owns the VPC. You can find your account ID in the Amazon Web Services Management Console under account settings.
         */
        public var peerVpcAwsAccountId: kotlin.String? = null
        /**
         * A unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the [VPC Dashboard](https://console.aws.amazon.com/vpc/) in the Amazon Web Services Management Console. Learn more about VPC peering in [VPC Peering with Amazon GameLift Fleets](https://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html).
         */
        public var peerVpcId: kotlin.String? = null
        /**
         * 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.
         */
        public var resourceCreationLimitPolicy: aws.sdk.kotlin.services.gamelift.model.ResourceCreationLimitPolicy? = null
        /**
         * Instructions for how to launch and run server processes on the fleet. Set runtime configuration for managed EC2 fleets. For an Anywhere fleets, set this parameter only if the fleet is running the Amazon GameLift Agent. The runtime configuration defines one or more server process configurations. Each server process identifies a game executable or Realtime script file and the number of processes to run concurrently.
         *
         * This parameter replaces the parameters `ServerLaunchPath` and `ServerLaunchParameters`, which are still supported for backward compatibility.
         */
        public var runtimeConfiguration: aws.sdk.kotlin.services.gamelift.model.RuntimeConfiguration? = null
        /**
         * The unique identifier for a Realtime configuration script to be deployed to a fleet with compute type `EC2`. You can use either the script ID or ARN. Scripts must be uploaded to Amazon GameLift prior to creating the fleet. This fleet property can't be changed after the fleet is created.
         */
        public var scriptId: kotlin.String? = null
        /**
         * **This parameter is no longer used.** Specify server launch parameters using the `RuntimeConfiguration` parameter. Requests that use this parameter instead continue to be valid.
         */
        public var serverLaunchParameters: kotlin.String? = null
        /**
         * **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.
         */
        public var serverLaunchPath: kotlin.String? = null
        /**
         * A list of labels to assign to the new fleet resource. Tags are developer-defined key-value pairs. Tagging Amazon Web Services resources are useful for resource management, access management and cost allocation. For more information, see [ Tagging Amazon Web Services Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the *Amazon Web Services General Reference*.
         */
        public var tags: List? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.gamelift.model.CreateFleetRequest) : this() {
            this.anywhereConfiguration = x.anywhereConfiguration
            this.buildId = x.buildId
            this.certificateConfiguration = x.certificateConfiguration
            this.computeType = x.computeType
            this.description = x.description
            this.ec2InboundPermissions = x.ec2InboundPermissions
            this.ec2InstanceType = x.ec2InstanceType
            this.fleetType = x.fleetType
            this.instanceRoleArn = x.instanceRoleArn
            this.instanceRoleCredentialsProvider = x.instanceRoleCredentialsProvider
            this.locations = x.locations
            this.logPaths = x.logPaths
            this.metricGroups = x.metricGroups
            this.name = x.name
            this.newGameSessionProtectionPolicy = x.newGameSessionProtectionPolicy
            this.peerVpcAwsAccountId = x.peerVpcAwsAccountId
            this.peerVpcId = x.peerVpcId
            this.resourceCreationLimitPolicy = x.resourceCreationLimitPolicy
            this.runtimeConfiguration = x.runtimeConfiguration
            this.scriptId = x.scriptId
            this.serverLaunchParameters = x.serverLaunchParameters
            this.serverLaunchPath = x.serverLaunchPath
            this.tags = x.tags
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.gamelift.model.CreateFleetRequest = CreateFleetRequest(this)

        /**
         * construct an [aws.sdk.kotlin.services.gamelift.model.AnywhereConfiguration] inside the given [block]
         */
        public fun anywhereConfiguration(block: aws.sdk.kotlin.services.gamelift.model.AnywhereConfiguration.Builder.() -> kotlin.Unit) {
            this.anywhereConfiguration = aws.sdk.kotlin.services.gamelift.model.AnywhereConfiguration.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.gamelift.model.CertificateConfiguration] inside the given [block]
         */
        public fun certificateConfiguration(block: aws.sdk.kotlin.services.gamelift.model.CertificateConfiguration.Builder.() -> kotlin.Unit) {
            this.certificateConfiguration = aws.sdk.kotlin.services.gamelift.model.CertificateConfiguration.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.gamelift.model.ResourceCreationLimitPolicy] inside the given [block]
         */
        public fun resourceCreationLimitPolicy(block: aws.sdk.kotlin.services.gamelift.model.ResourceCreationLimitPolicy.Builder.() -> kotlin.Unit) {
            this.resourceCreationLimitPolicy = aws.sdk.kotlin.services.gamelift.model.ResourceCreationLimitPolicy.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.gamelift.model.RuntimeConfiguration] inside the given [block]
         */
        public fun runtimeConfiguration(block: aws.sdk.kotlin.services.gamelift.model.RuntimeConfiguration.Builder.() -> kotlin.Unit) {
            this.runtimeConfiguration = aws.sdk.kotlin.services.gamelift.model.RuntimeConfiguration.invoke(block)
        }

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy