Metadata-Version: 2.1
Name: aim.models
Version: 3.1.0
Summary: aim.models: Semantic cloud infrastructure configuration file format and object model
Home-page: https://github.com/waterbear-cloud/aim.models
Author: Waterbear Cloud
Author-email: hello@waterbear.cloud
License: UNKNOWN
Description: # aim.models
        
        An object model for semantic cloud infrastructure.
        
        `aim.models` parses a directory of YAML files that compose an AIM Project and loads them
        into a complete object model.
        
        
        ## What's in the model?
        
        The model defines common logical cloud infrastructure concepts, such as networks, accounts,
        applications and environments.
        
        The model uses network and applications as hierarchical trees of configuration that can
        have their values over rode when they are placed into environments. Environments live in a
        network and contain applications, and typically represent the stages of the software development
        lifecycle (SDLC), such as 'development', 'staging' and 'production'.
        
        The model has a declarative schema that explicitly defines the fields for each object type in the model.
        This schema declares not only type (e.g. string, integer) but can also declare defaults, min and max values,
        constrain to specific values, and define invariants that ensure that if one field has a specific value, another
        fields value is compatabile with that. The model will validates these fields when it loads an AIM Project.
        
        
        ## Developing
        
        Install this package with your Python tool of choice. Typically set-up a virtualenv
        and pip install the dependencies in there:
        
            python -m venv env
        
            ./env/bin/pip install -e .
        
        There are unit tests using PyTest. If you are using VS Code you can turn on the
        "Py Test Enabled" setting and run "Discover Unit Tests" command.
        
        
        Changelog for aim.models
        =================
        
        3.1.0 (2019-08-08)
        ------------------
        
        ### Added
        
        - aim-project-version.txt file in the root directory can now contain the AIM Project YAML
          version. IProject now has an aim_project_version field to store this value.
        
        - ICloudWatchAlarm gets a namespace field. Can be used to override the default
          Resource namespace, for example, use 'CWAgent' for the CloudWatch agent metrics.
        
        - IResource now has a resource_fullname field. The fullname is the name needed to
          specify for a metric in a CloudWatch Alarm.
        
        - ICloudWatchAlarm now has a dimensions field, which is a List of Dimension objects.
        
        - ITargetGroup now inherits from IResource. It loads resource_name from outputs.
        
        
        3.0.0 (2019-08-06)
        ------------------
        
        ### Added
        
        - New `MonitorConfig/NotificationGroups.yaml` that contains subscription groups for notifications.
        
        - sdb_cache field for Lambda.
        
        - Lambda can have alarms.
        
        - ISNSTopic and ISNSTopicSubscription to model SNS.
        
        ### Changed
        
        - All references have been renamed to start with ``aim.ref`` for consistency.
        
        - AlarmSets, AlarmSet and Alarm all now implement INamed and
          are locatable in the model
        
        - Service plugins can load their outputs
        
        
        2.0.0 (2019-07-23)
        ------------------
        
        ### Added
        
        - Schema for Notifications for subscribing to Alarms
        
        - Added S3Resource for Resources/S3.yml configuration
        
        - Added Lambda resolve_ref support
        
        ### Changed
        
        - Services are loaded as entry_point plugins named `aim.services`
        
        - Refactored the models applications, resources, and services.
        
        - Renamed IRoute53 to IRoute53Resource.
        
        ### Fixed
        
         - CloudWatchAlarms now validate a classification field value of
           'performance', 'health' or 'security' is supplied.
        
        
        1.1.0 (2019-07-06)
        ------------------
        
        ### Added
        
        - Added function.ref to be able to look-up latest AMI IDs
        
        - Added more constraints to the schemas.
        
        - Added default to IS3Bucket.policy
        
        - Added Route53 to schema and model
        
        - Added redirect to Listner rules in the ALB
        
        ### Changed
        
        - Description attribute for Fields is now used to describe constraints.
        
        - Ported CodeCommit to schema and model
        
        - Refactored S3 to use Application StackGroup
        
        - CPBD artifacts s3 bucket now uses S3 Resource in NetEnv yaml instead
        
        - Converted the ALB's listener and listener rules to dicts from lists
        
        ### Removed
        
        - Removed unused yaml config from aimdemo under fixtures.
        
        
        1.0.1 (2019-06-19)
        ------------------
        
        - Improvements to Python packaging metadata.
        
        
        1.0.0 (2019-06-19)
        ------------------
        
        - First open source release
        
Keywords: AWS,Cloud,Infrastructure-as-Code
Platform: UNKNOWN
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Classifier: Development Status :: 5 - Production/Stable
Description-Content-Type: text/markdown
