Texting service to receive current air quality conditions and maps, powered by AirNow, Twilio, and AWS

Overview

Air Quality Bot - Text (415) 212-4229

CI/CD Codecov Python Versions GitHub License Tweet

The Air Quality Bot is generally available by texting a zip code (and optionally the word "map") to (415) 212-4229. The bot will respond with the latest air quality report for your region.

The instructions below illustrate how to similarly setup the bot in your own AWS and Twilio environments.

Getting Started

AWS Initial Setup

Create a new Role from a Policy with the following permissions:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "cloudwatch:PutMetricData",
                "dynamodb:CreateTable",
                "dynamodb:GetItem",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem",
                "dynamodb:DescribeTable",
                "dynamodb:GetShardIterator",
                "dynamodb:GetRecords",
                "dynamodb:ListStreams",
                "dynamodb:Query",
                "dynamodb:Scan"
            ],
            "Resource": "*"
        }
    ]
}

Install and configure the AWS CLI for the same account for which the Role was created.

AWS Lambdas

Initialize the deployment environment by running make install locally, then edit the .env file's AWS_ROLE with the ID of the Role created above and the AIRNOW_API_KEYS list with one or more AirNow API keys.

Note that, on initial deploy, your Lambdas will be pointing to the an endpoint that does not exist until you complete the AWS API Gateway Routes section below and update the AIR_QUALITY_API_URL variable to point to the deployed endpoint.

Deploy the Lambdas to your AWS environment using the deploy script:

./deploy.sh

Optionally, TTL for ZipCode fields in the DynamoDB table can be enabled by going to the AWS console and enabling TTL on the TTL field.

AWS API Gateway Routes

Create an API Gateway. In the API, do the following:

  • Create a new "Resource" with a path of /inbound
    • Create a new "POST" method with the "Integration type" of "Lambda Function" and point it to the Lambda AirQuality_inbound_POST
      • Edit the "POST" method's "Integration Request"
        • Under "Mapping Templates", add a "Content-Type" of application/x-www-form-urlencoded using the "General template" of "Method Request Passthrough"
      • Edit the "POST" method's "Method Response"
      • Edit the 200 response so it has a "Content type" of application/xml

Last, under the "Integration Response" for /inbound, edit the 200 response. Under "Mapping Templates" of "Content-Type" of application/xml with the following template:

#set($inputRoot = $input.path('$'))
$inputRoot.body

Additionally, create the following "Resource" paths:

  • /aqi

Under each of the above, do the following:

  • Create a new "GET" method with the "Integration type" of "Lambda Function" and point it to the Lambda AirQuality_<ROUTE_NAME>_GET, where <ROUTE_NAME> corresponds to the name of the Lambda we created to execute on this method
    • Edit the "GET" method's "Method Request"
      • Change the "Request Validator" to "Validate query string parameters and header"
      • Add a required "URL Query String Parameter" of zipCode
      • Edit the "GET" method's "Integration Request" - Under "Mapping Templates", add a "Content-Type" of application/json using the "General template" of "Method Request Passthrough"

Deploy the new API Gateway. Note the newly generated Invoke URL and update the AIR_QUALITY_API_URL variable in .env, then redeploy your Lambdas by running ./deploy.sh again.

Setup Twilio

In Twilio, create a phone number and set it up. Under "Messaging", select "Webhook" for when "A Message Comes In", select "POST", and enter the deployed API Gateway URL for /inbound.

That's it! Your bot is now setup and ready to respond to texts.

Local Development

To test the bot locally, simple Flask server is included in devserver.py. Ensure proper dev values are in .env.dev, then execute:

make run-devserver

This will start a server with the appropriate routes and in-memory datastores, and it will also start a ngrok tunnel using pyngrok so the bot can be fully tested end-to-end.

CI Build

If you would like the project to build for you in a CI system, you may need to add the following environment variables to the CI's console. Their actual values do not matter (use dummy values, not real), but certain versions of the boto dependency need them to be present when initializing its configuration.

  • AWS_ACCESS_KEY_ID
  • AWS_DEFAULT_REGION
  • AWS_SECRET_ACCESS_KEY

Deploy Updates

After the initial installation in to your AWS environment, updates to the Lambdas can easily be redeployed at any time by rerunning the deploy script:

./deploy.sh
Comments
  • Bump boto3 from 1.14.31 to 1.14.33

    Bump boto3 from 1.14.31 to 1.14.33

    Bumps boto3 from 1.14.31 to 1.14.33.

    Changelog

    Sourced from boto3's changelog.

    1.14.33

    • api-change:resourcegroupstaggingapi: [botocore] Update resourcegroupstaggingapi client to latest version
    • api-change:storagegateway: [botocore] Update storagegateway client to latest version
    • api-change:wafv2: [botocore] Update wafv2 client to latest version
    • api-change:chime: [botocore] Update chime client to latest version
    • api-change:personalize-runtime: [botocore] Update personalize-runtime client to latest version

    1.14.32

    • api-change:organizations: [botocore] Update organizations client to latest version
    • api-change:ec2: [botocore] Update ec2 client to latest version
    • api-change:codebuild: [botocore] Update codebuild client to latest version
    • api-change:kafka: [botocore] Update kafka client to latest version
    • api-change:servicecatalog: [botocore] Update servicecatalog client to latest version
    • api-change:cloudfront: [botocore] Update cloudfront client to latest version
    • api-change:resource-groups: [botocore] Update resource-groups client to latest version
    • api-change:guardduty: [botocore] Update guardduty client to latest version
    • api-change:sesv2: [botocore] Update sesv2 client to latest version
    Commits
    • 7a40e44 Merge branch 'release-1.14.33'
    • df2f8e8 Bumping version to 1.14.33
    • fd84927 Add changelog entries from botocore
    • 4119540 Merge branch 'release-1.14.32'
    • 64d9623 Merge branch 'release-1.14.32' into develop
    • 5b39262 Bumping version to 1.14.32
    • d9136c0 Add changelog entries from botocore
    • e37f7f0 Merge branch 'release-1.14.31' into develop
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 5
  • Bump botocore from 1.17.31 to 1.17.33

    Bump botocore from 1.17.31 to 1.17.33

    Bumps botocore from 1.17.31 to 1.17.33.

    Changelog

    Sourced from botocore's changelog.

    1.17.33

    • api-change:resourcegroupstaggingapi: Update resourcegroupstaggingapi client to latest version
    • api-change:storagegateway: Update storagegateway client to latest version
    • api-change:wafv2: Update wafv2 client to latest version
    • api-change:chime: Update chime client to latest version
    • api-change:personalize-runtime: Update personalize-runtime client to latest version

    1.17.32

    • api-change:organizations: Update organizations client to latest version
    • api-change:ec2: Update ec2 client to latest version
    • api-change:codebuild: Update codebuild client to latest version
    • api-change:kafka: Update kafka client to latest version
    • api-change:servicecatalog: Update servicecatalog client to latest version
    • api-change:cloudfront: Update cloudfront client to latest version
    • api-change:resource-groups: Update resource-groups client to latest version
    • api-change:guardduty: Update guardduty client to latest version
    • api-change:sesv2: Update sesv2 client to latest version
    Commits
    • ad9a9f3 Merge branch 'release-1.17.33'
    • ec62938 Bumping version to 1.17.33
    • 863faa8 Update to latest endpoints
    • 8730f80 Update to latest models
    • 36b477b Merge branch 'release-1.17.32'
    • 10b8371 Merge branch 'release-1.17.32' into develop
    • cb4fbac Bumping version to 1.17.32
    • da45011 Update to latest endpoints
    • f90983e Update to latest models
    • 776a4cd Merge branch 'release-1.17.31' into develop
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 5
  • Bump moto from 1.3.4 to 1.3.14

    Bump moto from 1.3.4 to 1.3.14

    Bumps moto from 1.3.4 to 1.3.14.

    Changelog

    Sourced from moto's changelog.

    1.3.14

    General Changes:
        * Support for Python 3.8
        * Linting: Black is now enforced.
    

    New Services: * Athena * Config * DataSync * Step Functions

    New methods: * Athena: * create_work_group() * list_work_groups() * API Gateway: * delete_stage() * update_api_key() * CloudWatch Logs * list_tags_log_group() * tag_log_group() * untag_log_group() * Config * batch_get_resource_config() * delete_aggregation_authorization() * delete_configuration_aggregator() * describe_aggregation_authorizations() * describe_configuration_aggregators() * get_resource_config_history() * list_aggregate_discovered_resources() (For S3) * list_discovered_resources() (For S3) * put_aggregation_authorization() * put_configuration_aggregator() * Cognito * assume_role_with_web_identity() * describe_identity_pool() * get_open_id_token() * update_user_pool_domain() * DataSync: * cancel_task_execution() * create_location() * create_task() * start_task_execution() * EC2: * create_launch_template() * create_launch_template_version() * describe_launch_template_versions() * describe_launch_templates()

    ... (truncated)
    Commits
    • de1bbf6 1.3.14
    • dfd5264 Merge pull request #2556 from bblommers/change-log-next-version
    • 12899e9 ChangeLog update for next version
    • 0c3d7c4 Merge pull request #14 from spulec/master
    • b19abbc Merge pull request #2538 from edekadigital/fix-sns-subscribe-sms-validation
    • 1f9208e Merge pull request #2534 from william-richard/add-ssm-get-parameter-history-s...
    • 4a4ca2c Merge pull request #2533 from ianyon/lambda-get-by-arn
    • 3dbce22 Merge pull request #2532 from baolsen/datasync
    • 740dedc Merge pull request #2531 from bblommers/feature/2521
    • 2fca4f0 Merge pull request #2530 from asherf/travis
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 4
  • Bump boto3 from 1.7.84 to 1.14.31

    Bump boto3 from 1.7.84 to 1.14.31

    Bumps boto3 from 1.7.84 to 1.14.31.

    Changelog

    Sourced from boto3's changelog.

    1.14.31

    • api-change:resource-groups: [botocore] Update resource-groups client to latest version
    • api-change:ec2: [botocore] Update ec2 client to latest version
    • api-change:firehose: [botocore] Update firehose client to latest version
    • api-change:servicediscovery: [botocore] Update servicediscovery client to latest version
    • api-change:ecr: [botocore] Update ecr client to latest version
    • api-change:guardduty: [botocore] Update guardduty client to latest version

    1.14.30

    • api-change:ec2: [botocore] Update ec2 client to latest version
    • api-change:autoscaling: [botocore] Update autoscaling client to latest version
    • api-change:securityhub: [botocore] Update securityhub client to latest version
    • api-change:ivs: [botocore] Update ivs client to latest version
    • api-change:medialive: [botocore] Update medialive client to latest version
    • api-change:rds: [botocore] Update rds client to latest version
    • api-change:imagebuilder: [botocore] Update imagebuilder client to latest version

    1.14.29

    • api-change:glue: [botocore] Update glue client to latest version
    • api-change:datasync: [botocore] Update datasync client to latest version
    • api-change:ec2: [botocore] Update ec2 client to latest version
    • api-change:frauddetector: [botocore] Update frauddetector client to latest version
    • api-change:ssm: [botocore] Update ssm client to latest version
    • api-change:dms: [botocore] Update dms client to latest version

    1.14.28

    • api-change:mediaconnect: [botocore] Update mediaconnect client to latest version
    • api-change:sagemaker: [botocore] Update sagemaker client to latest version
    • api-change:kendra: [botocore] Update kendra client to latest version
    • api-change:fsx: [botocore] Update fsx client to latest version
    • api-change:frauddetector: [botocore] Update frauddetector client to latest version
    • api-change:mediapackage: [botocore] Update mediapackage client to latest version
    • api-change:macie2: [botocore] Update macie2 client to latest version
    • api-change:cloudwatch: [botocore] Update cloudwatch client to latest version
    • api-change:mq: [botocore] Update mq client to latest version

    1.14.27

    Commits
    • 974eda2 Merge branch 'release-1.14.31'
    • d8fc7df Bumping version to 1.14.31
    • 48794ea Add changelog entries from botocore
    • 7788885 Merge branch 'release-1.14.30'
    • fd6b1d8 Merge branch 'release-1.14.30' into develop
    • 85bdb9b Bumping version to 1.14.30
    • 970bade Add changelog entries from botocore
    • 1482cb3 Merge pull request #2514 from swetashre/readme
    • 2753656 Update readme and add code_of_conduct
    • a20d73f Merge branch 'release-1.14.29'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 3
  • Bump responses from 0.11.0 to 0.12.0

    Bump responses from 0.11.0 to 0.12.0

    Bumps responses from 0.11.0 to 0.12.0.

    Release notes

    Sourced from responses's releases.

    Responses 0.12.0

    • Removed support for python 3.4
    Changelog

    Sourced from responses's changelog.

    0.12.0

    • Remove support for Python 3.4.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 3
  • Bump boto3 from 1.7.84 to 1.12.34

    Bump boto3 from 1.7.84 to 1.12.34

    Bumps boto3 from 1.7.84 to 1.12.34.

    Changelog

    Sourced from boto3's changelog.

    1.12.34

    • api-change:iot: [botocore] Update iot client to latest version
    • api-change:mediaconnect: [botocore] Update mediaconnect client to latest version

    1.12.33

    • api-change:opsworkscm: [botocore] Update opsworkscm client to latest version
    • api-change:wafv2: [botocore] Update wafv2 client to latest version
    • api-change:glue: [botocore] Update glue client to latest version
    • api-change:elastic-inference: [botocore] Update elastic-inference client to latest version
    • api-change:lambda: [botocore] Update lambda client to latest version
    • api-change:mediastore: [botocore] Update mediastore client to latest version
    • api-change:pinpoint: [botocore] Update pinpoint client to latest version
    • api-change:storagegateway: [botocore] Update storagegateway client to latest version
    • api-change:rekognition: [botocore] Update rekognition client to latest version
    • api-change:fms: [botocore] Update fms client to latest version
    • api-change:organizations: [botocore] Update organizations client to latest version
    • api-change:detective: [botocore] Update detective client to latest version
    • api-change:appconfig: [botocore] Update appconfig client to latest version

    1.12.32

    • api-change:accessanalyzer: [botocore] Update accessanalyzer client to latest version

    1.12.31

    • api-change:globalaccelerator: [botocore] Update globalaccelerator client to latest version
    • api-change:kendra: [botocore] Update kendra client to latest version
    • api-change:servicecatalog: [botocore] Update servicecatalog client to latest version

    1.12.30

    • api-change:sagemaker: [botocore] Update sagemaker client to latest version
    • api-change:fsx: [botocore] Update fsx client to latest version
    • api-change:securityhub: [botocore] Update securityhub client to latest version

    1.12.29

    • api-change:managedblockchain: [botocore] Update managedblockchain client to latest version
    • api-change:ce: [botocore] Update ce client to latest version
    • api-change:application-insights: [botocore] Update application-insights client to latest version
    • api-change:detective: [botocore] Update detective client to latest version
    • api-change:es: [botocore] Update es client to latest version
    ... (truncated)
    Commits
    • 6d4219e Merge branch 'release-1.12.34'
    • 1866380 Bumping version to 1.12.34
    • 13f140e Add changelog entries from botocore
    • 47fcd1e Merge branch 'release-1.12.33'
    • 76bba1b Merge branch 'release-1.12.33' into develop
    • f6076b4 Bumping version to 1.12.33
    • 3a07b3f Add changelog entries from botocore
    • 49f54bb Merge branch 'release-1.12.32'
    • 06357ad Merge branch 'release-1.12.32' into develop
    • 8a1cfcd Bumping version to 1.12.32
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

    You can always request more updates by clicking Bump now in your Dependabot dashboard.

    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump botocore from 1.10.84 to 1.17.31

    Bump botocore from 1.10.84 to 1.17.31

    Bumps botocore from 1.10.84 to 1.17.31.

    Changelog

    Sourced from botocore's changelog.

    1.17.31

    • api-change:resource-groups: Update resource-groups client to latest version
    • api-change:ec2: Update ec2 client to latest version
    • api-change:firehose: Update firehose client to latest version
    • api-change:servicediscovery: Update servicediscovery client to latest version
    • api-change:ecr: Update ecr client to latest version
    • api-change:guardduty: Update guardduty client to latest version

    1.17.30

    • api-change:ec2: Update ec2 client to latest version
    • api-change:autoscaling: Update autoscaling client to latest version
    • api-change:securityhub: Update securityhub client to latest version
    • api-change:ivs: Update ivs client to latest version
    • api-change:medialive: Update medialive client to latest version
    • api-change:rds: Update rds client to latest version
    • api-change:imagebuilder: Update imagebuilder client to latest version

    1.17.29

    • api-change:glue: Update glue client to latest version
    • api-change:datasync: Update datasync client to latest version
    • api-change:ec2: Update ec2 client to latest version
    • api-change:frauddetector: Update frauddetector client to latest version
    • api-change:ssm: Update ssm client to latest version
    • api-change:dms: Update dms client to latest version

    1.17.28

    • api-change:mediaconnect: Update mediaconnect client to latest version
    • api-change:sagemaker: Update sagemaker client to latest version
    • api-change:kendra: Update kendra client to latest version
    • api-change:fsx: Update fsx client to latest version
    • api-change:frauddetector: Update frauddetector client to latest version
    • api-change:mediapackage: Update mediapackage client to latest version
    • api-change:macie2: Update macie2 client to latest version
    • api-change:cloudwatch: Update cloudwatch client to latest version
    • api-change:mq: Update mq client to latest version

    1.17.27

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump botocore from 1.17.31 to 1.17.32

    Bump botocore from 1.17.31 to 1.17.32

    Bumps botocore from 1.17.31 to 1.17.32.

    Changelog

    Sourced from botocore's changelog.

    1.17.32

    • api-change:organizations: Update organizations client to latest version
    • api-change:ec2: Update ec2 client to latest version
    • api-change:codebuild: Update codebuild client to latest version
    • api-change:kafka: Update kafka client to latest version
    • api-change:servicecatalog: Update servicecatalog client to latest version
    • api-change:cloudfront: Update cloudfront client to latest version
    • api-change:resource-groups: Update resource-groups client to latest version
    • api-change:guardduty: Update guardduty client to latest version
    • api-change:sesv2: Update sesv2 client to latest version
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump boto3 from 1.14.31 to 1.14.32

    Bump boto3 from 1.14.31 to 1.14.32

    Bumps boto3 from 1.14.31 to 1.14.32.

    Changelog

    Sourced from boto3's changelog.

    1.14.32

    • api-change:organizations: [botocore] Update organizations client to latest version
    • api-change:ec2: [botocore] Update ec2 client to latest version
    • api-change:codebuild: [botocore] Update codebuild client to latest version
    • api-change:kafka: [botocore] Update kafka client to latest version
    • api-change:servicecatalog: [botocore] Update servicecatalog client to latest version
    • api-change:cloudfront: [botocore] Update cloudfront client to latest version
    • api-change:resource-groups: [botocore] Update resource-groups client to latest version
    • api-change:guardduty: [botocore] Update guardduty client to latest version
    • api-change:sesv2: [botocore] Update sesv2 client to latest version
    Commits
    • 4119540 Merge branch 'release-1.14.32'
    • 5b39262 Bumping version to 1.14.32
    • d9136c0 Add changelog entries from botocore
    • e37f7f0 Merge branch 'release-1.14.31' into develop
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump pyngrok from 4.1.3 to 4.1.4

    Bump pyngrok from 4.1.3 to 4.1.4

    Bumps pyngrok from 4.1.3 to 4.1.4.

    Changelog

    Sourced from pyngrok's changelog.

    4.1.4 - 2020-07-05

    Fixed

    • Inconsistent support for a local directory (ex. file:///) being passed as ngrok.connect()'s port. This is valid, and ngrok will use its built-in fileserver for the tunnel.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump boto3 from 1.14.5 to 1.14.6

    Bump boto3 from 1.14.5 to 1.14.6

    Bumps boto3 from 1.14.5 to 1.14.6.

    Changelog

    Sourced from boto3's changelog.

    1.14.6

    • api-change:support: [botocore] Update support client to latest version
    • api-change:mediaconvert: [botocore] Update mediaconvert client to latest version
    • api-change:meteringmarketplace: [botocore] Update meteringmarketplace client to latest version
    • api-change:route53: [botocore] Update route53 client to latest version
    • api-change:ssm: [botocore] Update ssm client to latest version
    • api-change:rds: [botocore] Update rds client to latest version
    • api-change:sesv2: [botocore] Update sesv2 client to latest version
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
Owner
Alex Laird
Leader • Software Creator • Visionary • Learner • [he/him] Engineer @ Twilio
Alex Laird
Tracker to check the covid shot slot availability in India and send mobile alerts via Twilio Messaging Service.

Cowin-Slot-Tracker Tracker to check the covid vaccine slot availability in India and send mobile notifications through Twilio Messaging Service. Requi

invalid username 27 Nov 12, 2022
Automatically compile an AWS Service Control Policy that ONLY allows AWS services that are compliant with your preferred compliance frameworks.

aws-allowlister Automatically compile an AWS Service Control Policy that ONLY allows AWS services that are compliant with your preferred compliance fr

Salesforce 189 Dec 8, 2022
Automated AWS account hardening with AWS Control Tower and AWS Step Functions

Automate activities in Control Tower provisioned AWS accounts Table of contents Introduction Architecture Prerequisites Tools and services Usage Clean

AWS Samples 20 Dec 7, 2022
Implement backup and recovery with AWS Backup across your AWS Organizations using a CI/CD pipeline (AWS CodePipeline).

Backup and Recovery with AWS Backup This repository provides you with a management and deployment solution for implementing Backup and Recovery with A

AWS Samples 8 Nov 22, 2022
Design and build a wrapper for the Open Weather API current weather data service

Design and build a wrapper for the Open Weather API current weather data service that returns a city's temperature, with caching, also allowing for the temperature of the latest queried cities that are still validly cached to be retrieved.

Duan Rafael Ribeiro 1 Jun 27, 2022
A Python module for communicating with the Twilio API and generating TwiML.

twilio-python The default branch name for this repository has been changed to main as of 07/27/2020. Documentation The documentation for the Twilio AP

Twilio 1.6k Jan 5, 2023
A Python module for communicating with the Twilio API and generating TwiML.

twilio-python The default branch name for this repository has been changed to main as of 07/27/2020. Documentation The documentation for the Twilio AP

Twilio 1.6k Jan 5, 2023
Whatsapp-bot - Whatsapp chatbot build with python and twilio

Whatsapp-bot This is a Whatsapp Chatbot that responds with quotes, reply owners

arinzejustinng 1 Jan 14, 2022
Hellomotoot - PSTN Mastodon Client using Mastodon.py and the Twilio API

Hello MoToot PSTN Mastodon Client using Mastodon.py and the Twilio API. Allows f

Lorenz Diener 9 Nov 22, 2022
The Official Twilio SendGrid Led, Community Driven Python API Library

The default branch name for this repository has been changed to main as of 07/27/2020. This library allows you to quickly and easily use the SendGrid

Twilio SendGrid 1.4k Jan 7, 2023
This project, search all entities related to A2P in twilio

Mirror A2P Twilio This project, search all entities related to A2P in twilio (phone numbers, messaging services, campaign, A2P brand information and P

Iván Cárdenas 2 Nov 3, 2022
A python notification tool used for sending you text messages when certain conditions are met in the game, Neptune's Pride.

A python notification tool used for sending you text messages when certain conditions are met in the game, Neptune's Pride.

Paul Clarke 1 Jan 16, 2022
Automatically copy the Discord Status of a Friend you share a server with (conditions have to be satisfied to work)

CopyDiscordStatusOfUser-SelfBot Basic Function Automatically copy the Discord Status of a friend User whom you share a server with (These conditions h

Certified Baller 5 Aug 5, 2022
Use an air-gapped Raspberry Pi Zero to sign for Bitcoin transactions! (and do other cool stuff)

Hello World! Build your own offline, airgapped Bitcoin transaction signing device for less than $35! Also generate seed word 24 or generate a seed phr

null 371 Dec 31, 2022
Plays air warning sound when detects a certain phrase or a word in a specified Telegram chat.

Tryvoha Bot Disclaimer: this is more a convenient naming, rather than a real bot. It is designed to play air warning sound when detects a certain phra

Dmytro Novikov 2 Mar 2, 2022
Project template for using aws-cdk, Chalice and React in concert, including RDS Postgresql and AWS Cognito

What is This? This repository is an opinonated project template for using aws-cdk, Chalice and React in concert. Where aws-cdk and Chalice are in Pyth

Rasmus Jones 4 Nov 7, 2022
AWS Auto Inventory allows you to quickly and easily generate inventory reports of your AWS resources.

Photo by Denny Müller on Unsplash AWS Automated Inventory ( aws-auto-inventory ) Automates creation of detailed inventories from AWS resources. Table

AWS Samples 123 Dec 26, 2022
A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier

A suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier

Amazon Web Services - Labs 1.9k Jan 7, 2023