/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.appstream.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateFleetRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* A unique name for the fleet. *

*/ private String name; /** *

* The name of the image used to create the fleet. *

*/ private String imageName; /** *

* The ARN of the public, private, or shared image to use. *

*/ private String imageArn; /** *

* The instance type to use when launching fleet instances. The following instance types are available: *

* *

* The following instance types are available for Elastic fleets: *

* */ private String instanceType; /** *

* The fleet type. *

*
*
ALWAYS_ON
*
*

* Provides users with instant-on access to their apps. You are charged for all running instances in your fleet, * even if no users are streaming apps. *

*
*
ON_DEMAND
*
*

* Provide users with access to applications after they connect, which takes one to two minutes. You are charged for * instance streaming when users are connected and a small hourly fee for instances that are not streaming apps. *

*
*
*/ private String fleetType; /** *

* The desired capacity for the fleet. This is not allowed for Elastic fleets. For Elastic fleets, specify * MaxConcurrentSessions instead. *

*/ private ComputeCapacity computeCapacity; /** *

* The VPC configuration for the fleet. This is required for Elastic fleets, but not required for other fleet types. * Elastic fleets require that you specify at least two subnets in different availability zones. *

*/ private VpcConfig vpcConfig; /** *

* The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected * to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents * before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance. *

*

* Specify a value between 600 and 360000. *

*/ private Integer maxUserDurationInSeconds; /** *

* The amount of time that a streaming session remains active after users disconnect. If users try to reconnect to * the streaming session after a disconnection or network interruption within this time interval, they are connected * to their previous session. Otherwise, they are connected to a new session with a new streaming instance. *

*

* Specify a value between 60 and 360000. *

*/ private Integer disconnectTimeoutInSeconds; /** *

* The description to display. *

*/ private String description; /** *

* The fleet name to display. *

*/ private String displayName; /** *

* Enables or disables default internet access for the fleet. *

*/ private Boolean enableDefaultInternetAccess; /** *

* The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory * domain. This is not allowed for Elastic fleets. *

*/ private DomainJoinInfo domainJoinInfo; /** *

* The tags to associate with the fleet. A tag is a key-value pair, and the value is optional. For example, * Environment=Test. If you do not specify a value, Environment=. *

*

* If you do not specify a value, the value is set to an empty string. *

*

* Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special * characters: *

*

* _ . : / = + \ - @ *

*

* For more information, see Tagging Your Resources * in the Amazon AppStream 2.0 Administration Guide. *

*/ private java.util.Map tags; /** *

* The amount of time that users can be idle (inactive) before they are disconnected from their streaming session * and the DisconnectTimeoutInSeconds time interval begins. Users are notified before they are * disconnected due to inactivity. If they try to reconnect to the streaming session before the time interval * specified in DisconnectTimeoutInSeconds elapses, they are connected to their previous session. Users * are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads * and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be * idle after the time interval in IdleDisconnectTimeoutInSeconds elapses, they are disconnected. *

*

* To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value * between 60 and 3600. The default value is 0. *

* *

* If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of * minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For * example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a * value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify * a value of 90, users are disconnected after 2 minutes of inactivity. *

*
*/ private Integer idleDisconnectTimeoutInSeconds; /** *

* The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To assume a role, a fleet instance calls * the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. * The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials * and creates the appstream_machine_role credential profile on the instance. *

*

* For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming * Instances in the Amazon AppStream 2.0 Administration Guide. *

*/ private String iamRoleArn; /** *

* The AppStream 2.0 view that is displayed to your users when they stream from the fleet. When APP is * specified, only the windows of applications opened by users display. When DESKTOP is specified, the * standard desktop that is provided by the operating system displays. *

*

* The default value is APP. *

*/ private String streamView; /** *

* The fleet platform. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets. *

*/ private String platform; /** *

* The maximum concurrent sessions of the Elastic fleet. This is required for Elastic fleets, and not allowed for * other fleet types. *

*/ private Integer maxConcurrentSessions; /** *

* The USB device filter strings that specify which USB devices a user can redirect to the fleet streaming session, * when using the Windows native client. This is allowed but not required for Elastic fleets. *

*/ private java.util.List usbDeviceFilterStrings; /** *

* The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets. *

*/ private S3Location sessionScriptS3Location; /** *

* A unique name for the fleet. *

* * @param name * A unique name for the fleet. */ public void setName(String name) { this.name = name; } /** *

* A unique name for the fleet. *

* * @return A unique name for the fleet. */ public String getName() { return this.name; } /** *

* A unique name for the fleet. *

* * @param name * A unique name for the fleet. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateFleetRequest withName(String name) { setName(name); return this; } /** *

* The name of the image used to create the fleet. *

* * @param imageName * The name of the image used to create the fleet. */ public void setImageName(String imageName) { this.imageName = imageName; } /** *

* The name of the image used to create the fleet. *

* * @return The name of the image used to create the fleet. */ public String getImageName() { return this.imageName; } /** *

* The name of the image used to create the fleet. *

* * @param imageName * The name of the image used to create the fleet. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateFleetRequest withImageName(String imageName) { setImageName(imageName); return this; } /** *

* The ARN of the public, private, or shared image to use. *

* * @param imageArn * The ARN of the public, private, or shared image to use. */ public void setImageArn(String imageArn) { this.imageArn = imageArn; } /** *

* The ARN of the public, private, or shared image to use. *

* * @return The ARN of the public, private, or shared image to use. */ public String getImageArn() { return this.imageArn; } /** *

* The ARN of the public, private, or shared image to use. *

* * @param imageArn * The ARN of the public, private, or shared image to use. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateFleetRequest withImageArn(String imageArn) { setImageArn(imageArn); return this; } /** *

* The instance type to use when launching fleet instances. The following instance types are available: *

* *

* The following instance types are available for Elastic fleets: *

* * * @param instanceType * The instance type to use when launching fleet instances. The following instance types are available:

* *

* The following instance types are available for Elastic fleets: *

*