packages feed

hydra-ext-0.18.0: src/main/haskell/Hydra/Ext/Dsl/Avro/Environment.hs

-- Note: this is an automatically generated file. Do not edit.

-- | DSL functions for hydra.ext.avro.environment

module Hydra.Ext.Dsl.Avro.Environment where

import qualified Hydra.Core.Coders as Coders
import qualified Hydra.Core.Errors as Errors
import qualified Hydra.Core.Json.Model as JsonModel
import qualified Hydra.Core.Model as Model
import qualified Hydra.Core.Typed as Typed
import qualified Hydra.Ext.Avro.Environment as Environment
import qualified Hydra.Ext.Avro.Schema as Schema
import qualified Hydra.Ext.Dsl.Avro.Schema as AvroSchema
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)
import qualified Data.Scientific as Sci
import Data.Void
import qualified Data.Map as M

-- | DSL constructor for hydra.ext.avro.environment.AvroEnvironment
avroEnvironment :: Typed.TypedTerm (M.Map Environment.AvroQualifiedName (Coders.Adapter Schema.Schema Model.Type JsonModel.Value Model.Term Errors.Error)) -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm (M.Map Model.Name Model.Binding) -> Typed.TypedTerm Environment.AvroEnvironment
avroEnvironment namedAdapters namespace elements =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "namedAdapters"),
          Model.fieldTerm = (Typed.unTypedTerm namedAdapters)},
        Model.Field {
          Model.fieldName = (Model.Name "namespace"),
          Model.fieldTerm = (Typed.unTypedTerm namespace)},
        Model.Field {
          Model.fieldName = (Model.Name "elements"),
          Model.fieldTerm = (Typed.unTypedTerm elements)}]}))

-- | DSL name token for hydra.ext.avro.environment.AvroEnvironment
avroEnvironmentAvroEnvironment :: Typed.TypedName Environment.AvroEnvironment
avroEnvironmentAvroEnvironment = Typed.TypedName (Model.Name "hydra.ext.avro.environment.AvroEnvironment")

-- | DSL accessor for the elements field of hydra.ext.avro.environment.AvroEnvironment
avroEnvironmentElements :: Typed.TypedTerm Environment.AvroEnvironment -> Typed.TypedTerm (M.Map Model.Name Model.Binding)
avroEnvironmentElements x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
        Model.projectionFieldName = (Model.Name "elements")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL accessor for the namedAdapters field of hydra.ext.avro.environment.AvroEnvironment
avroEnvironmentNamedAdapters :: Typed.TypedTerm Environment.AvroEnvironment -> Typed.TypedTerm (M.Map Environment.AvroQualifiedName (Coders.Adapter Schema.Schema Model.Type JsonModel.Value Model.Term Errors.Error))
avroEnvironmentNamedAdapters x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
        Model.projectionFieldName = (Model.Name "namedAdapters")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL accessor for the namespace field of hydra.ext.avro.environment.AvroEnvironment
avroEnvironmentNamespace :: Typed.TypedTerm Environment.AvroEnvironment -> Typed.TypedTerm (Maybe String)
avroEnvironmentNamespace x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
        Model.projectionFieldName = (Model.Name "namespace")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL updater for the elements field of hydra.ext.avro.environment.AvroEnvironment
avroEnvironmentWithElements :: Typed.TypedTerm Environment.AvroEnvironment -> Typed.TypedTerm (M.Map Model.Name Model.Binding) -> Typed.TypedTerm Environment.AvroEnvironment
avroEnvironmentWithElements original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "namedAdapters"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
              Model.projectionFieldName = (Model.Name "namedAdapters")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "namespace"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
              Model.projectionFieldName = (Model.Name "namespace")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "elements"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))

-- | DSL updater for the namedAdapters field of hydra.ext.avro.environment.AvroEnvironment
avroEnvironmentWithNamedAdapters :: Typed.TypedTerm Environment.AvroEnvironment -> Typed.TypedTerm (M.Map Environment.AvroQualifiedName (Coders.Adapter Schema.Schema Model.Type JsonModel.Value Model.Term Errors.Error)) -> Typed.TypedTerm Environment.AvroEnvironment
avroEnvironmentWithNamedAdapters original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "namedAdapters"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)},
        Model.Field {
          Model.fieldName = (Model.Name "namespace"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
              Model.projectionFieldName = (Model.Name "namespace")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "elements"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
              Model.projectionFieldName = (Model.Name "elements")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))

-- | DSL updater for the namespace field of hydra.ext.avro.environment.AvroEnvironment
avroEnvironmentWithNamespace :: Typed.TypedTerm Environment.AvroEnvironment -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Environment.AvroEnvironment
avroEnvironmentWithNamespace original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "namedAdapters"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
              Model.projectionFieldName = (Model.Name "namedAdapters")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "namespace"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)},
        Model.Field {
          Model.fieldName = (Model.Name "elements"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroEnvironment"),
              Model.projectionFieldName = (Model.Name "elements")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))

-- | DSL constructor for hydra.ext.avro.environment.AvroForeignKey
avroForeignKey :: Typed.TypedTerm Model.Name -> Typed.TypedTerm (String -> Model.Name) -> Typed.TypedTerm Environment.AvroForeignKey
avroForeignKey typeName constructor =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroForeignKey"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "typeName"),
          Model.fieldTerm = (Typed.unTypedTerm typeName)},
        Model.Field {
          Model.fieldName = (Model.Name "constructor"),
          Model.fieldTerm = (Typed.unTypedTerm constructor)}]}))

-- | DSL name token for hydra.ext.avro.environment.AvroForeignKey
avroForeignKeyAvroForeignKey :: Typed.TypedName Environment.AvroForeignKey
avroForeignKeyAvroForeignKey = Typed.TypedName (Model.Name "hydra.ext.avro.environment.AvroForeignKey")

-- | DSL accessor for the constructor field of hydra.ext.avro.environment.AvroForeignKey
avroForeignKeyConstructor :: Typed.TypedTerm Environment.AvroForeignKey -> Typed.TypedTerm (String -> Model.Name)
avroForeignKeyConstructor x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroForeignKey"),
        Model.projectionFieldName = (Model.Name "constructor")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL accessor for the typeName field of hydra.ext.avro.environment.AvroForeignKey
avroForeignKeyTypeName :: Typed.TypedTerm Environment.AvroForeignKey -> Typed.TypedTerm Model.Name
avroForeignKeyTypeName x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroForeignKey"),
        Model.projectionFieldName = (Model.Name "typeName")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL updater for the constructor field of hydra.ext.avro.environment.AvroForeignKey
avroForeignKeyWithConstructor :: Typed.TypedTerm Environment.AvroForeignKey -> Typed.TypedTerm (String -> Model.Name) -> Typed.TypedTerm Environment.AvroForeignKey
avroForeignKeyWithConstructor original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroForeignKey"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "typeName"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroForeignKey"),
              Model.projectionFieldName = (Model.Name "typeName")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "constructor"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))

-- | DSL updater for the typeName field of hydra.ext.avro.environment.AvroForeignKey
avroForeignKeyWithTypeName :: Typed.TypedTerm Environment.AvroForeignKey -> Typed.TypedTerm Model.Name -> Typed.TypedTerm Environment.AvroForeignKey
avroForeignKeyWithTypeName original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroForeignKey"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "typeName"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)},
        Model.Field {
          Model.fieldName = (Model.Name "constructor"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroForeignKey"),
              Model.projectionFieldName = (Model.Name "constructor")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))

-- | DSL constructor for hydra.ext.avro.environment.AvroPrimaryKey
avroPrimaryKey :: Typed.TypedTerm Model.Name -> Typed.TypedTerm (String -> Model.Name) -> Typed.TypedTerm Environment.AvroPrimaryKey
avroPrimaryKey fieldName constructor =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroPrimaryKey"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "fieldName"),
          Model.fieldTerm = (Typed.unTypedTerm fieldName)},
        Model.Field {
          Model.fieldName = (Model.Name "constructor"),
          Model.fieldTerm = (Typed.unTypedTerm constructor)}]}))

-- | DSL name token for hydra.ext.avro.environment.AvroPrimaryKey
avroPrimaryKeyAvroPrimaryKey :: Typed.TypedName Environment.AvroPrimaryKey
avroPrimaryKeyAvroPrimaryKey = Typed.TypedName (Model.Name "hydra.ext.avro.environment.AvroPrimaryKey")

-- | DSL accessor for the constructor field of hydra.ext.avro.environment.AvroPrimaryKey
avroPrimaryKeyConstructor :: Typed.TypedTerm Environment.AvroPrimaryKey -> Typed.TypedTerm (String -> Model.Name)
avroPrimaryKeyConstructor x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroPrimaryKey"),
        Model.projectionFieldName = (Model.Name "constructor")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL accessor for the fieldName field of hydra.ext.avro.environment.AvroPrimaryKey
avroPrimaryKeyFieldName :: Typed.TypedTerm Environment.AvroPrimaryKey -> Typed.TypedTerm Model.Name
avroPrimaryKeyFieldName x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroPrimaryKey"),
        Model.projectionFieldName = (Model.Name "fieldName")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL updater for the constructor field of hydra.ext.avro.environment.AvroPrimaryKey
avroPrimaryKeyWithConstructor :: Typed.TypedTerm Environment.AvroPrimaryKey -> Typed.TypedTerm (String -> Model.Name) -> Typed.TypedTerm Environment.AvroPrimaryKey
avroPrimaryKeyWithConstructor original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroPrimaryKey"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "fieldName"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroPrimaryKey"),
              Model.projectionFieldName = (Model.Name "fieldName")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "constructor"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))

-- | DSL updater for the fieldName field of hydra.ext.avro.environment.AvroPrimaryKey
avroPrimaryKeyWithFieldName :: Typed.TypedTerm Environment.AvroPrimaryKey -> Typed.TypedTerm Model.Name -> Typed.TypedTerm Environment.AvroPrimaryKey
avroPrimaryKeyWithFieldName original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroPrimaryKey"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "fieldName"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)},
        Model.Field {
          Model.fieldName = (Model.Name "constructor"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroPrimaryKey"),
              Model.projectionFieldName = (Model.Name "constructor")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))

-- | DSL constructor for hydra.ext.avro.environment.AvroQualifiedName
avroQualifiedName :: Typed.TypedTerm (Maybe String) -> Typed.TypedTerm String -> Typed.TypedTerm Environment.AvroQualifiedName
avroQualifiedName namespace name =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroQualifiedName"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "namespace"),
          Model.fieldTerm = (Typed.unTypedTerm namespace)},
        Model.Field {
          Model.fieldName = (Model.Name "name"),
          Model.fieldTerm = (Typed.unTypedTerm name)}]}))

-- | DSL name token for hydra.ext.avro.environment.AvroQualifiedName
avroQualifiedNameAvroQualifiedName :: Typed.TypedName Environment.AvroQualifiedName
avroQualifiedNameAvroQualifiedName = Typed.TypedName (Model.Name "hydra.ext.avro.environment.AvroQualifiedName")

-- | DSL accessor for the name field of hydra.ext.avro.environment.AvroQualifiedName
avroQualifiedNameName :: Typed.TypedTerm Environment.AvroQualifiedName -> Typed.TypedTerm String
avroQualifiedNameName x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroQualifiedName"),
        Model.projectionFieldName = (Model.Name "name")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL accessor for the namespace field of hydra.ext.avro.environment.AvroQualifiedName
avroQualifiedNameNamespace :: Typed.TypedTerm Environment.AvroQualifiedName -> Typed.TypedTerm (Maybe String)
avroQualifiedNameNamespace x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroQualifiedName"),
        Model.projectionFieldName = (Model.Name "namespace")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL updater for the name field of hydra.ext.avro.environment.AvroQualifiedName
avroQualifiedNameWithName :: Typed.TypedTerm Environment.AvroQualifiedName -> Typed.TypedTerm String -> Typed.TypedTerm Environment.AvroQualifiedName
avroQualifiedNameWithName original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroQualifiedName"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "namespace"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroQualifiedName"),
              Model.projectionFieldName = (Model.Name "namespace")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "name"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))

-- | DSL updater for the namespace field of hydra.ext.avro.environment.AvroQualifiedName
avroQualifiedNameWithNamespace :: Typed.TypedTerm Environment.AvroQualifiedName -> Typed.TypedTerm (Maybe String) -> Typed.TypedTerm Environment.AvroQualifiedName
avroQualifiedNameWithNamespace original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.AvroQualifiedName"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "namespace"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)},
        Model.Field {
          Model.fieldName = (Model.Name "name"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.AvroQualifiedName"),
              Model.projectionFieldName = (Model.Name "name")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))

-- | DSL constructor for hydra.ext.avro.environment.EncodeEnvironment
encodeEnvironment :: Typed.TypedTerm (M.Map Model.Name Model.Type) -> Typed.TypedTerm (M.Map Model.Name (Coders.Adapter Model.Type Schema.Schema Model.Term JsonModel.Value Errors.Error)) -> Typed.TypedTerm Environment.EncodeEnvironment
encodeEnvironment typeMap emitted =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.EncodeEnvironment"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "typeMap"),
          Model.fieldTerm = (Typed.unTypedTerm typeMap)},
        Model.Field {
          Model.fieldName = (Model.Name "emitted"),
          Model.fieldTerm = (Typed.unTypedTerm emitted)}]}))

-- | DSL accessor for the emitted field of hydra.ext.avro.environment.EncodeEnvironment
encodeEnvironmentEmitted :: Typed.TypedTerm Environment.EncodeEnvironment -> Typed.TypedTerm (M.Map Model.Name (Coders.Adapter Model.Type Schema.Schema Model.Term JsonModel.Value Errors.Error))
encodeEnvironmentEmitted x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.EncodeEnvironment"),
        Model.projectionFieldName = (Model.Name "emitted")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL name token for hydra.ext.avro.environment.EncodeEnvironment
encodeEnvironmentEncodeEnvironment :: Typed.TypedName Environment.EncodeEnvironment
encodeEnvironmentEncodeEnvironment = Typed.TypedName (Model.Name "hydra.ext.avro.environment.EncodeEnvironment")

-- | DSL accessor for the typeMap field of hydra.ext.avro.environment.EncodeEnvironment
encodeEnvironmentTypeMap :: Typed.TypedTerm Environment.EncodeEnvironment -> Typed.TypedTerm (M.Map Model.Name Model.Type)
encodeEnvironmentTypeMap x =
    Typed.TypedTerm (Model.TermApplication (Model.Application {
      Model.applicationFunction = (Model.TermProject (Model.Projection {
        Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.EncodeEnvironment"),
        Model.projectionFieldName = (Model.Name "typeMap")})),
      Model.applicationArgument = (Typed.unTypedTerm x)}))

-- | DSL updater for the emitted field of hydra.ext.avro.environment.EncodeEnvironment
encodeEnvironmentWithEmitted :: Typed.TypedTerm Environment.EncodeEnvironment -> Typed.TypedTerm (M.Map Model.Name (Coders.Adapter Model.Type Schema.Schema Model.Term JsonModel.Value Errors.Error)) -> Typed.TypedTerm Environment.EncodeEnvironment
encodeEnvironmentWithEmitted original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.EncodeEnvironment"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "typeMap"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.EncodeEnvironment"),
              Model.projectionFieldName = (Model.Name "typeMap")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))},
        Model.Field {
          Model.fieldName = (Model.Name "emitted"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)}]}))

-- | DSL updater for the typeMap field of hydra.ext.avro.environment.EncodeEnvironment
encodeEnvironmentWithTypeMap :: Typed.TypedTerm Environment.EncodeEnvironment -> Typed.TypedTerm (M.Map Model.Name Model.Type) -> Typed.TypedTerm Environment.EncodeEnvironment
encodeEnvironmentWithTypeMap original newVal =
    Typed.TypedTerm (Model.TermRecord (Model.Record {
      Model.recordTypeName = (Model.Name "hydra.ext.avro.environment.EncodeEnvironment"),
      Model.recordFields = [
        Model.Field {
          Model.fieldName = (Model.Name "typeMap"),
          Model.fieldTerm = (Typed.unTypedTerm newVal)},
        Model.Field {
          Model.fieldName = (Model.Name "emitted"),
          Model.fieldTerm = (Model.TermApplication (Model.Application {
            Model.applicationFunction = (Model.TermProject (Model.Projection {
              Model.projectionTypeName = (Model.Name "hydra.ext.avro.environment.EncodeEnvironment"),
              Model.projectionFieldName = (Model.Name "emitted")})),
            Model.applicationArgument = (Typed.unTypedTerm original)}))}]}))