/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace RedshiftServerless { namespace Model { /** *

The collection of computing resources from which an endpoint is * created.

See Also:

AWS * API Reference

*/ class Workgroup { public: AWS_REDSHIFTSERVERLESS_API Workgroup(); AWS_REDSHIFTSERVERLESS_API Workgroup(Aws::Utils::Json::JsonView jsonValue); AWS_REDSHIFTSERVERLESS_API Workgroup& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_REDSHIFTSERVERLESS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The base data warehouse capacity of the workgroup in Redshift Processing * Units (RPUs).

*/ inline int GetBaseCapacity() const{ return m_baseCapacity; } /** *

The base data warehouse capacity of the workgroup in Redshift Processing * Units (RPUs).

*/ inline bool BaseCapacityHasBeenSet() const { return m_baseCapacityHasBeenSet; } /** *

The base data warehouse capacity of the workgroup in Redshift Processing * Units (RPUs).

*/ inline void SetBaseCapacity(int value) { m_baseCapacityHasBeenSet = true; m_baseCapacity = value; } /** *

The base data warehouse capacity of the workgroup in Redshift Processing * Units (RPUs).

*/ inline Workgroup& WithBaseCapacity(int value) { SetBaseCapacity(value); return *this;} /** *

An array of parameters to set for advanced control over a database. The * options are auto_mv, datestyle, * enable_case_sensitivity_identifier, * enable_user_activity_logging, query_group, , * search_path, and query monitoring metrics that let you define * performance boundaries. For more information about query monitoring rules and * available metrics, see * Query monitoring metrics for Amazon Redshift Serverless.

*/ inline const Aws::Vector& GetConfigParameters() const{ return m_configParameters; } /** *

An array of parameters to set for advanced control over a database. The * options are auto_mv, datestyle, * enable_case_sensitivity_identifier, * enable_user_activity_logging, query_group, , * search_path, and query monitoring metrics that let you define * performance boundaries. For more information about query monitoring rules and * available metrics, see * Query monitoring metrics for Amazon Redshift Serverless.

*/ inline bool ConfigParametersHasBeenSet() const { return m_configParametersHasBeenSet; } /** *

An array of parameters to set for advanced control over a database. The * options are auto_mv, datestyle, * enable_case_sensitivity_identifier, * enable_user_activity_logging, query_group, , * search_path, and query monitoring metrics that let you define * performance boundaries. For more information about query monitoring rules and * available metrics, see * Query monitoring metrics for Amazon Redshift Serverless.

*/ inline void SetConfigParameters(const Aws::Vector& value) { m_configParametersHasBeenSet = true; m_configParameters = value; } /** *

An array of parameters to set for advanced control over a database. The * options are auto_mv, datestyle, * enable_case_sensitivity_identifier, * enable_user_activity_logging, query_group, , * search_path, and query monitoring metrics that let you define * performance boundaries. For more information about query monitoring rules and * available metrics, see * Query monitoring metrics for Amazon Redshift Serverless.

*/ inline void SetConfigParameters(Aws::Vector&& value) { m_configParametersHasBeenSet = true; m_configParameters = std::move(value); } /** *

An array of parameters to set for advanced control over a database. The * options are auto_mv, datestyle, * enable_case_sensitivity_identifier, * enable_user_activity_logging, query_group, , * search_path, and query monitoring metrics that let you define * performance boundaries. For more information about query monitoring rules and * available metrics, see * Query monitoring metrics for Amazon Redshift Serverless.

*/ inline Workgroup& WithConfigParameters(const Aws::Vector& value) { SetConfigParameters(value); return *this;} /** *

An array of parameters to set for advanced control over a database. The * options are auto_mv, datestyle, * enable_case_sensitivity_identifier, * enable_user_activity_logging, query_group, , * search_path, and query monitoring metrics that let you define * performance boundaries. For more information about query monitoring rules and * available metrics, see * Query monitoring metrics for Amazon Redshift Serverless.

*/ inline Workgroup& WithConfigParameters(Aws::Vector&& value) { SetConfigParameters(std::move(value)); return *this;} /** *

An array of parameters to set for advanced control over a database. The * options are auto_mv, datestyle, * enable_case_sensitivity_identifier, * enable_user_activity_logging, query_group, , * search_path, and query monitoring metrics that let you define * performance boundaries. For more information about query monitoring rules and * available metrics, see * Query monitoring metrics for Amazon Redshift Serverless.

*/ inline Workgroup& AddConfigParameters(const ConfigParameter& value) { m_configParametersHasBeenSet = true; m_configParameters.push_back(value); return *this; } /** *

An array of parameters to set for advanced control over a database. The * options are auto_mv, datestyle, * enable_case_sensitivity_identifier, * enable_user_activity_logging, query_group, , * search_path, and query monitoring metrics that let you define * performance boundaries. For more information about query monitoring rules and * available metrics, see * Query monitoring metrics for Amazon Redshift Serverless.

*/ inline Workgroup& AddConfigParameters(ConfigParameter&& value) { m_configParametersHasBeenSet = true; m_configParameters.push_back(std::move(value)); return *this; } /** *

The creation date of the workgroup.

*/ inline const Aws::Utils::DateTime& GetCreationDate() const{ return m_creationDate; } /** *

The creation date of the workgroup.

*/ inline bool CreationDateHasBeenSet() const { return m_creationDateHasBeenSet; } /** *

The creation date of the workgroup.

*/ inline void SetCreationDate(const Aws::Utils::DateTime& value) { m_creationDateHasBeenSet = true; m_creationDate = value; } /** *

The creation date of the workgroup.

*/ inline void SetCreationDate(Aws::Utils::DateTime&& value) { m_creationDateHasBeenSet = true; m_creationDate = std::move(value); } /** *

The creation date of the workgroup.

*/ inline Workgroup& WithCreationDate(const Aws::Utils::DateTime& value) { SetCreationDate(value); return *this;} /** *

The creation date of the workgroup.

*/ inline Workgroup& WithCreationDate(Aws::Utils::DateTime&& value) { SetCreationDate(std::move(value)); return *this;} /** *

The endpoint that is created from the workgroup.

*/ inline const Endpoint& GetEndpoint() const{ return m_endpoint; } /** *

The endpoint that is created from the workgroup.

*/ inline bool EndpointHasBeenSet() const { return m_endpointHasBeenSet; } /** *

The endpoint that is created from the workgroup.

*/ inline void SetEndpoint(const Endpoint& value) { m_endpointHasBeenSet = true; m_endpoint = value; } /** *

The endpoint that is created from the workgroup.

*/ inline void SetEndpoint(Endpoint&& value) { m_endpointHasBeenSet = true; m_endpoint = std::move(value); } /** *

The endpoint that is created from the workgroup.

*/ inline Workgroup& WithEndpoint(const Endpoint& value) { SetEndpoint(value); return *this;} /** *

The endpoint that is created from the workgroup.

*/ inline Workgroup& WithEndpoint(Endpoint&& value) { SetEndpoint(std::move(value)); return *this;} /** *

The value that specifies whether to enable enhanced virtual private cloud * (VPC) routing, which forces Amazon Redshift Serverless to route traffic through * your VPC.

*/ inline bool GetEnhancedVpcRouting() const{ return m_enhancedVpcRouting; } /** *

The value that specifies whether to enable enhanced virtual private cloud * (VPC) routing, which forces Amazon Redshift Serverless to route traffic through * your VPC.

*/ inline bool EnhancedVpcRoutingHasBeenSet() const { return m_enhancedVpcRoutingHasBeenSet; } /** *

The value that specifies whether to enable enhanced virtual private cloud * (VPC) routing, which forces Amazon Redshift Serverless to route traffic through * your VPC.

*/ inline void SetEnhancedVpcRouting(bool value) { m_enhancedVpcRoutingHasBeenSet = true; m_enhancedVpcRouting = value; } /** *

The value that specifies whether to enable enhanced virtual private cloud * (VPC) routing, which forces Amazon Redshift Serverless to route traffic through * your VPC.

*/ inline Workgroup& WithEnhancedVpcRouting(bool value) { SetEnhancedVpcRouting(value); return *this;} /** *

The namespace the workgroup is associated with.

*/ inline const Aws::String& GetNamespaceName() const{ return m_namespaceName; } /** *

The namespace the workgroup is associated with.

*/ inline bool NamespaceNameHasBeenSet() const { return m_namespaceNameHasBeenSet; } /** *

The namespace the workgroup is associated with.

*/ inline void SetNamespaceName(const Aws::String& value) { m_namespaceNameHasBeenSet = true; m_namespaceName = value; } /** *

The namespace the workgroup is associated with.

*/ inline void SetNamespaceName(Aws::String&& value) { m_namespaceNameHasBeenSet = true; m_namespaceName = std::move(value); } /** *

The namespace the workgroup is associated with.

*/ inline void SetNamespaceName(const char* value) { m_namespaceNameHasBeenSet = true; m_namespaceName.assign(value); } /** *

The namespace the workgroup is associated with.

*/ inline Workgroup& WithNamespaceName(const Aws::String& value) { SetNamespaceName(value); return *this;} /** *

The namespace the workgroup is associated with.

*/ inline Workgroup& WithNamespaceName(Aws::String&& value) { SetNamespaceName(std::move(value)); return *this;} /** *

The namespace the workgroup is associated with.

*/ inline Workgroup& WithNamespaceName(const char* value) { SetNamespaceName(value); return *this;} /** *

The custom port to use when connecting to a workgroup. Valid port ranges are * 5431-5455 and 8191-8215. The default is 5439.

*/ inline int GetPort() const{ return m_port; } /** *

The custom port to use when connecting to a workgroup. Valid port ranges are * 5431-5455 and 8191-8215. The default is 5439.

*/ inline bool PortHasBeenSet() const { return m_portHasBeenSet; } /** *

The custom port to use when connecting to a workgroup. Valid port ranges are * 5431-5455 and 8191-8215. The default is 5439.

*/ inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; } /** *

The custom port to use when connecting to a workgroup. Valid port ranges are * 5431-5455 and 8191-8215. The default is 5439.

*/ inline Workgroup& WithPort(int value) { SetPort(value); return *this;} /** *

A value that specifies whether the workgroup can be accessible from a public * network

*/ inline bool GetPubliclyAccessible() const{ return m_publiclyAccessible; } /** *

A value that specifies whether the workgroup can be accessible from a public * network

*/ inline bool PubliclyAccessibleHasBeenSet() const { return m_publiclyAccessibleHasBeenSet; } /** *

A value that specifies whether the workgroup can be accessible from a public * network

*/ inline void SetPubliclyAccessible(bool value) { m_publiclyAccessibleHasBeenSet = true; m_publiclyAccessible = value; } /** *

A value that specifies whether the workgroup can be accessible from a public * network

*/ inline Workgroup& WithPubliclyAccessible(bool value) { SetPubliclyAccessible(value); return *this;} /** *

An array of security group IDs to associate with the workgroup.

*/ inline const Aws::Vector& GetSecurityGroupIds() const{ return m_securityGroupIds; } /** *

An array of security group IDs to associate with the workgroup.

*/ inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; } /** *

An array of security group IDs to associate with the workgroup.

*/ inline void SetSecurityGroupIds(const Aws::Vector& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; } /** *

An array of security group IDs to associate with the workgroup.

*/ inline void SetSecurityGroupIds(Aws::Vector&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); } /** *

An array of security group IDs to associate with the workgroup.

*/ inline Workgroup& WithSecurityGroupIds(const Aws::Vector& value) { SetSecurityGroupIds(value); return *this;} /** *

An array of security group IDs to associate with the workgroup.

*/ inline Workgroup& WithSecurityGroupIds(Aws::Vector&& value) { SetSecurityGroupIds(std::move(value)); return *this;} /** *

An array of security group IDs to associate with the workgroup.

*/ inline Workgroup& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

An array of security group IDs to associate with the workgroup.

*/ inline Workgroup& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; } /** *

An array of security group IDs to associate with the workgroup.

*/ inline Workgroup& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

The status of the workgroup.

*/ inline const WorkgroupStatus& GetStatus() const{ return m_status; } /** *

The status of the workgroup.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status of the workgroup.

*/ inline void SetStatus(const WorkgroupStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status of the workgroup.

*/ inline void SetStatus(WorkgroupStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status of the workgroup.

*/ inline Workgroup& WithStatus(const WorkgroupStatus& value) { SetStatus(value); return *this;} /** *

The status of the workgroup.

*/ inline Workgroup& WithStatus(WorkgroupStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

An array of subnet IDs the workgroup is associated with.

*/ inline const Aws::Vector& GetSubnetIds() const{ return m_subnetIds; } /** *

An array of subnet IDs the workgroup is associated with.

*/ inline bool SubnetIdsHasBeenSet() const { return m_subnetIdsHasBeenSet; } /** *

An array of subnet IDs the workgroup is associated with.

*/ inline void SetSubnetIds(const Aws::Vector& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = value; } /** *

An array of subnet IDs the workgroup is associated with.

*/ inline void SetSubnetIds(Aws::Vector&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds = std::move(value); } /** *

An array of subnet IDs the workgroup is associated with.

*/ inline Workgroup& WithSubnetIds(const Aws::Vector& value) { SetSubnetIds(value); return *this;} /** *

An array of subnet IDs the workgroup is associated with.

*/ inline Workgroup& WithSubnetIds(Aws::Vector&& value) { SetSubnetIds(std::move(value)); return *this;} /** *

An array of subnet IDs the workgroup is associated with.

*/ inline Workgroup& AddSubnetIds(const Aws::String& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } /** *

An array of subnet IDs the workgroup is associated with.

*/ inline Workgroup& AddSubnetIds(Aws::String&& value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(std::move(value)); return *this; } /** *

An array of subnet IDs the workgroup is associated with.

*/ inline Workgroup& AddSubnetIds(const char* value) { m_subnetIdsHasBeenSet = true; m_subnetIds.push_back(value); return *this; } /** *

The Amazon Resource Name (ARN) that links to the workgroup.

*/ inline const Aws::String& GetWorkgroupArn() const{ return m_workgroupArn; } /** *

The Amazon Resource Name (ARN) that links to the workgroup.

*/ inline bool WorkgroupArnHasBeenSet() const { return m_workgroupArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) that links to the workgroup.

*/ inline void SetWorkgroupArn(const Aws::String& value) { m_workgroupArnHasBeenSet = true; m_workgroupArn = value; } /** *

The Amazon Resource Name (ARN) that links to the workgroup.

*/ inline void SetWorkgroupArn(Aws::String&& value) { m_workgroupArnHasBeenSet = true; m_workgroupArn = std::move(value); } /** *

The Amazon Resource Name (ARN) that links to the workgroup.

*/ inline void SetWorkgroupArn(const char* value) { m_workgroupArnHasBeenSet = true; m_workgroupArn.assign(value); } /** *

The Amazon Resource Name (ARN) that links to the workgroup.

*/ inline Workgroup& WithWorkgroupArn(const Aws::String& value) { SetWorkgroupArn(value); return *this;} /** *

The Amazon Resource Name (ARN) that links to the workgroup.

*/ inline Workgroup& WithWorkgroupArn(Aws::String&& value) { SetWorkgroupArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) that links to the workgroup.

*/ inline Workgroup& WithWorkgroupArn(const char* value) { SetWorkgroupArn(value); return *this;} /** *

The unique identifier of the workgroup.

*/ inline const Aws::String& GetWorkgroupId() const{ return m_workgroupId; } /** *

The unique identifier of the workgroup.

*/ inline bool WorkgroupIdHasBeenSet() const { return m_workgroupIdHasBeenSet; } /** *

The unique identifier of the workgroup.

*/ inline void SetWorkgroupId(const Aws::String& value) { m_workgroupIdHasBeenSet = true; m_workgroupId = value; } /** *

The unique identifier of the workgroup.

*/ inline void SetWorkgroupId(Aws::String&& value) { m_workgroupIdHasBeenSet = true; m_workgroupId = std::move(value); } /** *

The unique identifier of the workgroup.

*/ inline void SetWorkgroupId(const char* value) { m_workgroupIdHasBeenSet = true; m_workgroupId.assign(value); } /** *

The unique identifier of the workgroup.

*/ inline Workgroup& WithWorkgroupId(const Aws::String& value) { SetWorkgroupId(value); return *this;} /** *

The unique identifier of the workgroup.

*/ inline Workgroup& WithWorkgroupId(Aws::String&& value) { SetWorkgroupId(std::move(value)); return *this;} /** *

The unique identifier of the workgroup.

*/ inline Workgroup& WithWorkgroupId(const char* value) { SetWorkgroupId(value); return *this;} /** *

The name of the workgroup.

*/ inline const Aws::String& GetWorkgroupName() const{ return m_workgroupName; } /** *

The name of the workgroup.

*/ inline bool WorkgroupNameHasBeenSet() const { return m_workgroupNameHasBeenSet; } /** *

The name of the workgroup.

*/ inline void SetWorkgroupName(const Aws::String& value) { m_workgroupNameHasBeenSet = true; m_workgroupName = value; } /** *

The name of the workgroup.

*/ inline void SetWorkgroupName(Aws::String&& value) { m_workgroupNameHasBeenSet = true; m_workgroupName = std::move(value); } /** *

The name of the workgroup.

*/ inline void SetWorkgroupName(const char* value) { m_workgroupNameHasBeenSet = true; m_workgroupName.assign(value); } /** *

The name of the workgroup.

*/ inline Workgroup& WithWorkgroupName(const Aws::String& value) { SetWorkgroupName(value); return *this;} /** *

The name of the workgroup.

*/ inline Workgroup& WithWorkgroupName(Aws::String&& value) { SetWorkgroupName(std::move(value)); return *this;} /** *

The name of the workgroup.

*/ inline Workgroup& WithWorkgroupName(const char* value) { SetWorkgroupName(value); return *this;} private: int m_baseCapacity; bool m_baseCapacityHasBeenSet = false; Aws::Vector m_configParameters; bool m_configParametersHasBeenSet = false; Aws::Utils::DateTime m_creationDate; bool m_creationDateHasBeenSet = false; Endpoint m_endpoint; bool m_endpointHasBeenSet = false; bool m_enhancedVpcRouting; bool m_enhancedVpcRoutingHasBeenSet = false; Aws::String m_namespaceName; bool m_namespaceNameHasBeenSet = false; int m_port; bool m_portHasBeenSet = false; bool m_publiclyAccessible; bool m_publiclyAccessibleHasBeenSet = false; Aws::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet = false; WorkgroupStatus m_status; bool m_statusHasBeenSet = false; Aws::Vector m_subnetIds; bool m_subnetIdsHasBeenSet = false; Aws::String m_workgroupArn; bool m_workgroupArnHasBeenSet = false; Aws::String m_workgroupId; bool m_workgroupIdHasBeenSet = false; Aws::String m_workgroupName; bool m_workgroupNameHasBeenSet = false; }; } // namespace Model } // namespace RedshiftServerless } // namespace Aws