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

Information about an instance profile.

See Also:

AWS * API Reference

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

The ARN of the instance profile.

*/ inline const Aws::String& GetArn() const{ return m_arn; } /** *

The ARN of the instance profile.

*/ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** *

The ARN of the instance profile.

*/ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** *

The ARN of the instance profile.

*/ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** *

The ARN of the instance profile.

*/ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** *

The ARN of the instance profile.

*/ inline AwsIamInstanceProfile& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** *

The ARN of the instance profile.

*/ inline AwsIamInstanceProfile& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** *

The ARN of the instance profile.

*/ inline AwsIamInstanceProfile& WithArn(const char* value) { SetArn(value); return *this;} /** *

Indicates when the instance profile was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline const Aws::String& GetCreateDate() const{ return m_createDate; } /** *

Indicates when the instance profile was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline bool CreateDateHasBeenSet() const { return m_createDateHasBeenSet; } /** *

Indicates when the instance profile was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreateDate(const Aws::String& value) { m_createDateHasBeenSet = true; m_createDate = value; } /** *

Indicates when the instance profile was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreateDate(Aws::String&& value) { m_createDateHasBeenSet = true; m_createDate = std::move(value); } /** *

Indicates when the instance profile was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreateDate(const char* value) { m_createDateHasBeenSet = true; m_createDate.assign(value); } /** *

Indicates when the instance profile was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsIamInstanceProfile& WithCreateDate(const Aws::String& value) { SetCreateDate(value); return *this;} /** *

Indicates when the instance profile was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsIamInstanceProfile& WithCreateDate(Aws::String&& value) { SetCreateDate(std::move(value)); return *this;} /** *

Indicates when the instance profile was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsIamInstanceProfile& WithCreateDate(const char* value) { SetCreateDate(value); return *this;} /** *

The identifier of the instance profile.

*/ inline const Aws::String& GetInstanceProfileId() const{ return m_instanceProfileId; } /** *

The identifier of the instance profile.

*/ inline bool InstanceProfileIdHasBeenSet() const { return m_instanceProfileIdHasBeenSet; } /** *

The identifier of the instance profile.

*/ inline void SetInstanceProfileId(const Aws::String& value) { m_instanceProfileIdHasBeenSet = true; m_instanceProfileId = value; } /** *

The identifier of the instance profile.

*/ inline void SetInstanceProfileId(Aws::String&& value) { m_instanceProfileIdHasBeenSet = true; m_instanceProfileId = std::move(value); } /** *

The identifier of the instance profile.

*/ inline void SetInstanceProfileId(const char* value) { m_instanceProfileIdHasBeenSet = true; m_instanceProfileId.assign(value); } /** *

The identifier of the instance profile.

*/ inline AwsIamInstanceProfile& WithInstanceProfileId(const Aws::String& value) { SetInstanceProfileId(value); return *this;} /** *

The identifier of the instance profile.

*/ inline AwsIamInstanceProfile& WithInstanceProfileId(Aws::String&& value) { SetInstanceProfileId(std::move(value)); return *this;} /** *

The identifier of the instance profile.

*/ inline AwsIamInstanceProfile& WithInstanceProfileId(const char* value) { SetInstanceProfileId(value); return *this;} /** *

The name of the instance profile.

*/ inline const Aws::String& GetInstanceProfileName() const{ return m_instanceProfileName; } /** *

The name of the instance profile.

*/ inline bool InstanceProfileNameHasBeenSet() const { return m_instanceProfileNameHasBeenSet; } /** *

The name of the instance profile.

*/ inline void SetInstanceProfileName(const Aws::String& value) { m_instanceProfileNameHasBeenSet = true; m_instanceProfileName = value; } /** *

The name of the instance profile.

*/ inline void SetInstanceProfileName(Aws::String&& value) { m_instanceProfileNameHasBeenSet = true; m_instanceProfileName = std::move(value); } /** *

The name of the instance profile.

*/ inline void SetInstanceProfileName(const char* value) { m_instanceProfileNameHasBeenSet = true; m_instanceProfileName.assign(value); } /** *

The name of the instance profile.

*/ inline AwsIamInstanceProfile& WithInstanceProfileName(const Aws::String& value) { SetInstanceProfileName(value); return *this;} /** *

The name of the instance profile.

*/ inline AwsIamInstanceProfile& WithInstanceProfileName(Aws::String&& value) { SetInstanceProfileName(std::move(value)); return *this;} /** *

The name of the instance profile.

*/ inline AwsIamInstanceProfile& WithInstanceProfileName(const char* value) { SetInstanceProfileName(value); return *this;} /** *

The path to the instance profile.

*/ inline const Aws::String& GetPath() const{ return m_path; } /** *

The path to the instance profile.

*/ inline bool PathHasBeenSet() const { return m_pathHasBeenSet; } /** *

The path to the instance profile.

*/ inline void SetPath(const Aws::String& value) { m_pathHasBeenSet = true; m_path = value; } /** *

The path to the instance profile.

*/ inline void SetPath(Aws::String&& value) { m_pathHasBeenSet = true; m_path = std::move(value); } /** *

The path to the instance profile.

*/ inline void SetPath(const char* value) { m_pathHasBeenSet = true; m_path.assign(value); } /** *

The path to the instance profile.

*/ inline AwsIamInstanceProfile& WithPath(const Aws::String& value) { SetPath(value); return *this;} /** *

The path to the instance profile.

*/ inline AwsIamInstanceProfile& WithPath(Aws::String&& value) { SetPath(std::move(value)); return *this;} /** *

The path to the instance profile.

*/ inline AwsIamInstanceProfile& WithPath(const char* value) { SetPath(value); return *this;} /** *

The roles associated with the instance profile.

*/ inline const Aws::Vector& GetRoles() const{ return m_roles; } /** *

The roles associated with the instance profile.

*/ inline bool RolesHasBeenSet() const { return m_rolesHasBeenSet; } /** *

The roles associated with the instance profile.

*/ inline void SetRoles(const Aws::Vector& value) { m_rolesHasBeenSet = true; m_roles = value; } /** *

The roles associated with the instance profile.

*/ inline void SetRoles(Aws::Vector&& value) { m_rolesHasBeenSet = true; m_roles = std::move(value); } /** *

The roles associated with the instance profile.

*/ inline AwsIamInstanceProfile& WithRoles(const Aws::Vector& value) { SetRoles(value); return *this;} /** *

The roles associated with the instance profile.

*/ inline AwsIamInstanceProfile& WithRoles(Aws::Vector&& value) { SetRoles(std::move(value)); return *this;} /** *

The roles associated with the instance profile.

*/ inline AwsIamInstanceProfile& AddRoles(const AwsIamInstanceProfileRole& value) { m_rolesHasBeenSet = true; m_roles.push_back(value); return *this; } /** *

The roles associated with the instance profile.

*/ inline AwsIamInstanceProfile& AddRoles(AwsIamInstanceProfileRole&& value) { m_rolesHasBeenSet = true; m_roles.push_back(std::move(value)); return *this; } private: Aws::String m_arn; bool m_arnHasBeenSet = false; Aws::String m_createDate; bool m_createDateHasBeenSet = false; Aws::String m_instanceProfileId; bool m_instanceProfileIdHasBeenSet = false; Aws::String m_instanceProfileName; bool m_instanceProfileNameHasBeenSet = false; Aws::String m_path; bool m_pathHasBeenSet = false; Aws::Vector m_roles; bool m_rolesHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws