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

A collection of database objects and users.

See Also:

AWS * API Reference

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

The username of the administrator for the first database created in the * namespace.

*/ inline const Aws::String& GetAdminUsername() const{ return m_adminUsername; } /** *

The username of the administrator for the first database created in the * namespace.

*/ inline bool AdminUsernameHasBeenSet() const { return m_adminUsernameHasBeenSet; } /** *

The username of the administrator for the first database created in the * namespace.

*/ inline void SetAdminUsername(const Aws::String& value) { m_adminUsernameHasBeenSet = true; m_adminUsername = value; } /** *

The username of the administrator for the first database created in the * namespace.

*/ inline void SetAdminUsername(Aws::String&& value) { m_adminUsernameHasBeenSet = true; m_adminUsername = std::move(value); } /** *

The username of the administrator for the first database created in the * namespace.

*/ inline void SetAdminUsername(const char* value) { m_adminUsernameHasBeenSet = true; m_adminUsername.assign(value); } /** *

The username of the administrator for the first database created in the * namespace.

*/ inline Namespace& WithAdminUsername(const Aws::String& value) { SetAdminUsername(value); return *this;} /** *

The username of the administrator for the first database created in the * namespace.

*/ inline Namespace& WithAdminUsername(Aws::String&& value) { SetAdminUsername(std::move(value)); return *this;} /** *

The username of the administrator for the first database created in the * namespace.

*/ inline Namespace& WithAdminUsername(const char* value) { SetAdminUsername(value); return *this;} /** *

The date of when the namespace was created.

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

The date of when the namespace was created.

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

The date of when the namespace was created.

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

The date of when the namespace was created.

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

The date of when the namespace was created.

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

The date of when the namespace was created.

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

The name of the first database created in the namespace.

*/ inline const Aws::String& GetDbName() const{ return m_dbName; } /** *

The name of the first database created in the namespace.

*/ inline bool DbNameHasBeenSet() const { return m_dbNameHasBeenSet; } /** *

The name of the first database created in the namespace.

*/ inline void SetDbName(const Aws::String& value) { m_dbNameHasBeenSet = true; m_dbName = value; } /** *

The name of the first database created in the namespace.

*/ inline void SetDbName(Aws::String&& value) { m_dbNameHasBeenSet = true; m_dbName = std::move(value); } /** *

The name of the first database created in the namespace.

*/ inline void SetDbName(const char* value) { m_dbNameHasBeenSet = true; m_dbName.assign(value); } /** *

The name of the first database created in the namespace.

*/ inline Namespace& WithDbName(const Aws::String& value) { SetDbName(value); return *this;} /** *

The name of the first database created in the namespace.

*/ inline Namespace& WithDbName(Aws::String&& value) { SetDbName(std::move(value)); return *this;} /** *

The name of the first database created in the namespace.

*/ inline Namespace& WithDbName(const char* value) { SetDbName(value); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role to set as a default in the * namespace.

*/ inline const Aws::String& GetDefaultIamRoleArn() const{ return m_defaultIamRoleArn; } /** *

The Amazon Resource Name (ARN) of the IAM role to set as a default in the * namespace.

*/ inline bool DefaultIamRoleArnHasBeenSet() const { return m_defaultIamRoleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the IAM role to set as a default in the * namespace.

*/ inline void SetDefaultIamRoleArn(const Aws::String& value) { m_defaultIamRoleArnHasBeenSet = true; m_defaultIamRoleArn = value; } /** *

The Amazon Resource Name (ARN) of the IAM role to set as a default in the * namespace.

*/ inline void SetDefaultIamRoleArn(Aws::String&& value) { m_defaultIamRoleArnHasBeenSet = true; m_defaultIamRoleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the IAM role to set as a default in the * namespace.

*/ inline void SetDefaultIamRoleArn(const char* value) { m_defaultIamRoleArnHasBeenSet = true; m_defaultIamRoleArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the IAM role to set as a default in the * namespace.

*/ inline Namespace& WithDefaultIamRoleArn(const Aws::String& value) { SetDefaultIamRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role to set as a default in the * namespace.

*/ inline Namespace& WithDefaultIamRoleArn(Aws::String&& value) { SetDefaultIamRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role to set as a default in the * namespace.

*/ inline Namespace& WithDefaultIamRoleArn(const char* value) { SetDefaultIamRoleArn(value); return *this;} /** *

A list of IAM roles to associate with the namespace.

*/ inline const Aws::Vector& GetIamRoles() const{ return m_iamRoles; } /** *

A list of IAM roles to associate with the namespace.

*/ inline bool IamRolesHasBeenSet() const { return m_iamRolesHasBeenSet; } /** *

A list of IAM roles to associate with the namespace.

*/ inline void SetIamRoles(const Aws::Vector& value) { m_iamRolesHasBeenSet = true; m_iamRoles = value; } /** *

A list of IAM roles to associate with the namespace.

*/ inline void SetIamRoles(Aws::Vector&& value) { m_iamRolesHasBeenSet = true; m_iamRoles = std::move(value); } /** *

A list of IAM roles to associate with the namespace.

*/ inline Namespace& WithIamRoles(const Aws::Vector& value) { SetIamRoles(value); return *this;} /** *

A list of IAM roles to associate with the namespace.

*/ inline Namespace& WithIamRoles(Aws::Vector&& value) { SetIamRoles(std::move(value)); return *this;} /** *

A list of IAM roles to associate with the namespace.

*/ inline Namespace& AddIamRoles(const Aws::String& value) { m_iamRolesHasBeenSet = true; m_iamRoles.push_back(value); return *this; } /** *

A list of IAM roles to associate with the namespace.

*/ inline Namespace& AddIamRoles(Aws::String&& value) { m_iamRolesHasBeenSet = true; m_iamRoles.push_back(std::move(value)); return *this; } /** *

A list of IAM roles to associate with the namespace.

*/ inline Namespace& AddIamRoles(const char* value) { m_iamRolesHasBeenSet = true; m_iamRoles.push_back(value); return *this; } /** *

The ID of the Amazon Web Services Key Management Service key used to encrypt * your data.

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

The ID of the Amazon Web Services Key Management Service key used to encrypt * your data.

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

The ID of the Amazon Web Services Key Management Service key used to encrypt * your data.

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

The ID of the Amazon Web Services Key Management Service key used to encrypt * your data.

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

The ID of the Amazon Web Services Key Management Service key used to encrypt * your data.

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

The ID of the Amazon Web Services Key Management Service key used to encrypt * your data.

*/ inline Namespace& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

The ID of the Amazon Web Services Key Management Service key used to encrypt * your data.

*/ inline Namespace& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

The ID of the Amazon Web Services Key Management Service key used to encrypt * your data.

*/ inline Namespace& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

The types of logs the namespace can export. Available export types are User * log, Connection log, and User activity log.

*/ inline const Aws::Vector& GetLogExports() const{ return m_logExports; } /** *

The types of logs the namespace can export. Available export types are User * log, Connection log, and User activity log.

*/ inline bool LogExportsHasBeenSet() const { return m_logExportsHasBeenSet; } /** *

The types of logs the namespace can export. Available export types are User * log, Connection log, and User activity log.

*/ inline void SetLogExports(const Aws::Vector& value) { m_logExportsHasBeenSet = true; m_logExports = value; } /** *

The types of logs the namespace can export. Available export types are User * log, Connection log, and User activity log.

*/ inline void SetLogExports(Aws::Vector&& value) { m_logExportsHasBeenSet = true; m_logExports = std::move(value); } /** *

The types of logs the namespace can export. Available export types are User * log, Connection log, and User activity log.

*/ inline Namespace& WithLogExports(const Aws::Vector& value) { SetLogExports(value); return *this;} /** *

The types of logs the namespace can export. Available export types are User * log, Connection log, and User activity log.

*/ inline Namespace& WithLogExports(Aws::Vector&& value) { SetLogExports(std::move(value)); return *this;} /** *

The types of logs the namespace can export. Available export types are User * log, Connection log, and User activity log.

*/ inline Namespace& AddLogExports(const LogExport& value) { m_logExportsHasBeenSet = true; m_logExports.push_back(value); return *this; } /** *

The types of logs the namespace can export. Available export types are User * log, Connection log, and User activity log.

*/ inline Namespace& AddLogExports(LogExport&& value) { m_logExportsHasBeenSet = true; m_logExports.push_back(std::move(value)); return *this; } /** *

The Amazon Resource Name (ARN) associated with a namespace.

*/ inline const Aws::String& GetNamespaceArn() const{ return m_namespaceArn; } /** *

The Amazon Resource Name (ARN) associated with a namespace.

*/ inline bool NamespaceArnHasBeenSet() const { return m_namespaceArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) associated with a namespace.

*/ inline void SetNamespaceArn(const Aws::String& value) { m_namespaceArnHasBeenSet = true; m_namespaceArn = value; } /** *

The Amazon Resource Name (ARN) associated with a namespace.

*/ inline void SetNamespaceArn(Aws::String&& value) { m_namespaceArnHasBeenSet = true; m_namespaceArn = std::move(value); } /** *

The Amazon Resource Name (ARN) associated with a namespace.

*/ inline void SetNamespaceArn(const char* value) { m_namespaceArnHasBeenSet = true; m_namespaceArn.assign(value); } /** *

The Amazon Resource Name (ARN) associated with a namespace.

*/ inline Namespace& WithNamespaceArn(const Aws::String& value) { SetNamespaceArn(value); return *this;} /** *

The Amazon Resource Name (ARN) associated with a namespace.

*/ inline Namespace& WithNamespaceArn(Aws::String&& value) { SetNamespaceArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) associated with a namespace.

*/ inline Namespace& WithNamespaceArn(const char* value) { SetNamespaceArn(value); return *this;} /** *

The unique identifier of a namespace.

*/ inline const Aws::String& GetNamespaceId() const{ return m_namespaceId; } /** *

The unique identifier of a namespace.

*/ inline bool NamespaceIdHasBeenSet() const { return m_namespaceIdHasBeenSet; } /** *

The unique identifier of a namespace.

*/ inline void SetNamespaceId(const Aws::String& value) { m_namespaceIdHasBeenSet = true; m_namespaceId = value; } /** *

The unique identifier of a namespace.

*/ inline void SetNamespaceId(Aws::String&& value) { m_namespaceIdHasBeenSet = true; m_namespaceId = std::move(value); } /** *

The unique identifier of a namespace.

*/ inline void SetNamespaceId(const char* value) { m_namespaceIdHasBeenSet = true; m_namespaceId.assign(value); } /** *

The unique identifier of a namespace.

*/ inline Namespace& WithNamespaceId(const Aws::String& value) { SetNamespaceId(value); return *this;} /** *

The unique identifier of a namespace.

*/ inline Namespace& WithNamespaceId(Aws::String&& value) { SetNamespaceId(std::move(value)); return *this;} /** *

The unique identifier of a namespace.

*/ inline Namespace& WithNamespaceId(const char* value) { SetNamespaceId(value); return *this;} /** *

The name of the namespace. Must be between 3-64 alphanumeric characters in * lowercase, and it cannot be a reserved word. A list of reserved words can be * found in Reserved * Words in the Amazon Redshift Database Developer Guide.

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

The name of the namespace. Must be between 3-64 alphanumeric characters in * lowercase, and it cannot be a reserved word. A list of reserved words can be * found in Reserved * Words in the Amazon Redshift Database Developer Guide.

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

The name of the namespace. Must be between 3-64 alphanumeric characters in * lowercase, and it cannot be a reserved word. A list of reserved words can be * found in Reserved * Words in the Amazon Redshift Database Developer Guide.

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

The name of the namespace. Must be between 3-64 alphanumeric characters in * lowercase, and it cannot be a reserved word. A list of reserved words can be * found in Reserved * Words in the Amazon Redshift Database Developer Guide.

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

The name of the namespace. Must be between 3-64 alphanumeric characters in * lowercase, and it cannot be a reserved word. A list of reserved words can be * found in Reserved * Words in the Amazon Redshift Database Developer Guide.

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

The name of the namespace. Must be between 3-64 alphanumeric characters in * lowercase, and it cannot be a reserved word. A list of reserved words can be * found in Reserved * Words in the Amazon Redshift Database Developer Guide.

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

The name of the namespace. Must be between 3-64 alphanumeric characters in * lowercase, and it cannot be a reserved word. A list of reserved words can be * found in Reserved * Words in the Amazon Redshift Database Developer Guide.

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

The name of the namespace. Must be between 3-64 alphanumeric characters in * lowercase, and it cannot be a reserved word. A list of reserved words can be * found in Reserved * Words in the Amazon Redshift Database Developer Guide.

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

The status of the namespace.

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

The status of the namespace.

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

The status of the namespace.

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

The status of the namespace.

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

The status of the namespace.

*/ inline Namespace& WithStatus(const NamespaceStatus& value) { SetStatus(value); return *this;} /** *

The status of the namespace.

*/ inline Namespace& WithStatus(NamespaceStatus&& value) { SetStatus(std::move(value)); return *this;} private: Aws::String m_adminUsername; bool m_adminUsernameHasBeenSet = false; Aws::Utils::DateTime m_creationDate; bool m_creationDateHasBeenSet = false; Aws::String m_dbName; bool m_dbNameHasBeenSet = false; Aws::String m_defaultIamRoleArn; bool m_defaultIamRoleArnHasBeenSet = false; Aws::Vector m_iamRoles; bool m_iamRolesHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; Aws::Vector m_logExports; bool m_logExportsHasBeenSet = false; Aws::String m_namespaceArn; bool m_namespaceArnHasBeenSet = false; Aws::String m_namespaceId; bool m_namespaceIdHasBeenSet = false; Aws::String m_namespaceName; bool m_namespaceNameHasBeenSet = false; NamespaceStatus m_status; bool m_statusHasBeenSet = false; }; } // namespace Model } // namespace RedshiftServerless } // namespace Aws