# infusion v0.1.0 - Table of Contents > Generate official-quality Elixir SDKs from OpenAPI specs ## Pages - [Infusion](readme.md) - [Design](design.md) - [Spec survey](spec-survey.md) - [Changelog](changelog.md) ## Modules - [Infusion](Infusion.md): Generates Elixir SDKs from OpenAPI specs. - [Infusion.Gen.Operations](Infusion.Gen.Operations.md): Generates one module per resource with one function per operation. - [Infusion.Gen.Pagination](Infusion.Gen.Pagination.md): Works out how a list operation pages, from its parameters and response. - [Infusion.Gen.Project](Infusion.Gen.Project.md): Generates the files around the API modules: the client module, `mix.exs`, `.formatter.exs`, `.gitignore` and a README. - [Infusion.Gen.Schemas](Infusion.Gen.Schemas.md): Generates one module per named schema. - [Infusion.IR](Infusion.IR.md): The intermediate representation: what the code generator reads, instead of the spec. Built from a document that went through `Infusion.Ref` and `Infusion.Normalize`. - [Infusion.IR.Body](Infusion.IR.Body.md): A request body: its preferred content type and the others accepted. - [Infusion.IR.Field](Infusion.IR.Field.md): A property of an object schema. - [Infusion.IR.Operation](Infusion.IR.Operation.md): One API call. - [Infusion.IR.Param](Infusion.IR.Param.md): A path, query, header or cookie parameter. - [Infusion.IR.Response](Infusion.IR.Response.md): A response for one status (or `:default`). `schema` is the body's schema (JSON preferred); a response that can also stream (`text/event-stream`) has `streaming?` set and the schema of each event in `stream_schema`. - [Infusion.IR.Schema](Infusion.IR.Schema.md): A schema, classified. - [Infusion.Naming](Infusion.Naming.md): Turns OpenAPI names into Elixir module and function names. - [Infusion.Normalize](Infusion.Normalize.md): Rewrites the schemas of a resolved document (see `Infusion.Ref`) into one canonical form, so the rest of the generator only ever sees one shape. - [Infusion.Ref](Infusion.Ref.md): Resolves `$ref`s in an OpenAPI document. - [Infusion.Spec](Infusion.Spec.md): Loads an OpenAPI document from a file or a URL. ## Mix Tasks - [mix infusion.gen](Mix.Tasks.Infusion.Gen.md): Generates an Elixir SDK, as a Mix project, from an OpenAPI 3.0 or 3.1 spec.