/* * 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 UpdateWorkspace operation. /// Modifies an existing Amazon Managed Grafana workspace. If you use this operation and /// omit any optional parameters, the existing values of those parameters are not changed. /// /// /// /// To modify the user authentication methods that the workspace uses, such as SAML or /// IAM Identity Center, use UpdateWorkspaceAuthentication. /// /// /// /// To modify which users in the workspace have the Admin and Editor /// Grafana roles, use UpdatePermissions. /// /// public partial class UpdateWorkspaceRequest : AmazonManagedGrafanaRequest { private AccountAccessType _accountAccessType; private NetworkAccessConfiguration _networkAccessControl; private string _organizationRoleName; private PermissionType _permissionType; private bool? _removeNetworkAccessConfiguration; private bool? _removeVpcConfiguration; private string _stackSetName; private VpcConfiguration _vpcConfiguration; private List _workspaceDataSources = new List(); private string _workspaceDescription; private string _workspaceId; 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. /// /// 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 NetworkAccessControl. /// /// The configuration settings 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 to access resources through Organizations. /// This can only be used with a workspace that has the permissionType set /// to CUSTOMER_MANAGED. /// /// [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. /// /// Use this parameter if you want to change a workspace from SERVICE_MANAGED /// to CUSTOMER_MANAGED. This allows you to manage the permissions that the /// workspace uses to access datasources and notification channels. If the workspace is /// in a member Amazon Web Services 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, you must choose CUSTOMER_MANAGED. /// /// /// /// If you specify this as CUSTOMER_MANAGED, you must also specify a workspaceRoleArn /// that the workspace will use for accessing Amazon Web Services resources. /// /// /// /// For more information on the role and permissions needed, see Amazon /// Managed Grafana permissions and policies for Amazon Web Services data sources and /// notification channels /// /// /// /// Do not use this to convert a CUSTOMER_MANAGED workspace to SERVICE_MANAGED. /// Do not include this parameter if you want to leave the workspace as SERVICE_MANAGED. /// /// /// /// You can convert a CUSTOMER_MANAGED workspace to SERVICE_MANAGED /// using the Amazon Managed Grafana console. For more information, see Managing /// permissions for 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 RemoveNetworkAccessConfiguration. /// /// Whether to remove the network access configuration from the workspace. /// /// /// /// Setting this to true and providing a networkAccessControl /// to set will return an error. /// /// /// /// If you remove this configuration by setting this to true, then all IP /// addresses and VPC endpoints will be allowed. Standard Grafana authentication and authorization /// will still be required. /// /// public bool RemoveNetworkAccessConfiguration { get { return this._removeNetworkAccessConfiguration.GetValueOrDefault(); } set { this._removeNetworkAccessConfiguration = value; } } // Check to see if RemoveNetworkAccessConfiguration property is set internal bool IsSetRemoveNetworkAccessConfiguration() { return this._removeNetworkAccessConfiguration.HasValue; } /// /// Gets and sets the property RemoveVpcConfiguration. /// /// Whether to remove the VPC configuration from the workspace. /// /// /// /// Setting this to true and providing a vpcConfiguration to /// set will return an error. /// /// public bool RemoveVpcConfiguration { get { return this._removeVpcConfiguration.GetValueOrDefault(); } set { this._removeVpcConfiguration = value; } } // Check to see if RemoveVpcConfiguration property is set internal bool IsSetRemoveVpcConfiguration() { return this._removeVpcConfiguration.HasValue; } /// /// 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 VpcConfiguration. /// /// The configuration settings for an Amazon VPC that contains data sources for your Grafana /// workspace to connect to. /// /// 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. /// /// [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 WorkspaceId. /// /// The ID of the workspace to update. /// /// [AWSProperty(Required=true)] public string WorkspaceId { get { return this._workspaceId; } set { this._workspaceId = value; } } // Check to see if WorkspaceId property is set internal bool IsSetWorkspaceId() { return this._workspaceId != null; } /// /// Gets and sets the property WorkspaceName. /// /// A new name for the workspace to update. /// /// [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. /// /// Specifies an IAM role that grants permissions to Amazon Web Services resources that /// the workspace accesses, such as data sources and notification channels. If this workspace /// has permissionType CUSTOMER_MANAGED, then this role is required. /// /// [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; } } }