/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace RolesAnywhere { namespace Model { /** *

The state of the profile after a read or write operation.

See * Also:

AWS * API Reference

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

The ISO-8601 timestamp when the profile was created.

*/ inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; } /** *

The ISO-8601 timestamp when the profile was created.

*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *

The ISO-8601 timestamp when the profile was created.

*/ inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *

The ISO-8601 timestamp when the profile was created.

*/ inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *

The ISO-8601 timestamp when the profile was created.

*/ inline ProfileDetail& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;} /** *

The ISO-8601 timestamp when the profile was created.

*/ inline ProfileDetail& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;} /** *

The Amazon Web Services account that created the profile.

*/ inline const Aws::String& GetCreatedBy() const{ return m_createdBy; } /** *

The Amazon Web Services account that created the profile.

*/ inline bool CreatedByHasBeenSet() const { return m_createdByHasBeenSet; } /** *

The Amazon Web Services account that created the profile.

*/ inline void SetCreatedBy(const Aws::String& value) { m_createdByHasBeenSet = true; m_createdBy = value; } /** *

The Amazon Web Services account that created the profile.

*/ inline void SetCreatedBy(Aws::String&& value) { m_createdByHasBeenSet = true; m_createdBy = std::move(value); } /** *

The Amazon Web Services account that created the profile.

*/ inline void SetCreatedBy(const char* value) { m_createdByHasBeenSet = true; m_createdBy.assign(value); } /** *

The Amazon Web Services account that created the profile.

*/ inline ProfileDetail& WithCreatedBy(const Aws::String& value) { SetCreatedBy(value); return *this;} /** *

The Amazon Web Services account that created the profile.

*/ inline ProfileDetail& WithCreatedBy(Aws::String&& value) { SetCreatedBy(std::move(value)); return *this;} /** *

The Amazon Web Services account that created the profile.

*/ inline ProfileDetail& WithCreatedBy(const char* value) { SetCreatedBy(value); return *this;} /** *

The number of seconds the vended session credentials are valid for.

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

The number of seconds the vended session credentials are valid for.

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

The number of seconds the vended session credentials are valid for.

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

The number of seconds the vended session credentials are valid for.

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

Indicates whether the profile is enabled.

*/ inline bool GetEnabled() const{ return m_enabled; } /** *

Indicates whether the profile is enabled.

*/ inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; } /** *

Indicates whether the profile is enabled.

*/ inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; } /** *

Indicates whether the profile is enabled.

*/ inline ProfileDetail& WithEnabled(bool value) { SetEnabled(value); return *this;} /** *

A list of managed policy ARNs that apply to the vended session credentials. *

*/ inline const Aws::Vector& GetManagedPolicyArns() const{ return m_managedPolicyArns; } /** *

A list of managed policy ARNs that apply to the vended session credentials. *

*/ inline bool ManagedPolicyArnsHasBeenSet() const { return m_managedPolicyArnsHasBeenSet; } /** *

A list of managed policy ARNs that apply to the vended session credentials. *

*/ inline void SetManagedPolicyArns(const Aws::Vector& value) { m_managedPolicyArnsHasBeenSet = true; m_managedPolicyArns = value; } /** *

A list of managed policy ARNs that apply to the vended session credentials. *

*/ inline void SetManagedPolicyArns(Aws::Vector&& value) { m_managedPolicyArnsHasBeenSet = true; m_managedPolicyArns = std::move(value); } /** *

A list of managed policy ARNs that apply to the vended session credentials. *

*/ inline ProfileDetail& WithManagedPolicyArns(const Aws::Vector& value) { SetManagedPolicyArns(value); return *this;} /** *

A list of managed policy ARNs that apply to the vended session credentials. *

*/ inline ProfileDetail& WithManagedPolicyArns(Aws::Vector&& value) { SetManagedPolicyArns(std::move(value)); return *this;} /** *

A list of managed policy ARNs that apply to the vended session credentials. *

*/ inline ProfileDetail& AddManagedPolicyArns(const Aws::String& value) { m_managedPolicyArnsHasBeenSet = true; m_managedPolicyArns.push_back(value); return *this; } /** *

A list of managed policy ARNs that apply to the vended session credentials. *

*/ inline ProfileDetail& AddManagedPolicyArns(Aws::String&& value) { m_managedPolicyArnsHasBeenSet = true; m_managedPolicyArns.push_back(std::move(value)); return *this; } /** *

A list of managed policy ARNs that apply to the vended session credentials. *

*/ inline ProfileDetail& AddManagedPolicyArns(const char* value) { m_managedPolicyArnsHasBeenSet = true; m_managedPolicyArns.push_back(value); return *this; } /** *

The name of the profile.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the profile.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the profile.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the profile.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the profile.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the profile.

*/ inline ProfileDetail& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the profile.

*/ inline ProfileDetail& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the profile.

*/ inline ProfileDetail& WithName(const char* value) { SetName(value); return *this;} /** *

The ARN of the profile.

*/ inline const Aws::String& GetProfileArn() const{ return m_profileArn; } /** *

The ARN of the profile.

*/ inline bool ProfileArnHasBeenSet() const { return m_profileArnHasBeenSet; } /** *

The ARN of the profile.

*/ inline void SetProfileArn(const Aws::String& value) { m_profileArnHasBeenSet = true; m_profileArn = value; } /** *

The ARN of the profile.

*/ inline void SetProfileArn(Aws::String&& value) { m_profileArnHasBeenSet = true; m_profileArn = std::move(value); } /** *

The ARN of the profile.

*/ inline void SetProfileArn(const char* value) { m_profileArnHasBeenSet = true; m_profileArn.assign(value); } /** *

The ARN of the profile.

*/ inline ProfileDetail& WithProfileArn(const Aws::String& value) { SetProfileArn(value); return *this;} /** *

The ARN of the profile.

*/ inline ProfileDetail& WithProfileArn(Aws::String&& value) { SetProfileArn(std::move(value)); return *this;} /** *

The ARN of the profile.

*/ inline ProfileDetail& WithProfileArn(const char* value) { SetProfileArn(value); return *this;} /** *

The unique identifier of the profile.

*/ inline const Aws::String& GetProfileId() const{ return m_profileId; } /** *

The unique identifier of the profile.

*/ inline bool ProfileIdHasBeenSet() const { return m_profileIdHasBeenSet; } /** *

The unique identifier of the profile.

*/ inline void SetProfileId(const Aws::String& value) { m_profileIdHasBeenSet = true; m_profileId = value; } /** *

The unique identifier of the profile.

*/ inline void SetProfileId(Aws::String&& value) { m_profileIdHasBeenSet = true; m_profileId = std::move(value); } /** *

The unique identifier of the profile.

*/ inline void SetProfileId(const char* value) { m_profileIdHasBeenSet = true; m_profileId.assign(value); } /** *

The unique identifier of the profile.

*/ inline ProfileDetail& WithProfileId(const Aws::String& value) { SetProfileId(value); return *this;} /** *

The unique identifier of the profile.

*/ inline ProfileDetail& WithProfileId(Aws::String&& value) { SetProfileId(std::move(value)); return *this;} /** *

The unique identifier of the profile.

*/ inline ProfileDetail& WithProfileId(const char* value) { SetProfileId(value); return *this;} /** *

Specifies whether instance properties are required in temporary credential * requests with this profile.

*/ inline bool GetRequireInstanceProperties() const{ return m_requireInstanceProperties; } /** *

Specifies whether instance properties are required in temporary credential * requests with this profile.

*/ inline bool RequireInstancePropertiesHasBeenSet() const { return m_requireInstancePropertiesHasBeenSet; } /** *

Specifies whether instance properties are required in temporary credential * requests with this profile.

*/ inline void SetRequireInstanceProperties(bool value) { m_requireInstancePropertiesHasBeenSet = true; m_requireInstanceProperties = value; } /** *

Specifies whether instance properties are required in temporary credential * requests with this profile.

*/ inline ProfileDetail& WithRequireInstanceProperties(bool value) { SetRequireInstanceProperties(value); return *this;} /** *

A list of IAM roles that this profile can assume in a temporary credential * request.

*/ inline const Aws::Vector& GetRoleArns() const{ return m_roleArns; } /** *

A list of IAM roles that this profile can assume in a temporary credential * request.

*/ inline bool RoleArnsHasBeenSet() const { return m_roleArnsHasBeenSet; } /** *

A list of IAM roles that this profile can assume in a temporary credential * request.

*/ inline void SetRoleArns(const Aws::Vector& value) { m_roleArnsHasBeenSet = true; m_roleArns = value; } /** *

A list of IAM roles that this profile can assume in a temporary credential * request.

*/ inline void SetRoleArns(Aws::Vector&& value) { m_roleArnsHasBeenSet = true; m_roleArns = std::move(value); } /** *

A list of IAM roles that this profile can assume in a temporary credential * request.

*/ inline ProfileDetail& WithRoleArns(const Aws::Vector& value) { SetRoleArns(value); return *this;} /** *

A list of IAM roles that this profile can assume in a temporary credential * request.

*/ inline ProfileDetail& WithRoleArns(Aws::Vector&& value) { SetRoleArns(std::move(value)); return *this;} /** *

A list of IAM roles that this profile can assume in a temporary credential * request.

*/ inline ProfileDetail& AddRoleArns(const Aws::String& value) { m_roleArnsHasBeenSet = true; m_roleArns.push_back(value); return *this; } /** *

A list of IAM roles that this profile can assume in a temporary credential * request.

*/ inline ProfileDetail& AddRoleArns(Aws::String&& value) { m_roleArnsHasBeenSet = true; m_roleArns.push_back(std::move(value)); return *this; } /** *

A list of IAM roles that this profile can assume in a temporary credential * request.

*/ inline ProfileDetail& AddRoleArns(const char* value) { m_roleArnsHasBeenSet = true; m_roleArns.push_back(value); return *this; } /** *

A session policy that applies to the trust boundary of the vended session * credentials.

*/ inline const Aws::String& GetSessionPolicy() const{ return m_sessionPolicy; } /** *

A session policy that applies to the trust boundary of the vended session * credentials.

*/ inline bool SessionPolicyHasBeenSet() const { return m_sessionPolicyHasBeenSet; } /** *

A session policy that applies to the trust boundary of the vended session * credentials.

*/ inline void SetSessionPolicy(const Aws::String& value) { m_sessionPolicyHasBeenSet = true; m_sessionPolicy = value; } /** *

A session policy that applies to the trust boundary of the vended session * credentials.

*/ inline void SetSessionPolicy(Aws::String&& value) { m_sessionPolicyHasBeenSet = true; m_sessionPolicy = std::move(value); } /** *

A session policy that applies to the trust boundary of the vended session * credentials.

*/ inline void SetSessionPolicy(const char* value) { m_sessionPolicyHasBeenSet = true; m_sessionPolicy.assign(value); } /** *

A session policy that applies to the trust boundary of the vended session * credentials.

*/ inline ProfileDetail& WithSessionPolicy(const Aws::String& value) { SetSessionPolicy(value); return *this;} /** *

A session policy that applies to the trust boundary of the vended session * credentials.

*/ inline ProfileDetail& WithSessionPolicy(Aws::String&& value) { SetSessionPolicy(std::move(value)); return *this;} /** *

A session policy that applies to the trust boundary of the vended session * credentials.

*/ inline ProfileDetail& WithSessionPolicy(const char* value) { SetSessionPolicy(value); return *this;} /** *

The ISO-8601 timestamp when the profile was last updated.

*/ inline const Aws::Utils::DateTime& GetUpdatedAt() const{ return m_updatedAt; } /** *

The ISO-8601 timestamp when the profile was last updated.

*/ inline bool UpdatedAtHasBeenSet() const { return m_updatedAtHasBeenSet; } /** *

The ISO-8601 timestamp when the profile was last updated.

*/ inline void SetUpdatedAt(const Aws::Utils::DateTime& value) { m_updatedAtHasBeenSet = true; m_updatedAt = value; } /** *

The ISO-8601 timestamp when the profile was last updated.

*/ inline void SetUpdatedAt(Aws::Utils::DateTime&& value) { m_updatedAtHasBeenSet = true; m_updatedAt = std::move(value); } /** *

The ISO-8601 timestamp when the profile was last updated.

*/ inline ProfileDetail& WithUpdatedAt(const Aws::Utils::DateTime& value) { SetUpdatedAt(value); return *this;} /** *

The ISO-8601 timestamp when the profile was last updated.

*/ inline ProfileDetail& WithUpdatedAt(Aws::Utils::DateTime&& value) { SetUpdatedAt(std::move(value)); return *this;} private: Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; Aws::String m_createdBy; bool m_createdByHasBeenSet = false; int m_durationSeconds; bool m_durationSecondsHasBeenSet = false; bool m_enabled; bool m_enabledHasBeenSet = false; Aws::Vector m_managedPolicyArns; bool m_managedPolicyArnsHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_profileArn; bool m_profileArnHasBeenSet = false; Aws::String m_profileId; bool m_profileIdHasBeenSet = false; bool m_requireInstanceProperties; bool m_requireInstancePropertiesHasBeenSet = false; Aws::Vector m_roleArns; bool m_roleArnsHasBeenSet = false; Aws::String m_sessionPolicy; bool m_sessionPolicyHasBeenSet = false; Aws::Utils::DateTime m_updatedAt; bool m_updatedAtHasBeenSet = false; }; } // namespace Model } // namespace RolesAnywhere } // namespace Aws