/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace IAM { namespace Model { /** *

An object that contains details about when a principal in the reported * Organizations entity last attempted to access an Amazon Web Services service. A * principal can be an IAM user, an IAM role, or the Amazon Web Services account * root user within the reported Organizations entity.

This data type is a * response element in the GetOrganizationsAccessReport * operation.

See Also:

AWS * API Reference

*/ class AccessDetail { public: AWS_IAM_API AccessDetail(); AWS_IAM_API AccessDetail(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_IAM_API AccessDetail& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_IAM_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_IAM_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The name of the service in which access was attempted.

*/ inline const Aws::String& GetServiceName() const{ return m_serviceName; } /** *

The name of the service in which access was attempted.

*/ inline bool ServiceNameHasBeenSet() const { return m_serviceNameHasBeenSet; } /** *

The name of the service in which access was attempted.

*/ inline void SetServiceName(const Aws::String& value) { m_serviceNameHasBeenSet = true; m_serviceName = value; } /** *

The name of the service in which access was attempted.

*/ inline void SetServiceName(Aws::String&& value) { m_serviceNameHasBeenSet = true; m_serviceName = std::move(value); } /** *

The name of the service in which access was attempted.

*/ inline void SetServiceName(const char* value) { m_serviceNameHasBeenSet = true; m_serviceName.assign(value); } /** *

The name of the service in which access was attempted.

*/ inline AccessDetail& WithServiceName(const Aws::String& value) { SetServiceName(value); return *this;} /** *

The name of the service in which access was attempted.

*/ inline AccessDetail& WithServiceName(Aws::String&& value) { SetServiceName(std::move(value)); return *this;} /** *

The name of the service in which access was attempted.

*/ inline AccessDetail& WithServiceName(const char* value) { SetServiceName(value); return *this;} /** *

The namespace of the service in which access was attempted.

To learn * the service namespace of a service, see Actions, * resources, and condition keys for Amazon Web Services services in the * Service Authorization Reference. Choose the name of the service to view * details for that service. In the first paragraph, find the service prefix. For * example, (service prefix: a4b). For more information about service * namespaces, see Amazon * Web Services service namespaces in the Amazon Web Services General * Reference.

*/ inline const Aws::String& GetServiceNamespace() const{ return m_serviceNamespace; } /** *

The namespace of the service in which access was attempted.

To learn * the service namespace of a service, see Actions, * resources, and condition keys for Amazon Web Services services in the * Service Authorization Reference. Choose the name of the service to view * details for that service. In the first paragraph, find the service prefix. For * example, (service prefix: a4b). For more information about service * namespaces, see Amazon * Web Services service namespaces in the Amazon Web Services General * Reference.

*/ inline bool ServiceNamespaceHasBeenSet() const { return m_serviceNamespaceHasBeenSet; } /** *

The namespace of the service in which access was attempted.

To learn * the service namespace of a service, see Actions, * resources, and condition keys for Amazon Web Services services in the * Service Authorization Reference. Choose the name of the service to view * details for that service. In the first paragraph, find the service prefix. For * example, (service prefix: a4b). For more information about service * namespaces, see Amazon * Web Services service namespaces in the Amazon Web Services General * Reference.

*/ inline void SetServiceNamespace(const Aws::String& value) { m_serviceNamespaceHasBeenSet = true; m_serviceNamespace = value; } /** *

The namespace of the service in which access was attempted.

To learn * the service namespace of a service, see Actions, * resources, and condition keys for Amazon Web Services services in the * Service Authorization Reference. Choose the name of the service to view * details for that service. In the first paragraph, find the service prefix. For * example, (service prefix: a4b). For more information about service * namespaces, see Amazon * Web Services service namespaces in the Amazon Web Services General * Reference.

*/ inline void SetServiceNamespace(Aws::String&& value) { m_serviceNamespaceHasBeenSet = true; m_serviceNamespace = std::move(value); } /** *

The namespace of the service in which access was attempted.

To learn * the service namespace of a service, see Actions, * resources, and condition keys for Amazon Web Services services in the * Service Authorization Reference. Choose the name of the service to view * details for that service. In the first paragraph, find the service prefix. For * example, (service prefix: a4b). For more information about service * namespaces, see Amazon * Web Services service namespaces in the Amazon Web Services General * Reference.

*/ inline void SetServiceNamespace(const char* value) { m_serviceNamespaceHasBeenSet = true; m_serviceNamespace.assign(value); } /** *

The namespace of the service in which access was attempted.

To learn * the service namespace of a service, see Actions, * resources, and condition keys for Amazon Web Services services in the * Service Authorization Reference. Choose the name of the service to view * details for that service. In the first paragraph, find the service prefix. For * example, (service prefix: a4b). For more information about service * namespaces, see Amazon * Web Services service namespaces in the Amazon Web Services General * Reference.

*/ inline AccessDetail& WithServiceNamespace(const Aws::String& value) { SetServiceNamespace(value); return *this;} /** *

The namespace of the service in which access was attempted.

To learn * the service namespace of a service, see Actions, * resources, and condition keys for Amazon Web Services services in the * Service Authorization Reference. Choose the name of the service to view * details for that service. In the first paragraph, find the service prefix. For * example, (service prefix: a4b). For more information about service * namespaces, see Amazon * Web Services service namespaces in the Amazon Web Services General * Reference.

*/ inline AccessDetail& WithServiceNamespace(Aws::String&& value) { SetServiceNamespace(std::move(value)); return *this;} /** *

The namespace of the service in which access was attempted.

To learn * the service namespace of a service, see Actions, * resources, and condition keys for Amazon Web Services services in the * Service Authorization Reference. Choose the name of the service to view * details for that service. In the first paragraph, find the service prefix. For * example, (service prefix: a4b). For more information about service * namespaces, see Amazon * Web Services service namespaces in the Amazon Web Services General * Reference.

*/ inline AccessDetail& WithServiceNamespace(const char* value) { SetServiceNamespace(value); return *this;} /** *

The Region where the last service access attempt occurred.

This field * is null if no principals in the reported Organizations entity attempted to * access the service within the tracking * period.

*/ inline const Aws::String& GetRegion() const{ return m_region; } /** *

The Region where the last service access attempt occurred.

This field * is null if no principals in the reported Organizations entity attempted to * access the service within the tracking * period.

*/ inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; } /** *

The Region where the last service access attempt occurred.

This field * is null if no principals in the reported Organizations entity attempted to * access the service within the tracking * period.

*/ inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; } /** *

The Region where the last service access attempt occurred.

This field * is null if no principals in the reported Organizations entity attempted to * access the service within the tracking * period.

*/ inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); } /** *

The Region where the last service access attempt occurred.

This field * is null if no principals in the reported Organizations entity attempted to * access the service within the tracking * period.

*/ inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); } /** *

The Region where the last service access attempt occurred.

This field * is null if no principals in the reported Organizations entity attempted to * access the service within the tracking * period.

*/ inline AccessDetail& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** *

The Region where the last service access attempt occurred.

This field * is null if no principals in the reported Organizations entity attempted to * access the service within the tracking * period.

*/ inline AccessDetail& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;} /** *

The Region where the last service access attempt occurred.

This field * is null if no principals in the reported Organizations entity attempted to * access the service within the tracking * period.

*/ inline AccessDetail& WithRegion(const char* value) { SetRegion(value); return *this;} /** *

The path of the Organizations entity (root, organizational unit, or account) * from which an authenticated principal last attempted to access the service. * Amazon Web Services does not report unauthenticated requests.

This field * is null if no principals (IAM users, IAM roles, or root user) in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline const Aws::String& GetEntityPath() const{ return m_entityPath; } /** *

The path of the Organizations entity (root, organizational unit, or account) * from which an authenticated principal last attempted to access the service. * Amazon Web Services does not report unauthenticated requests.

This field * is null if no principals (IAM users, IAM roles, or root user) in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline bool EntityPathHasBeenSet() const { return m_entityPathHasBeenSet; } /** *

The path of the Organizations entity (root, organizational unit, or account) * from which an authenticated principal last attempted to access the service. * Amazon Web Services does not report unauthenticated requests.

This field * is null if no principals (IAM users, IAM roles, or root user) in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline void SetEntityPath(const Aws::String& value) { m_entityPathHasBeenSet = true; m_entityPath = value; } /** *

The path of the Organizations entity (root, organizational unit, or account) * from which an authenticated principal last attempted to access the service. * Amazon Web Services does not report unauthenticated requests.

This field * is null if no principals (IAM users, IAM roles, or root user) in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline void SetEntityPath(Aws::String&& value) { m_entityPathHasBeenSet = true; m_entityPath = std::move(value); } /** *

The path of the Organizations entity (root, organizational unit, or account) * from which an authenticated principal last attempted to access the service. * Amazon Web Services does not report unauthenticated requests.

This field * is null if no principals (IAM users, IAM roles, or root user) in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline void SetEntityPath(const char* value) { m_entityPathHasBeenSet = true; m_entityPath.assign(value); } /** *

The path of the Organizations entity (root, organizational unit, or account) * from which an authenticated principal last attempted to access the service. * Amazon Web Services does not report unauthenticated requests.

This field * is null if no principals (IAM users, IAM roles, or root user) in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline AccessDetail& WithEntityPath(const Aws::String& value) { SetEntityPath(value); return *this;} /** *

The path of the Organizations entity (root, organizational unit, or account) * from which an authenticated principal last attempted to access the service. * Amazon Web Services does not report unauthenticated requests.

This field * is null if no principals (IAM users, IAM roles, or root user) in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline AccessDetail& WithEntityPath(Aws::String&& value) { SetEntityPath(std::move(value)); return *this;} /** *

The path of the Organizations entity (root, organizational unit, or account) * from which an authenticated principal last attempted to access the service. * Amazon Web Services does not report unauthenticated requests.

This field * is null if no principals (IAM users, IAM roles, or root user) in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline AccessDetail& WithEntityPath(const char* value) { SetEntityPath(value); return *this;} /** *

The date and time, in ISO 8601 * date-time format, when an authenticated principal most recently attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no principals in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline const Aws::Utils::DateTime& GetLastAuthenticatedTime() const{ return m_lastAuthenticatedTime; } /** *

The date and time, in ISO 8601 * date-time format, when an authenticated principal most recently attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no principals in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline bool LastAuthenticatedTimeHasBeenSet() const { return m_lastAuthenticatedTimeHasBeenSet; } /** *

The date and time, in ISO 8601 * date-time format, when an authenticated principal most recently attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no principals in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline void SetLastAuthenticatedTime(const Aws::Utils::DateTime& value) { m_lastAuthenticatedTimeHasBeenSet = true; m_lastAuthenticatedTime = value; } /** *

The date and time, in ISO 8601 * date-time format, when an authenticated principal most recently attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no principals in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline void SetLastAuthenticatedTime(Aws::Utils::DateTime&& value) { m_lastAuthenticatedTimeHasBeenSet = true; m_lastAuthenticatedTime = std::move(value); } /** *

The date and time, in ISO 8601 * date-time format, when an authenticated principal most recently attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no principals in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline AccessDetail& WithLastAuthenticatedTime(const Aws::Utils::DateTime& value) { SetLastAuthenticatedTime(value); return *this;} /** *

The date and time, in ISO 8601 * date-time format, when an authenticated principal most recently attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no principals in the reported * Organizations entity attempted to access the service within the tracking * period.

*/ inline AccessDetail& WithLastAuthenticatedTime(Aws::Utils::DateTime&& value) { SetLastAuthenticatedTime(std::move(value)); return *this;} /** *

The number of accounts with authenticated principals (root user, IAM users, * and IAM roles) that attempted to access the service in the tracking period.

*/ inline int GetTotalAuthenticatedEntities() const{ return m_totalAuthenticatedEntities; } /** *

The number of accounts with authenticated principals (root user, IAM users, * and IAM roles) that attempted to access the service in the tracking period.

*/ inline bool TotalAuthenticatedEntitiesHasBeenSet() const { return m_totalAuthenticatedEntitiesHasBeenSet; } /** *

The number of accounts with authenticated principals (root user, IAM users, * and IAM roles) that attempted to access the service in the tracking period.

*/ inline void SetTotalAuthenticatedEntities(int value) { m_totalAuthenticatedEntitiesHasBeenSet = true; m_totalAuthenticatedEntities = value; } /** *

The number of accounts with authenticated principals (root user, IAM users, * and IAM roles) that attempted to access the service in the tracking period.

*/ inline AccessDetail& WithTotalAuthenticatedEntities(int value) { SetTotalAuthenticatedEntities(value); return *this;} private: Aws::String m_serviceName; bool m_serviceNameHasBeenSet = false; Aws::String m_serviceNamespace; bool m_serviceNamespaceHasBeenSet = false; Aws::String m_region; bool m_regionHasBeenSet = false; Aws::String m_entityPath; bool m_entityPathHasBeenSet = false; Aws::Utils::DateTime m_lastAuthenticatedTime; bool m_lastAuthenticatedTimeHasBeenSet = false; int m_totalAuthenticatedEntities; bool m_totalAuthenticatedEntitiesHasBeenSet = false; }; } // namespace Model } // namespace IAM } // namespace Aws