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

Contains details about the most recent attempt to access the service.

*

This data type is used as a response element in the * GetServiceLastAccessedDetails operation.

See Also:

AWS * API Reference

*/ class ServiceLastAccessed { public: AWS_IAM_API ServiceLastAccessed(); AWS_IAM_API ServiceLastAccessed(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_IAM_API ServiceLastAccessed& 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 ServiceLastAccessed& WithServiceName(const Aws::String& value) { SetServiceName(value); return *this;} /** *

The name of the service in which access was attempted.

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

The name of the service in which access was attempted.

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

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

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline const Aws::Utils::DateTime& GetLastAuthenticated() const{ return m_lastAuthenticated; } /** *

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

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline bool LastAuthenticatedHasBeenSet() const { return m_lastAuthenticatedHasBeenSet; } /** *

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

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline void SetLastAuthenticated(const Aws::Utils::DateTime& value) { m_lastAuthenticatedHasBeenSet = true; m_lastAuthenticated = value; } /** *

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

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline void SetLastAuthenticated(Aws::Utils::DateTime&& value) { m_lastAuthenticatedHasBeenSet = true; m_lastAuthenticated = std::move(value); } /** *

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

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline ServiceLastAccessed& WithLastAuthenticated(const Aws::Utils::DateTime& value) { SetLastAuthenticated(value); return *this;} /** *

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

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline ServiceLastAccessed& WithLastAuthenticated(Aws::Utils::DateTime&& value) { SetLastAuthenticated(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 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 ServiceLastAccessed& 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 ServiceLastAccessed& 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 ServiceLastAccessed& WithServiceNamespace(const char* value) { SetServiceNamespace(value); return *this;} /** *

The ARN of the authenticated entity (user or role) that last attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline const Aws::String& GetLastAuthenticatedEntity() const{ return m_lastAuthenticatedEntity; } /** *

The ARN of the authenticated entity (user or role) that last attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline bool LastAuthenticatedEntityHasBeenSet() const { return m_lastAuthenticatedEntityHasBeenSet; } /** *

The ARN of the authenticated entity (user or role) that last attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline void SetLastAuthenticatedEntity(const Aws::String& value) { m_lastAuthenticatedEntityHasBeenSet = true; m_lastAuthenticatedEntity = value; } /** *

The ARN of the authenticated entity (user or role) that last attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline void SetLastAuthenticatedEntity(Aws::String&& value) { m_lastAuthenticatedEntityHasBeenSet = true; m_lastAuthenticatedEntity = std::move(value); } /** *

The ARN of the authenticated entity (user or role) that last attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline void SetLastAuthenticatedEntity(const char* value) { m_lastAuthenticatedEntityHasBeenSet = true; m_lastAuthenticatedEntity.assign(value); } /** *

The ARN of the authenticated entity (user or role) that last attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline ServiceLastAccessed& WithLastAuthenticatedEntity(const Aws::String& value) { SetLastAuthenticatedEntity(value); return *this;} /** *

The ARN of the authenticated entity (user or role) that last attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline ServiceLastAccessed& WithLastAuthenticatedEntity(Aws::String&& value) { SetLastAuthenticatedEntity(std::move(value)); return *this;} /** *

The ARN of the authenticated entity (user or role) that last attempted to * access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline ServiceLastAccessed& WithLastAuthenticatedEntity(const char* value) { SetLastAuthenticatedEntity(value); return *this;} /** *

The Region from which the authenticated entity (user or role) last attempted * to access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline const Aws::String& GetLastAuthenticatedRegion() const{ return m_lastAuthenticatedRegion; } /** *

The Region from which the authenticated entity (user or role) last attempted * to access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline bool LastAuthenticatedRegionHasBeenSet() const { return m_lastAuthenticatedRegionHasBeenSet; } /** *

The Region from which the authenticated entity (user or role) last attempted * to access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline void SetLastAuthenticatedRegion(const Aws::String& value) { m_lastAuthenticatedRegionHasBeenSet = true; m_lastAuthenticatedRegion = value; } /** *

The Region from which the authenticated entity (user or role) last attempted * to access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline void SetLastAuthenticatedRegion(Aws::String&& value) { m_lastAuthenticatedRegionHasBeenSet = true; m_lastAuthenticatedRegion = std::move(value); } /** *

The Region from which the authenticated entity (user or role) last attempted * to access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline void SetLastAuthenticatedRegion(const char* value) { m_lastAuthenticatedRegionHasBeenSet = true; m_lastAuthenticatedRegion.assign(value); } /** *

The Region from which the authenticated entity (user or role) last attempted * to access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline ServiceLastAccessed& WithLastAuthenticatedRegion(const Aws::String& value) { SetLastAuthenticatedRegion(value); return *this;} /** *

The Region from which the authenticated entity (user or role) last attempted * to access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline ServiceLastAccessed& WithLastAuthenticatedRegion(Aws::String&& value) { SetLastAuthenticatedRegion(std::move(value)); return *this;} /** *

The Region from which the authenticated entity (user or role) last attempted * to access the service. Amazon Web Services does not report unauthenticated * requests.

This field is null if no IAM entities attempted to access the * service within the tracking * period.

*/ inline ServiceLastAccessed& WithLastAuthenticatedRegion(const char* value) { SetLastAuthenticatedRegion(value); return *this;} /** *

The total number of authenticated principals (root user, IAM users, or IAM * roles) that have attempted to access the service.

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

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

The total number of authenticated principals (root user, IAM users, or IAM * roles) that have attempted to access the service.

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

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

The total number of authenticated principals (root user, IAM users, or IAM * roles) that have attempted to access the service.

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

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

The total number of authenticated principals (root user, IAM users, or IAM * roles) that have attempted to access the service.

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

*/ inline ServiceLastAccessed& WithTotalAuthenticatedEntities(int value) { SetTotalAuthenticatedEntities(value); return *this;} /** *

An object that contains details about the most recent attempt to access a * tracked action within the service.

This field is null if there no tracked * actions or if the principal did not use the tracked actions within the tracking * period. This field is also null if the report was generated at the service * level and not the action level. For more information, see the * Granularity field in GenerateServiceLastAccessedDetails.

*/ inline const Aws::Vector& GetTrackedActionsLastAccessed() const{ return m_trackedActionsLastAccessed; } /** *

An object that contains details about the most recent attempt to access a * tracked action within the service.

This field is null if there no tracked * actions or if the principal did not use the tracked actions within the tracking * period. This field is also null if the report was generated at the service * level and not the action level. For more information, see the * Granularity field in GenerateServiceLastAccessedDetails.

*/ inline bool TrackedActionsLastAccessedHasBeenSet() const { return m_trackedActionsLastAccessedHasBeenSet; } /** *

An object that contains details about the most recent attempt to access a * tracked action within the service.

This field is null if there no tracked * actions or if the principal did not use the tracked actions within the tracking * period. This field is also null if the report was generated at the service * level and not the action level. For more information, see the * Granularity field in GenerateServiceLastAccessedDetails.

*/ inline void SetTrackedActionsLastAccessed(const Aws::Vector& value) { m_trackedActionsLastAccessedHasBeenSet = true; m_trackedActionsLastAccessed = value; } /** *

An object that contains details about the most recent attempt to access a * tracked action within the service.

This field is null if there no tracked * actions or if the principal did not use the tracked actions within the tracking * period. This field is also null if the report was generated at the service * level and not the action level. For more information, see the * Granularity field in GenerateServiceLastAccessedDetails.

*/ inline void SetTrackedActionsLastAccessed(Aws::Vector&& value) { m_trackedActionsLastAccessedHasBeenSet = true; m_trackedActionsLastAccessed = std::move(value); } /** *

An object that contains details about the most recent attempt to access a * tracked action within the service.

This field is null if there no tracked * actions or if the principal did not use the tracked actions within the tracking * period. This field is also null if the report was generated at the service * level and not the action level. For more information, see the * Granularity field in GenerateServiceLastAccessedDetails.

*/ inline ServiceLastAccessed& WithTrackedActionsLastAccessed(const Aws::Vector& value) { SetTrackedActionsLastAccessed(value); return *this;} /** *

An object that contains details about the most recent attempt to access a * tracked action within the service.

This field is null if there no tracked * actions or if the principal did not use the tracked actions within the tracking * period. This field is also null if the report was generated at the service * level and not the action level. For more information, see the * Granularity field in GenerateServiceLastAccessedDetails.

*/ inline ServiceLastAccessed& WithTrackedActionsLastAccessed(Aws::Vector&& value) { SetTrackedActionsLastAccessed(std::move(value)); return *this;} /** *

An object that contains details about the most recent attempt to access a * tracked action within the service.

This field is null if there no tracked * actions or if the principal did not use the tracked actions within the tracking * period. This field is also null if the report was generated at the service * level and not the action level. For more information, see the * Granularity field in GenerateServiceLastAccessedDetails.

*/ inline ServiceLastAccessed& AddTrackedActionsLastAccessed(const TrackedActionLastAccessed& value) { m_trackedActionsLastAccessedHasBeenSet = true; m_trackedActionsLastAccessed.push_back(value); return *this; } /** *

An object that contains details about the most recent attempt to access a * tracked action within the service.

This field is null if there no tracked * actions or if the principal did not use the tracked actions within the tracking * period. This field is also null if the report was generated at the service * level and not the action level. For more information, see the * Granularity field in GenerateServiceLastAccessedDetails.

*/ inline ServiceLastAccessed& AddTrackedActionsLastAccessed(TrackedActionLastAccessed&& value) { m_trackedActionsLastAccessedHasBeenSet = true; m_trackedActionsLastAccessed.push_back(std::move(value)); return *this; } private: Aws::String m_serviceName; bool m_serviceNameHasBeenSet = false; Aws::Utils::DateTime m_lastAuthenticated; bool m_lastAuthenticatedHasBeenSet = false; Aws::String m_serviceNamespace; bool m_serviceNamespaceHasBeenSet = false; Aws::String m_lastAuthenticatedEntity; bool m_lastAuthenticatedEntityHasBeenSet = false; Aws::String m_lastAuthenticatedRegion; bool m_lastAuthenticatedRegionHasBeenSet = false; int m_totalAuthenticatedEntities; bool m_totalAuthenticatedEntitiesHasBeenSet = false; Aws::Vector m_trackedActionsLastAccessed; bool m_trackedActionsLastAccessedHasBeenSet = false; }; } // namespace Model } // namespace IAM } // namespace Aws