/* * 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 { /// /// Container for the parameters to the CreateWorkspace operation. /// Creates a workspace. In a workspace, you can create Grafana dashboards and /// visualizations to analyze your metrics, logs, and traces. You don't have to build, /// package, or deploy any hardware to run the Grafana server. /// /// /// /// Don't use CreateWorkspace to modify an existing workspace. Instead, use /// UpdateWorkspace. /// /// public partial class CreateWorkspaceRequest : AmazonManagedGrafanaRequest { private AccountAccessType _accountAccessType; private List _authenticationProviders = new List(); private string _clientToken; private string _configuration; private string _grafanaVersion; private NetworkAccessConfiguration _networkAccessControl; private string _organizationRoleName; private PermissionType _permissionType; private string _stackSetName; private Dictionary _tags = new Dictionary(); private VpcConfiguration _vpcConfiguration; private List _workspaceDataSources = new List(); private string _workspaceDescription; private string _workspaceName; private List _workspaceNotificationDestinations = new List(); private List _workspaceOrganizationalUnits = new List(); 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 you specify ORGANIZATION, /// you must specify which organizational units the workspace can access in the workspaceOrganizationalUnits /// parameter. /// /// [AWSProperty(Required=true)] 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 AuthenticationProviders. /// /// Specifies whether this workspace uses SAML 2.0, IAM Identity Center (successor to /// Single Sign-On), or both to authenticate users for using the Grafana console within /// a workspace. For more information, see User /// authentication in Amazon Managed Grafana. /// /// [AWSProperty(Required=true)] public List AuthenticationProviders { get { return this._authenticationProviders; } set { this._authenticationProviders = value; } } // Check to see if AuthenticationProviders property is set internal bool IsSetAuthenticationProviders() { return this._authenticationProviders != null && this._authenticationProviders.Count > 0; } /// /// Gets and sets the property ClientToken. /// /// A unique, case-sensitive, user-provided identifier to ensure the idempotency of the /// request. /// /// public string ClientToken { get { return this._clientToken; } set { this._clientToken = value; } } // Check to see if ClientToken property is set internal bool IsSetClientToken() { return this._clientToken != null; } /// /// Gets and sets the property Configuration. /// /// The configuration string for the workspace that you create. For more information about /// the format and configuration options available, see Working /// in your Grafana workspace. /// /// [AWSProperty(Min=2, Max=65536)] public string Configuration { get { return this._configuration; } set { this._configuration = value; } } // Check to see if Configuration property is set internal bool IsSetConfiguration() { return this._configuration != null; } /// /// Gets and sets the property GrafanaVersion. /// /// Specifies the version of Grafana to support in the new workspace. /// /// /// /// To get a list of supported version, use the ListVersions operation. /// /// [AWSProperty(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 NetworkAccessControl. /// /// Configuration for network access to your workspace. /// /// /// /// When this is configured, only listed IP addresses and VPC endpoints will be able to /// access your workspace. Standard Grafana authentication and authorization will still /// be required. /// /// /// /// If this is not configured, or is removed, then all IP addresses and VPC endpoints /// will be allowed. Standard Grafana authentication and authorization will still be required. /// /// 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 OrganizationRoleName. /// /// The name of an IAM role that already exists to use with Organizations to access Amazon /// Web Services data sources and notification channels in other accounts in an organization. /// /// [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. /// /// When creating a workspace through the Amazon Web Services API, CLI or Amazon Web Services /// CloudFormation, you must manage IAM roles and provision the permissions that the workspace /// needs to use Amazon Web Services data sources and notification channels. /// /// /// /// You must also specify a workspaceRoleArn for a role that you will manage /// for the workspace to use when accessing those datasources and notification channels. /// /// /// /// The ability for Amazon Managed Grafana to create and update IAM roles on behalf of /// the user is supported only in the Amazon Managed Grafana console, where this value /// may be set to SERVICE_MANAGED. /// /// /// /// Use only the CUSTOMER_MANAGED permission type when creating a workspace /// with the API, CLI or Amazon Web Services CloudFormation. /// /// /// /// For more information, see Amazon /// Managed Grafana permissions and policies for Amazon Web Services data sources and /// notification channels. /// /// [AWSProperty(Required=true)] 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 to use 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 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 settings for an Amazon VPC that contains data sources for your Grafana /// workspace to connect to. /// /// /// /// Connecting to a private VPC is not yet available in the Asia Pacific (Seoul) Region /// (ap-northeast-2). /// /// /// 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 WorkspaceDataSources. /// /// This parameter is for internal use only, and should not be used. /// /// public List WorkspaceDataSources { get { return this._workspaceDataSources; } set { this._workspaceDataSources = value; } } // Check to see if WorkspaceDataSources property is set internal bool IsSetWorkspaceDataSources() { return this._workspaceDataSources != null && this._workspaceDataSources.Count > 0; } /// /// Gets and sets the property WorkspaceDescription. /// /// A description for the workspace. This is used only to help you identify this workspace. /// /// /// /// Pattern: ^[\\p{L}\\p{Z}\\p{N}\\p{P}]{0,2048}$ /// /// [AWSProperty(Sensitive=true, Min=0, Max=2048)] public string WorkspaceDescription { get { return this._workspaceDescription; } set { this._workspaceDescription = value; } } // Check to see if WorkspaceDescription property is set internal bool IsSetWorkspaceDescription() { return this._workspaceDescription != null; } /// /// Gets and sets the property WorkspaceName. /// /// The name for the workspace. It does not have to be unique. /// /// [AWSProperty(Sensitive=true)] public string WorkspaceName { get { return this._workspaceName; } set { this._workspaceName = value; } } // Check to see if WorkspaceName property is set internal bool IsSetWorkspaceName() { return this._workspaceName != null; } /// /// Gets and sets the property WorkspaceNotificationDestinations. /// /// Specify the Amazon Web Services notification channels that you plan to use in this /// workspace. Specifying these data sources here enables Amazon Managed Grafana to create /// IAM roles and permissions that allow Amazon Managed Grafana to use these channels. /// /// public List WorkspaceNotificationDestinations { get { return this._workspaceNotificationDestinations; } set { this._workspaceNotificationDestinations = value; } } // Check to see if WorkspaceNotificationDestinations property is set internal bool IsSetWorkspaceNotificationDestinations() { return this._workspaceNotificationDestinations != null && this._workspaceNotificationDestinations.Count > 0; } /// /// Gets and sets the property WorkspaceOrganizationalUnits. /// /// 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 WorkspaceOrganizationalUnits { get { return this._workspaceOrganizationalUnits; } set { this._workspaceOrganizationalUnits = value; } } // Check to see if WorkspaceOrganizationalUnits property is set internal bool IsSetWorkspaceOrganizationalUnits() { return this._workspaceOrganizationalUnits != null && this._workspaceOrganizationalUnits.Count > 0; } /// /// Gets and sets the property WorkspaceRoleArn. /// /// Specified the IAM role that grants permissions to the Amazon Web Services resources /// that the workspace will view data from, including both data sources and notification /// channels. You are responsible for managing the permissions for this role as new data /// sources or notification channels are added. /// /// [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; } } }