module Stratosphere.EC2.VerifiedAccessEndpoint ( module Exports, VerifiedAccessEndpoint(..), mkVerifiedAccessEndpoint ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.EC2.VerifiedAccessEndpoint.CidrOptionsProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.VerifiedAccessEndpoint.LoadBalancerOptionsProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.VerifiedAccessEndpoint.NetworkInterfaceOptionsProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.VerifiedAccessEndpoint.RdsOptionsProperty as Exports import {-# SOURCE #-} Stratosphere.EC2.VerifiedAccessEndpoint.SseSpecificationProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data VerifiedAccessEndpoint = -- | See: VerifiedAccessEndpoint {haddock_workaround_ :: (), -- | See: applicationDomain :: (Prelude.Maybe (Value Prelude.Text)), -- | See: attachmentType :: (Value Prelude.Text), -- | See: cidrOptions :: (Prelude.Maybe CidrOptionsProperty), -- | See: description :: (Prelude.Maybe (Value Prelude.Text)), -- | See: domainCertificateArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: endpointDomainPrefix :: (Prelude.Maybe (Value Prelude.Text)), -- | See: endpointType :: (Value Prelude.Text), -- | See: loadBalancerOptions :: (Prelude.Maybe LoadBalancerOptionsProperty), -- | See: networkInterfaceOptions :: (Prelude.Maybe NetworkInterfaceOptionsProperty), -- | See: policyDocument :: (Prelude.Maybe (Value Prelude.Text)), -- | See: policyEnabled :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: rdsOptions :: (Prelude.Maybe RdsOptionsProperty), -- | See: securityGroupIds :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: sseSpecification :: (Prelude.Maybe SseSpecificationProperty), -- | See: tags :: (Prelude.Maybe [Tag]), -- | See: verifiedAccessGroupId :: (Value Prelude.Text)} deriving stock (Prelude.Eq, Prelude.Show) mkVerifiedAccessEndpoint :: Value Prelude.Text -> Value Prelude.Text -> Value Prelude.Text -> VerifiedAccessEndpoint mkVerifiedAccessEndpoint attachmentType endpointType verifiedAccessGroupId = VerifiedAccessEndpoint {haddock_workaround_ = (), attachmentType = attachmentType, endpointType = endpointType, verifiedAccessGroupId = verifiedAccessGroupId, applicationDomain = Prelude.Nothing, cidrOptions = Prelude.Nothing, description = Prelude.Nothing, domainCertificateArn = Prelude.Nothing, endpointDomainPrefix = Prelude.Nothing, loadBalancerOptions = Prelude.Nothing, networkInterfaceOptions = Prelude.Nothing, policyDocument = Prelude.Nothing, policyEnabled = Prelude.Nothing, rdsOptions = Prelude.Nothing, securityGroupIds = Prelude.Nothing, sseSpecification = Prelude.Nothing, tags = Prelude.Nothing} instance ToResourceProperties VerifiedAccessEndpoint where toResourceProperties VerifiedAccessEndpoint {..} = ResourceProperties {awsType = "AWS::EC2::VerifiedAccessEndpoint", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["AttachmentType" JSON..= attachmentType, "EndpointType" JSON..= endpointType, "VerifiedAccessGroupId" JSON..= verifiedAccessGroupId] (Prelude.catMaybes [(JSON..=) "ApplicationDomain" Prelude.<$> applicationDomain, (JSON..=) "CidrOptions" Prelude.<$> cidrOptions, (JSON..=) "Description" Prelude.<$> description, (JSON..=) "DomainCertificateArn" Prelude.<$> domainCertificateArn, (JSON..=) "EndpointDomainPrefix" Prelude.<$> endpointDomainPrefix, (JSON..=) "LoadBalancerOptions" Prelude.<$> loadBalancerOptions, (JSON..=) "NetworkInterfaceOptions" Prelude.<$> networkInterfaceOptions, (JSON..=) "PolicyDocument" Prelude.<$> policyDocument, (JSON..=) "PolicyEnabled" Prelude.<$> policyEnabled, (JSON..=) "RdsOptions" Prelude.<$> rdsOptions, (JSON..=) "SecurityGroupIds" Prelude.<$> securityGroupIds, (JSON..=) "SseSpecification" Prelude.<$> sseSpecification, (JSON..=) "Tags" Prelude.<$> tags]))} instance JSON.ToJSON VerifiedAccessEndpoint where toJSON VerifiedAccessEndpoint {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["AttachmentType" JSON..= attachmentType, "EndpointType" JSON..= endpointType, "VerifiedAccessGroupId" JSON..= verifiedAccessGroupId] (Prelude.catMaybes [(JSON..=) "ApplicationDomain" Prelude.<$> applicationDomain, (JSON..=) "CidrOptions" Prelude.<$> cidrOptions, (JSON..=) "Description" Prelude.<$> description, (JSON..=) "DomainCertificateArn" Prelude.<$> domainCertificateArn, (JSON..=) "EndpointDomainPrefix" Prelude.<$> endpointDomainPrefix, (JSON..=) "LoadBalancerOptions" Prelude.<$> loadBalancerOptions, (JSON..=) "NetworkInterfaceOptions" Prelude.<$> networkInterfaceOptions, (JSON..=) "PolicyDocument" Prelude.<$> policyDocument, (JSON..=) "PolicyEnabled" Prelude.<$> policyEnabled, (JSON..=) "RdsOptions" Prelude.<$> rdsOptions, (JSON..=) "SecurityGroupIds" Prelude.<$> securityGroupIds, (JSON..=) "SseSpecification" Prelude.<$> sseSpecification, (JSON..=) "Tags" Prelude.<$> tags]))) instance Property "ApplicationDomain" VerifiedAccessEndpoint where type PropertyType "ApplicationDomain" VerifiedAccessEndpoint = Value Prelude.Text set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {applicationDomain = Prelude.pure newValue, ..} instance Property "AttachmentType" VerifiedAccessEndpoint where type PropertyType "AttachmentType" VerifiedAccessEndpoint = Value Prelude.Text set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {attachmentType = newValue, ..} instance Property "CidrOptions" VerifiedAccessEndpoint where type PropertyType "CidrOptions" VerifiedAccessEndpoint = CidrOptionsProperty set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {cidrOptions = Prelude.pure newValue, ..} instance Property "Description" VerifiedAccessEndpoint where type PropertyType "Description" VerifiedAccessEndpoint = Value Prelude.Text set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {description = Prelude.pure newValue, ..} instance Property "DomainCertificateArn" VerifiedAccessEndpoint where type PropertyType "DomainCertificateArn" VerifiedAccessEndpoint = Value Prelude.Text set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {domainCertificateArn = Prelude.pure newValue, ..} instance Property "EndpointDomainPrefix" VerifiedAccessEndpoint where type PropertyType "EndpointDomainPrefix" VerifiedAccessEndpoint = Value Prelude.Text set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {endpointDomainPrefix = Prelude.pure newValue, ..} instance Property "EndpointType" VerifiedAccessEndpoint where type PropertyType "EndpointType" VerifiedAccessEndpoint = Value Prelude.Text set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {endpointType = newValue, ..} instance Property "LoadBalancerOptions" VerifiedAccessEndpoint where type PropertyType "LoadBalancerOptions" VerifiedAccessEndpoint = LoadBalancerOptionsProperty set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {loadBalancerOptions = Prelude.pure newValue, ..} instance Property "NetworkInterfaceOptions" VerifiedAccessEndpoint where type PropertyType "NetworkInterfaceOptions" VerifiedAccessEndpoint = NetworkInterfaceOptionsProperty set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {networkInterfaceOptions = Prelude.pure newValue, ..} instance Property "PolicyDocument" VerifiedAccessEndpoint where type PropertyType "PolicyDocument" VerifiedAccessEndpoint = Value Prelude.Text set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {policyDocument = Prelude.pure newValue, ..} instance Property "PolicyEnabled" VerifiedAccessEndpoint where type PropertyType "PolicyEnabled" VerifiedAccessEndpoint = Value Prelude.Bool set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {policyEnabled = Prelude.pure newValue, ..} instance Property "RdsOptions" VerifiedAccessEndpoint where type PropertyType "RdsOptions" VerifiedAccessEndpoint = RdsOptionsProperty set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {rdsOptions = Prelude.pure newValue, ..} instance Property "SecurityGroupIds" VerifiedAccessEndpoint where type PropertyType "SecurityGroupIds" VerifiedAccessEndpoint = ValueList Prelude.Text set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {securityGroupIds = Prelude.pure newValue, ..} instance Property "SseSpecification" VerifiedAccessEndpoint where type PropertyType "SseSpecification" VerifiedAccessEndpoint = SseSpecificationProperty set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {sseSpecification = Prelude.pure newValue, ..} instance Property "Tags" VerifiedAccessEndpoint where type PropertyType "Tags" VerifiedAccessEndpoint = [Tag] set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {tags = Prelude.pure newValue, ..} instance Property "VerifiedAccessGroupId" VerifiedAccessEndpoint where type PropertyType "VerifiedAccessGroupId" VerifiedAccessEndpoint = Value Prelude.Text set newValue VerifiedAccessEndpoint {..} = VerifiedAccessEndpoint {verifiedAccessGroupId = newValue, ..}