/** * 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 RolesAnywhere { namespace Model { /** *

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

See * Also:

AWS * API Reference

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

The ISO-8601 timestamp when the subject was created.

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

The ISO-8601 timestamp when the subject was created.

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

The ISO-8601 timestamp when the subject was created.

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

The ISO-8601 timestamp when the subject was created.

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

The ISO-8601 timestamp when the subject was created.

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

The ISO-8601 timestamp when the subject was created.

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

The temporary session credentials vended at the last authenticating call with * this subject.

*/ inline const Aws::Vector& GetCredentials() const{ return m_credentials; } /** *

The temporary session credentials vended at the last authenticating call with * this subject.

*/ inline bool CredentialsHasBeenSet() const { return m_credentialsHasBeenSet; } /** *

The temporary session credentials vended at the last authenticating call with * this subject.

*/ inline void SetCredentials(const Aws::Vector& value) { m_credentialsHasBeenSet = true; m_credentials = value; } /** *

The temporary session credentials vended at the last authenticating call with * this subject.

*/ inline void SetCredentials(Aws::Vector&& value) { m_credentialsHasBeenSet = true; m_credentials = std::move(value); } /** *

The temporary session credentials vended at the last authenticating call with * this subject.

*/ inline SubjectDetail& WithCredentials(const Aws::Vector& value) { SetCredentials(value); return *this;} /** *

The temporary session credentials vended at the last authenticating call with * this subject.

*/ inline SubjectDetail& WithCredentials(Aws::Vector&& value) { SetCredentials(std::move(value)); return *this;} /** *

The temporary session credentials vended at the last authenticating call with * this subject.

*/ inline SubjectDetail& AddCredentials(const CredentialSummary& value) { m_credentialsHasBeenSet = true; m_credentials.push_back(value); return *this; } /** *

The temporary session credentials vended at the last authenticating call with * this subject.

*/ inline SubjectDetail& AddCredentials(CredentialSummary&& value) { m_credentialsHasBeenSet = true; m_credentials.push_back(std::move(value)); return *this; } /** *

The enabled status of the subject.

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

The enabled status of the subject.

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

The enabled status of the subject.

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

The enabled status of the subject.

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

The specified instance properties associated with the request.

*/ inline const Aws::Vector& GetInstanceProperties() const{ return m_instanceProperties; } /** *

The specified instance properties associated with the request.

*/ inline bool InstancePropertiesHasBeenSet() const { return m_instancePropertiesHasBeenSet; } /** *

The specified instance properties associated with the request.

*/ inline void SetInstanceProperties(const Aws::Vector& value) { m_instancePropertiesHasBeenSet = true; m_instanceProperties = value; } /** *

The specified instance properties associated with the request.

*/ inline void SetInstanceProperties(Aws::Vector&& value) { m_instancePropertiesHasBeenSet = true; m_instanceProperties = std::move(value); } /** *

The specified instance properties associated with the request.

*/ inline SubjectDetail& WithInstanceProperties(const Aws::Vector& value) { SetInstanceProperties(value); return *this;} /** *

The specified instance properties associated with the request.

*/ inline SubjectDetail& WithInstanceProperties(Aws::Vector&& value) { SetInstanceProperties(std::move(value)); return *this;} /** *

The specified instance properties associated with the request.

*/ inline SubjectDetail& AddInstanceProperties(const InstanceProperty& value) { m_instancePropertiesHasBeenSet = true; m_instanceProperties.push_back(value); return *this; } /** *

The specified instance properties associated with the request.

*/ inline SubjectDetail& AddInstanceProperties(InstanceProperty&& value) { m_instancePropertiesHasBeenSet = true; m_instanceProperties.push_back(std::move(value)); return *this; } /** *

The ISO-8601 timestamp of the last time this subject requested temporary * session credentials.

*/ inline const Aws::Utils::DateTime& GetLastSeenAt() const{ return m_lastSeenAt; } /** *

The ISO-8601 timestamp of the last time this subject requested temporary * session credentials.

*/ inline bool LastSeenAtHasBeenSet() const { return m_lastSeenAtHasBeenSet; } /** *

The ISO-8601 timestamp of the last time this subject requested temporary * session credentials.

*/ inline void SetLastSeenAt(const Aws::Utils::DateTime& value) { m_lastSeenAtHasBeenSet = true; m_lastSeenAt = value; } /** *

The ISO-8601 timestamp of the last time this subject requested temporary * session credentials.

*/ inline void SetLastSeenAt(Aws::Utils::DateTime&& value) { m_lastSeenAtHasBeenSet = true; m_lastSeenAt = std::move(value); } /** *

The ISO-8601 timestamp of the last time this subject requested temporary * session credentials.

*/ inline SubjectDetail& WithLastSeenAt(const Aws::Utils::DateTime& value) { SetLastSeenAt(value); return *this;} /** *

The ISO-8601 timestamp of the last time this subject requested temporary * session credentials.

*/ inline SubjectDetail& WithLastSeenAt(Aws::Utils::DateTime&& value) { SetLastSeenAt(std::move(value)); return *this;} /** *

The ARN of the resource.

*/ inline const Aws::String& GetSubjectArn() const{ return m_subjectArn; } /** *

The ARN of the resource.

*/ inline bool SubjectArnHasBeenSet() const { return m_subjectArnHasBeenSet; } /** *

The ARN of the resource.

*/ inline void SetSubjectArn(const Aws::String& value) { m_subjectArnHasBeenSet = true; m_subjectArn = value; } /** *

The ARN of the resource.

*/ inline void SetSubjectArn(Aws::String&& value) { m_subjectArnHasBeenSet = true; m_subjectArn = std::move(value); } /** *

The ARN of the resource.

*/ inline void SetSubjectArn(const char* value) { m_subjectArnHasBeenSet = true; m_subjectArn.assign(value); } /** *

The ARN of the resource.

*/ inline SubjectDetail& WithSubjectArn(const Aws::String& value) { SetSubjectArn(value); return *this;} /** *

The ARN of the resource.

*/ inline SubjectDetail& WithSubjectArn(Aws::String&& value) { SetSubjectArn(std::move(value)); return *this;} /** *

The ARN of the resource.

*/ inline SubjectDetail& WithSubjectArn(const char* value) { SetSubjectArn(value); return *this;} /** *

The id of the resource

*/ inline const Aws::String& GetSubjectId() const{ return m_subjectId; } /** *

The id of the resource

*/ inline bool SubjectIdHasBeenSet() const { return m_subjectIdHasBeenSet; } /** *

The id of the resource

*/ inline void SetSubjectId(const Aws::String& value) { m_subjectIdHasBeenSet = true; m_subjectId = value; } /** *

The id of the resource

*/ inline void SetSubjectId(Aws::String&& value) { m_subjectIdHasBeenSet = true; m_subjectId = std::move(value); } /** *

The id of the resource

*/ inline void SetSubjectId(const char* value) { m_subjectIdHasBeenSet = true; m_subjectId.assign(value); } /** *

The id of the resource

*/ inline SubjectDetail& WithSubjectId(const Aws::String& value) { SetSubjectId(value); return *this;} /** *

The id of the resource

*/ inline SubjectDetail& WithSubjectId(Aws::String&& value) { SetSubjectId(std::move(value)); return *this;} /** *

The id of the resource

*/ inline SubjectDetail& WithSubjectId(const char* value) { SetSubjectId(value); return *this;} /** *

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

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

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

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

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

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

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

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

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

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

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

*/ inline SubjectDetail& WithUpdatedAt(Aws::Utils::DateTime&& value) { SetUpdatedAt(std::move(value)); return *this;} /** *

The x509 principal identifier of the authenticating certificate.

*/ inline const Aws::String& GetX509Subject() const{ return m_x509Subject; } /** *

The x509 principal identifier of the authenticating certificate.

*/ inline bool X509SubjectHasBeenSet() const { return m_x509SubjectHasBeenSet; } /** *

The x509 principal identifier of the authenticating certificate.

*/ inline void SetX509Subject(const Aws::String& value) { m_x509SubjectHasBeenSet = true; m_x509Subject = value; } /** *

The x509 principal identifier of the authenticating certificate.

*/ inline void SetX509Subject(Aws::String&& value) { m_x509SubjectHasBeenSet = true; m_x509Subject = std::move(value); } /** *

The x509 principal identifier of the authenticating certificate.

*/ inline void SetX509Subject(const char* value) { m_x509SubjectHasBeenSet = true; m_x509Subject.assign(value); } /** *

The x509 principal identifier of the authenticating certificate.

*/ inline SubjectDetail& WithX509Subject(const Aws::String& value) { SetX509Subject(value); return *this;} /** *

The x509 principal identifier of the authenticating certificate.

*/ inline SubjectDetail& WithX509Subject(Aws::String&& value) { SetX509Subject(std::move(value)); return *this;} /** *

The x509 principal identifier of the authenticating certificate.

*/ inline SubjectDetail& WithX509Subject(const char* value) { SetX509Subject(value); return *this;} private: Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; Aws::Vector m_credentials; bool m_credentialsHasBeenSet = false; bool m_enabled; bool m_enabledHasBeenSet = false; Aws::Vector m_instanceProperties; bool m_instancePropertiesHasBeenSet = false; Aws::Utils::DateTime m_lastSeenAt; bool m_lastSeenAtHasBeenSet = false; Aws::String m_subjectArn; bool m_subjectArnHasBeenSet = false; Aws::String m_subjectId; bool m_subjectIdHasBeenSet = false; Aws::Utils::DateTime m_updatedAt; bool m_updatedAtHasBeenSet = false; Aws::String m_x509Subject; bool m_x509SubjectHasBeenSet = false; }; } // namespace Model } // namespace RolesAnywhere } // namespace Aws