Package: paco-cloud
Paco: Prescribed automation for cloud orchestrationPaco is a cloud orchestration tool for AWS. It enables you to automate the creation and management of your cloud resources
with declarative YAML. For more see thepaco-cloud.io web site.Use PacoPaco can be pip installed from thepaco-cloudpackage on PyPI.pip install paco-cloudFor more information see thePaco installinstructions.
Then seeGetting Started with Pacoto learn how to
create a Paco project and connect it to your AWS account.Get InvolvedGive us a Git Star and share on social media with #PacoCloud. Community discussion happens on/r/paco_cloud.Chat with us onGitter at paco-cloud.Submitfeature request and bug reportson GitHub.To develop Paco, git clone this project as well aspaco.models.AuthorsPaco is created by Kevin Lindsay and Kevin Teague forWaterbear Cloud.Changelog for Paco9.3.44 (2023-12-21)AddedAdded try catch to ECS Service list services API call when deleting ECS services to prevent failure.FixedFixed an exception which occured when ECS Service target tracking is disabled.ChangedModified the Desired, Min, and Max Tasks count CloudFormation template parameter from String to Number to resolve recent CloudFormation validation errors.9.3.43 (2023-09-26)AddedAdded ECRReplicationConfiguration resourceAdded external_resource to GuardDutyDetectorRegionAdded legacy flag for old ECS tracking Policy namesAdded me-central-1 to Loadbalancer hosted zonesAdded region name to DeploymentPipeline IAM roles to prevent conflictsAdded release.version to ec2lm PutObject bucket policy.Added secrets_manager_default_2023_03_09 legacy flag for default secrets valueAdding support for non-default regionsBegan adding ECR Repository ReplicationsBegan adding support for LaunchTemplatesDisable Notification Rules if monitoring is disabled on a DeploymentPipelineFixedFixed ECS Task  VPC network configurationChangedImplemented Live Amazon Linux 2023 OS and Kernel patching and version preservation.Ported Amazon Live patching command to use release version.9.3.42 (2023-07-19)AddedAdded Task role to ECS servicesAdded new GitHub OIDC thumbprint9.3.41 (2023-06-27)AddedAdded  support to IAM Role names.Added CloudWatch Logs resourceAdded Conditions support to IAM user delegate custom policy permissionsAdded EC2LM function to purge codedeploy.Added EC2LM function to run commands for preparing an EC2 for the Create AMI command.Added EventBridge ResourceAdded NACL configuration support to SegmentsAdded RuleOverrideAction to WAFWebACL RulesAdded SSM function to call the EC2LM function to prepare for Create AMI .Added Sid field to the policy Statement() model objectAdded WebACL support to ALB ListenersAdded cross zone configuration to LoadbalancersAdded cross zone configuration to LoadbalancersAdded disable_account_delegates to IAMUser to allow users to be created in any accountAdded event_bus field to IEventsRuleAdded get_arn() function to CloudWatchLogGroup model objectAdded managed_policy_arns filed to the IAM User Custom Policy model objectAdded manged_polcies support to IAM users to attach policies directly to the user.Added override_action to WAF RuleAdded support for Amazon Linux 2023Added support for IDP Roles to the IAMRole application resourceAdded support for IMDSV2 EC2 metadata authenticationAdded support for Partner integrat ions to EventsRuleAdded support for me-central-1 (UAE) regionAdded support for me-central-1 (UAE) regionAdded Aurora Global Cluster support to RDSFixedFixed PacoReference str_ok when used in ListsFixed VPC Peering table names to make them more uniqueFixed VPC Peering to work in multi-region configurationsFixed VPC stack deletion cleanup hook which failed if the VPC private hosted zone does not exist.Fixed permisions in ECR Deploy instancesChangedImproved Create AMI commandMade policy names unique when generated by iam_user_account_delegatesMade policy names unique when generated by iam_user_account_delegatesModified ECR Deploy Scritp Manager to generate separate scripts per ecr_deploy_nameModified SecurityGroupRule cidr_ip type to PacoReference from TextLineChanged Deploymet pipelines to use default account for the S3 artifacts bucket if the S3 configuration does not have an account explicitly set.Changed LoadBalancer ListenerRule 'host' field to a list.Disabled automatic population of asg_metrics in ASG monitoring9.3.40 ((2023-02-28))AddedAdded --alarms-only/-a option to paco arguments.Added --ssm argument to provision paco command to allow running SSM commands on instancesAdded  and  replacements for IAM Role resources.Added AMI command to automate creating EC2 AMIs.Added ARM support for Amazon linux instance type for t4g instancsAdded AccessKeys IAM User permissionsAdded AppConfig resourceAdded CacheClusterId and PrimaryNodeId to Elasticache redis cftemplate outputs.Added CloudWatch Resource for Consolidated Monitoring Account configurationAdded Conditions to AssumeRolePolicyAdded DomainName and RegionalDomainName to S3 Bucket outputsAdded EC2 Flow Logs for VPCAdded EC2 controller pre-loading to allow for EIP global referencesAdded ECSCluster Delete stack hook to remove services when DBClusters are deletedAdded EIP configuration to EC2 global resourceAdded GuardDuty ResourceAdded GuardDuty to EventsRule stateAdded IAMPolicy ResourceAdded Idenity Provider role to ECR RepositoriesAdded Image Scanning supprot to ECRRepositoryAdded ImageTag Parameter to ECS Services.Added Inspector ResourceAdded Inspector to EventRule source typesAdded Lifecycle Rules support to S3BucketsAdded Listener Rule TargetGroup ARN Parameter to LB CFTemplate.Added ListernRuleArn CloudFormation Output to LoadBalancersAdded Logging to Cloudfront DistributionsAdded Paco-Resource-Type Tag to ECS ServiesAdded PacoService ResourceAdded ReadOnly mode to EFS mountsAdded ResponseHeaderPolicy to CloudFront resources.Added Retain deletion policy to EIP templateAdded Roles to resource.iamAdded SSM document for updating instace packagesAdded Ubuntu 22.04 support to paco.ref ami functionAdded UpdateFunctionConfiguration to Lamdba IDP Role permissionsAdded VPCEIP to network.vpc configuration.Added VPN Client Endpoint to VPCAdded ability for ECS services to override the LogGroup name, and added a boolean to disbale LogGroup creation.Added ability to manage Services from CFN parametersAdded ability to publish versions, layers, and update function code to Lambda IDPRolesAdded account field to ILambdaAdded and ec2lm_update_packages() function to EC2LMAdded assume_role_policies to BaseRole to allow for multi-statement AssumeRole policies.Added availability zone field to VPN client endpoint.Added check to not attach cluster capacity providers if we already have one attached.Added codedeploy_stack_name_2022_07_07 as a legacy flagAdded condition to Listner Outputs parameterAdded config_scope arg to the loaderAdded external_repository_arn to ECSRepository resourcesAdded federated to Principal schemaAdded file locking to allow for parallel paco callsAdded hash_long_names to LoadBalancer get_aws_name() model object functionAdded ignore changes field to Loadbalancer ListenerRule target groupAdded ignore fields to ECSContainer Definitions and individual servicsAdded lambda_version to CloudFront lambda function associationsAdded list_split() utils method.Added monitoring to GuardDutyAdded paco scope filters to resource.route53Added paco scope filters to resource.route53Added policy_actions, the ability to control Access to IDPRolesAdded response_headers_policy_id to CloudFront Default cache behaviorAdded ssm:PutComplianceItems to SSM policiesAdded support for ARNs to ssl certifcates in LoadbalancersAdded support for EventsRule monitoringAdded support for Inspector to EventBridge notifications.Added support for gloabl EIPs to self-managed EC2 nat gatewaysAdded support for global resources to BotoStacksAdded support to automatically set UsePreviousValue to False on CFN stacks that return error on usePreviousValue not in the previous template.Added support to remove Attached policies from Roles in the IAM delete stack hookAdded support to set the NAT instance AMIAdded tags field to IEBSAdded try/except catch around VPC Cleanup HookAdded try/except catch around VPC Cleanup HookAdding loggroup consolidation to ECS ClustersAllowed ARNs in LBApplication listener ssl_certificates listsChanged IAM User delegate user resource arns to use ${aws:username} in the CF template.Changed IAM user policy to use ${aws:username} rather than explicit namesChanged RDS KMS keys DeletionPolicy to Retain to allow snapshots from deleted RDS clusters to remain viable.Changed RDS KMS keys DeletionPolicy to Retain to allow snapshots from deleted RDS clusters to remain viable.Changed ResponseHeaderPolicy resource name to include netenv and environment names.Changed StackTemplate to be initializable with out a paco_ctx or stack.Changed ecr repository .repository_name with .full_repository_nameChanged paco_ssm loggroup expiry to 365 daysChanged resource.iam.roles account string to accounts list.Changed, ALBs will not update DNS when cost_disabled is TrueCreated OIDCIdentityProvider CFTemplateDisabled Cloudformation signal sleepDisabled DHCP Options for private hosted zones. Network failed to load.Disabled the network env controller's stack output save now that the Stack() class is managing this.ECR Repositories are now emptied before they are deleted.FixedFixed ASG ECS Cluster Capacity Provider attachmentsFixed Account name in SystemsManager IAM user delegate permissionsFixed CodeDeploy stack name to include the action name when codedeploy_stack_name_2022_07_07 feature flag is enabled.Fixed CodePipelineRetryStagesPolicy quota size by breaking it into chunks.Fixed EC2LM EBS Volume attachment Launch BundleFixed ECR IDP Role ConditionFixed EIP CF logical id for non global Resource resources.Fixed IAM Role delete hook to cleanup attached policiesFixed Log Exports list in RDS CF Template.Fixed SSMSession IAM permissionsFixed VPC Peering automationFixed VPC Peering to use IAM Role name when configured.Fixed VPC private_hosted_zone. It now associates itself with the VPC and sets the DomainName for the DHCP options.Fixed a bug in the new ami command for generating EC2 imagesFixed default SecretsString to {}Fixed externally_managed flag on IAM user access key credentials from managing keysFixed model_obj on resource.route53 pathsFixed permissions on SSM Port forward and CodeDeploy tools delegateFixed the hook which deleted ECS services from a clusterChangedImplemented VPC VPN Client EndpointImproved error message when reference does not resolve to a stack for.Made ECSASGConfiguration DeployableMade Route53 HostedZone's honour their is_enabled() flag.Made VPC Peering vpcid lookup resolve to stack outputs.Modified Dashboard names to include NetEnv and Environment nameModified ResourceEngine() to interface with global Resources and not just within an ApplicationEngine()Modified alarms to create empty stacks when monitoring is disabled.Modified swapon to use fallocate instead of dd when availablePorted ASG to troposphere 4.xPorting to troposphere 4.xPrefix cp- to ECS Capacity provider names if they start with aws, ecs, or fargateRelease Phase script will now delete tags from task definitionStarted adding DisableScaleIn hook on ASG DeleteUpdated gitignoreVPC Private Hosted Zones are now emptied before being deleted.9.3.39 ((2022-07-08))AddedAdded ALB Listener Default ActionsAdded Paco-Resource-Sub-Type Tag to Alarm stacks with value 'Alarms'.Added S3 Registry HooksAdded a feature_flag option to project.yamlAdded alarms_only flag to Paco context. (Still need to add CLI argument)Added exception handling when cleaning up IAM policies if the Role has already been deletedAdded has_kvp() to StackTags()Added prefix_environment_name and new logic to ECR Repository name generation and configAdded s3_buckets to ILambda for explicit Lambda Permission to InvokeFunctionAllowed Network to be enabled but VPC disabled.Changed Alarms CF Stacks Paco-Resource-Type by appending "-Alarms" to the name.Disabled PlacementStrategies with ECS launch type is FargateFixedFixed IAM delegate permission for SSM Session accessChangedMoved ASG user data processing into the EC2LM.Modified CODEPIPELINE_CODEDEPLOY_INIT_STAGE_HOOK behaviour.9.3.38 ((2022-06-02))AddedAdded build artifacts to .gitignoreFixedFixed the IAM Role Cleanup stack hook that deletes policies from roles9.3.37 ((2022-05-27))AddedAdded stack hook to clean up IAM role policies before deleting the roleFixedFixed dpkg purge syntax in CodeDeploy EC2LM launch bundleFixed nosync flag and aws s3 EC2LM download in user data script9.3.36 ((2022-05-25))AddedAdded CodeDeploy support to DeploymentPipeliens IAM delegate policiesAdded support for S3 events in EventsRuleAdded temporary service hook code for CodeDeploy AMI Builder9.3.35 (2022-05-06)AddedAdded LoadBalancer and TargetGroup automated support to AlarmsAdded TargetGroup name tag to TG resourcesAdded enable/disbale to target groupsAdding WIndows Powershell support to EC2LMAdding custom pypi upload scriptAdding new folders to .gitignoreFixedFixed Windows SSM CodeDeploy installFixed duplicate alarm in CW AlarmsFixed typos in ec2lm portChangedMoving EC2LM scripts into their own module.Removed debug breakpoints()9.3.34 (2022-05-01)ChangedTesting new PyPi build and upload scripts9.3.33 (2022-05-01)ChangedTesting new PyPi build and upload scripts9.3.32 (2022-05-01)ChangedTesting new PyPi build and upload scripts9.3.31 (2022-05-01)ChangedTesting new PyPi build and upload scripts9.3.30 (2022-05-01)FixedMade a fix to the Release phase scriptFixed LogGroup default expiryFixed Cost Disabled stack outputsFixed debugging condition on ALBAddedImplemented a default_password field for IAM users to work around password resctriptions.Adding ALBs to the Idle serviceAdded Environment name to notification rules config.Added a check to avoid updating tags on KMS stacks.Added Environment name to notification rules config.Added a check to avoid updating tags on KMS stacks.Added Paco-Resource-Type and Paco-Reference tags to stacksAdded support for CostDisabled ALBSAdded ec2lm_get_secret_from_json() functionAdded project Environment Variables support to CodeBuild.Added DetectChanges to DeploymentPipelinesAdded GitHub CodeStar connection supportAdded DetectChanges to DeploymentPipelinesImplemented new PacoServiceHookAdded more CodeDeploy Service hooks to implement Blue/Green deploymentsAdding CodeDeploy Service supportChangedStarting to look at AWS Lambda LayersRemoved RoleArn from EventsRule when target is lambdaMove EC2LM lock file9.3.29 (2022-03-25)AddedAdded LifeCycle Policies to ECRRepository resources.Added DNS LaunchBundleAdded ARN to HostedZone CF OutputsAdded load_content to utils.Added EventsRule resource state generateion and upload.Added project name to EventsRule Codebuild projects.Added fix for missing EC2LM cache file.Adding support for EventsRule notifications.Added obj_to_dict() function to utilsAdded event bridge notification access to SNS topcisAdded Event Pattern support to EventsRulesAdded notifications to EventsRulesAdded CodeStar connection ARN field to CodePipeline source configuration for BitBucket.ChangedASG disabled target groups automatically when the ALB is disabledMade DELETE confirmation more robustFixedProperly fixed Delete Stack confirmation logic.9.3.28 (2022-03-04)ChangedUpdated paco.models dependency9.3.27 (2022-03-04)FixedFixed EventsRule Targets after troposphere upgrade.Fixed a corner case where home is missing from paco command argumentsAddedAdded deployment branch to GitHUb webhook filters.Codebuild now supports NO_SOURCEAdded DNS to ElastiCacheAdded  SSM command  to install CodeDeploy on Windows serversAdded IAM Role Name and Arn to stack outputsAdded Environment Type to CodeBuild DeploymentPipelie configurationAdded basic support for CodePipeline and EventPattern eventrulesChangedUpdated CodeDeploy EC2LM wait for deployment logic9.3.26 (2022-02-09)AddedAdded Build Batch configuration to CodeBuild9.3.25 (2022-02-08)AddedAdded github access source configuration to CodeBuildAdded enable_automatic_backups to IEFSChangedMade ec2lm_signal_asg_resource wait for deployments before waiting for the healthcheck timeout.Updated ubuntu package update command with noninteractive arguments.ec2lm_signal_asg_resource will now wait for CodeDeploy deployments before signaling CloudFormation.Enabled encryption at rest on EFS by default9.3.24 (2022-01-31)AddedAdded CodeBuild Artifacts configuration9.3.23 (2022-01-27)AddedAdded deployment_branch_name to CodeBuild GitHub source configurationAdded source_security_group_owner to SecurityGroup for cross account accessAdded IAM Policy conditions on CodeBuild VPCConfig Service RoleAdded CodeBuild support to EventsRulesAdded SubnetId ARNs to segment's CFN outputsAdded CodeBuild support to EventsRuleAutomated VPC Peering between netenvsAdded -l --cfn-lint argument to perform extra CloudFormation error detectionAdded VpcConfig to codebuild configurationAdded availability_zone config to VPC endpointsFixedFixed elasticache security group CFN Parameter logical nameChangedRemoved CodeDeployConfiguration Name to allow CF to replace resource when HOST_COUNT is changed.Removed string value from Port numbersRemoved duplicate NACLAZ3 entries in segments CF templatesRemoved unneeded dimensions from windows cloudwatch config.Implemend enable/disable for VPC endpoints.SSM wait command now skips instances that are not runningImproved EC2LM bundle caching and updates.9.3.22 (2021-12-17)AddedImplemented IAM Role resourceslambda deploy command can now upload pre-made .zip files if the path ends in .zip.Added TokenExpired retry support to paco_buckets.is_bucket_created()Added TokenExpired retry support to paco_buckets.is_bucket_created()ChangedDeploymentPipeline will now default to environments account when one is not specified.9.3.21 (2021-11-24)AddedImplemented 'disable_codepipeline' to IDeploymentPipelineConfiguration to allow stage resource to be build independently.Implemented CodeBuild GitHub source configuration9.3.20 (2021-11-23)FixedEC2LM: EFS utils will only be installed if it does not already existEC2LMS: EFS: Moved tmp dir to root folder for CIS hardened ubuntu images.EC2LMS: EFS: Mounting of EFS drives made idempotentFixed Ubuntu EFS launch bundle installFixed CodeDeploy agent install on CIS hardened imges.Fixed external resource support to Route53 HostedZonesAddedAdded ec2lm_set_dns_cname() function to EC2LM for more specific DNS modificationsAdded ec2lm_set_dns() function to EC2LMAdded EC2LM support for ubuntu_18_cis ami typeAdded region support to Lambda functions.Implemented SystemsManagerSession IAM policyChangedImproved Release Phase deployment script reliability.Automated ManualApproval resource.IAM DeploymentPipeline permissionsAutomated namespace for AlarmSets for ASGFixed manual approval IAM DeploymentPipeline policy.Fixed manual approval IAM DeploymentPipeline policy.Fixed EBS EC2 Launch Bundle to work with Ubuntu nvme drives9.3.19 (2021-10-04)AddedAdded RDS Aurora MySQL serverless supportAdded non paco.ref support for EBS volume mountsprovision on CodeCommit will now display repository ssh clone URLs.FixedFixed AWS principle when account ids start with zeroFixed DeploymentPipeline IAM Permissions9.3.18 (2021-09-10)AddedAdded service hook for Security Groups in cftemplate.lbAdded TargetGroup enable/disableAdded HealthCheckPort to TargetGroupsAdded WebACL paco.ref support to cloudfrom webacl_id field.Added WAFv2 ResourceFixedFixed storage_encrypted implementation in RDS cftemplate9.3.17 (2021-08-26)ChangedLogGroups are now exempt from change_protected flags in RDS, ASG, and S3BucketsEnabled s3 Bucket encryption by defaultAddedImplemented S3 Bucket replication for cross-account bucketsImplemented bucket_owner_preferred for S3 Bucket resourcesAdded a backup_restore_bucket RDS Option field to RDSSQLServerExpress resource.Added ECR Repository field to IASG for automated permissions.added ec2lm_replace_secret_in_file_from_json() function to EC2LMAdded support for Ubuntu 18Added BitBucket support to DeploymentPipeline sourcesAdded IASGPatchManager for automated Windows patchingFixedPrevent record set from being created if hosted_zone is undefined in cloudfront.Fixed IAM Policy name generation to support 127 characters, was only 64 before.Fixed codedeploy launch bundle.Fixed RDS parameter group to allow empty parameters.9.3.16 (2021-06-25)FixedFixed ECSService alarms when more than one service is used.AddedAdded -h/--hooks-only flag for updaing EC2 configuration without affecting the stack.9.3.15 (2021-06-08)AddedImplemented SQLServerExpress RDSImplemented SSM Agent Update using SSM Document for WindowsAdded redirect_path to IListenerRulesImplemented VPC Endpoints in network.vpc for ssm, ssmmessages, and ec2messages.Automated ALB access logs bucket policiesAdded VPCEndpoints CFTemplateChangedIAM controll now prints SwitchRole URLs for users on resource.iam operations9.3.14 (2021-05-11)ChangedMade ASG instance key pair optionalAddedAdded a default PlacementStrategy to ECS servies of binpack.memoryAdded sub environment caching to the Network Environment Controller.Added Arn Ourput to S3 cloudformation templates.FixedFixed paco init cookiecutter AlarmSets missing classification field9.3.13 (2021-05-04)AddedAdded paco.models 7.8.10 dependency9.3.12 (2021-05-04)AddedAdded region field to DeploymentPipeline configuration9.3.11 (2021-04-23)AddedAdded support to disable ECS servicesAdded resource group name to ACM botostack names.FixedFixed ECS docker_exec scriptFixed CodeStart NotifciationRule Name filter for resource name generationFixed unique listener SSL certificate name in ALBFixed DeploymentPipeline notification rules if a rule does not have any event ids.9.3.10 (2021-04-19)AddedAdded restart-services functionality to ecs script.9.3.9 (2021-04-19)AddedAdded logging to SSM instance EC2LM update run commands.Added docker-exec command to ECS ScriptManager script.ChangedImproved ECR Deploy Script to tag the destination image with the same tags as the source.9.3.8 (2021-04-09)FixedFixed release phase script name in the ECR deploy script.Fixed codedeploy EC2 Launch Bundle on ubuntu.Fixed unique key to CodeBuild IAM permissions policiesFixed SNS topic policy duplicates by adding a cacheAddedAdded IAM policy statement for cloudwatch service to SNS topics listening for CloudWatch Alarms notifications.Added paco registry override for Alarm Descriptions.Made notification rules for DeploymentPipeline inherit application notification configurations if the resource config is missing.ChangedImproved error handling when processing alarm actionsReformatted the resource state s3 bucket key9.3.7 (2021-04-06)AddedAdded support for resource state in the paco worker bucket.FixedFixed SNS Topics cross account + cross region policy9.3.6 (2021-04-02)AddedAdded support for cross account + cross region SNS Lambda SubscriptionsAdded Notification Rules to DeploymentPipelines.Added an ECS utility to the script manager for ASGsFixedFixed CF handling of LBv2 Certifictes.Removed cloudfront forcing us-east-1 on certificates. Raise exception instead.iotpolicy.get_outputs() will now obtain the policy arn if it does not exist when called.Fixed EC2LM credential missing race condition code.9.3.5 (2021-03-15)FixedAdded paco.models dependency for 7.8.4.9.3.4 (2021-03-15)Addedimport_from functionality for environments and resource groups.LogGroup stacks will delete groups using stack hook on stack deletion.FixedCapacity Provider state manager now handles ASG creation9.3.3 (2021-03-11)AddedRoute 53 has A Alias support.FixedECS Capacity Provider provisioning to ensure the cluster attaches to the correct providers.CloudFront viewer_certificate handles correctly when the factory is None.EC2 Launch Bundles: fix a race condition where the instance tries to use it's IAM Role before it's attached.9.3.2 (2021-02-24)AddedCloudFront supportsOriginRequestPolicyIdandCachePolicyIdwhich can be set in the CloudFront resource
with newcache_policy_idandorigin_request_policy_idfields for the CloudFrontcache_behaviorsfield.9.3.1 (2021-02-05)AddedNew EC2LM convienence functions for running commands asynchronously:ec2lm_async_runandec2lm_async_run_wait.ChangedECS Release Phase commands run asynchronously.9.3.0 (2021-02-04)ChangedDeprecatedresource.snstopicshas been removed. CloudWatch Alarms now alert toresource.sns.9.2.5 (2021-02-03)Added logging for external CW Log Groups.9.2.4 (2021-01-29)Addscript_managertoASGfor ECR Deployments.9.2.3 (2021-01-13)FixedUpdate to depend uponpaco.models7.7.4.9.2.2 (2021-01-13)ChangedASG launch options fieldcodedeploy_agentnow defaults to False.Fixedpaco.subwill now lookup the Stack Output for refs that refer to Stacks.Fixed DynamoDB reference strings.AddedDescribeImagespermission to CodeBuild release phase.9.2.1 (2021-01-05)AddedAllow Managed Instance Protection to be set to ENABLED/DISABLED for an ECS ASG Capacity Provider.9.2.0 (2021-01-05)AddedECS Service can specify it's Capacity Provider.ECS Cluster can specify a default Capacity Provider for the whole cluster.Release phase command for ECS. Launchs a Task via SSM and executes it via CodeBuild,
waits for success and then continues to the next CodePipeline Stage.ChangedECS CodePipeline Deploy delegate Role permissions are more restrictive/secure.Fixedresource/iam.yaml: Permissions for CodeBuild in the DeploymentPipeline resolve correctly.9.1.0 (2020-12-23)AddedInitial support for LBNetwork type: Network Load Balancers.NewDynamoDBresource for provisioning DynamoDB Tables.NewS3BucketPolicyStackTemplate.Support forcopy_actionsfor BackupPlanRules in AWS Backup to allow cross-account backups.IAM Policies and S3 Bucket Policies now support all allowable AWS Conditions.ChangedEC2LM cfn-init bundle now uses the Python 3 cfn-init 2.0 package rather than installing Python 2
and the legacy cfn-init 1.4 package.9.0.2 (2020-11-12)FixedRequirepaco.models7.6.1 withcodedeploy_agentfield.9.0.1 (2020-11-12)AddedInvoke a Lambda from the CLI withpaco lambda invoke <paco-ref-parts>.FixedInitialize more than one netenv, in-case another netenv is initialized already by a Service.9.0.0 (2020-11-07)MigrationResources ofECSServiceswill need to be updated to add a DesiredTasks Stack Parameter. This
must be done before attempting to add an scaling configuration to thatECSServices.AddedLambda Triggers support forCognitoUserPoolresourcePaco refs for secrets can have an additional part at the end to resolve to the JSON field inside the value of the secret.ECSServiceshas newsetting_groupsfield which allows sharing the same set of Secrets and Environments
between container definitions.Handyenable_corsforApiGatewayRestApitemplate.Nested Resources forApiGatewayRestApi.Describe Command has a--output spaoption with minimal containing HTML. Contents suitable to use in a SPA.ApiGatewayRestApi supports all fields needed to enable OPTIONS for CORS.ApiGatewayRestApi can do cross-account Lambda integration. Lambda will add a Lambda Permission
to allow the API Gateway from the other account to invoke it.Outputs for ApiGatewayRestApipaco provisionhas a new-a, --auto-publish-codeoption which will compare the md5 hash of a
local or directory or file for Lambad resources that use azipfile:with a local path. If the loal
code is changed, a new artifact will be zipped and uploaded to an S3 Bucket.CloudFront Outputs foridanddomain_name.Support for LambdaFunctionAssociations for CloudFront.Support for Lambda@EdgeSupport for Cognito.Support for ECS Fargate.ALB TargetGroup can now use thetarget_typefield.Support for ECS TargetTracking Service Scaling.TheCodeBuild.Buildaction for DeploymentPipeline now supports a list ofecr_repositoriesthat can declarePush,PullorPushAndPullpermissions.Added aupload_fileobjmethod to PacoBuckets.StackHooks that have been added to Resource model objects are added to a Stack after it's
created.ChangedNewBotoStackwithACMandIoTPolicyResources types.set_parameterforpaso.stack.Stackwill now replace a Parameter with the same name. This allows
Parameters to be changed by hooks.FixedCodeCommit users Arn output looks it up from the proper Stack.CloudFront handles CustomOriginConfig with no fields specified forssl_protocolsandhttps_port.8.0.0 (2020-09-17)MigrationPaco Service add-on APIs have been changed and renamed. The newpaco.extendspackage
was added that gives a single set of APIs for Services to extend Paco. Documentation for
extending Paco has also been created.AddedNew IAMUser StackTemplate for the application-level IAMUser type.New PinpointApplication resource type. Minimal implementation to support using the
service for transactional messages only.ChangedUsing Troposphere 2.6.2 with amonkey-patch troposphere.elasticloadbalancingv2.LoadBalancerso thatLBApplicationcan passSecurityGroupsandSubnetsas a single Security Group List Parameter.FixedIf there is noresource/snstopics.yamlthen the SNSTopic Controller should not load.Provision forresource.s3was using incorrect resource_refALB created Route53 RecordSets now use the Route53 account instead of defaulting to the current account.CloudFront domain_aliases now use the hosted_zone of the account for paco refs.PyLance detected fixes and clean-up:https://github.com/microsoft/pylance-releaseRemove unused reseng_lbclassicDashboard: Added missing import for error handlingRDS Aurora: fixed default DB Paramter group variableAWS Config: controller fixesIAM Controller: removed unused get_role functionS3 Controller: empty bucket error message uses correct variable name7.2.0 (2020-07-14)AddedDeploymentPipeline that usesS3.Sourcewill get more permissive access to the artifacts S3 Bucket to allow
this action to work.DeploymentPipeline now supportsECR.Sourceand can be used directly withECS.Deploy.Aurora support: RDSAurora and DBClusterParamaterGroup StackTemplates.ASG has newssh_accessfield to allow managing users and groups of SSH public key pairs on the instance.GitHub.Source action with WebHook for sourcebuilddeploy-style CodePipelineInitial ECS Capacity Provider supportasg.ecs.capacity_provider(experimental)ChangedECR Repository has anaccountfield instead of hard-coding to tools. If left blank
it assumes the same account as the environment.Secrets can now be deployed to specific accounts using anaccountfield.FixedEC2LM configuration loading for ECS was causing the ecs agent to hang on freshly launched instances.7.1.1 (2020-06-23)FixedEC2 instances without ECS config failed trying to make launch script.7.1.0 (2020-06-22)AddedCodeCommit Users have a permission to grant either ReadWrite or ReadOnly to a repo.Initial ECS Cluster support and ASG EC2LM for ECS.Newresource.snscontroller and template. This allows provisioning of new "location"-style
SNS Topics and Subscriptions. Subscriptions have been split into their own resources, so that
they have access to the full set of Subscription properties.CloudTrail logs in an S3 Bucket can now be CMK encrypted by KMS. Paco will create a single
key in the same account and region as the central S3 Bucket. Thekms_usersfield for
CloudTrail can be used to grant IAM Users access to decrypt the log files.Start of test suite for paco.cftemplates in paco.cftemplates.test package.ChangedService plug-ins are passed the model_obj of the config scope when they are initialized.Lambda Paco Log Groups are supplied as a comma-seperated String to it's Environment Variable.The PacoContext home attribute is now a pathlib.Path object.FixedStarter Projects updated to use newer ASG rolling update syntax.7.0.0 (2020-05-09)MigrationAutoScalingGroups that use EC2 Launch Manager (EC2LM) features no longer store their cache id in the
UserData. Instead configuration changes to existing ASGs are updated using SSM Run Command. This
change will allow configuration changes to be made without cycling new instances in an ASG - for example,
a new metric can be added to a CloudWatch Agent and SSM Run Command will execute theec2lm_launch_bundleson all of the instances.AddedPaco Buckets: Paco can create it's own S3 Buckets for internal usage - one bucket for each account/region
combination. These can be used to hold CloudFormation templates and Lambda code artifacts.New Paco command:paco lambda deploy <scope-to-lambda>that can update the code artifact for a
Lambda directly.CIDR IPv6 support for SecurityGroupsSSM Agent is installed on all AutoScalingGroups unlesslaunch_options.ssm_agentis explicitly set
to falseGitHub WebHook to CodePipeline ifpoll_for_source_changesis false for a GitHub.Source action.Supoprt for RDS PostgreSQLSupport for SSM Documents withresource/ssm.yamlEC2LM: Ubuntu 16 for EFSMonitoring support for ElasticSearchDomain resourcesChangedLambda resources can now usecode.zipefileas a path to a local directory. Paco will zip that directory
contents and upload an artifact to a Paco Bucket and use that S3 location for the Lambda when it is initially
created. Any updates to the Lambda code artifact must then be applied using thepaco lambdacommand.AutoScalingGroup Stack now has a Parameter forMinInstancesInService.Troposphere dependency updated to 2.6.1 release which includes support for IoT Analytics Pipelines.6.2.0 (2020-04-04)MigrationASG rolling_udpate_policy behaviour has been changed. The fieldsupdate_policy_max_batch_sizeandupdate_policy_min_instances_in_servicehave been removed and these settings are only controlled with therolling_udpate_policyfield.AddedIoT support! IoT Core has new types for IoTPolicy and IoTTopicRule, IoT Analytics has an IoTAnalyticsPipeline.ChangedAll Paco warnings are now prefixed with a standard "WARNING:" and will only
be displayed if the -w, --warn flag is passed.DeepDiff version required is 4.3.2. This version fixes the need to fiddle with deprecation
warning suppression.6.1.1 (2020-03-14)AddedExpanded the Stages/Actions for DeploymentPipeline to include S3.DeployFixedSLRoles template was not fully ported to StackTemplate API.CodePipeline resource can be created in Service applications.6.1.0 (2020-03-09)AddedNew Private PyPI Starter Project.6.0.1 (2020-03-08)FixedRemoved{{['.gitignore']|join}}cookiecutter file that crept back in that breaks install on
filesystems that do not allow the | character.ALB rule.target group fix was merged into wrong place in the code.Restored StackOrders which wasn't being respected after refactor.6.0.0 (2020-03-06)BreakingConsolidated the Paco work directories into a single.paco-workdirectory.
Documented them on a new Paco Internals doc page. To migrate an existing Paco project
to this new structure:cd <my-paco-project>
git mv aimdata .paco-work
git mv Outputs .paco-work/outputs
git mv build .paco-work/buildThose commands assume you are using git to manage a Paco project. If you are, also update your.gitignorefile to ignore .paco-work/build.The IAM Roles for BackupVault had inconsistently named CloudFormation stacks ("BackupVaults--Backup").
A new IAM Role will be created in a new stack. The old stack will remain but it can be safely deleted.There will be a stack UPDATE to the BackupVaults. Each AWS::Backup::BackupSelection resource will
have "Selection: " prefixed on the SelectionName, this will replace the old BackupSelection resources
with new ones using the new Role. The AWS CloudFormation documentation states that a BackupSelection's
SelectionName is a display name only, but this is incorrect.Removed theResource/NotificationGroups.yamlfilename alias. This file is now only loaded using
the filenameresoruce/snstopics.yaml.EventsRule type target field changed from a list of Targets to a list of IEventTarget objects. This allows
the ability to specify other information with the target such as the input_json field. Old was:type: EventsRule
targets:
- paco.ref some.refThe new format is:type: EventsRule
targets:
- target: paco.ref some.ref
input_json: '{"cat":"dog"}'AddedDeploymentPipeline can now use GitHub.Source as a source.Integrated the Parliment library to lint/validate the IAM Policies used for all Roles.https://github.com/duo-labs/parliament5.1.1 (2020-02-19)FixedFixed security_group field for ElasticsearchDomain.5.1.0 (2020-02-19)AddedAbility to enforce that you need to be on a specific git branch to change a specific environment.
Documentation for this was added to a new Paco Workflows page.FixedAdded proper names to Elasticsearch output refs.5.0.1 (2020-02-17)AddedASG has new field desirec_capacity_ignore_changes that can be set.FixedIf ignore_changes was set for a CloudFormation Parameter it was breaking the Confirm Changes CLI.5.0.0 (2020-02-17)BreakingBreaking: Lamdba now creates it's Log Group in the CloudFormation. It also allows for additional
app-specific Log Groups. Lambda's execution role now restricts Log Group permissions to just the
Log Groups it needs.If you have existing Lambdas, you will need to delete the Log Group and then re-provision the
Lambda (and ensrue the Lambda isn't invoked after the Log Group is deleted or it will re-create it).
This will allow the Lambda Log Groups to be under CloudFormation state.AddedServiceLinkedRoles for IAM. New IAM controller methodadd_service_linked_rolewhich can be
used to add a SerivceLinkedRole.ElasticsearchDomain resource.Ability for a template Parameter to ignore_changes. If this is True then the Parameter will not
be changed during stack updates.ASG has a new instance_ami_ignore_changes field which will mark the InstanceAMI Parameter with
ignore_changes.EventRules can be in the State=ENABLED or State=DISABLED set by theenabled_stateboolean field.ChangedEventsRules are named with a random suffix instead of a prefix. This makes it easier to
use the --name-prefix option for list-rules in the AWS CLI and API.New CFTemplate.create_output created that makes creating and registering outputs easier.4.0.0 (2020-02-05)BreakingBreaking: This will change the secrets for any secret that was created bygenerate_secret_string.
  Completed full implementation ofsecrets.generate_secret_string, every property in the CloudFormation
resource is represented so that expressing defaults won't trigger new secret created.AddedNewwarn_template_changesmethod for CFTemplate. This is a hook that allows
templates to print a warning about potential unintended side-effects of the change.
The SecretsManager template is the first to implement this warning hook.DocsImproved Getting Started documentation and "paco init project" CLI messages.3.5.5 (2020-01-29)FixedEFS resource can be in a disabled state.EIP resource will be removed when disabled.ALB resource properly removes ALB when disabled.ASG resource is properly disabled.3.5.4 (2020-01-21)AddedCloudFrontCacheBehaviours have min_ttl and max_ttl field support.FixedCodeCommit repositories policy refactor to work around maximum 10 policy per IAM User limit.3.5.3 (2020-01-16)AddedWarn if generated CloudFormation template reaches 80% or greater of the maximum stack size of 51,200 bytes.FixedAWS Backup was missing group name in templates. Now creates a stack for every BackupVault.3.5.2 (2020-01-08)Fixedpaco init projectcreates the.gitignoreafter cookiecutter runs. This avoids having a | character
in the filename, which certain filsystems do not like.Fixed bug where resource/s3.yaml buckets were being run twice on validate and provision.3.5.1 (2020-01-06)FixedFix starter projects: check for aws_second_region inpaco init project.ChangedStarter Projects paco-project-version brought up to 6.3.3.5.0 (2020-01-03)AddedRoute 53 Health Checks support ip_address field.Duplicate key errors in the YAML have a proper error message.Docs have multi-account set-up page.ChangedNetworkEnvironment networks can now be (almost) empty. This can be used for serverless environments
that do not need a network. Thenetwork:configuration still needs to exist, but only has to contain
theaws_accountandenabledfields.Removed Parameter.ending format for cfn-init parameters and Dashboard variables.
Instead simply including the ending in the paco.refcfn-init launch bundle sends cfn-signal after cfn-init finishes.paco provision accountprovisions the accounts.FixedIf entire VPC is disabled for an ASG, the disabled ASG is removed.DeploymentPipeline can be enabled/disabled without throwing errors.Throw error if an account is missing an account_id.Throw error if .credentials file is missing before asking for MFA.cfn-init uses proper base path for Amazon Linux which has cfn-init pre-installed in /opt/aws.log group expire_events_after_days can be left blank for log_set and log_group without throwing error.Route 53 Record Set stack for an ALB is provisioned in the same account that Route53 is in.DeploymentPipeline no longer hard-codes to a 'data' account for CodeCommit principle,
and instead uses the actual account(s) that CodeCommit repo's use.Alarm notifications that do not come from plug-in work again.Clean-up for wordpress-single-tier starting template.Create ~/.aws/cli/cache directory if it doesn't already exist.LogAlarms were incorrectly getting a Resource Dimension added to them.3.4.1 (2019-12-04)FixedInclude paco.cookiecutters data files in paco-cloud distribution.3.4.0 (2019-12-03)AddedNew CloudWatch Dashboard resource.Route53 Health Check supports domain_name or load_balancer fields.Fixedinclude paco.stack_grps package!Route53 Health Check alarm gets Namespace again.ChangedFinal AIM --> Paco rename: Log metric namespace changed fromAIM/toPaco/3.3.1 (2019-11-29)FixedPlaceholder in the wordpress-single-tier template for AMI Id.Assorted fixes created by the AIM to paco rename.ALB AWS::ElasticLoadBalancingV2::ListenerCertificate are restored.Fixed Zone reference lookups in Route53 stack group.DocsOverview page works on mobile.3.3.0 (2019-11-28)ChangedChanged dependency fromaim.modelstopaco.modelsRenamed all thingsaimtopaco.3.2.0 (2019-11-27)AIM has been renamed to Paco: Prescribed automation for cloud orchestration.
The CLI is nowpacowith a PACO_HOME environment variables. The
PyPI package is atpaco-cloud.AWS Backup service is supported by paco. Create BackupVaults with BackupPlans and BackupSelections.3.1.0 (2019-11-06)AddedDBParameterGroups template.LogGroups template adds MetricFilters if present.Respect theglobal_role_namesfield for the IAM Role RoleName.Alarms can be provisioned at the Application level without being specific to a Resoure context.Route53HealthChecks can be provisioned. These are global resources with the application region
suffixed to the health check name. The CloudFormation template and CLoudWatch Alarm are provisioned
in us-east-1, as that is where the metrics are hard-coded to by AWS.Lambda template will grant Lambda permissions to an Events Rule in the same application that
references it as a Target.New Events Rule template.Added change_protected support to Cloudfront, IAM Managed Policies, and IAM Role templates.Added a CodeBuild IAM Permission for IAM UsersAdded the EIP Application Resource and a support 'eip' field to the ASG resource for associating an EIP with a single instance ASG.Addedcftemplate_iam_user_delegates_2019_10_02legacy flag to make user delegate role stack names consistent with others.Added support to allow ASG to launch into a single subnet.Added ResourceGroupid to the ElastiCache Application ResourceAdded caching to instance AMI ID function.ref lookups.Added swap, wget installer, and get tag value helper functions to the EC2 Launch manager and moved all of its scripts to a separate file that is copied from S3 and executed.Added VPC Associations to the VPC private hosted zone.Added VpcConfig to the Lambda function cftemplate.Addedsecrets_managerto Network Environments.Added support for !Ref and !Sub to yaml.pyAdded a 'Nested StackGroup' feature to StackGroups. This allows us to nest a StackGroup in the place of a Stack within a StackGroup. This was needed to allow Route53 RecordSets to be created in order, but to allow a different Stack name from the current StackGroup being populated.Added the Route53RecordSet CFTemplate and ctl_route53.add_record_set() method.Added the EBS Application Resources.
Addedebs_volume_mountsto IASG to mount volumes to single instance groups.
Added the EBS Launch Bundle to implementebs_volume_mountsChangedFixed bug where if a AssumeRolePolicyDocument has bothserviceandawsfields for the Principal,
theawsfield was ignored.Improvements to the CLI. Verbose flag is now respected.
Yes/no questions are consistent and can be answered with 'y', 'n', 'yes' or 'no'.
Clean-up to formatting. Only prompt for provision changes when running the provision
sub-command.ALB Alarms now provision with anLBApplicationsuffix and match the Resoruce.type field.Made IAM Users default password more complex to satisfy password contraints.Updated some of the cookiecutter templates foraim init project.Ported the Route53 CFTemplate to troposphere and separated zones into their own stacks.
Added the legacy flagroute53_hosted_zone_2019_10_12for this change.Cleaned up expired token handling in Stack() by consolidating duplicate code into a single method.Refactor of EC2 Launch Manager user data script management. Common functions are now stored in S3 to reduce user data size.Modifed LogGroup names to include the Network Environment name.Refactored how Route53 RecordSets are being created. The previous design created RecordSets right in the resource's template. The new design uses the Route53 Controller to create RecordSets in their own stack using an account global name . The reason is that CloudFormation does not allow you to modify RecordSets unless you are modifying the stack that created it. This made it impossible to move DNS between resources without first deleting the record and recreating it. With a global controller, we can simple rewrite the RecordSets to new values.
Addedroute53_record_set_2019_10_16legacy flag to deal with pre-existing RecordSetsMoved app_engine.get_stack_from_ref to StackGroupFixedFixed a couple of AWS token expiry retries from failing.AWS session caching was not properly caching.NotificationGroups controller was not setting up refs correctly, nor resolving them correctly.3.0.0 (2019-09-27)AddedNew directoryaimdatais created within an AIM Project by paco. This is used to record state
of AIM provisioning. CloudFormation templates used to create stacks in AWS are cached as well
as the last copy of the AIM Project YAML files. These files are used to speed up subsequent
runs and more importantly can show you what is changed between AIM runs to make it easier to
review new changes before they are actaully made to AWS.CLI: Display a diff of changes from last AIM run and new run in the AIM Project YAML configuration.
The-d,--disable-validationflag can be used toCLI: Display changes and ask for verification before updating CF templates. This can be disabled
with the-yflag.CLI: Offer to delete a stack in a CREATE FAILED state so that a new stack can be provisioned in it's place.AWS credentials can now be set to live for up to 12 hours. You can set the .credentials field tomfa_session_expiry_secs: 43200 # 12 hoursto enable this. The default is still one hour.Resources with thechange_protectedflag set to true will not have their CloudFormation stacks
updated.API Gateway REST API can now have models, methods and stages. It supports Lambda integration
with either 'AWS_PROXY' via an assumed Role or 'AWS' via a Lambda Permission.S3Bucket has NotificationConfiguration for Lambdas. Lambda will detect if an S3Bucket within the
same application notifies the lambda and will automatically add a Lambda permission to allow S3 to
invoke the lambda.Lambda AWS::SNS::Subscription resources now have a Region property.CloudWatchAlarms template has anotification_regionclass attribute that can be set if
notificationgroup subscriptions need to go to a single region.CloudFront has Origin ID support.EFS Resource support.ChangedBreaking! CF Template names have been refactored so that they are more user friendly when listed in the
AWS Console. This requires deletion and reprovisioning of AWS resources. Templates now have new
consistent ways to create their names, so this should be the last time this change happens.CLI: References to NetworkEnvironments now use consistentpaco.refsyntax, e.g.aim provision netenv <ne>.<env>.<region>All stacks are created with Termination Protection set.CF template base classpaco.cftemplates.cftemplates.CFTemplatehas new methods for creating consistent
AWS names:create_resource_name(),create_resoruce_name_join(),create_cfn_logical_id(),
andcreate_cfn_logical_id_join().Console messages reworked to show relevant information in columns.CF template base class methodgen_parameterrenamed tocreate_cfn_parameter.S3 controller now relies on the bucket name to come from the S3Bucket model object.Lambda code.s3_bucket field can now be an paco.ref or a plain bucket name.You can provision without specifying the region and it will include all regions in an env.NotificationGroups are loaded from project['resource']['notificationgroups']FixedCloudTrail generates it's own CloudWatch LogGroup if needed. Outputs for CloudTrail and CloudWatch LogGroup.APIGateway, SNSTopics and Lambda now respect theenabledfield.2.0.0 (2019-08-26)Fixedsnstopic output ref and lambda alarm ref fixes.Added IAM Users feature for creating IAM Users and configuring console access
assigning permissions, and access keys.AddedMoved aim reference generation into the Model. Model objects now have .paco_ref and
.paco_ref_parts properties which contain their paco.ref reference.Added StackOutputsManger(). This now creates and maintains $AIM_HOME/ResourceMap.yaml
which will include a complete list of all stack outputs that are referenced using the
yaml dictionary path of the resource.ALB Outputs includes TargetGroup Fullname.Minimal APIGatewayRestApi template.Added external_resource support to the ACMAdded ReadOnly support to the Administrator IAMUserPermissionChangedAutomated CloudFront Parameter lists for things like security group and target arn lists.Consolidated CFTemplates and Stack's and other Stack cleanups.CloudWatch Alarms multi-Dimension Alarms now expect an paco.ref. CloudWatch Alarms are now Troposphere.1.4.0 (2019-08-21)AddedCloudTrail resource adds basic CloudTrail provisioning.LogGroups are created for all groups that the CloudWatch Agent will require.
Uses the new Logging schema in paco.models.Added CloudFront application ResourceAdded VPC Peering application resource.Automated the glue of passing outputs from a stack to the parameter of another stack.1.3.1 (2019-08-07)FixedPython packaging, also include version.txt.1.3.0 (2019-08-07)ChangedCloudWatchAlarms now check for namespace and dimesions fields, that
can be used to override the default of one primary dimension and the resource_name.FixedPython dist did not include README.md and CHANGELOG.md1.2.0 (2019-08-06)AddedDeleting resources can leave dangling CloudFormation templates in your
account. Controllers for NetworkEnvironments now keep track of templates
they've provisioned and warn you about unused templates.NotificationGroups can be provisioned as SNS Topics and subscriptions.
Useaim provision notificationgroups.CloudWatch Alarm descriptions are JSON with metadata about the environment,
region, application, resource group and resource that the alarm is for.CloudWatch Alarms will not notify the SNS Topics that they are subscribed to.Rewrote commands with consistent way of passing arguments to controllers.
Controllers args can now be all lower case.Added Account initialization to 'aim init project'.ChangedAIM references have a new format! It's simpler and more consistent.
Every ref now starts withpaco.ref.Createdpaco.utilsto clean up PacoContext object.1.1.0 (2019-07-24)AddedLogging functionality added to monitoring. Logs will be ingested by a configured
CloudWatch Agent and sent to a CloudWatch Log Group.Added --nocache to cli to force updates to stacks.CLI reports human readable validation errors from AIM project configuration files"aim ftest" command added to run functional tests on the "aim init project"
templates. This command will be expanded in the future so you can test your
own aim projects.Resources/S3.yaml is now functional: eg. aim validate S3Added Region to cftemplates so we can do inline replace of  and .Added LambdaPermission and CWEventRule cftemplates.Added CloudWatchController and LambdaController.Fixedcookiecutter generated .credentials file was not in git repo as, the cookiecutter
.gitignore file was causing it to be ignored.1.0.0 (2019-07-06)AddedInitial documentation with AIM project site athttps://paco.waterbear.cloud/en/latest/Added init command with ability to create starting templates for AIM projects
with the cookiecutter project under the hood.Added redirect to Listner rules in the ALBChangedDocument and refactor AIM CLI.Moved yaml.py to paco.coreRefactored S3 ControllerPorted Route53 config to the modelPorted CodeCommit config to the modelRefactored S3 to use Application StackGroupCPBD artifacts s3 bucket now uses S3 Resource in NetEnv yaml insteadConverted the ALB's listener and listener rules to dicts from listsRemovedRemoved deprecated configuration0.6.0 (2019-06-21)Document and clean-up AIM CLIValidate and Provision functioning after cleanup0.5.0 (2019-06-21)First open source release