/* * 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 grafana-2020-08-18.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.ManagedGrafana.Model { /// /// A structure containing information about an Amazon Managed Grafana workspace in your /// account. /// public partial class WorkspaceDescription { private AccountAccessType _accountAccessType; private AuthenticationSummary _authentication; private DateTime? _created; private List _dataSources = new List(); private string _description; private string _endpoint; private bool? _freeTrialConsumed; private DateTime? _freeTrialExpiration; private string _grafanaVersion; private string _id; private DateTime? _licenseExpiration; private LicenseType _licenseType; private DateTime? _modified; private string _name; private NetworkAccessConfiguration _networkAccessControl; private List _notificationDestinations = new List(); private List _organizationalUnits = new List(); private string _organizationRoleName; private PermissionType _permissionType; private string _stackSetName; private WorkspaceStatus _status; private Dictionary _tags = new Dictionary(); private VpcConfiguration _vpcConfiguration; private string _workspaceRoleArn; /// /// Gets and sets the property AccountAccessType. /// /// Specifies whether the workspace can access Amazon Web Services resources in this Amazon /// Web Services account only, or whether it can also access Amazon Web Services resources /// in other accounts in the same organization. If this is ORGANIZATION, /// the workspaceOrganizationalUnits parameter specifies which organizational /// units the workspace can access. /// /// public AccountAccessType AccountAccessType { get { return this._accountAccessType; } set { this._accountAccessType = value; } } // Check to see if AccountAccessType property is set internal bool IsSetAccountAccessType() { return this._accountAccessType != null; } /// /// Gets and sets the property Authentication. /// /// A structure that describes whether the workspace uses SAML, IAM Identity Center, or /// both methods for user authentication. /// /// [AWSProperty(Required=true)] public AuthenticationSummary Authentication { get { return this._authentication; } set { this._authentication = value; } } // Check to see if Authentication property is set internal bool IsSetAuthentication() { return this._authentication != null; } /// /// Gets and sets the property Created. /// /// The date that the workspace was created. /// /// [AWSProperty(Required=true)] public DateTime Created { get { return this._created.GetValueOrDefault(); } set { this._created = value; } } // Check to see if Created property is set internal bool IsSetCreated() { return this._created.HasValue; } /// /// Gets and sets the property DataSources. /// /// Specifies the Amazon Web Services data sources that have been configured to have IAM /// roles and permissions created to allow Amazon Managed Grafana to read data from these /// sources. /// /// /// /// This list is only used when the workspace was created through the Amazon Web Services /// console, and the permissionType is SERVICE_MANAGED. /// /// [AWSProperty(Required=true)] public List DataSources { get { return this._dataSources; } set { this._dataSources = value; } } // Check to see if DataSources property is set internal bool IsSetDataSources() { return this._dataSources != null && this._dataSources.Count > 0; } /// /// Gets and sets the property Description. /// /// The user-defined description of the workspace. /// /// [AWSProperty(Sensitive=true, Min=0, Max=2048)] public string Description { get { return this._description; } set { this._description = value; } } // Check to see if Description property is set internal bool IsSetDescription() { return this._description != null; } /// /// Gets and sets the property Endpoint. /// /// The URL that users can use to access the Grafana console in the workspace. /// /// [AWSProperty(Required=true, Min=1, Max=2048)] public string Endpoint { get { return this._endpoint; } set { this._endpoint = value; } } // Check to see if Endpoint property is set internal bool IsSetEndpoint() { return this._endpoint != null; } /// /// Gets and sets the property FreeTrialConsumed. /// /// Specifies whether this workspace has already fully used its free trial for Grafana /// Enterprise. /// /// public bool FreeTrialConsumed { get { return this._freeTrialConsumed.GetValueOrDefault(); } set { this._freeTrialConsumed = value; } } // Check to see if FreeTrialConsumed property is set internal bool IsSetFreeTrialConsumed() { return this._freeTrialConsumed.HasValue; } /// /// Gets and sets the property FreeTrialExpiration. /// /// If this workspace is currently in the free trial period for Grafana Enterprise, this /// value specifies when that free trial ends. /// /// public DateTime FreeTrialExpiration { get { return this._freeTrialExpiration.GetValueOrDefault(); } set { this._freeTrialExpiration = value; } } // Check to see if FreeTrialExpiration property is set internal bool IsSetFreeTrialExpiration() { return this._freeTrialExpiration.HasValue; } /// /// Gets and sets the property GrafanaVersion. /// /// The version of Grafana supported in this workspace. /// /// [AWSProperty(Required=true, Min=1, Max=255)] public string GrafanaVersion { get { return this._grafanaVersion; } set { this._grafanaVersion = value; } } // Check to see if GrafanaVersion property is set internal bool IsSetGrafanaVersion() { return this._grafanaVersion != null; } /// /// Gets and sets the property Id. /// /// The unique ID of this workspace. /// /// [AWSProperty(Required=true)] public string Id { get { return this._id; } set { this._id = value; } } // Check to see if Id property is set internal bool IsSetId() { return this._id != null; } /// /// Gets and sets the property LicenseExpiration. /// /// If this workspace has a full Grafana Enterprise license, this specifies when the license /// ends and will need to be renewed. /// /// public DateTime LicenseExpiration { get { return this._licenseExpiration.GetValueOrDefault(); } set { this._licenseExpiration = value; } } // Check to see if LicenseExpiration property is set internal bool IsSetLicenseExpiration() { return this._licenseExpiration.HasValue; } /// /// Gets and sets the property LicenseType. /// /// Specifies whether this workspace has a full Grafana Enterprise license or a free trial /// license. /// /// public LicenseType LicenseType { get { return this._licenseType; } set { this._licenseType = value; } } // Check to see if LicenseType property is set internal bool IsSetLicenseType() { return this._licenseType != null; } /// /// Gets and sets the property Modified. /// /// The most recent date that the workspace was modified. /// /// [AWSProperty(Required=true)] public DateTime Modified { get { return this._modified.GetValueOrDefault(); } set { this._modified = value; } } // Check to see if Modified property is set internal bool IsSetModified() { return this._modified.HasValue; } /// /// Gets and sets the property Name. /// /// The name of the workspace. /// /// [AWSProperty(Sensitive=true)] public string Name { get { return this._name; } set { this._name = value; } } // Check to see if Name property is set internal bool IsSetName() { return this._name != null; } /// /// Gets and sets the property NetworkAccessControl. /// /// The configuration settings for network access to your workspace. /// /// public NetworkAccessConfiguration NetworkAccessControl { get { return this._networkAccessControl; } set { this._networkAccessControl = value; } } // Check to see if NetworkAccessControl property is set internal bool IsSetNetworkAccessControl() { return this._networkAccessControl != null; } /// /// Gets and sets the property NotificationDestinations. /// /// The Amazon Web Services notification channels that Amazon Managed Grafana can automatically /// create IAM roles and permissions for, to allow Amazon Managed Grafana to use these /// channels. /// /// public List NotificationDestinations { get { return this._notificationDestinations; } set { this._notificationDestinations = value; } } // Check to see if NotificationDestinations property is set internal bool IsSetNotificationDestinations() { return this._notificationDestinations != null && this._notificationDestinations.Count > 0; } /// /// Gets and sets the property OrganizationalUnits. /// /// Specifies the organizational units that this workspace is allowed to use data sources /// from, if this workspace is in an account that is part of an organization. /// /// [AWSProperty(Sensitive=true)] public List OrganizationalUnits { get { return this._organizationalUnits; } set { this._organizationalUnits = value; } } // Check to see if OrganizationalUnits property is set internal bool IsSetOrganizationalUnits() { return this._organizationalUnits != null && this._organizationalUnits.Count > 0; } /// /// Gets and sets the property OrganizationRoleName. /// /// The name of the IAM role that is used to access resources through Organizations. /// /// [AWSProperty(Sensitive=true, Min=1, Max=2048)] public string OrganizationRoleName { get { return this._organizationRoleName; } set { this._organizationRoleName = value; } } // Check to see if OrganizationRoleName property is set internal bool IsSetOrganizationRoleName() { return this._organizationRoleName != null; } /// /// Gets and sets the property PermissionType. /// /// If this is SERVICE_MANAGED, and the workplace was created through the /// Amazon Managed Grafana console, then Amazon Managed Grafana automatically creates /// the IAM roles and provisions the permissions that the workspace needs to use Amazon /// Web Services data sources and notification channels. /// /// /// /// If this is CUSTOMER_MANAGED, you must manage those roles and permissions /// yourself. /// /// /// /// If you are working with a workspace in a member account of an organization and that /// account is not a delegated administrator account, and you want the workspace to access /// data sources in other Amazon Web Services accounts in the organization, this parameter /// must be set to CUSTOMER_MANAGED. /// /// /// /// For more information about converting between customer and service managed, see Managing /// permissions for data sources and notification channels. For more information about /// the roles and permissions that must be managed for customer managed workspaces, see /// Amazon /// Managed Grafana permissions and policies for Amazon Web Services data sources and /// notification channels /// /// public PermissionType PermissionType { get { return this._permissionType; } set { this._permissionType = value; } } // Check to see if PermissionType property is set internal bool IsSetPermissionType() { return this._permissionType != null; } /// /// Gets and sets the property StackSetName. /// /// The name of the CloudFormation stack set that is used to generate IAM roles to be /// used for this workspace. /// /// public string StackSetName { get { return this._stackSetName; } set { this._stackSetName = value; } } // Check to see if StackSetName property is set internal bool IsSetStackSetName() { return this._stackSetName != null; } /// /// Gets and sets the property Status. /// /// The current status of the workspace. /// /// [AWSProperty(Required=true)] public WorkspaceStatus Status { get { return this._status; } set { this._status = value; } } // Check to see if Status property is set internal bool IsSetStatus() { return this._status != null; } /// /// Gets and sets the property Tags. /// /// The list of tags associated with the workspace. /// /// [AWSProperty(Min=0, Max=50)] 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 VpcConfiguration. /// /// The configuration for connecting to data sources in a private VPC (Amazon Virtual /// Private Cloud). /// /// public VpcConfiguration VpcConfiguration { get { return this._vpcConfiguration; } set { this._vpcConfiguration = value; } } // Check to see if VpcConfiguration property is set internal bool IsSetVpcConfiguration() { return this._vpcConfiguration != null; } /// /// Gets and sets the property WorkspaceRoleArn. /// /// The IAM role that grants permissions to the Amazon Web Services resources that the /// workspace will view data from. This role must already exist. /// /// [AWSProperty(Sensitive=true, Min=1, Max=2048)] public string WorkspaceRoleArn { get { return this._workspaceRoleArn; } set { this._workspaceRoleArn = value; } } // Check to see if WorkspaceRoleArn property is set internal bool IsSetWorkspaceRoleArn() { return this._workspaceRoleArn != null; } } }