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: LocationSMB {haddock_workaround_ :: (), -- | See: agentArns :: (ValueList Prelude.Text), -- | See: authenticationType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: cmkSecretConfig :: (Prelude.Maybe CmkSecretConfigProperty), -- | See: customSecretConfig :: (Prelude.Maybe CustomSecretConfigProperty), -- | See: dnsIpAddresses :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: domain :: (Prelude.Maybe (Value Prelude.Text)), -- | See: kerberosKeytab :: (Prelude.Maybe (Value Prelude.Text)), -- | See: kerberosKrb5Conf :: (Prelude.Maybe (Value Prelude.Text)), -- | See: kerberosPrincipal :: (Prelude.Maybe (Value Prelude.Text)), -- | See: mountOptions :: (Prelude.Maybe MountOptionsProperty), -- | See: password :: (Prelude.Maybe (Value Prelude.Text)), -- | See: serverHostname :: (Prelude.Maybe (Value Prelude.Text)), -- | See: subdirectory :: (Prelude.Maybe (Value Prelude.Text)), -- | See: tags :: (Prelude.Maybe [Tag]), -- | See: 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, ..}