/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the nimble-2020-08-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.NimbleStudio.Model
{
///
/// Configuration for streaming workstations created using this launch profile.
///
public partial class StreamConfigurationCreate
{
private AutomaticTerminationMode _automaticTerminationMode;
private StreamingClipboardMode _clipboardMode;
private List _ec2InstanceTypes = new List();
private int? _maxSessionLengthInMinutes;
private int? _maxStoppedSessionLengthInMinutes;
private StreamConfigurationSessionBackup _sessionBackup;
private SessionPersistenceMode _sessionPersistenceMode;
private StreamConfigurationSessionStorage _sessionStorage;
private List _streamingImageIds = new List();
private VolumeConfiguration _volumeConfiguration;
///
/// Gets and sets the property AutomaticTerminationMode.
///
/// Indicates if a streaming session created from this launch profile should be terminated
/// automatically or retained without termination after being in a STOPPED
/// state.
///
/// -
///
/// When
ACTIVATED
, the streaming session is scheduled for termination after
/// being in the STOPPED
state for the time specified in maxStoppedSessionLengthInMinutes
.
///
/// -
///
/// When
DEACTIVATED
, the streaming session can remain in the STOPPED
/// state indefinitely.
///
///
///
/// This parameter is only allowed when sessionPersistenceMode
is ACTIVATED
.
/// When allowed, the default value for this parameter is DEACTIVATED
.
///
///
public AutomaticTerminationMode AutomaticTerminationMode
{
get { return this._automaticTerminationMode; }
set { this._automaticTerminationMode = value; }
}
// Check to see if AutomaticTerminationMode property is set
internal bool IsSetAutomaticTerminationMode()
{
return this._automaticTerminationMode != null;
}
///
/// Gets and sets the property ClipboardMode.
///
/// Allows or deactivates the use of the system clipboard to copy and paste between the
/// streaming session and streaming client.
///
///
[AWSProperty(Required=true)]
public StreamingClipboardMode ClipboardMode
{
get { return this._clipboardMode; }
set { this._clipboardMode = value; }
}
// Check to see if ClipboardMode property is set
internal bool IsSetClipboardMode()
{
return this._clipboardMode != null;
}
///
/// Gets and sets the property Ec2InstanceTypes.
///
/// The EC2 instance types that users can select from when launching a streaming session
/// with this launch profile.
///
///
[AWSProperty(Required=true, Min=1, Max=30)]
public List Ec2InstanceTypes
{
get { return this._ec2InstanceTypes; }
set { this._ec2InstanceTypes = value; }
}
// Check to see if Ec2InstanceTypes property is set
internal bool IsSetEc2InstanceTypes()
{
return this._ec2InstanceTypes != null && this._ec2InstanceTypes.Count > 0;
}
///
/// Gets and sets the property MaxSessionLengthInMinutes.
///
/// The length of time, in minutes, that a streaming session can be active before it is
/// stopped or terminated. After this point, Nimble Studio automatically terminates or
/// stops the session. The default length of time is 690 minutes, and the maximum length
/// of time is 30 days.
///
///
[AWSProperty(Min=1, Max=43200)]
public int MaxSessionLengthInMinutes
{
get { return this._maxSessionLengthInMinutes.GetValueOrDefault(); }
set { this._maxSessionLengthInMinutes = value; }
}
// Check to see if MaxSessionLengthInMinutes property is set
internal bool IsSetMaxSessionLengthInMinutes()
{
return this._maxSessionLengthInMinutes.HasValue;
}
///
/// Gets and sets the property MaxStoppedSessionLengthInMinutes.
///
/// Integer that determines if you can start and stop your sessions and how long a session
/// can stay in the STOPPED
state. The default value is 0. The maximum value
/// is 5760.
///
///
///
/// This field is allowed only when sessionPersistenceMode
is ACTIVATED
/// and automaticTerminationMode
is ACTIVATED
.
///
///
///
/// If the value is set to 0, your sessions can’t be STOPPED
. If you then
/// call StopStreamingSession
, the session fails. If the time that a session
/// stays in the READY
state exceeds the maxSessionLengthInMinutes
/// value, the session will automatically be terminated (instead of STOPPED
).
///
///
///
/// If the value is set to a positive number, the session can be stopped. You can call
/// StopStreamingSession
to stop sessions in the READY
state.
/// If the time that a session stays in the READY
state exceeds the maxSessionLengthInMinutes
/// value, the session will automatically be stopped (instead of terminated).
///
///
[AWSProperty(Min=0, Max=5760)]
public int MaxStoppedSessionLengthInMinutes
{
get { return this._maxStoppedSessionLengthInMinutes.GetValueOrDefault(); }
set { this._maxStoppedSessionLengthInMinutes = value; }
}
// Check to see if MaxStoppedSessionLengthInMinutes property is set
internal bool IsSetMaxStoppedSessionLengthInMinutes()
{
return this._maxStoppedSessionLengthInMinutes.HasValue;
}
///
/// Gets and sets the property SessionBackup.
///
/// Configures how streaming sessions are backed up when launched from this launch profile.
///
///
public StreamConfigurationSessionBackup SessionBackup
{
get { return this._sessionBackup; }
set { this._sessionBackup = value; }
}
// Check to see if SessionBackup property is set
internal bool IsSetSessionBackup()
{
return this._sessionBackup != null;
}
///
/// Gets and sets the property SessionPersistenceMode.
///
/// Determine if a streaming session created from this launch profile can configure persistent
/// storage. This means that volumeConfiguration
and automaticTerminationMode
/// are configured.
///
///
public SessionPersistenceMode SessionPersistenceMode
{
get { return this._sessionPersistenceMode; }
set { this._sessionPersistenceMode = value; }
}
// Check to see if SessionPersistenceMode property is set
internal bool IsSetSessionPersistenceMode()
{
return this._sessionPersistenceMode != null;
}
///
/// Gets and sets the property SessionStorage.
///
/// The upload storage for a streaming workstation that is created using this launch profile.
///
///
public StreamConfigurationSessionStorage SessionStorage
{
get { return this._sessionStorage; }
set { this._sessionStorage = value; }
}
// Check to see if SessionStorage property is set
internal bool IsSetSessionStorage()
{
return this._sessionStorage != null;
}
///
/// Gets and sets the property StreamingImageIds.
///
/// The streaming images that users can select from when launching a streaming session
/// with this launch profile.
///
///
[AWSProperty(Required=true, Min=1, Max=20)]
public List StreamingImageIds
{
get { return this._streamingImageIds; }
set { this._streamingImageIds = value; }
}
// Check to see if StreamingImageIds property is set
internal bool IsSetStreamingImageIds()
{
return this._streamingImageIds != null && this._streamingImageIds.Count > 0;
}
///
/// Gets and sets the property VolumeConfiguration.
///
/// Custom volume configuration for the root volumes that are attached to streaming sessions.
///
///
///
/// This parameter is only allowed when sessionPersistenceMode
is ACTIVATED
.
///
///
public VolumeConfiguration VolumeConfiguration
{
get { return this._volumeConfiguration; }
set { this._volumeConfiguration = value; }
}
// Check to see if VolumeConfiguration property is set
internal bool IsSetVolumeConfiguration()
{
return this._volumeConfiguration != null;
}
}
}