/*
* 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
{
///
/// Represents a studio resource.
///
///
///
/// A studio is the core resource used with Nimble Studio. You must create a studio first,
/// before any other resource type can be created. All other resources you create and
/// manage in Nimble Studio are contained within a studio.
///
///
///
/// When creating a studio, you must provides two IAM roles for use with the Nimble Studio
/// portal. These roles are assumed by your users when they log in to the Nimble Studio
/// portal via IAM Identity Center and your identity source.
///
///
///
/// The user role must have the AmazonNimbleStudio-StudioUser
managed policy
/// attached for the portal to function properly.
///
///
///
/// The admin role must have the AmazonNimbleStudio-StudioAdmin
managed policy
/// attached for the portal to function properly.
///
///
///
/// Your studio roles must trust the identity.nimble.amazonaws.com
service
/// principal to function properly.
///
///
public partial class Studio
{
private string _adminRoleArn;
private string _arn;
private DateTime? _createdAt;
private string _displayName;
private string _homeRegion;
private string _ssoClientId;
private StudioState _state;
private StudioStatusCode _statusCode;
private string _statusMessage;
private StudioEncryptionConfiguration _studioEncryptionConfiguration;
private string _studioId;
private string _studioName;
private string _studioUrl;
private Dictionary _tags = new Dictionary();
private DateTime? _updatedAt;
private string _userRoleArn;
///
/// Gets and sets the property AdminRoleArn.
///
/// The IAM role that studio admins assume when logging in to the Nimble Studio portal.
///
///
[AWSProperty(Min=0, Max=2048)]
public string AdminRoleArn
{
get { return this._adminRoleArn; }
set { this._adminRoleArn = value; }
}
// Check to see if AdminRoleArn property is set
internal bool IsSetAdminRoleArn()
{
return this._adminRoleArn != null;
}
///
/// Gets and sets the property Arn.
///
/// The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely
/// identifies it. ARNs are unique across all Regions.
///
///
public string Arn
{
get { return this._arn; }
set { this._arn = value; }
}
// Check to see if Arn property is set
internal bool IsSetArn()
{
return this._arn != null;
}
///
/// Gets and sets the property CreatedAt.
///
/// The ISO timestamp in seconds for when the resource was created.
///
///
public DateTime CreatedAt
{
get { return this._createdAt.GetValueOrDefault(); }
set { this._createdAt = value; }
}
// Check to see if CreatedAt property is set
internal bool IsSetCreatedAt()
{
return this._createdAt.HasValue;
}
///
/// Gets and sets the property DisplayName.
///
/// A friendly name for the studio.
///
///
[AWSProperty(Sensitive=true, Min=0, Max=64)]
public string DisplayName
{
get { return this._displayName; }
set { this._displayName = value; }
}
// Check to see if DisplayName property is set
internal bool IsSetDisplayName()
{
return this._displayName != null;
}
///
/// Gets and sets the property HomeRegion.
///
/// The Amazon Web Services Region where the studio resource is located.
///
///
[AWSProperty(Min=0, Max=50)]
public string HomeRegion
{
get { return this._homeRegion; }
set { this._homeRegion = value; }
}
// Check to see if HomeRegion property is set
internal bool IsSetHomeRegion()
{
return this._homeRegion != null;
}
///
/// Gets and sets the property SsoClientId.
///
/// The IAM Identity Center application client ID used to integrate with IAM Identity
/// Center. This ID allows IAM Identity Center users to log in to Nimble Studio portal.
///
///
public string SsoClientId
{
get { return this._ssoClientId; }
set { this._ssoClientId = value; }
}
// Check to see if SsoClientId property is set
internal bool IsSetSsoClientId()
{
return this._ssoClientId != null;
}
///
/// Gets and sets the property State.
///
/// The current state of the studio resource.
///
///
public StudioState State
{
get { return this._state; }
set { this._state = value; }
}
// Check to see if State property is set
internal bool IsSetState()
{
return this._state != null;
}
///
/// Gets and sets the property StatusCode.
///
/// Status codes that provide additional detail on the studio state.
///
///
public StudioStatusCode StatusCode
{
get { return this._statusCode; }
set { this._statusCode = value; }
}
// Check to see if StatusCode property is set
internal bool IsSetStatusCode()
{
return this._statusCode != null;
}
///
/// Gets and sets the property StatusMessage.
///
/// Additional detail on the studio state.
///
///
public string StatusMessage
{
get { return this._statusMessage; }
set { this._statusMessage = value; }
}
// Check to see if StatusMessage property is set
internal bool IsSetStatusMessage()
{
return this._statusMessage != null;
}
///
/// Gets and sets the property StudioEncryptionConfiguration.
///
/// Configuration of the encryption method that is used for the studio.
///
///
public StudioEncryptionConfiguration StudioEncryptionConfiguration
{
get { return this._studioEncryptionConfiguration; }
set { this._studioEncryptionConfiguration = value; }
}
// Check to see if StudioEncryptionConfiguration property is set
internal bool IsSetStudioEncryptionConfiguration()
{
return this._studioEncryptionConfiguration != null;
}
///
/// Gets and sets the property StudioId.
///
/// The unique identifier for a studio resource. In Nimble Studio, all other resources
/// are contained in a studio resource.
///
///
public string StudioId
{
get { return this._studioId; }
set { this._studioId = value; }
}
// Check to see if StudioId property is set
internal bool IsSetStudioId()
{
return this._studioId != null;
}
///
/// Gets and sets the property StudioName.
///
/// The name of the studio, as included in the URL when accessing it in the Nimble Studio
/// portal.
///
///
[AWSProperty(Min=3, Max=64)]
public string StudioName
{
get { return this._studioName; }
set { this._studioName = value; }
}
// Check to see if StudioName property is set
internal bool IsSetStudioName()
{
return this._studioName != null;
}
///
/// Gets and sets the property StudioUrl.
///
/// The address of the web page for the studio.
///
///
public string StudioUrl
{
get { return this._studioUrl; }
set { this._studioUrl = value; }
}
// Check to see if StudioUrl property is set
internal bool IsSetStudioUrl()
{
return this._studioUrl != null;
}
///
/// Gets and sets the property Tags.
///
/// A collection of labels, in the form of key-value pairs, that apply to this resource.
///
///
public Dictionary Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property UpdatedAt.
///
/// The ISO timestamp in seconds for when the resource was updated.
///
///
public DateTime UpdatedAt
{
get { return this._updatedAt.GetValueOrDefault(); }
set { this._updatedAt = value; }
}
// Check to see if UpdatedAt property is set
internal bool IsSetUpdatedAt()
{
return this._updatedAt.HasValue;
}
///
/// Gets and sets the property UserRoleArn.
///
/// The IAM role that studio users assume when logging in to the Nimble Studio portal.
///
///
[AWSProperty(Min=0, Max=2048)]
public string UserRoleArn
{
get { return this._userRoleArn; }
set { this._userRoleArn = value; }
}
// Check to see if UserRoleArn property is set
internal bool IsSetUserRoleArn()
{
return this._userRoleArn != null;
}
}
}