/* * 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.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *

* Describes a fleet. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class Fleet implements Serializable, Cloneable, StructuredPojo { /** *

* The Amazon Resource Name (ARN) for the fleet. *

*/ private String arn; /** *

* The name of the fleet. *

*/ private String name; /** *

* The fleet name to display. *

*/ private String displayName; /** *

* The description to display. *

*/ private String description; /** *

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

*/ private String imageName; /** *

* The ARN for the public, private, or shared image. *

*/ private String imageArn; /** *

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

* */ 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 capacity status for the fleet. *

*/ private ComputeCapacityStatus computeCapacityStatus; /** *

* 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 they 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 current state for the fleet. *

*/ private String state; /** *

* The VPC configuration for the fleet. *

*/ private VpcConfig vpcConfig; /** *

* The time the fleet was created. *

*/ private java.util.Date createdTime; /** *

* The fleet errors. *

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

* Indicates whether default internet access is enabled 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. *

*/ private DomainJoinInfo domainJoinInfo; /** *

* 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 users 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 ARN of the IAM role that is applied to the fleet. To assume a role, the 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 platform of the fleet. *

*/ private String platform; /** *

* The maximum number of concurrent sessions for the fleet. *

*/ private Integer maxConcurrentSessions; /** *

* The USB device filter strings associated with the fleet. *

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

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

*/ private S3Location sessionScriptS3Location; /** *

* The Amazon Resource Name (ARN) for the fleet. *

* * @param arn * The Amazon Resource Name (ARN) for the fleet. */ public void setArn(String arn) { this.arn = arn; } /** *

* The Amazon Resource Name (ARN) for the fleet. *

* * @return The Amazon Resource Name (ARN) for the fleet. */ public String getArn() { return this.arn; } /** *

* The Amazon Resource Name (ARN) for the fleet. *

* * @param arn * The Amazon Resource Name (ARN) for the fleet. * @return Returns a reference to this object so that method calls can be chained together. */ public Fleet withArn(String arn) { setArn(arn); return this; } /** *

* The name of the fleet. *

* * @param name * The name of the fleet. */ public void setName(String name) { this.name = name; } /** *

* The name of the fleet. *

* * @return The name of the fleet. */ public String getName() { return this.name; } /** *

* The name of the fleet. *

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

* The fleet name to display. *

* * @param displayName * The fleet name to display. */ public void setDisplayName(String displayName) { this.displayName = displayName; } /** *

* The fleet name to display. *

* * @return The fleet name to display. */ public String getDisplayName() { return this.displayName; } /** *

* The fleet name to display. *

* * @param displayName * The fleet name to display. * @return Returns a reference to this object so that method calls can be chained together. */ public Fleet withDisplayName(String displayName) { setDisplayName(displayName); return this; } /** *

* The description to display. *

* * @param description * The description to display. */ public void setDescription(String description) { this.description = description; } /** *

* The description to display. *

* * @return The description to display. */ public String getDescription() { return this.description; } /** *

* The description to display. *

* * @param description * The description to display. * @return Returns a reference to this object so that method calls can be chained together. */ public Fleet withDescription(String description) { setDescription(description); 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 Fleet withImageName(String imageName) { setImageName(imageName); return this; } /** *

* The ARN for the public, private, or shared image. *

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

* The ARN for the public, private, or shared image. *

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

* The ARN for the public, private, or shared image. *

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

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

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

*