Metadata-Version: 2.1
Name: stackdiff
Version: 1.1.0
Summary: Visualises the changes described by an Amazon Web Services CloudFormation stack change set
Home-page: https://github.com/cariad/stackdiff
Author: Cariad Eccleston
Author-email: cariad@cariad.earth
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Utilities
Classifier: Typing :: Typed
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ansiscape (<2.0,>=1.1)
Requires-Dist: boto3 (<2.0,>=1.18)
Requires-Dist: differently (<2.0,>=1.0.1)
Requires-Dist: pyyaml (<7.0,>=6.0)
Requires-Dist: tabulate (<1.0,>=0.8)

# stackdiff

**stackdiff** is a Python package and CLI tool for visualising the changes described by an Amazon Web Services CloudFormation stack change set.

For example:

```text
Description: Foo deployer               =  Description: Foo deployer
Resources:                              =  Resources:
  Deployer:                             =    Deployer:
    Properties:                         =      Properties:
      Policies:                         =        Policies:
      - PolicyDocument:                 =        - PolicyDocument:
          Statement:                    =            Statement:
          - Action:                     =            - Action:
            - acm:DeleteCertificate     =              - acm:DeleteCertificate
            - acm:DescribeCertificate   =              - acm:DescribeCertificate
            - acm:RequestCertificate    =              - acm:RequestCertificate
            Effect: Allow               =              Effect: Allow
            Resource: '*'               =              Resource: '*'
        PolicyName: CertificateManager  =          PolicyName: CertificateManager
                                        >        - PolicyDocument:
                                        >            Statement:
                                        >            - Action: cloudformation:*
                                        >              Effect: Allow
                                        >              Resource: '*'
                                        >          PolicyName: CloudFormation
      UserName: FooDeployer             =        UserName: FooDeployer
    Type: AWS::IAM::User                =      Type: AWS::IAM::User

Logical ID    Physical ID    Resource Type    Action
Deployer      FooDeployer    AWS::IAM::User   Update
```

Full documentation is online at [cariad.github.io/stackdiff](https://cariad.github.io/stackdiff).

## Installation

**stackdiff** requires Python 3.8 or later.

```bash
pip install stackdiff
```

### CLI usage

Pass the ARN, ID or name of the stack and change set:

```bash
stackdiff --stack <STACK> --change <CHANGE>
```


