UNPKG

autorest

Version:

The AutoRest tool generates client libraries for accessing RESTful web services. Input to AutoRest is an OpenAPI spec that describes the REST API.

150 lines (113 loc) 4.25 kB
# Default Configuration - Multi API Version Pipeline This takes the output of the openapi2/openapi3 loaded documents, and joins the collections back into a single pipeline (it splits at load time.) The final step is the `openapi-document/multi-api/identity`, which is the pipeline input for Multi-API version generators (ie, based using `imodeler2` ). Avoiding conflicts is done thru additional metadata specified in the `x-ms-metadata` extension node. ```yaml pipeline: openapi-document/multi-api-merger: input: tree-shaker # output-artifact: openapi-document openapi-document/components-cleaner: input: multi-api-merger # output-artifact: openapi-document openapi-document/component-modifiers: input: components-cleaner # output-artifact: openapi-document openapi-document/api-version-parameter-handler: input: component-modifiers # output-artifact: openapi-document openapi-document/profile-filter: input: api-version-parameter-handler #output-artifact: openapi-document openapi-document/model-deduplicator: input: profile-filter # output-artifact: openapi-document openapi-document/emitter: input: profile-filter input-artifact: profile-filter-log ``` ```yaml $(pipeline-model) == 'v3' pass-thru: - api-version-parameter-handler pipeline: openapi-document/enum-deduplicator: input: model-deduplicator openapi-document/subset-reducer: input: enum-deduplicator openapi-document/multi-api/reset-identity: input: subset-reducer to: openapi-document name: openapi-document.json openapi-document/multi-api/identity: input: reset-identity openapi-document/multi-api/emitter: input: openapi-document/multi-api/identity input-artifact: openapi-document is-object: true ``` # Default Configuration - Single API Version Pipeline This takes the output of the openapi2/openapi3 loaded documents, and joins the collections back into a single pipeline (it splits at load time.) The final step is the `openapi-document/identity`, which is the pipeline input for Single-API version generators (ie, based using `imodeler1` ). ```yaml !$(pipeline-model) || $(pipeline-model) == 'v2' pipeline: openapi-document/compose: input: openapi-document/model-deduplicator # just before deduplication. # output-artifact: openapi-document openapi-document/identity: input: compose # output-artifact: openapi-document openapi-document/emitter: input: openapi-document/identity scope: scope-openapi-document/emitter # todo/hack: not sure what this is here for, scope-openapi-document/emitter: input-artifact: openapi-document is-object: true # rethink that output-file part output-uri-expr: | $config["output-file"] || ($config.namespace ? $config.namespace.replace(/:/g,'_') : undefined) || $config["input-file"][0].split('/').reverse()[0].split('\\').reverse()[0].replace(/\.json$/, "") ``` # Default Configuration - Tree Shaker This takes the output of the openapi2/openapi3 loaded documents, and joins the collections back into a single pipeline (it splits at load time.) ```yaml pipeline: openapi-document/transform: input: - openapi-document/openapi-document-converter # openapi-document/openapi-document-converter comes from the OAI2 loader - openapi-document/individual/identity # openapi-document/individual/identity comes from the OAI3 loader openapi-document/semantic-validator: input: openapi-document/transform openapi-document/allof-cleaner: input: openapi-document/semantic-validator openapi-document/tree-shaker: input: openapi-document/allof-cleaner ``` ### Default configuration: Output Converted Openapi ```yaml $(output-converted-oai3) pipeline: converted-oai3/normalize-identity: input: openapi-document/transform to: converted-oai3-document converted-oai3/emitter: input: converted-oai3/normalize-identity is-object: true output-artifact: converted-oai3-document ``` ### Output stats ```yaml $(stats) # Collect stats steps pipeline: # Collect from individual openapi document. openapi-document/openapi-stats-collector: input: openapi-document/transform output-artifact: - stats.json ```