Remove all x-amazon tags from your OAS3 specification
Project description
deforest
Remove all x-amazon
-tags from your Open API 3 or Swagger 2 specification. Useful if you are using Cloudformation to specify your API Gateways, and want to provide your consumers with the same specification but not wanting to disclose your internal Amazon integrations.
Installation
pip install --user deforest
Features
- Clean keys starting with the string
x-amazon
- Handles JSON and YAML input
- Handles JSON and YAML output (defaults to YAML)
- Support for AWS CloudFormation templates
- AWS::ApiGateway::RestApi resource type
- AWS::Serverless::Api resource type
Usage
Usage: deforest [OPTIONS] INFILE
Options:
-o, --outfile TEXT specify output file, default is
./<title>-<version>.<format>, ignored if input is
a CloudFormation template and the template
contains more than one ApiGateway resource)
-f, --format [yaml|json] output format [default: yaml]
-i, --indent INTEGER if output format is json, specify indentation
-d, --debug if enabled, show debug logs
--no-ignore if set, deforest will export paths marked as
ignored
--version Show the version and exit.
--help Show this message and exit.
CloudFormation templates
Version 0.1.1 and later supports CloudFormation templates as input. If more than one API Gateway is part of the template, the --outfile
flag will be ignored.
Hide paths
Version 0.2.0 introduced support for deforest to ignore certain paths. If you specify x-deforest-ignore: true
anywhere in your specification, deforest will not extract its parent node to the end results. Example:
paths:
"/validation":
post:
responses:
"200":
schema:
type: array
items:
"$ref": "#/definitions/Error"
headers:
test-method-response-header:
type: string
get:
x-deforest-ignore: true
parameters:
- name: q1
in: query
required: true
responses:
"200":
schema:
type: array
items:
"$ref": "#/definitions/Error"
headers:
test-method-response-header:
type: string
will result in
paths:
/validation:
post:
responses:
"200":
headers:
test-method-response-header:
type: string
schema:
items:
$ref: "#/definitions/Error"
type: array
If we'd written this:
paths:
"/validation":
x-deforest-ignore: true
post:
responses:
"200":
schema:
type: array
items:
"$ref": "#/definitions/Error"
headers:
test-method-response-header:
type: string
get:
parameters:
- name: q1
in: query
required: true
responses:
"200":
schema:
type: array
items:
"$ref": "#/definitions/Error"
headers:
test-method-response-header:
type: string
we'd get an empty result since the parent node is removed:
paths: {}
If x-deforest-ignore: false
, or missing, the node will be extracted as usual. If the runtime flag --no-ignore
is set, the nodes will be extracted as usual as well.
Limitations
The output file looses its order of the keys in the file, which shouldn't affect you if you're using a converter to create a graphical documentation/specification - but can be confusing if you have a specific internal order you wish to keep.
Contribute
If you wish to see a specific feature, please create an issue in the issue tracker - and if you want to help develop deforest, you're free to create a pull request as well. All submitted code will be subject to the licensing specified in the LICENSE file.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file deforest-0.4.0.tar.gz
.
File metadata
- Download URL: deforest-0.4.0.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0dec032a214dea78cf242f89bf9d4ac03f2a6424ca9d422ce7eeb9a6e3ba0125 |
|
MD5 | afd048f813891f0d47e8a40b1ab88708 |
|
BLAKE2b-256 | 2421d5cb0496a62215d5e5f2f168a9d5bd15323969e14c3c1469b125cdf85e34 |
File details
Details for the file deforest-0.4.0-py3.7.egg
.
File metadata
- Download URL: deforest-0.4.0-py3.7.egg
- Upload date:
- Size: 28.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca0e718d04c2221bb78f45d942266c9a796cd421b7b65b6bf79b8d28fc2765f7 |
|
MD5 | 2859474eb8cf1e540d8af23a6b42166c |
|
BLAKE2b-256 | 80c4dc7467147dc254dc5b519ca4f4f1d8199d3572451c4b9fd0c37bc5e7501e |
File details
Details for the file deforest-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: deforest-0.4.0-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b643973578494f16034b50e8ce953fb33a164cc203b032faddc3fd50f3464e83 |
|
MD5 | 667ddaf443d62ccbd77c5a776004dc10 |
|
BLAKE2b-256 | bd2812ad7716358f684e3152783b8bf825c0b80fc8fcbe89b76af44c16ef216e |