/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace ManagedGrafana { namespace Model { /** */ class UpdateWorkspaceRequest : public ManagedGrafanaRequest { public: AWS_MANAGEDGRAFANA_API UpdateWorkspaceRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "UpdateWorkspace"; } AWS_MANAGEDGRAFANA_API Aws::String SerializePayload() const override; /** *

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.

*/ inline const AccountAccessType& GetAccountAccessType() const{ return m_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.

*/ inline bool AccountAccessTypeHasBeenSet() const { return m_accountAccessTypeHasBeenSet; } /** *

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.

*/ inline void SetAccountAccessType(const AccountAccessType& value) { m_accountAccessTypeHasBeenSet = true; m_accountAccessType = value; } /** *

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.

*/ inline void SetAccountAccessType(AccountAccessType&& value) { m_accountAccessTypeHasBeenSet = true; m_accountAccessType = std::move(value); } /** *

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.

*/ inline UpdateWorkspaceRequest& WithAccountAccessType(const AccountAccessType& value) { SetAccountAccessType(value); return *this;} /** *

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.

*/ inline UpdateWorkspaceRequest& WithAccountAccessType(AccountAccessType&& value) { SetAccountAccessType(std::move(value)); return *this;} /** *

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.

*/ inline const NetworkAccessConfiguration& GetNetworkAccessControl() const{ return m_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.

*/ inline bool NetworkAccessControlHasBeenSet() const { return m_networkAccessControlHasBeenSet; } /** *

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.

*/ inline void SetNetworkAccessControl(const NetworkAccessConfiguration& value) { m_networkAccessControlHasBeenSet = true; m_networkAccessControl = value; } /** *

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.

*/ inline void SetNetworkAccessControl(NetworkAccessConfiguration&& value) { m_networkAccessControlHasBeenSet = true; m_networkAccessControl = std::move(value); } /** *

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.

*/ inline UpdateWorkspaceRequest& WithNetworkAccessControl(const NetworkAccessConfiguration& value) { SetNetworkAccessControl(value); return *this;} /** *

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.

*/ inline UpdateWorkspaceRequest& WithNetworkAccessControl(NetworkAccessConfiguration&& value) { SetNetworkAccessControl(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::String& GetOrganizationRoleName() const{ return m_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.

*/ inline bool OrganizationRoleNameHasBeenSet() const { return m_organizationRoleNameHasBeenSet; } /** *

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.

*/ inline void SetOrganizationRoleName(const Aws::String& value) { m_organizationRoleNameHasBeenSet = true; m_organizationRoleName = value; } /** *

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.

*/ inline void SetOrganizationRoleName(Aws::String&& value) { m_organizationRoleNameHasBeenSet = true; m_organizationRoleName = std::move(value); } /** *

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.

*/ inline void SetOrganizationRoleName(const char* value) { m_organizationRoleNameHasBeenSet = true; m_organizationRoleName.assign(value); } /** *

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.

*/ inline UpdateWorkspaceRequest& WithOrganizationRoleName(const Aws::String& value) { SetOrganizationRoleName(value); return *this;} /** *

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.

*/ inline UpdateWorkspaceRequest& WithOrganizationRoleName(Aws::String&& value) { SetOrganizationRoleName(std::move(value)); return *this;} /** *

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.

*/ inline UpdateWorkspaceRequest& WithOrganizationRoleName(const char* value) { SetOrganizationRoleName(value); return *this;} /** *

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.

*/ inline const PermissionType& GetPermissionType() const{ return m_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.

*/ inline bool PermissionTypeHasBeenSet() const { return m_permissionTypeHasBeenSet; } /** *

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.

*/ inline void SetPermissionType(const PermissionType& value) { m_permissionTypeHasBeenSet = true; m_permissionType = value; } /** *

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.

*/ inline void SetPermissionType(PermissionType&& value) { m_permissionTypeHasBeenSet = true; m_permissionType = std::move(value); } /** *

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.

*/ inline UpdateWorkspaceRequest& WithPermissionType(const PermissionType& value) { SetPermissionType(value); return *this;} /** *

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.

*/ inline UpdateWorkspaceRequest& WithPermissionType(PermissionType&& value) { SetPermissionType(std::move(value)); return *this;} /** *

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.

*/ inline bool GetRemoveNetworkAccessConfiguration() const{ return m_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.

*/ inline bool RemoveNetworkAccessConfigurationHasBeenSet() const { return m_removeNetworkAccessConfigurationHasBeenSet; } /** *

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.

*/ inline void SetRemoveNetworkAccessConfiguration(bool value) { m_removeNetworkAccessConfigurationHasBeenSet = true; m_removeNetworkAccessConfiguration = value; } /** *

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.

*/ inline UpdateWorkspaceRequest& WithRemoveNetworkAccessConfiguration(bool value) { SetRemoveNetworkAccessConfiguration(value); return *this;} /** *

Whether to remove the VPC configuration from the workspace.

Setting * this to true and providing a vpcConfiguration to set * will return an error.

*/ inline bool GetRemoveVpcConfiguration() const{ return m_removeVpcConfiguration; } /** *

Whether to remove the VPC configuration from the workspace.

Setting * this to true and providing a vpcConfiguration to set * will return an error.

*/ inline bool RemoveVpcConfigurationHasBeenSet() const { return m_removeVpcConfigurationHasBeenSet; } /** *

Whether to remove the VPC configuration from the workspace.

Setting * this to true and providing a vpcConfiguration to set * will return an error.

*/ inline void SetRemoveVpcConfiguration(bool value) { m_removeVpcConfigurationHasBeenSet = true; m_removeVpcConfiguration = value; } /** *

Whether to remove the VPC configuration from the workspace.

Setting * this to true and providing a vpcConfiguration to set * will return an error.

*/ inline UpdateWorkspaceRequest& WithRemoveVpcConfiguration(bool value) { SetRemoveVpcConfiguration(value); return *this;} /** *

The name of the CloudFormation stack set to use to generate IAM roles to be * used for this workspace.

*/ inline const Aws::String& GetStackSetName() const{ return m_stackSetName; } /** *

The name of the CloudFormation stack set to use to generate IAM roles to be * used for this workspace.

*/ inline bool StackSetNameHasBeenSet() const { return m_stackSetNameHasBeenSet; } /** *

The name of the CloudFormation stack set to use to generate IAM roles to be * used for this workspace.

*/ inline void SetStackSetName(const Aws::String& value) { m_stackSetNameHasBeenSet = true; m_stackSetName = value; } /** *

The name of the CloudFormation stack set to use to generate IAM roles to be * used for this workspace.

*/ inline void SetStackSetName(Aws::String&& value) { m_stackSetNameHasBeenSet = true; m_stackSetName = std::move(value); } /** *

The name of the CloudFormation stack set to use to generate IAM roles to be * used for this workspace.

*/ inline void SetStackSetName(const char* value) { m_stackSetNameHasBeenSet = true; m_stackSetName.assign(value); } /** *

The name of the CloudFormation stack set to use to generate IAM roles to be * used for this workspace.

*/ inline UpdateWorkspaceRequest& WithStackSetName(const Aws::String& value) { SetStackSetName(value); return *this;} /** *

The name of the CloudFormation stack set to use to generate IAM roles to be * used for this workspace.

*/ inline UpdateWorkspaceRequest& WithStackSetName(Aws::String&& value) { SetStackSetName(std::move(value)); return *this;} /** *

The name of the CloudFormation stack set to use to generate IAM roles to be * used for this workspace.

*/ inline UpdateWorkspaceRequest& WithStackSetName(const char* value) { SetStackSetName(value); return *this;} /** *

The configuration settings for an Amazon VPC that contains data sources for * your Grafana workspace to connect to.

*/ inline const VpcConfiguration& GetVpcConfiguration() const{ return m_vpcConfiguration; } /** *

The configuration settings for an Amazon VPC that contains data sources for * your Grafana workspace to connect to.

*/ inline bool VpcConfigurationHasBeenSet() const { return m_vpcConfigurationHasBeenSet; } /** *

The configuration settings for an Amazon VPC that contains data sources for * your Grafana workspace to connect to.

*/ inline void SetVpcConfiguration(const VpcConfiguration& value) { m_vpcConfigurationHasBeenSet = true; m_vpcConfiguration = value; } /** *

The configuration settings for an Amazon VPC that contains data sources for * your Grafana workspace to connect to.

*/ inline void SetVpcConfiguration(VpcConfiguration&& value) { m_vpcConfigurationHasBeenSet = true; m_vpcConfiguration = std::move(value); } /** *

The configuration settings for an Amazon VPC that contains data sources for * your Grafana workspace to connect to.

*/ inline UpdateWorkspaceRequest& WithVpcConfiguration(const VpcConfiguration& value) { SetVpcConfiguration(value); return *this;} /** *

The configuration settings for an Amazon VPC that contains data sources for * your Grafana workspace to connect to.

*/ inline UpdateWorkspaceRequest& WithVpcConfiguration(VpcConfiguration&& value) { SetVpcConfiguration(std::move(value)); return *this;} /** *

This parameter is for internal use only, and should not be used.

*/ inline const Aws::Vector& GetWorkspaceDataSources() const{ return m_workspaceDataSources; } /** *

This parameter is for internal use only, and should not be used.

*/ inline bool WorkspaceDataSourcesHasBeenSet() const { return m_workspaceDataSourcesHasBeenSet; } /** *

This parameter is for internal use only, and should not be used.

*/ inline void SetWorkspaceDataSources(const Aws::Vector& value) { m_workspaceDataSourcesHasBeenSet = true; m_workspaceDataSources = value; } /** *

This parameter is for internal use only, and should not be used.

*/ inline void SetWorkspaceDataSources(Aws::Vector&& value) { m_workspaceDataSourcesHasBeenSet = true; m_workspaceDataSources = std::move(value); } /** *

This parameter is for internal use only, and should not be used.

*/ inline UpdateWorkspaceRequest& WithWorkspaceDataSources(const Aws::Vector& value) { SetWorkspaceDataSources(value); return *this;} /** *

This parameter is for internal use only, and should not be used.

*/ inline UpdateWorkspaceRequest& WithWorkspaceDataSources(Aws::Vector&& value) { SetWorkspaceDataSources(std::move(value)); return *this;} /** *

This parameter is for internal use only, and should not be used.

*/ inline UpdateWorkspaceRequest& AddWorkspaceDataSources(const DataSourceType& value) { m_workspaceDataSourcesHasBeenSet = true; m_workspaceDataSources.push_back(value); return *this; } /** *

This parameter is for internal use only, and should not be used.

*/ inline UpdateWorkspaceRequest& AddWorkspaceDataSources(DataSourceType&& value) { m_workspaceDataSourcesHasBeenSet = true; m_workspaceDataSources.push_back(std::move(value)); return *this; } /** *

A description for the workspace. This is used only to help you identify this * workspace.

*/ inline const Aws::String& GetWorkspaceDescription() const{ return m_workspaceDescription; } /** *

A description for the workspace. This is used only to help you identify this * workspace.

*/ inline bool WorkspaceDescriptionHasBeenSet() const { return m_workspaceDescriptionHasBeenSet; } /** *

A description for the workspace. This is used only to help you identify this * workspace.

*/ inline void SetWorkspaceDescription(const Aws::String& value) { m_workspaceDescriptionHasBeenSet = true; m_workspaceDescription = value; } /** *

A description for the workspace. This is used only to help you identify this * workspace.

*/ inline void SetWorkspaceDescription(Aws::String&& value) { m_workspaceDescriptionHasBeenSet = true; m_workspaceDescription = std::move(value); } /** *

A description for the workspace. This is used only to help you identify this * workspace.

*/ inline void SetWorkspaceDescription(const char* value) { m_workspaceDescriptionHasBeenSet = true; m_workspaceDescription.assign(value); } /** *

A description for the workspace. This is used only to help you identify this * workspace.

*/ inline UpdateWorkspaceRequest& WithWorkspaceDescription(const Aws::String& value) { SetWorkspaceDescription(value); return *this;} /** *

A description for the workspace. This is used only to help you identify this * workspace.

*/ inline UpdateWorkspaceRequest& WithWorkspaceDescription(Aws::String&& value) { SetWorkspaceDescription(std::move(value)); return *this;} /** *

A description for the workspace. This is used only to help you identify this * workspace.

*/ inline UpdateWorkspaceRequest& WithWorkspaceDescription(const char* value) { SetWorkspaceDescription(value); return *this;} /** *

The ID of the workspace to update.

*/ inline const Aws::String& GetWorkspaceId() const{ return m_workspaceId; } /** *

The ID of the workspace to update.

*/ inline bool WorkspaceIdHasBeenSet() const { return m_workspaceIdHasBeenSet; } /** *

The ID of the workspace to update.

*/ inline void SetWorkspaceId(const Aws::String& value) { m_workspaceIdHasBeenSet = true; m_workspaceId = value; } /** *

The ID of the workspace to update.

*/ inline void SetWorkspaceId(Aws::String&& value) { m_workspaceIdHasBeenSet = true; m_workspaceId = std::move(value); } /** *

The ID of the workspace to update.

*/ inline void SetWorkspaceId(const char* value) { m_workspaceIdHasBeenSet = true; m_workspaceId.assign(value); } /** *

The ID of the workspace to update.

*/ inline UpdateWorkspaceRequest& WithWorkspaceId(const Aws::String& value) { SetWorkspaceId(value); return *this;} /** *

The ID of the workspace to update.

*/ inline UpdateWorkspaceRequest& WithWorkspaceId(Aws::String&& value) { SetWorkspaceId(std::move(value)); return *this;} /** *

The ID of the workspace to update.

*/ inline UpdateWorkspaceRequest& WithWorkspaceId(const char* value) { SetWorkspaceId(value); return *this;} /** *

A new name for the workspace to update.

*/ inline const Aws::String& GetWorkspaceName() const{ return m_workspaceName; } /** *

A new name for the workspace to update.

*/ inline bool WorkspaceNameHasBeenSet() const { return m_workspaceNameHasBeenSet; } /** *

A new name for the workspace to update.

*/ inline void SetWorkspaceName(const Aws::String& value) { m_workspaceNameHasBeenSet = true; m_workspaceName = value; } /** *

A new name for the workspace to update.

*/ inline void SetWorkspaceName(Aws::String&& value) { m_workspaceNameHasBeenSet = true; m_workspaceName = std::move(value); } /** *

A new name for the workspace to update.

*/ inline void SetWorkspaceName(const char* value) { m_workspaceNameHasBeenSet = true; m_workspaceName.assign(value); } /** *

A new name for the workspace to update.

*/ inline UpdateWorkspaceRequest& WithWorkspaceName(const Aws::String& value) { SetWorkspaceName(value); return *this;} /** *

A new name for the workspace to update.

*/ inline UpdateWorkspaceRequest& WithWorkspaceName(Aws::String&& value) { SetWorkspaceName(std::move(value)); return *this;} /** *

A new name for the workspace to update.

*/ inline UpdateWorkspaceRequest& WithWorkspaceName(const char* value) { SetWorkspaceName(value); return *this;} /** *

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.

*/ inline const Aws::Vector& GetWorkspaceNotificationDestinations() const{ return m_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.

*/ inline bool WorkspaceNotificationDestinationsHasBeenSet() const { return m_workspaceNotificationDestinationsHasBeenSet; } /** *

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.

*/ inline void SetWorkspaceNotificationDestinations(const Aws::Vector& value) { m_workspaceNotificationDestinationsHasBeenSet = true; m_workspaceNotificationDestinations = value; } /** *

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.

*/ inline void SetWorkspaceNotificationDestinations(Aws::Vector&& value) { m_workspaceNotificationDestinationsHasBeenSet = true; m_workspaceNotificationDestinations = std::move(value); } /** *

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.

*/ inline UpdateWorkspaceRequest& WithWorkspaceNotificationDestinations(const Aws::Vector& value) { SetWorkspaceNotificationDestinations(value); return *this;} /** *

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.

*/ inline UpdateWorkspaceRequest& WithWorkspaceNotificationDestinations(Aws::Vector&& value) { SetWorkspaceNotificationDestinations(std::move(value)); return *this;} /** *

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.

*/ inline UpdateWorkspaceRequest& AddWorkspaceNotificationDestinations(const NotificationDestinationType& value) { m_workspaceNotificationDestinationsHasBeenSet = true; m_workspaceNotificationDestinations.push_back(value); return *this; } /** *

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.

*/ inline UpdateWorkspaceRequest& AddWorkspaceNotificationDestinations(NotificationDestinationType&& value) { m_workspaceNotificationDestinationsHasBeenSet = true; m_workspaceNotificationDestinations.push_back(std::move(value)); return *this; } /** *

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.

*/ inline const Aws::Vector& GetWorkspaceOrganizationalUnits() const{ return m_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.

*/ inline bool WorkspaceOrganizationalUnitsHasBeenSet() const { return m_workspaceOrganizationalUnitsHasBeenSet; } /** *

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.

*/ inline void SetWorkspaceOrganizationalUnits(const Aws::Vector& value) { m_workspaceOrganizationalUnitsHasBeenSet = true; m_workspaceOrganizationalUnits = value; } /** *

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.

*/ inline void SetWorkspaceOrganizationalUnits(Aws::Vector&& value) { m_workspaceOrganizationalUnitsHasBeenSet = true; m_workspaceOrganizationalUnits = std::move(value); } /** *

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.

*/ inline UpdateWorkspaceRequest& WithWorkspaceOrganizationalUnits(const Aws::Vector& value) { SetWorkspaceOrganizationalUnits(value); return *this;} /** *

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.

*/ inline UpdateWorkspaceRequest& WithWorkspaceOrganizationalUnits(Aws::Vector&& value) { SetWorkspaceOrganizationalUnits(std::move(value)); return *this;} /** *

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.

*/ inline UpdateWorkspaceRequest& AddWorkspaceOrganizationalUnits(const Aws::String& value) { m_workspaceOrganizationalUnitsHasBeenSet = true; m_workspaceOrganizationalUnits.push_back(value); return *this; } /** *

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.

*/ inline UpdateWorkspaceRequest& AddWorkspaceOrganizationalUnits(Aws::String&& value) { m_workspaceOrganizationalUnitsHasBeenSet = true; m_workspaceOrganizationalUnits.push_back(std::move(value)); return *this; } /** *

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.

*/ inline UpdateWorkspaceRequest& AddWorkspaceOrganizationalUnits(const char* value) { m_workspaceOrganizationalUnitsHasBeenSet = true; m_workspaceOrganizationalUnits.push_back(value); return *this; } /** *

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.

*/ inline const Aws::String& GetWorkspaceRoleArn() const{ return m_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.

*/ inline bool WorkspaceRoleArnHasBeenSet() const { return m_workspaceRoleArnHasBeenSet; } /** *

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.

*/ inline void SetWorkspaceRoleArn(const Aws::String& value) { m_workspaceRoleArnHasBeenSet = true; m_workspaceRoleArn = value; } /** *

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.

*/ inline void SetWorkspaceRoleArn(Aws::String&& value) { m_workspaceRoleArnHasBeenSet = true; m_workspaceRoleArn = std::move(value); } /** *

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.

*/ inline void SetWorkspaceRoleArn(const char* value) { m_workspaceRoleArnHasBeenSet = true; m_workspaceRoleArn.assign(value); } /** *

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.

*/ inline UpdateWorkspaceRequest& WithWorkspaceRoleArn(const Aws::String& value) { SetWorkspaceRoleArn(value); return *this;} /** *

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.

*/ inline UpdateWorkspaceRequest& WithWorkspaceRoleArn(Aws::String&& value) { SetWorkspaceRoleArn(std::move(value)); return *this;} /** *

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.

*/ inline UpdateWorkspaceRequest& WithWorkspaceRoleArn(const char* value) { SetWorkspaceRoleArn(value); return *this;} private: AccountAccessType m_accountAccessType; bool m_accountAccessTypeHasBeenSet = false; NetworkAccessConfiguration m_networkAccessControl; bool m_networkAccessControlHasBeenSet = false; Aws::String m_organizationRoleName; bool m_organizationRoleNameHasBeenSet = false; PermissionType m_permissionType; bool m_permissionTypeHasBeenSet = false; bool m_removeNetworkAccessConfiguration; bool m_removeNetworkAccessConfigurationHasBeenSet = false; bool m_removeVpcConfiguration; bool m_removeVpcConfigurationHasBeenSet = false; Aws::String m_stackSetName; bool m_stackSetNameHasBeenSet = false; VpcConfiguration m_vpcConfiguration; bool m_vpcConfigurationHasBeenSet = false; Aws::Vector m_workspaceDataSources; bool m_workspaceDataSourcesHasBeenSet = false; Aws::String m_workspaceDescription; bool m_workspaceDescriptionHasBeenSet = false; Aws::String m_workspaceId; bool m_workspaceIdHasBeenSet = false; Aws::String m_workspaceName; bool m_workspaceNameHasBeenSet = false; Aws::Vector m_workspaceNotificationDestinations; bool m_workspaceNotificationDestinationsHasBeenSet = false; Aws::Vector m_workspaceOrganizationalUnits; bool m_workspaceOrganizationalUnitsHasBeenSet = false; Aws::String m_workspaceRoleArn; bool m_workspaceRoleArnHasBeenSet = false; }; } // namespace Model } // namespace ManagedGrafana } // namespace Aws