module Stratosphere.Connect.SecurityProfile ( module Exports, SecurityProfile(..), mkSecurityProfile ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.Connect.SecurityProfile.ApplicationProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data SecurityProfile = -- | See: SecurityProfile {haddock_workaround_ :: (), -- | See: allowedAccessControlHierarchyGroupId :: (Prelude.Maybe (Value Prelude.Text)), -- | See: allowedAccessControlTags :: (Prelude.Maybe [Tag]), -- | See: applications :: (Prelude.Maybe [ApplicationProperty]), -- | See: description :: (Prelude.Maybe (Value Prelude.Text)), -- | See: hierarchyRestrictedResources :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: instanceArn :: (Value Prelude.Text), -- | See: permissions :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: securityProfileName :: (Value Prelude.Text), -- | See: tagRestrictedResources :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: tags :: (Prelude.Maybe [Tag])} deriving stock (Prelude.Eq, Prelude.Show) mkSecurityProfile :: Value Prelude.Text -> Value Prelude.Text -> SecurityProfile mkSecurityProfile instanceArn securityProfileName = SecurityProfile {haddock_workaround_ = (), instanceArn = instanceArn, securityProfileName = securityProfileName, allowedAccessControlHierarchyGroupId = Prelude.Nothing, allowedAccessControlTags = Prelude.Nothing, applications = Prelude.Nothing, description = Prelude.Nothing, hierarchyRestrictedResources = Prelude.Nothing, permissions = Prelude.Nothing, tagRestrictedResources = Prelude.Nothing, tags = Prelude.Nothing} instance ToResourceProperties SecurityProfile where toResourceProperties SecurityProfile {..} = ResourceProperties {awsType = "AWS::Connect::SecurityProfile", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["InstanceArn" JSON..= instanceArn, "SecurityProfileName" JSON..= securityProfileName] (Prelude.catMaybes [(JSON..=) "AllowedAccessControlHierarchyGroupId" Prelude.<$> allowedAccessControlHierarchyGroupId, (JSON..=) "AllowedAccessControlTags" Prelude.<$> allowedAccessControlTags, (JSON..=) "Applications" Prelude.<$> applications, (JSON..=) "Description" Prelude.<$> description, (JSON..=) "HierarchyRestrictedResources" Prelude.<$> hierarchyRestrictedResources, (JSON..=) "Permissions" Prelude.<$> permissions, (JSON..=) "TagRestrictedResources" Prelude.<$> tagRestrictedResources, (JSON..=) "Tags" Prelude.<$> tags]))} instance JSON.ToJSON SecurityProfile where toJSON SecurityProfile {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["InstanceArn" JSON..= instanceArn, "SecurityProfileName" JSON..= securityProfileName] (Prelude.catMaybes [(JSON..=) "AllowedAccessControlHierarchyGroupId" Prelude.<$> allowedAccessControlHierarchyGroupId, (JSON..=) "AllowedAccessControlTags" Prelude.<$> allowedAccessControlTags, (JSON..=) "Applications" Prelude.<$> applications, (JSON..=) "Description" Prelude.<$> description, (JSON..=) "HierarchyRestrictedResources" Prelude.<$> hierarchyRestrictedResources, (JSON..=) "Permissions" Prelude.<$> permissions, (JSON..=) "TagRestrictedResources" Prelude.<$> tagRestrictedResources, (JSON..=) "Tags" Prelude.<$> tags]))) instance Property "AllowedAccessControlHierarchyGroupId" SecurityProfile where type PropertyType "AllowedAccessControlHierarchyGroupId" SecurityProfile = Value Prelude.Text set newValue SecurityProfile {..} = SecurityProfile {allowedAccessControlHierarchyGroupId = Prelude.pure newValue, ..} instance Property "AllowedAccessControlTags" SecurityProfile where type PropertyType "AllowedAccessControlTags" SecurityProfile = [Tag] set newValue SecurityProfile {..} = SecurityProfile {allowedAccessControlTags = Prelude.pure newValue, ..} instance Property "Applications" SecurityProfile where type PropertyType "Applications" SecurityProfile = [ApplicationProperty] set newValue SecurityProfile {..} = SecurityProfile {applications = Prelude.pure newValue, ..} instance Property "Description" SecurityProfile where type PropertyType "Description" SecurityProfile = Value Prelude.Text set newValue SecurityProfile {..} = SecurityProfile {description = Prelude.pure newValue, ..} instance Property "HierarchyRestrictedResources" SecurityProfile where type PropertyType "HierarchyRestrictedResources" SecurityProfile = ValueList Prelude.Text set newValue SecurityProfile {..} = SecurityProfile {hierarchyRestrictedResources = Prelude.pure newValue, ..} instance Property "InstanceArn" SecurityProfile where type PropertyType "InstanceArn" SecurityProfile = Value Prelude.Text set newValue SecurityProfile {..} = SecurityProfile {instanceArn = newValue, ..} instance Property "Permissions" SecurityProfile where type PropertyType "Permissions" SecurityProfile = ValueList Prelude.Text set newValue SecurityProfile {..} = SecurityProfile {permissions = Prelude.pure newValue, ..} instance Property "SecurityProfileName" SecurityProfile where type PropertyType "SecurityProfileName" SecurityProfile = Value Prelude.Text set newValue SecurityProfile {..} = SecurityProfile {securityProfileName = newValue, ..} instance Property "TagRestrictedResources" SecurityProfile where type PropertyType "TagRestrictedResources" SecurityProfile = ValueList Prelude.Text set newValue SecurityProfile {..} = SecurityProfile {tagRestrictedResources = Prelude.pure newValue, ..} instance Property "Tags" SecurityProfile where type PropertyType "Tags" SecurityProfile = [Tag] set newValue SecurityProfile {..} = SecurityProfile {tags = Prelude.pure newValue, ..}