content: -- |
  -- Module:      Data.Swagger.Schema
  -- Maintainer:  Nickolay Kudasov <nickolay@getshoptv.com>
  -- Stability:   experimental
  --
  -- Types and functions for working with Swagger schema.
  module Data.Swagger.Schema (
    -- * Encoding
    ToSchema(..),
    declareSchema,
    declareSchemaRef,
    toSchema,
    toSchemaRef,
    schemaName,
    toInlinedSchema,
  
    -- * Generic schema encoding
    genericDeclareNamedSchema,
    genericDeclareSchema,
    genericDeclareNamedSchemaNewtype,
    genericNameSchema,
  
    -- ** 'Bounded' 'Integral'
    genericToNamedSchemaBoundedIntegral,
    toSchemaBoundedIntegral,
  
    -- ** 'Bounded' 'Enum' key mappings
    declareSchemaBoundedEnumKeyMapping,
    toSchemaBoundedEnumKeyMapping,
  
    -- ** Reusing 'ToParamSchema'
    paramSchemaToNamedSchema,
    paramSchemaToSchema,
  
    -- ** Unrestricted versions
    genericDeclareNamedSchemaUnrestricted,
    genericDeclareSchemaUnrestricted,
  
    -- * Schema templates
    passwordSchema,
    binarySchema,
    byteSchema,
  
    -- * Sketching @'Schema'@s using @'ToJSON'@
    sketchSchema,
    sketchStrictSchema,
  
    -- * Inlining @'Schema'@s
    inlineNonRecursiveSchemas,
    inlineAllSchemas,
    inlineSchemas,
    inlineSchemasWhen,
  
    -- * Generic encoding configuration
    SchemaOptions(..),
    defaultSchemaOptions,
    fromAesonOptions,
  ) where
  
  import Data.Swagger.Internal.Schema
  import Data.Swagger.SchemaOptions
  