/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Redshift { namespace Model { /** */ class GetClusterCredentialsWithIAMRequest : public RedshiftRequest { public: AWS_REDSHIFT_API GetClusterCredentialsWithIAMRequest(); // 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 "GetClusterCredentialsWithIAM"; } AWS_REDSHIFT_API Aws::String SerializePayload() const override; protected: AWS_REDSHIFT_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The name of the database for which you are requesting credentials. If the * database name is specified, the IAM policy must allow access to the resource * dbname for the specified database name. If the database name is not * specified, access to all databases is allowed.

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

The name of the database for which you are requesting credentials. If the * database name is specified, the IAM policy must allow access to the resource * dbname for the specified database name. If the database name is not * specified, access to all databases is allowed.

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

The name of the database for which you are requesting credentials. If the * database name is specified, the IAM policy must allow access to the resource * dbname for the specified database name. If the database name is not * specified, access to all databases is allowed.

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

The name of the database for which you are requesting credentials. If the * database name is specified, the IAM policy must allow access to the resource * dbname for the specified database name. If the database name is not * specified, access to all databases is allowed.

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

The name of the database for which you are requesting credentials. If the * database name is specified, the IAM policy must allow access to the resource * dbname for the specified database name. If the database name is not * specified, access to all databases is allowed.

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

The name of the database for which you are requesting credentials. If the * database name is specified, the IAM policy must allow access to the resource * dbname for the specified database name. If the database name is not * specified, access to all databases is allowed.

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

The name of the database for which you are requesting credentials. If the * database name is specified, the IAM policy must allow access to the resource * dbname for the specified database name. If the database name is not * specified, access to all databases is allowed.

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

The name of the database for which you are requesting credentials. If the * database name is specified, the IAM policy must allow access to the resource * dbname for the specified database name. If the database name is not * specified, access to all databases is allowed.

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

The unique identifier of the cluster that contains the database for which you * are requesting credentials.

*/ inline const Aws::String& GetClusterIdentifier() const{ return m_clusterIdentifier; } /** *

The unique identifier of the cluster that contains the database for which you * are requesting credentials.

*/ inline bool ClusterIdentifierHasBeenSet() const { return m_clusterIdentifierHasBeenSet; } /** *

The unique identifier of the cluster that contains the database for which you * are requesting credentials.

*/ inline void SetClusterIdentifier(const Aws::String& value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier = value; } /** *

The unique identifier of the cluster that contains the database for which you * are requesting credentials.

*/ inline void SetClusterIdentifier(Aws::String&& value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier = std::move(value); } /** *

The unique identifier of the cluster that contains the database for which you * are requesting credentials.

*/ inline void SetClusterIdentifier(const char* value) { m_clusterIdentifierHasBeenSet = true; m_clusterIdentifier.assign(value); } /** *

The unique identifier of the cluster that contains the database for which you * are requesting credentials.

*/ inline GetClusterCredentialsWithIAMRequest& WithClusterIdentifier(const Aws::String& value) { SetClusterIdentifier(value); return *this;} /** *

The unique identifier of the cluster that contains the database for which you * are requesting credentials.

*/ inline GetClusterCredentialsWithIAMRequest& WithClusterIdentifier(Aws::String&& value) { SetClusterIdentifier(std::move(value)); return *this;} /** *

The unique identifier of the cluster that contains the database for which you * are requesting credentials.

*/ inline GetClusterCredentialsWithIAMRequest& WithClusterIdentifier(const char* value) { SetClusterIdentifier(value); return *this;} /** *

The number of seconds until the returned temporary password expires.

*

Range: 900-3600. Default: 900.

*/ inline int GetDurationSeconds() const{ return m_durationSeconds; } /** *

The number of seconds until the returned temporary password expires.

*

Range: 900-3600. Default: 900.

*/ inline bool DurationSecondsHasBeenSet() const { return m_durationSecondsHasBeenSet; } /** *

The number of seconds until the returned temporary password expires.

*

Range: 900-3600. Default: 900.

*/ inline void SetDurationSeconds(int value) { m_durationSecondsHasBeenSet = true; m_durationSeconds = value; } /** *

The number of seconds until the returned temporary password expires.

*

Range: 900-3600. Default: 900.

*/ inline GetClusterCredentialsWithIAMRequest& WithDurationSeconds(int value) { SetDurationSeconds(value); return *this;} /** *

The custom domain name for the IAM message cluster credentials.

*/ inline const Aws::String& GetCustomDomainName() const{ return m_customDomainName; } /** *

The custom domain name for the IAM message cluster credentials.

*/ inline bool CustomDomainNameHasBeenSet() const { return m_customDomainNameHasBeenSet; } /** *

The custom domain name for the IAM message cluster credentials.

*/ inline void SetCustomDomainName(const Aws::String& value) { m_customDomainNameHasBeenSet = true; m_customDomainName = value; } /** *

The custom domain name for the IAM message cluster credentials.

*/ inline void SetCustomDomainName(Aws::String&& value) { m_customDomainNameHasBeenSet = true; m_customDomainName = std::move(value); } /** *

The custom domain name for the IAM message cluster credentials.

*/ inline void SetCustomDomainName(const char* value) { m_customDomainNameHasBeenSet = true; m_customDomainName.assign(value); } /** *

The custom domain name for the IAM message cluster credentials.

*/ inline GetClusterCredentialsWithIAMRequest& WithCustomDomainName(const Aws::String& value) { SetCustomDomainName(value); return *this;} /** *

The custom domain name for the IAM message cluster credentials.

*/ inline GetClusterCredentialsWithIAMRequest& WithCustomDomainName(Aws::String&& value) { SetCustomDomainName(std::move(value)); return *this;} /** *

The custom domain name for the IAM message cluster credentials.

*/ inline GetClusterCredentialsWithIAMRequest& WithCustomDomainName(const char* value) { SetCustomDomainName(value); return *this;} private: Aws::String m_dbName; bool m_dbNameHasBeenSet = false; Aws::String m_clusterIdentifier; bool m_clusterIdentifierHasBeenSet = false; int m_durationSeconds; bool m_durationSecondsHasBeenSet = false; Aws::String m_customDomainName; bool m_customDomainNameHasBeenSet = false; }; } // namespace Model } // namespace Redshift } // namespace Aws