packages feed

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

module Stratosphere.DataSync.LocationAzureBlob (
        module Exports, LocationAzureBlob(..), mkLocationAzureBlob
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.DataSync.LocationAzureBlob.AzureBlobSasConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.DataSync.LocationAzureBlob.CmkSecretConfigProperty as Exports
import {-# SOURCE #-} Stratosphere.DataSync.LocationAzureBlob.CustomSecretConfigProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data LocationAzureBlob
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html>
    LocationAzureBlob {haddock_workaround_ :: (),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-agentarns>
                       agentArns :: (Prelude.Maybe (ValueList Prelude.Text)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureaccesstier>
                       azureAccessTier :: (Prelude.Maybe (Value Prelude.Text)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobauthenticationtype>
                       azureBlobAuthenticationType :: (Value Prelude.Text),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobcontainerurl>
                       azureBlobContainerUrl :: (Prelude.Maybe (Value Prelude.Text)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobsasconfiguration>
                       azureBlobSasConfiguration :: (Prelude.Maybe AzureBlobSasConfigurationProperty),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobtype>
                       azureBlobType :: (Prelude.Maybe (Value Prelude.Text)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-cmksecretconfig>
                       cmkSecretConfig :: (Prelude.Maybe CmkSecretConfigProperty),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-customsecretconfig>
                       customSecretConfig :: (Prelude.Maybe CustomSecretConfigProperty),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-subdirectory>
                       subdirectory :: (Prelude.Maybe (Value Prelude.Text)),
                       -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-tags>
                       tags :: (Prelude.Maybe [Tag])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkLocationAzureBlob :: Value Prelude.Text -> LocationAzureBlob
mkLocationAzureBlob azureBlobAuthenticationType
  = LocationAzureBlob
      {haddock_workaround_ = (),
       azureBlobAuthenticationType = azureBlobAuthenticationType,
       agentArns = Prelude.Nothing, azureAccessTier = Prelude.Nothing,
       azureBlobContainerUrl = Prelude.Nothing,
       azureBlobSasConfiguration = Prelude.Nothing,
       azureBlobType = Prelude.Nothing, cmkSecretConfig = Prelude.Nothing,
       customSecretConfig = Prelude.Nothing,
       subdirectory = Prelude.Nothing, tags = Prelude.Nothing}
instance ToResourceProperties LocationAzureBlob where
  toResourceProperties LocationAzureBlob {..}
    = ResourceProperties
        {awsType = "AWS::DataSync::LocationAzureBlob",
         supportsTags = Prelude.True,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["AzureBlobAuthenticationType" JSON..= azureBlobAuthenticationType]
                           (Prelude.catMaybes
                              [(JSON..=) "AgentArns" Prelude.<$> agentArns,
                               (JSON..=) "AzureAccessTier" Prelude.<$> azureAccessTier,
                               (JSON..=) "AzureBlobContainerUrl"
                                 Prelude.<$> azureBlobContainerUrl,
                               (JSON..=) "AzureBlobSasConfiguration"
                                 Prelude.<$> azureBlobSasConfiguration,
                               (JSON..=) "AzureBlobType" Prelude.<$> azureBlobType,
                               (JSON..=) "CmkSecretConfig" Prelude.<$> cmkSecretConfig,
                               (JSON..=) "CustomSecretConfig" Prelude.<$> customSecretConfig,
                               (JSON..=) "Subdirectory" Prelude.<$> subdirectory,
                               (JSON..=) "Tags" Prelude.<$> tags]))}
instance JSON.ToJSON LocationAzureBlob where
  toJSON LocationAzureBlob {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["AzureBlobAuthenticationType" JSON..= azureBlobAuthenticationType]
              (Prelude.catMaybes
                 [(JSON..=) "AgentArns" Prelude.<$> agentArns,
                  (JSON..=) "AzureAccessTier" Prelude.<$> azureAccessTier,
                  (JSON..=) "AzureBlobContainerUrl"
                    Prelude.<$> azureBlobContainerUrl,
                  (JSON..=) "AzureBlobSasConfiguration"
                    Prelude.<$> azureBlobSasConfiguration,
                  (JSON..=) "AzureBlobType" Prelude.<$> azureBlobType,
                  (JSON..=) "CmkSecretConfig" Prelude.<$> cmkSecretConfig,
                  (JSON..=) "CustomSecretConfig" Prelude.<$> customSecretConfig,
                  (JSON..=) "Subdirectory" Prelude.<$> subdirectory,
                  (JSON..=) "Tags" Prelude.<$> tags])))
instance Property "AgentArns" LocationAzureBlob where
  type PropertyType "AgentArns" LocationAzureBlob = ValueList Prelude.Text
  set newValue LocationAzureBlob {..}
    = LocationAzureBlob {agentArns = Prelude.pure newValue, ..}
instance Property "AzureAccessTier" LocationAzureBlob where
  type PropertyType "AzureAccessTier" LocationAzureBlob = Value Prelude.Text
  set newValue LocationAzureBlob {..}
    = LocationAzureBlob {azureAccessTier = Prelude.pure newValue, ..}
instance Property "AzureBlobAuthenticationType" LocationAzureBlob where
  type PropertyType "AzureBlobAuthenticationType" LocationAzureBlob = Value Prelude.Text
  set newValue LocationAzureBlob {..}
    = LocationAzureBlob {azureBlobAuthenticationType = newValue, ..}
instance Property "AzureBlobContainerUrl" LocationAzureBlob where
  type PropertyType "AzureBlobContainerUrl" LocationAzureBlob = Value Prelude.Text
  set newValue LocationAzureBlob {..}
    = LocationAzureBlob
        {azureBlobContainerUrl = Prelude.pure newValue, ..}
instance Property "AzureBlobSasConfiguration" LocationAzureBlob where
  type PropertyType "AzureBlobSasConfiguration" LocationAzureBlob = AzureBlobSasConfigurationProperty
  set newValue LocationAzureBlob {..}
    = LocationAzureBlob
        {azureBlobSasConfiguration = Prelude.pure newValue, ..}
instance Property "AzureBlobType" LocationAzureBlob where
  type PropertyType "AzureBlobType" LocationAzureBlob = Value Prelude.Text
  set newValue LocationAzureBlob {..}
    = LocationAzureBlob {azureBlobType = Prelude.pure newValue, ..}
instance Property "CmkSecretConfig" LocationAzureBlob where
  type PropertyType "CmkSecretConfig" LocationAzureBlob = CmkSecretConfigProperty
  set newValue LocationAzureBlob {..}
    = LocationAzureBlob {cmkSecretConfig = Prelude.pure newValue, ..}
instance Property "CustomSecretConfig" LocationAzureBlob where
  type PropertyType "CustomSecretConfig" LocationAzureBlob = CustomSecretConfigProperty
  set newValue LocationAzureBlob {..}
    = LocationAzureBlob
        {customSecretConfig = Prelude.pure newValue, ..}
instance Property "Subdirectory" LocationAzureBlob where
  type PropertyType "Subdirectory" LocationAzureBlob = Value Prelude.Text
  set newValue LocationAzureBlob {..}
    = LocationAzureBlob {subdirectory = Prelude.pure newValue, ..}
instance Property "Tags" LocationAzureBlob where
  type PropertyType "Tags" LocationAzureBlob = [Tag]
  set newValue LocationAzureBlob {..}
    = LocationAzureBlob {tags = Prelude.pure newValue, ..}