packages feed

stratosphere-ec2-1.0.0: gen/Stratosphere/EC2/VPCEndpointService.hs

module Stratosphere.EC2.VPCEndpointService (
        VPCEndpointService(..), mkVPCEndpointService
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data VPCEndpointService
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html>
    VPCEndpointService {haddock_workaround_ :: (),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-acceptancerequired>
                        acceptanceRequired :: (Prelude.Maybe (Value Prelude.Bool)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-contributorinsightsenabled>
                        contributorInsightsEnabled :: (Prelude.Maybe (Value Prelude.Bool)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-gatewayloadbalancerarns>
                        gatewayLoadBalancerArns :: (Prelude.Maybe (ValueList Prelude.Text)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-networkloadbalancerarns>
                        networkLoadBalancerArns :: (Prelude.Maybe (ValueList Prelude.Text)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-payerresponsibility>
                        payerResponsibility :: (Prelude.Maybe (Value Prelude.Text)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-supportedipaddresstypes>
                        supportedIpAddressTypes :: (Prelude.Maybe (ValueList Prelude.Text)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-supportedregions>
                        supportedRegions :: (Prelude.Maybe (ValueList Prelude.Text)),
                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointservice.html#cfn-ec2-vpcendpointservice-tags>
                        tags :: (Prelude.Maybe [Tag])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkVPCEndpointService :: VPCEndpointService
mkVPCEndpointService
  = VPCEndpointService
      {haddock_workaround_ = (), acceptanceRequired = Prelude.Nothing,
       contributorInsightsEnabled = Prelude.Nothing,
       gatewayLoadBalancerArns = Prelude.Nothing,
       networkLoadBalancerArns = Prelude.Nothing,
       payerResponsibility = Prelude.Nothing,
       supportedIpAddressTypes = Prelude.Nothing,
       supportedRegions = Prelude.Nothing, tags = Prelude.Nothing}
instance ToResourceProperties VPCEndpointService where
  toResourceProperties VPCEndpointService {..}
    = ResourceProperties
        {awsType = "AWS::EC2::VPCEndpointService",
         supportsTags = Prelude.True,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "AcceptanceRequired" Prelude.<$> acceptanceRequired,
                            (JSON..=) "ContributorInsightsEnabled"
                              Prelude.<$> contributorInsightsEnabled,
                            (JSON..=) "GatewayLoadBalancerArns"
                              Prelude.<$> gatewayLoadBalancerArns,
                            (JSON..=) "NetworkLoadBalancerArns"
                              Prelude.<$> networkLoadBalancerArns,
                            (JSON..=) "PayerResponsibility" Prelude.<$> payerResponsibility,
                            (JSON..=) "SupportedIpAddressTypes"
                              Prelude.<$> supportedIpAddressTypes,
                            (JSON..=) "SupportedRegions" Prelude.<$> supportedRegions,
                            (JSON..=) "Tags" Prelude.<$> tags])}
instance JSON.ToJSON VPCEndpointService where
  toJSON VPCEndpointService {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "AcceptanceRequired" Prelude.<$> acceptanceRequired,
               (JSON..=) "ContributorInsightsEnabled"
                 Prelude.<$> contributorInsightsEnabled,
               (JSON..=) "GatewayLoadBalancerArns"
                 Prelude.<$> gatewayLoadBalancerArns,
               (JSON..=) "NetworkLoadBalancerArns"
                 Prelude.<$> networkLoadBalancerArns,
               (JSON..=) "PayerResponsibility" Prelude.<$> payerResponsibility,
               (JSON..=) "SupportedIpAddressTypes"
                 Prelude.<$> supportedIpAddressTypes,
               (JSON..=) "SupportedRegions" Prelude.<$> supportedRegions,
               (JSON..=) "Tags" Prelude.<$> tags]))
instance Property "AcceptanceRequired" VPCEndpointService where
  type PropertyType "AcceptanceRequired" VPCEndpointService = Value Prelude.Bool
  set newValue VPCEndpointService {..}
    = VPCEndpointService
        {acceptanceRequired = Prelude.pure newValue, ..}
instance Property "ContributorInsightsEnabled" VPCEndpointService where
  type PropertyType "ContributorInsightsEnabled" VPCEndpointService = Value Prelude.Bool
  set newValue VPCEndpointService {..}
    = VPCEndpointService
        {contributorInsightsEnabled = Prelude.pure newValue, ..}
instance Property "GatewayLoadBalancerArns" VPCEndpointService where
  type PropertyType "GatewayLoadBalancerArns" VPCEndpointService = ValueList Prelude.Text
  set newValue VPCEndpointService {..}
    = VPCEndpointService
        {gatewayLoadBalancerArns = Prelude.pure newValue, ..}
instance Property "NetworkLoadBalancerArns" VPCEndpointService where
  type PropertyType "NetworkLoadBalancerArns" VPCEndpointService = ValueList Prelude.Text
  set newValue VPCEndpointService {..}
    = VPCEndpointService
        {networkLoadBalancerArns = Prelude.pure newValue, ..}
instance Property "PayerResponsibility" VPCEndpointService where
  type PropertyType "PayerResponsibility" VPCEndpointService = Value Prelude.Text
  set newValue VPCEndpointService {..}
    = VPCEndpointService
        {payerResponsibility = Prelude.pure newValue, ..}
instance Property "SupportedIpAddressTypes" VPCEndpointService where
  type PropertyType "SupportedIpAddressTypes" VPCEndpointService = ValueList Prelude.Text
  set newValue VPCEndpointService {..}
    = VPCEndpointService
        {supportedIpAddressTypes = Prelude.pure newValue, ..}
instance Property "SupportedRegions" VPCEndpointService where
  type PropertyType "SupportedRegions" VPCEndpointService = ValueList Prelude.Text
  set newValue VPCEndpointService {..}
    = VPCEndpointService {supportedRegions = Prelude.pure newValue, ..}
instance Property "Tags" VPCEndpointService where
  type PropertyType "Tags" VPCEndpointService = [Tag]
  set newValue VPCEndpointService {..}
    = VPCEndpointService {tags = Prelude.pure newValue, ..}