/** * 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 #include #include #include namespace Aws { namespace ManagedGrafana { namespace Model { /** */ class CreateWorkspaceRequest : public ManagedGrafanaRequest { public: AWS_MANAGEDGRAFANA_API CreateWorkspaceRequest(); // 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 "CreateWorkspace"; } 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 CreateWorkspaceRequest& 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 CreateWorkspaceRequest& WithAccountAccessType(AccountAccessType&& value) { SetAccountAccessType(std::move(value)); return *this;} /** *

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.

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

*/ inline bool AuthenticationProvidersHasBeenSet() const { return m_authenticationProvidersHasBeenSet; } /** *

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.

*/ inline void SetAuthenticationProviders(const Aws::Vector& value) { m_authenticationProvidersHasBeenSet = true; m_authenticationProviders = value; } /** *

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.

*/ inline void SetAuthenticationProviders(Aws::Vector&& value) { m_authenticationProvidersHasBeenSet = true; m_authenticationProviders = std::move(value); } /** *

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.

*/ inline CreateWorkspaceRequest& WithAuthenticationProviders(const Aws::Vector& value) { SetAuthenticationProviders(value); return *this;} /** *

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.

*/ inline CreateWorkspaceRequest& WithAuthenticationProviders(Aws::Vector&& value) { SetAuthenticationProviders(std::move(value)); return *this;} /** *

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.

*/ inline CreateWorkspaceRequest& AddAuthenticationProviders(const AuthenticationProviderTypes& value) { m_authenticationProvidersHasBeenSet = true; m_authenticationProviders.push_back(value); return *this; } /** *

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.

*/ inline CreateWorkspaceRequest& AddAuthenticationProviders(AuthenticationProviderTypes&& value) { m_authenticationProvidersHasBeenSet = true; m_authenticationProviders.push_back(std::move(value)); return *this; } /** *

A unique, case-sensitive, user-provided identifier to ensure the idempotency * of the request.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

A unique, case-sensitive, user-provided identifier to ensure the idempotency * of the request.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

A unique, case-sensitive, user-provided identifier to ensure the idempotency * of the request.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

A unique, case-sensitive, user-provided identifier to ensure the idempotency * of the request.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

A unique, case-sensitive, user-provided identifier to ensure the idempotency * of the request.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

A unique, case-sensitive, user-provided identifier to ensure the idempotency * of the request.

*/ inline CreateWorkspaceRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

A unique, case-sensitive, user-provided identifier to ensure the idempotency * of the request.

*/ inline CreateWorkspaceRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

A unique, case-sensitive, user-provided identifier to ensure the idempotency * of the request.

*/ inline CreateWorkspaceRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

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.

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

*/ inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; } /** *

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.

*/ inline void SetConfiguration(const Aws::String& value) { m_configurationHasBeenSet = true; m_configuration = value; } /** *

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.

*/ inline void SetConfiguration(Aws::String&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); } /** *

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.

*/ inline void SetConfiguration(const char* value) { m_configurationHasBeenSet = true; m_configuration.assign(value); } /** *

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.

*/ inline CreateWorkspaceRequest& WithConfiguration(const Aws::String& value) { SetConfiguration(value); return *this;} /** *

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.

*/ inline CreateWorkspaceRequest& WithConfiguration(Aws::String&& value) { SetConfiguration(std::move(value)); return *this;} /** *

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.

*/ inline CreateWorkspaceRequest& WithConfiguration(const char* value) { SetConfiguration(value); return *this;} /** *

Specifies the version of Grafana to support in the new workspace.

To * get a list of supported version, use the ListVersions * operation.

*/ inline const Aws::String& GetGrafanaVersion() const{ return m_grafanaVersion; } /** *

Specifies the version of Grafana to support in the new workspace.

To * get a list of supported version, use the ListVersions * operation.

*/ inline bool GrafanaVersionHasBeenSet() const { return m_grafanaVersionHasBeenSet; } /** *

Specifies the version of Grafana to support in the new workspace.

To * get a list of supported version, use the ListVersions * operation.

*/ inline void SetGrafanaVersion(const Aws::String& value) { m_grafanaVersionHasBeenSet = true; m_grafanaVersion = value; } /** *

Specifies the version of Grafana to support in the new workspace.

To * get a list of supported version, use the ListVersions * operation.

*/ inline void SetGrafanaVersion(Aws::String&& value) { m_grafanaVersionHasBeenSet = true; m_grafanaVersion = std::move(value); } /** *

Specifies the version of Grafana to support in the new workspace.

To * get a list of supported version, use the ListVersions * operation.

*/ inline void SetGrafanaVersion(const char* value) { m_grafanaVersionHasBeenSet = true; m_grafanaVersion.assign(value); } /** *

Specifies the version of Grafana to support in the new workspace.

To * get a list of supported version, use the ListVersions * operation.

*/ inline CreateWorkspaceRequest& WithGrafanaVersion(const Aws::String& value) { SetGrafanaVersion(value); return *this;} /** *

Specifies the version of Grafana to support in the new workspace.

To * get a list of supported version, use the ListVersions * operation.

*/ inline CreateWorkspaceRequest& WithGrafanaVersion(Aws::String&& value) { SetGrafanaVersion(std::move(value)); return *this;} /** *

Specifies the version of Grafana to support in the new workspace.

To * get a list of supported version, use the ListVersions * operation.

*/ inline CreateWorkspaceRequest& WithGrafanaVersion(const char* value) { SetGrafanaVersion(value); return *this;} /** *

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.

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

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

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.

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

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.

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

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.

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

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.

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

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.

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

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

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.

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

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.

*/ 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 with Organizations to * access Amazon Web Services data sources and notification channels in other * accounts in an organization.

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

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.

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

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.

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

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.

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

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.

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

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

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.

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

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.

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

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.

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

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.

*/ inline CreateWorkspaceRequest& WithPermissionType(PermissionType&& value) { SetPermissionType(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 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 CreateWorkspaceRequest& 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 CreateWorkspaceRequest& 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 CreateWorkspaceRequest& WithStackSetName(const char* value) { SetStackSetName(value); return *this;} /** *

The list of tags associated with the workspace.

*/ inline const Aws::Map& GetTags() const{ return m_tags; } /** *

The list of tags associated with the workspace.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The list of tags associated with the workspace.

*/ inline void SetTags(const Aws::Map& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The list of tags associated with the workspace.

*/ inline void SetTags(Aws::Map&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The list of tags associated with the workspace.

*/ inline CreateWorkspaceRequest& WithTags(const Aws::Map& value) { SetTags(value); return *this;} /** *

The list of tags associated with the workspace.

*/ inline CreateWorkspaceRequest& WithTags(Aws::Map&& value) { SetTags(std::move(value)); return *this;} /** *

The list of tags associated with the workspace.

*/ inline CreateWorkspaceRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The list of tags associated with the workspace.

*/ inline CreateWorkspaceRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The list of tags associated with the workspace.

*/ inline CreateWorkspaceRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The list of tags associated with the workspace.

*/ inline CreateWorkspaceRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

The list of tags associated with the workspace.

*/ inline CreateWorkspaceRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The list of tags associated with the workspace.

*/ inline CreateWorkspaceRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The list of tags associated with the workspace.

*/ inline CreateWorkspaceRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

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).

* */ 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.

Connecting to a private VPC * is not yet available in the Asia Pacific (Seoul) Region (ap-northeast-2).

* */ 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.

Connecting to a private VPC * is not yet available in the Asia Pacific (Seoul) Region (ap-northeast-2).

* */ 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.

Connecting to a private VPC * is not yet available in the Asia Pacific (Seoul) Region (ap-northeast-2).

* */ 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.

Connecting to a private VPC * is not yet available in the Asia Pacific (Seoul) Region (ap-northeast-2).

* */ inline CreateWorkspaceRequest& 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.

Connecting to a private VPC * is not yet available in the Asia Pacific (Seoul) Region (ap-northeast-2).

* */ inline CreateWorkspaceRequest& 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 CreateWorkspaceRequest& WithWorkspaceDataSources(const Aws::Vector& value) { SetWorkspaceDataSources(value); return *this;} /** *

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

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

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

*/ inline CreateWorkspaceRequest& 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 CreateWorkspaceRequest& 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.

Pattern: ^[\\p{L}\\p{Z}\\p{N}\\p{P}]{0,2048}$ *

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

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

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}$ *

*/ 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.

Pattern: ^[\\p{L}\\p{Z}\\p{N}\\p{P}]{0,2048}$ *

*/ 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.

Pattern: ^[\\p{L}\\p{Z}\\p{N}\\p{P}]{0,2048}$ *

*/ 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.

Pattern: ^[\\p{L}\\p{Z}\\p{N}\\p{P}]{0,2048}$ *

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

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}$ *

*/ inline CreateWorkspaceRequest& 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.

Pattern: ^[\\p{L}\\p{Z}\\p{N}\\p{P}]{0,2048}$ *

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

The name for the workspace. It does not have to be unique.

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

The name for the workspace. It does not have to be unique.

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

The name for the workspace. It does not have to be unique.

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

The name for the workspace. It does not have to be unique.

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

The name for the workspace. It does not have to be unique.

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

The name for the workspace. It does not have to be unique.

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

The name for the workspace. It does not have to be unique.

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

The name for the workspace. It does not have to be unique.

*/ inline CreateWorkspaceRequest& 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 CreateWorkspaceRequest& 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 CreateWorkspaceRequest& 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 CreateWorkspaceRequest& 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 CreateWorkspaceRequest& 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 CreateWorkspaceRequest& 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 CreateWorkspaceRequest& 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 CreateWorkspaceRequest& 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 CreateWorkspaceRequest& 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 CreateWorkspaceRequest& AddWorkspaceOrganizationalUnits(const char* value) { m_workspaceOrganizationalUnitsHasBeenSet = true; m_workspaceOrganizationalUnits.push_back(value); return *this; } /** *

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.

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

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

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.

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

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.

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

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.

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

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.

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

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.

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

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.

*/ inline CreateWorkspaceRequest& WithWorkspaceRoleArn(const char* value) { SetWorkspaceRoleArn(value); return *this;} private: AccountAccessType m_accountAccessType; bool m_accountAccessTypeHasBeenSet = false; Aws::Vector m_authenticationProviders; bool m_authenticationProvidersHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; Aws::String m_configuration; bool m_configurationHasBeenSet = false; Aws::String m_grafanaVersion; bool m_grafanaVersionHasBeenSet = false; NetworkAccessConfiguration m_networkAccessControl; bool m_networkAccessControlHasBeenSet = false; Aws::String m_organizationRoleName; bool m_organizationRoleNameHasBeenSet = false; PermissionType m_permissionType; bool m_permissionTypeHasBeenSet = false; Aws::String m_stackSetName; bool m_stackSetNameHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = 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_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