packages feed

stratosphere-deadline-1.0.0: gen/Stratosphere/Deadline/Fleet.hs

module Stratosphere.Deadline.Fleet (
        module Exports, Fleet(..), mkFleet
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Deadline.Fleet.FleetConfigurationProperty as Exports
import {-# SOURCE #-} Stratosphere.Deadline.Fleet.HostConfigurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Tag
import Stratosphere.Value
data Fleet
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html>
    Fleet {haddock_workaround_ :: (),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-configuration>
           configuration :: FleetConfigurationProperty,
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-description>
           description :: (Prelude.Maybe (Value Prelude.Text)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-displayname>
           displayName :: (Value Prelude.Text),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-farmid>
           farmId :: (Value Prelude.Text),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-hostconfiguration>
           hostConfiguration :: (Prelude.Maybe HostConfigurationProperty),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-maxworkercount>
           maxWorkerCount :: (Value Prelude.Integer),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-minworkercount>
           minWorkerCount :: (Prelude.Maybe (Value Prelude.Integer)),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-rolearn>
           roleArn :: (Value Prelude.Text),
           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-deadline-fleet.html#cfn-deadline-fleet-tags>
           tags :: (Prelude.Maybe [Tag])}
  deriving stock (Prelude.Eq, Prelude.Show)
mkFleet ::
  FleetConfigurationProperty
  -> Value Prelude.Text
     -> Value Prelude.Text
        -> Value Prelude.Integer -> Value Prelude.Text -> Fleet
mkFleet configuration displayName farmId maxWorkerCount roleArn
  = Fleet
      {haddock_workaround_ = (), configuration = configuration,
       displayName = displayName, farmId = farmId,
       maxWorkerCount = maxWorkerCount, roleArn = roleArn,
       description = Prelude.Nothing, hostConfiguration = Prelude.Nothing,
       minWorkerCount = Prelude.Nothing, tags = Prelude.Nothing}
instance ToResourceProperties Fleet where
  toResourceProperties Fleet {..}
    = ResourceProperties
        {awsType = "AWS::Deadline::Fleet", supportsTags = Prelude.True,
         properties = Prelude.fromList
                        ((Prelude.<>)
                           ["Configuration" JSON..= configuration,
                            "DisplayName" JSON..= displayName, "FarmId" JSON..= farmId,
                            "MaxWorkerCount" JSON..= maxWorkerCount, "RoleArn" JSON..= roleArn]
                           (Prelude.catMaybes
                              [(JSON..=) "Description" Prelude.<$> description,
                               (JSON..=) "HostConfiguration" Prelude.<$> hostConfiguration,
                               (JSON..=) "MinWorkerCount" Prelude.<$> minWorkerCount,
                               (JSON..=) "Tags" Prelude.<$> tags]))}
instance JSON.ToJSON Fleet where
  toJSON Fleet {..}
    = JSON.object
        (Prelude.fromList
           ((Prelude.<>)
              ["Configuration" JSON..= configuration,
               "DisplayName" JSON..= displayName, "FarmId" JSON..= farmId,
               "MaxWorkerCount" JSON..= maxWorkerCount, "RoleArn" JSON..= roleArn]
              (Prelude.catMaybes
                 [(JSON..=) "Description" Prelude.<$> description,
                  (JSON..=) "HostConfiguration" Prelude.<$> hostConfiguration,
                  (JSON..=) "MinWorkerCount" Prelude.<$> minWorkerCount,
                  (JSON..=) "Tags" Prelude.<$> tags])))
instance Property "Configuration" Fleet where
  type PropertyType "Configuration" Fleet = FleetConfigurationProperty
  set newValue Fleet {..} = Fleet {configuration = newValue, ..}
instance Property "Description" Fleet where
  type PropertyType "Description" Fleet = Value Prelude.Text
  set newValue Fleet {..}
    = Fleet {description = Prelude.pure newValue, ..}
instance Property "DisplayName" Fleet where
  type PropertyType "DisplayName" Fleet = Value Prelude.Text
  set newValue Fleet {..} = Fleet {displayName = newValue, ..}
instance Property "FarmId" Fleet where
  type PropertyType "FarmId" Fleet = Value Prelude.Text
  set newValue Fleet {..} = Fleet {farmId = newValue, ..}
instance Property "HostConfiguration" Fleet where
  type PropertyType "HostConfiguration" Fleet = HostConfigurationProperty
  set newValue Fleet {..}
    = Fleet {hostConfiguration = Prelude.pure newValue, ..}
instance Property "MaxWorkerCount" Fleet where
  type PropertyType "MaxWorkerCount" Fleet = Value Prelude.Integer
  set newValue Fleet {..} = Fleet {maxWorkerCount = newValue, ..}
instance Property "MinWorkerCount" Fleet where
  type PropertyType "MinWorkerCount" Fleet = Value Prelude.Integer
  set newValue Fleet {..}
    = Fleet {minWorkerCount = Prelude.pure newValue, ..}
instance Property "RoleArn" Fleet where
  type PropertyType "RoleArn" Fleet = Value Prelude.Text
  set newValue Fleet {..} = Fleet {roleArn = newValue, ..}
instance Property "Tags" Fleet where
  type PropertyType "Tags" Fleet = [Tag]
  set newValue Fleet {..} = Fleet {tags = Prelude.pure newValue, ..}