/** * 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 #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace S3Outposts { namespace Model { /** *

Amazon S3 on Outposts Access Points simplify managing data access at scale * for shared datasets in S3 on Outposts. S3 on Outposts uses endpoints to connect * to Outposts buckets so that you can perform actions within your virtual private * cloud (VPC). For more information, see * Accessing S3 on Outposts using VPC-only access points in the Amazon * Simple Storage Service User Guide.

See Also:

AWS * API Reference

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

The Amazon Resource Name (ARN) of the endpoint.

*/ inline const Aws::String& GetEndpointArn() const{ return m_endpointArn; } /** *

The Amazon Resource Name (ARN) of the endpoint.

*/ inline bool EndpointArnHasBeenSet() const { return m_endpointArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the endpoint.

*/ inline void SetEndpointArn(const Aws::String& value) { m_endpointArnHasBeenSet = true; m_endpointArn = value; } /** *

The Amazon Resource Name (ARN) of the endpoint.

*/ inline void SetEndpointArn(Aws::String&& value) { m_endpointArnHasBeenSet = true; m_endpointArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the endpoint.

*/ inline void SetEndpointArn(const char* value) { m_endpointArnHasBeenSet = true; m_endpointArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the endpoint.

*/ inline Endpoint& WithEndpointArn(const Aws::String& value) { SetEndpointArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the endpoint.

*/ inline Endpoint& WithEndpointArn(Aws::String&& value) { SetEndpointArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the endpoint.

*/ inline Endpoint& WithEndpointArn(const char* value) { SetEndpointArn(value); return *this;} /** *

The ID of the Outposts.

*/ inline const Aws::String& GetOutpostsId() const{ return m_outpostsId; } /** *

The ID of the Outposts.

*/ inline bool OutpostsIdHasBeenSet() const { return m_outpostsIdHasBeenSet; } /** *

The ID of the Outposts.

*/ inline void SetOutpostsId(const Aws::String& value) { m_outpostsIdHasBeenSet = true; m_outpostsId = value; } /** *

The ID of the Outposts.

*/ inline void SetOutpostsId(Aws::String&& value) { m_outpostsIdHasBeenSet = true; m_outpostsId = std::move(value); } /** *

The ID of the Outposts.

*/ inline void SetOutpostsId(const char* value) { m_outpostsIdHasBeenSet = true; m_outpostsId.assign(value); } /** *

The ID of the Outposts.

*/ inline Endpoint& WithOutpostsId(const Aws::String& value) { SetOutpostsId(value); return *this;} /** *

The ID of the Outposts.

*/ inline Endpoint& WithOutpostsId(Aws::String&& value) { SetOutpostsId(std::move(value)); return *this;} /** *

The ID of the Outposts.

*/ inline Endpoint& WithOutpostsId(const char* value) { SetOutpostsId(value); return *this;} /** *

The VPC CIDR committed by this endpoint.

*/ inline const Aws::String& GetCidrBlock() const{ return m_cidrBlock; } /** *

The VPC CIDR committed by this endpoint.

*/ inline bool CidrBlockHasBeenSet() const { return m_cidrBlockHasBeenSet; } /** *

The VPC CIDR committed by this endpoint.

*/ inline void SetCidrBlock(const Aws::String& value) { m_cidrBlockHasBeenSet = true; m_cidrBlock = value; } /** *

The VPC CIDR committed by this endpoint.

*/ inline void SetCidrBlock(Aws::String&& value) { m_cidrBlockHasBeenSet = true; m_cidrBlock = std::move(value); } /** *

The VPC CIDR committed by this endpoint.

*/ inline void SetCidrBlock(const char* value) { m_cidrBlockHasBeenSet = true; m_cidrBlock.assign(value); } /** *

The VPC CIDR committed by this endpoint.

*/ inline Endpoint& WithCidrBlock(const Aws::String& value) { SetCidrBlock(value); return *this;} /** *

The VPC CIDR committed by this endpoint.

*/ inline Endpoint& WithCidrBlock(Aws::String&& value) { SetCidrBlock(std::move(value)); return *this;} /** *

The VPC CIDR committed by this endpoint.

*/ inline Endpoint& WithCidrBlock(const char* value) { SetCidrBlock(value); return *this;} /** *

The status of the endpoint.

*/ inline const EndpointStatus& GetStatus() const{ return m_status; } /** *

The status of the endpoint.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The status of the endpoint.

*/ inline void SetStatus(const EndpointStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The status of the endpoint.

*/ inline void SetStatus(EndpointStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The status of the endpoint.

*/ inline Endpoint& WithStatus(const EndpointStatus& value) { SetStatus(value); return *this;} /** *

The status of the endpoint.

*/ inline Endpoint& WithStatus(EndpointStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

The time the endpoint was created.

*/ inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; } /** *

The time the endpoint was created.

*/ inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } /** *

The time the endpoint was created.

*/ inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

The time the endpoint was created.

*/ inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } /** *

The time the endpoint was created.

*/ inline Endpoint& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} /** *

The time the endpoint was created.

*/ inline Endpoint& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The network interface of the endpoint.

*/ inline const Aws::Vector& GetNetworkInterfaces() const{ return m_networkInterfaces; } /** *

The network interface of the endpoint.

*/ inline bool NetworkInterfacesHasBeenSet() const { return m_networkInterfacesHasBeenSet; } /** *

The network interface of the endpoint.

*/ inline void SetNetworkInterfaces(const Aws::Vector& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces = value; } /** *

The network interface of the endpoint.

*/ inline void SetNetworkInterfaces(Aws::Vector&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces = std::move(value); } /** *

The network interface of the endpoint.

*/ inline Endpoint& WithNetworkInterfaces(const Aws::Vector& value) { SetNetworkInterfaces(value); return *this;} /** *

The network interface of the endpoint.

*/ inline Endpoint& WithNetworkInterfaces(Aws::Vector&& value) { SetNetworkInterfaces(std::move(value)); return *this;} /** *

The network interface of the endpoint.

*/ inline Endpoint& AddNetworkInterfaces(const NetworkInterface& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.push_back(value); return *this; } /** *

The network interface of the endpoint.

*/ inline Endpoint& AddNetworkInterfaces(NetworkInterface&& value) { m_networkInterfacesHasBeenSet = true; m_networkInterfaces.push_back(std::move(value)); return *this; } /** *

The ID of the VPC used for the endpoint.

*/ inline const Aws::String& GetVpcId() const{ return m_vpcId; } /** *

The ID of the VPC used for the endpoint.

*/ inline bool VpcIdHasBeenSet() const { return m_vpcIdHasBeenSet; } /** *

The ID of the VPC used for the endpoint.

*/ inline void SetVpcId(const Aws::String& value) { m_vpcIdHasBeenSet = true; m_vpcId = value; } /** *

The ID of the VPC used for the endpoint.

*/ inline void SetVpcId(Aws::String&& value) { m_vpcIdHasBeenSet = true; m_vpcId = std::move(value); } /** *

The ID of the VPC used for the endpoint.

*/ inline void SetVpcId(const char* value) { m_vpcIdHasBeenSet = true; m_vpcId.assign(value); } /** *

The ID of the VPC used for the endpoint.

*/ inline Endpoint& WithVpcId(const Aws::String& value) { SetVpcId(value); return *this;} /** *

The ID of the VPC used for the endpoint.

*/ inline Endpoint& WithVpcId(Aws::String&& value) { SetVpcId(std::move(value)); return *this;} /** *

The ID of the VPC used for the endpoint.

*/ inline Endpoint& WithVpcId(const char* value) { SetVpcId(value); return *this;} /** *

The ID of the subnet used for the endpoint.

*/ inline const Aws::String& GetSubnetId() const{ return m_subnetId; } /** *

The ID of the subnet used for the endpoint.

*/ inline bool SubnetIdHasBeenSet() const { return m_subnetIdHasBeenSet; } /** *

The ID of the subnet used for the endpoint.

*/ inline void SetSubnetId(const Aws::String& value) { m_subnetIdHasBeenSet = true; m_subnetId = value; } /** *

The ID of the subnet used for the endpoint.

*/ inline void SetSubnetId(Aws::String&& value) { m_subnetIdHasBeenSet = true; m_subnetId = std::move(value); } /** *

The ID of the subnet used for the endpoint.

*/ inline void SetSubnetId(const char* value) { m_subnetIdHasBeenSet = true; m_subnetId.assign(value); } /** *

The ID of the subnet used for the endpoint.

*/ inline Endpoint& WithSubnetId(const Aws::String& value) { SetSubnetId(value); return *this;} /** *

The ID of the subnet used for the endpoint.

*/ inline Endpoint& WithSubnetId(Aws::String&& value) { SetSubnetId(std::move(value)); return *this;} /** *

The ID of the subnet used for the endpoint.

*/ inline Endpoint& WithSubnetId(const char* value) { SetSubnetId(value); return *this;} /** *

The ID of the security group used for the endpoint.

*/ inline const Aws::String& GetSecurityGroupId() const{ return m_securityGroupId; } /** *

The ID of the security group used for the endpoint.

*/ inline bool SecurityGroupIdHasBeenSet() const { return m_securityGroupIdHasBeenSet; } /** *

The ID of the security group used for the endpoint.

*/ inline void SetSecurityGroupId(const Aws::String& value) { m_securityGroupIdHasBeenSet = true; m_securityGroupId = value; } /** *

The ID of the security group used for the endpoint.

*/ inline void SetSecurityGroupId(Aws::String&& value) { m_securityGroupIdHasBeenSet = true; m_securityGroupId = std::move(value); } /** *

The ID of the security group used for the endpoint.

*/ inline void SetSecurityGroupId(const char* value) { m_securityGroupIdHasBeenSet = true; m_securityGroupId.assign(value); } /** *

The ID of the security group used for the endpoint.

*/ inline Endpoint& WithSecurityGroupId(const Aws::String& value) { SetSecurityGroupId(value); return *this;} /** *

The ID of the security group used for the endpoint.

*/ inline Endpoint& WithSecurityGroupId(Aws::String&& value) { SetSecurityGroupId(std::move(value)); return *this;} /** *

The ID of the security group used for the endpoint.

*/ inline Endpoint& WithSecurityGroupId(const char* value) { SetSecurityGroupId(value); return *this;} /** *

The type of connectivity used to access the Amazon S3 on Outposts * endpoint.

*/ inline const EndpointAccessType& GetAccessType() const{ return m_accessType; } /** *

The type of connectivity used to access the Amazon S3 on Outposts * endpoint.

*/ inline bool AccessTypeHasBeenSet() const { return m_accessTypeHasBeenSet; } /** *

The type of connectivity used to access the Amazon S3 on Outposts * endpoint.

*/ inline void SetAccessType(const EndpointAccessType& value) { m_accessTypeHasBeenSet = true; m_accessType = value; } /** *

The type of connectivity used to access the Amazon S3 on Outposts * endpoint.

*/ inline void SetAccessType(EndpointAccessType&& value) { m_accessTypeHasBeenSet = true; m_accessType = std::move(value); } /** *

The type of connectivity used to access the Amazon S3 on Outposts * endpoint.

*/ inline Endpoint& WithAccessType(const EndpointAccessType& value) { SetAccessType(value); return *this;} /** *

The type of connectivity used to access the Amazon S3 on Outposts * endpoint.

*/ inline Endpoint& WithAccessType(EndpointAccessType&& value) { SetAccessType(std::move(value)); return *this;} /** *

The ID of the customer-owned IPv4 address pool used for the endpoint.

*/ inline const Aws::String& GetCustomerOwnedIpv4Pool() const{ return m_customerOwnedIpv4Pool; } /** *

The ID of the customer-owned IPv4 address pool used for the endpoint.

*/ inline bool CustomerOwnedIpv4PoolHasBeenSet() const { return m_customerOwnedIpv4PoolHasBeenSet; } /** *

The ID of the customer-owned IPv4 address pool used for the endpoint.

*/ inline void SetCustomerOwnedIpv4Pool(const Aws::String& value) { m_customerOwnedIpv4PoolHasBeenSet = true; m_customerOwnedIpv4Pool = value; } /** *

The ID of the customer-owned IPv4 address pool used for the endpoint.

*/ inline void SetCustomerOwnedIpv4Pool(Aws::String&& value) { m_customerOwnedIpv4PoolHasBeenSet = true; m_customerOwnedIpv4Pool = std::move(value); } /** *

The ID of the customer-owned IPv4 address pool used for the endpoint.

*/ inline void SetCustomerOwnedIpv4Pool(const char* value) { m_customerOwnedIpv4PoolHasBeenSet = true; m_customerOwnedIpv4Pool.assign(value); } /** *

The ID of the customer-owned IPv4 address pool used for the endpoint.

*/ inline Endpoint& WithCustomerOwnedIpv4Pool(const Aws::String& value) { SetCustomerOwnedIpv4Pool(value); return *this;} /** *

The ID of the customer-owned IPv4 address pool used for the endpoint.

*/ inline Endpoint& WithCustomerOwnedIpv4Pool(Aws::String&& value) { SetCustomerOwnedIpv4Pool(std::move(value)); return *this;} /** *

The ID of the customer-owned IPv4 address pool used for the endpoint.

*/ inline Endpoint& WithCustomerOwnedIpv4Pool(const char* value) { SetCustomerOwnedIpv4Pool(value); return *this;} /** *

The failure reason, if any, for a create or delete endpoint operation.

*/ inline const FailedReason& GetFailedReason() const{ return m_failedReason; } /** *

The failure reason, if any, for a create or delete endpoint operation.

*/ inline bool FailedReasonHasBeenSet() const { return m_failedReasonHasBeenSet; } /** *

The failure reason, if any, for a create or delete endpoint operation.

*/ inline void SetFailedReason(const FailedReason& value) { m_failedReasonHasBeenSet = true; m_failedReason = value; } /** *

The failure reason, if any, for a create or delete endpoint operation.

*/ inline void SetFailedReason(FailedReason&& value) { m_failedReasonHasBeenSet = true; m_failedReason = std::move(value); } /** *

The failure reason, if any, for a create or delete endpoint operation.

*/ inline Endpoint& WithFailedReason(const FailedReason& value) { SetFailedReason(value); return *this;} /** *

The failure reason, if any, for a create or delete endpoint operation.

*/ inline Endpoint& WithFailedReason(FailedReason&& value) { SetFailedReason(std::move(value)); return *this;} private: Aws::String m_endpointArn; bool m_endpointArnHasBeenSet = false; Aws::String m_outpostsId; bool m_outpostsIdHasBeenSet = false; Aws::String m_cidrBlock; bool m_cidrBlockHasBeenSet = false; EndpointStatus m_status; bool m_statusHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::Vector m_networkInterfaces; bool m_networkInterfacesHasBeenSet = false; Aws::String m_vpcId; bool m_vpcIdHasBeenSet = false; Aws::String m_subnetId; bool m_subnetIdHasBeenSet = false; Aws::String m_securityGroupId; bool m_securityGroupIdHasBeenSet = false; EndpointAccessType m_accessType; bool m_accessTypeHasBeenSet = false; Aws::String m_customerOwnedIpv4Pool; bool m_customerOwnedIpv4PoolHasBeenSet = false; FailedReason m_failedReason; bool m_failedReasonHasBeenSet = false; }; } // namespace Model } // namespace S3Outposts } // namespace Aws