packages feed

stratosphere-datasync-1.0.0: gen/Stratosphere/DataSync/LocationSMB.hs

module Stratosphere.DataSync.LocationSMB (
        module Exports, LocationSMB(..), mkLocationSMB
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.DataSync.LocationSMB.CmkSecretConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.DataSync.LocationSMB.CustomSecretConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.DataSync.LocationSMB.MountOptionsProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data LocationSMB
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html>
    LocationSMB {haddock_workaround_ :: (),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-agentarns>
                 agentArns :: (ValueList Prelude.Text),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-authenticationtype>
                 authenticationType :: (Prelude.Maybe (Value Prelude.Text)),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-cmksecretconfig>
                 cmkSecretConfig :: (Prelude.Maybe CmkSecretConfigProperty),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-customsecretconfig>
                 customSecretConfig :: (Prelude.Maybe CustomSecretConfigProperty),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-dnsipaddresses>
                 dnsIpAddresses :: (Prelude.Maybe (ValueList Prelude.Text)),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-domain>
                 domain :: (Prelude.Maybe (Value Prelude.Text)),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-kerberoskeytab>
                 kerberosKeytab :: (Prelude.Maybe (Value Prelude.Text)),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-kerberoskrb5conf>
                 kerberosKrb5Conf :: (Prelude.Maybe (Value Prelude.Text)),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-kerberosprincipal>
                 kerberosPrincipal :: (Prelude.Maybe (Value Prelude.Text)),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-mountoptions>
                 mountOptions :: (Prelude.Maybe MountOptionsProperty),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-password>
                 password :: (Prelude.Maybe (Value Prelude.Text)),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-serverhostname>
                 serverHostname :: (Prelude.Maybe (Value Prelude.Text)),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-subdirectory>
                 subdirectory :: (Prelude.Maybe (Value Prelude.Text)),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-tags>
                 tags :: (Prelude.Maybe [Tag]),
                 -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html#cfn-datasync-locationsmb-user>
                 user :: (Prelude.Maybe (Value Prelude.Text))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkLocationSMB :: ValueList Prelude.Text -> LocationSMB
mkLocationSMB agentArns
  = LocationSMB
      {haddock_workaround_ = (), agentArns = agentArns,
       authenticationType = Prelude.Nothing,
       cmkSecretConfig = Prelude.Nothing,
       customSecretConfig = Prelude.Nothing,
       dnsIpAddresses = Prelude.Nothing, domain = Prelude.Nothing,
       kerberosKeytab = Prelude.Nothing,
       kerberosKrb5Conf = Prelude.Nothing,
       kerberosPrincipal = Prelude.Nothing,
       mountOptions = Prelude.Nothing, password = Prelude.Nothing,
       serverHostname = Prelude.Nothing, subdirectory = Prelude.Nothing,
       tags = Prelude.Nothing, user = Prelude.Nothing}
instance ToResourceProperties LocationSMB where
  toResourceProperties LocationSMB {..}
    = ResourceProperties
        {awsType = "AWS::DataSync::LocationSMB",
         supportsTags = Prelude.True,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["AgentArns" JSON..= agentArns]
                           (Prelude.catMaybes
                              [(JSON..=) "AuthenticationType" Prelude.<$> authenticationType,
                               (JSON..=) "CmkSecretConfig" Prelude.<$> cmkSecretConfig,
                               (JSON..=) "CustomSecretConfig" Prelude.<$> customSecretConfig,
                               (JSON..=) "DnsIpAddresses" Prelude.<$> dnsIpAddresses,
                               (JSON..=) "Domain" Prelude.<$> domain,
                               (JSON..=) "KerberosKeytab" Prelude.<$> kerberosKeytab,
                               (JSON..=) "KerberosKrb5Conf" Prelude.<$> kerberosKrb5Conf,
                               (JSON..=) "KerberosPrincipal" Prelude.<$> kerberosPrincipal,
                               (JSON..=) "MountOptions" Prelude.<$> mountOptions,
                               (JSON..=) "Password" Prelude.<$> password,
                               (JSON..=) "ServerHostname" Prelude.<$> serverHostname,
                               (JSON..=) "Subdirectory" Prelude.<$> subdirectory,
                               (JSON..=) "Tags" Prelude.<$> tags,
                               (JSON..=) "User" Prelude.<$> user]))}
instance JSON.ToJSON LocationSMB where
  toJSON LocationSMB {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["AgentArns" JSON..= agentArns]
              (Prelude.catMaybes
                 [(JSON..=) "AuthenticationType" Prelude.<$> authenticationType,
                  (JSON..=) "CmkSecretConfig" Prelude.<$> cmkSecretConfig,
                  (JSON..=) "CustomSecretConfig" Prelude.<$> customSecretConfig,
                  (JSON..=) "DnsIpAddresses" Prelude.<$> dnsIpAddresses,
                  (JSON..=) "Domain" Prelude.<$> domain,
                  (JSON..=) "KerberosKeytab" Prelude.<$> kerberosKeytab,
                  (JSON..=) "KerberosKrb5Conf" Prelude.<$> kerberosKrb5Conf,
                  (JSON..=) "KerberosPrincipal" Prelude.<$> kerberosPrincipal,
                  (JSON..=) "MountOptions" Prelude.<$> mountOptions,
                  (JSON..=) "Password" Prelude.<$> password,
                  (JSON..=) "ServerHostname" Prelude.<$> serverHostname,
                  (JSON..=) "Subdirectory" Prelude.<$> subdirectory,
                  (JSON..=) "Tags" Prelude.<$> tags,
                  (JSON..=) "User" Prelude.<$> user])))
instance Property "AgentArns" LocationSMB where
  type PropertyType "AgentArns" LocationSMB = ValueList Prelude.Text
  set newValue LocationSMB {..}
    = LocationSMB {agentArns = newValue, ..}
instance Property "AuthenticationType" LocationSMB where
  type PropertyType "AuthenticationType" LocationSMB = Value Prelude.Text
  set newValue LocationSMB {..}
    = LocationSMB {authenticationType = Prelude.pure newValue, ..}
instance Property "CmkSecretConfig" LocationSMB where
  type PropertyType "CmkSecretConfig" LocationSMB = CmkSecretConfigProperty
  set newValue LocationSMB {..}
    = LocationSMB {cmkSecretConfig = Prelude.pure newValue, ..}
instance Property "CustomSecretConfig" LocationSMB where
  type PropertyType "CustomSecretConfig" LocationSMB = CustomSecretConfigProperty
  set newValue LocationSMB {..}
    = LocationSMB {customSecretConfig = Prelude.pure newValue, ..}
instance Property "DnsIpAddresses" LocationSMB where
  type PropertyType "DnsIpAddresses" LocationSMB = ValueList Prelude.Text
  set newValue LocationSMB {..}
    = LocationSMB {dnsIpAddresses = Prelude.pure newValue, ..}
instance Property "Domain" LocationSMB where
  type PropertyType "Domain" LocationSMB = Value Prelude.Text
  set newValue LocationSMB {..}
    = LocationSMB {domain = Prelude.pure newValue, ..}
instance Property "KerberosKeytab" LocationSMB where
  type PropertyType "KerberosKeytab" LocationSMB = Value Prelude.Text
  set newValue LocationSMB {..}
    = LocationSMB {kerberosKeytab = Prelude.pure newValue, ..}
instance Property "KerberosKrb5Conf" LocationSMB where
  type PropertyType "KerberosKrb5Conf" LocationSMB = Value Prelude.Text
  set newValue LocationSMB {..}
    = LocationSMB {kerberosKrb5Conf = Prelude.pure newValue, ..}
instance Property "KerberosPrincipal" LocationSMB where
  type PropertyType "KerberosPrincipal" LocationSMB = Value Prelude.Text
  set newValue LocationSMB {..}
    = LocationSMB {kerberosPrincipal = Prelude.pure newValue, ..}
instance Property "MountOptions" LocationSMB where
  type PropertyType "MountOptions" LocationSMB = MountOptionsProperty
  set newValue LocationSMB {..}
    = LocationSMB {mountOptions = Prelude.pure newValue, ..}
instance Property "Password" LocationSMB where
  type PropertyType "Password" LocationSMB = Value Prelude.Text
  set newValue LocationSMB {..}
    = LocationSMB {password = Prelude.pure newValue, ..}
instance Property "ServerHostname" LocationSMB where
  type PropertyType "ServerHostname" LocationSMB = Value Prelude.Text
  set newValue LocationSMB {..}
    = LocationSMB {serverHostname = Prelude.pure newValue, ..}
instance Property "Subdirectory" LocationSMB where
  type PropertyType "Subdirectory" LocationSMB = Value Prelude.Text
  set newValue LocationSMB {..}
    = LocationSMB {subdirectory = Prelude.pure newValue, ..}
instance Property "Tags" LocationSMB where
  type PropertyType "Tags" LocationSMB = [Tag]
  set newValue LocationSMB {..}
    = LocationSMB {tags = Prelude.pure newValue, ..}
instance Property "User" LocationSMB where
  type PropertyType "User" LocationSMB = Value Prelude.Text
  set newValue LocationSMB {..}
    = LocationSMB {user = Prelude.pure newValue, ..}