module Stratosphere.EMR.Studio ( Studio(..), mkStudio ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data Studio = -- | See: Studio {haddock_workaround_ :: (), -- | See: authMode :: (Value Prelude.Text), -- | See: defaultS3Location :: (Value Prelude.Text), -- | See: description :: (Prelude.Maybe (Value Prelude.Text)), -- | See: encryptionKeyArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: engineSecurityGroupId :: (Value Prelude.Text), -- | See: idcInstanceArn :: (Prelude.Maybe (Value Prelude.Text)), -- | See: idcUserAssignment :: (Prelude.Maybe (Value Prelude.Text)), -- | See: idpAuthUrl :: (Prelude.Maybe (Value Prelude.Text)), -- | See: idpRelayStateParameterName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: name :: (Value Prelude.Text), -- | See: serviceRole :: (Value Prelude.Text), -- | See: subnetIds :: (ValueList Prelude.Text), -- | See: tags :: (Prelude.Maybe [Tag]), -- | See: trustedIdentityPropagationEnabled :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: userRole :: (Prelude.Maybe (Value Prelude.Text)), -- | See: vpcId :: (Value Prelude.Text), -- | See: workspaceSecurityGroupId :: (Value Prelude.Text)} deriving stock (Prelude.Eq, Prelude.Show) mkStudio :: Value Prelude.Text -> Value Prelude.Text -> Value Prelude.Text -> Value Prelude.Text -> Value Prelude.Text -> ValueList Prelude.Text -> Value Prelude.Text -> Value Prelude.Text -> Studio mkStudio authMode defaultS3Location engineSecurityGroupId name serviceRole subnetIds vpcId workspaceSecurityGroupId = Studio {haddock_workaround_ = (), authMode = authMode, defaultS3Location = defaultS3Location, engineSecurityGroupId = engineSecurityGroupId, name = name, serviceRole = serviceRole, subnetIds = subnetIds, vpcId = vpcId, workspaceSecurityGroupId = workspaceSecurityGroupId, description = Prelude.Nothing, encryptionKeyArn = Prelude.Nothing, idcInstanceArn = Prelude.Nothing, idcUserAssignment = Prelude.Nothing, idpAuthUrl = Prelude.Nothing, idpRelayStateParameterName = Prelude.Nothing, tags = Prelude.Nothing, trustedIdentityPropagationEnabled = Prelude.Nothing, userRole = Prelude.Nothing} instance ToResourceProperties Studio where toResourceProperties Studio {..} = ResourceProperties {awsType = "AWS::EMR::Studio", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["AuthMode" JSON..= authMode, "DefaultS3Location" JSON..= defaultS3Location, "EngineSecurityGroupId" JSON..= engineSecurityGroupId, "Name" JSON..= name, "ServiceRole" JSON..= serviceRole, "SubnetIds" JSON..= subnetIds, "VpcId" JSON..= vpcId, "WorkspaceSecurityGroupId" JSON..= workspaceSecurityGroupId] (Prelude.catMaybes [(JSON..=) "Description" Prelude.<$> description, (JSON..=) "EncryptionKeyArn" Prelude.<$> encryptionKeyArn, (JSON..=) "IdcInstanceArn" Prelude.<$> idcInstanceArn, (JSON..=) "IdcUserAssignment" Prelude.<$> idcUserAssignment, (JSON..=) "IdpAuthUrl" Prelude.<$> idpAuthUrl, (JSON..=) "IdpRelayStateParameterName" Prelude.<$> idpRelayStateParameterName, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "TrustedIdentityPropagationEnabled" Prelude.<$> trustedIdentityPropagationEnabled, (JSON..=) "UserRole" Prelude.<$> userRole]))} instance JSON.ToJSON Studio where toJSON Studio {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["AuthMode" JSON..= authMode, "DefaultS3Location" JSON..= defaultS3Location, "EngineSecurityGroupId" JSON..= engineSecurityGroupId, "Name" JSON..= name, "ServiceRole" JSON..= serviceRole, "SubnetIds" JSON..= subnetIds, "VpcId" JSON..= vpcId, "WorkspaceSecurityGroupId" JSON..= workspaceSecurityGroupId] (Prelude.catMaybes [(JSON..=) "Description" Prelude.<$> description, (JSON..=) "EncryptionKeyArn" Prelude.<$> encryptionKeyArn, (JSON..=) "IdcInstanceArn" Prelude.<$> idcInstanceArn, (JSON..=) "IdcUserAssignment" Prelude.<$> idcUserAssignment, (JSON..=) "IdpAuthUrl" Prelude.<$> idpAuthUrl, (JSON..=) "IdpRelayStateParameterName" Prelude.<$> idpRelayStateParameterName, (JSON..=) "Tags" Prelude.<$> tags, (JSON..=) "TrustedIdentityPropagationEnabled" Prelude.<$> trustedIdentityPropagationEnabled, (JSON..=) "UserRole" Prelude.<$> userRole]))) instance Property "AuthMode" Studio where type PropertyType "AuthMode" Studio = Value Prelude.Text set newValue Studio {..} = Studio {authMode = newValue, ..} instance Property "DefaultS3Location" Studio where type PropertyType "DefaultS3Location" Studio = Value Prelude.Text set newValue Studio {..} = Studio {defaultS3Location = newValue, ..} instance Property "Description" Studio where type PropertyType "Description" Studio = Value Prelude.Text set newValue Studio {..} = Studio {description = Prelude.pure newValue, ..} instance Property "EncryptionKeyArn" Studio where type PropertyType "EncryptionKeyArn" Studio = Value Prelude.Text set newValue Studio {..} = Studio {encryptionKeyArn = Prelude.pure newValue, ..} instance Property "EngineSecurityGroupId" Studio where type PropertyType "EngineSecurityGroupId" Studio = Value Prelude.Text set newValue Studio {..} = Studio {engineSecurityGroupId = newValue, ..} instance Property "IdcInstanceArn" Studio where type PropertyType "IdcInstanceArn" Studio = Value Prelude.Text set newValue Studio {..} = Studio {idcInstanceArn = Prelude.pure newValue, ..} instance Property "IdcUserAssignment" Studio where type PropertyType "IdcUserAssignment" Studio = Value Prelude.Text set newValue Studio {..} = Studio {idcUserAssignment = Prelude.pure newValue, ..} instance Property "IdpAuthUrl" Studio where type PropertyType "IdpAuthUrl" Studio = Value Prelude.Text set newValue Studio {..} = Studio {idpAuthUrl = Prelude.pure newValue, ..} instance Property "IdpRelayStateParameterName" Studio where type PropertyType "IdpRelayStateParameterName" Studio = Value Prelude.Text set newValue Studio {..} = Studio {idpRelayStateParameterName = Prelude.pure newValue, ..} instance Property "Name" Studio where type PropertyType "Name" Studio = Value Prelude.Text set newValue Studio {..} = Studio {name = newValue, ..} instance Property "ServiceRole" Studio where type PropertyType "ServiceRole" Studio = Value Prelude.Text set newValue Studio {..} = Studio {serviceRole = newValue, ..} instance Property "SubnetIds" Studio where type PropertyType "SubnetIds" Studio = ValueList Prelude.Text set newValue Studio {..} = Studio {subnetIds = newValue, ..} instance Property "Tags" Studio where type PropertyType "Tags" Studio = [Tag] set newValue Studio {..} = Studio {tags = Prelude.pure newValue, ..} instance Property "TrustedIdentityPropagationEnabled" Studio where type PropertyType "TrustedIdentityPropagationEnabled" Studio = Value Prelude.Bool set newValue Studio {..} = Studio {trustedIdentityPropagationEnabled = Prelude.pure newValue, ..} instance Property "UserRole" Studio where type PropertyType "UserRole" Studio = Value Prelude.Text set newValue Studio {..} = Studio {userRole = Prelude.pure newValue, ..} instance Property "VpcId" Studio where type PropertyType "VpcId" Studio = Value Prelude.Text set newValue Studio {..} = Studio {vpcId = newValue, ..} instance Property "WorkspaceSecurityGroupId" Studio where type PropertyType "WorkspaceSecurityGroupId" Studio = Value Prelude.Text set newValue Studio {..} = Studio {workspaceSecurityGroupId = newValue, ..}