Package: httpaws
httpAWS: a command line HTTP tool for AWS ServiceshttpAWS is a command line HTTP client for AWS services. Its goal is to make CLI interaction with AWS web services as
human-friendly as possible. It provides a simplehttpawscommand that allows for sending HTTP requests to AWS
services using a simple and natural syntax, and displays colorized output. httpAWS can be used for testing, debugging,
and generally interacting direly with AWS services with HTTP requests.httpAWS directly makes HTTP calls to AWS service endpoints using therequestsandaws-requests-authmodules.This is a low-level command-line tool intended for use by developers so that they can easily make direct HTTP calls
to AWS services.  It is effectively a command-line programmatic replacement for using a graphical tool likePostmanand was inspired by tools likeHTTPiebut is specific to
AWS services.Main featuresExpressive and intuitive syntaxFormatted and colorized terminal outputBuilt-in XML supportPython 2.7 and 3.x supportLinux, macOS and Windows supportInstallationA universal installation method (that works on Windows, Mac OS X, Linux, …,
and always provides the latest version) is to usepip:# Make sure we have an up-to-date version of pip and setuptools:$pipinstall--upgradepipsetuptools

$pipinstall--upgradehttpaws(Ifpipinstallation fails for some reason, you can tryeasy_install httpawsas a fallback.)Python versionAlthough Python 2.7 is supported as well, it is strongly recommended to
install httpAWS against the latest Python 3.x whenever possible. That will
ensure that some of the newer HTTP features, such asSNI (Server Name Indication), work out of the box.
Python 3 is the default for Homebrew installations starting with version 0.9.4.Unstable versionYou can also install the latest unreleased development version directly from
themasterbranch on GitHub.  It is a work-in-progress of a future stable
release so the experience might be not as smooth.$pipinstall-Uhttps://github.com/http-aws/http-aws/archive/master.tar.gzUsageHello World:$httpaws-sec2DescribeVpcsSynopsis:$httpaws[flags]<API>See alsohttpaws -hfor detailed help:$httpaws-h
usage:httpaws[-h][-rREGION][-sSERVICE][-eENDPOINT][-cCREDS][-vVERSION][-p][-w]api

httpawsv0.0.2:ACLIHTTPclientforAWSserviceswithsyntaxhighlighting

positionalarguments:apinameoftheAPItocall-e.g."DescribeVpcs"optionalarguments:-h,--helpshowthishelpmessageandexit-rREGION,--regionREGIONAWSregion.Overridesconfig/env-e.g.us-east-1-sSERVICE,--serviceSERVICEAWSservice-e.g.ec2,s3,etc.-eENDPOINT,--endpointENDPOINToverridecommand'sdefaultURLwiththegivenURL-e.g.ec2.us-east-1.amazonaws.com-cCREDS,--credsCREDSoverrideAWSAccessKeyIdandAWSSecretAccessKey-i.e.<Access_Key>:<Secret_Key>-vVERSION,--versionVERSIONAPIversiontousefortheservice-p,--paginatepaginatelongoutput-w,--wrapwraplonglinesinpaginatedoutput(insteadofchop)SeetheAWSDocumentationforAPIreferencesforeachservice:
https://docs.aws.amazon.comAuthenticationThe currently supported authentication scheme is provided by theaws-requests-authPython module. The two modes are are Automatic
and Manual. There is one flag that controls authentication:FlagDescription-c/--credsPass a<AWS_Access_Key_Id>:<AWS_Secret_Access_Key>pair as the argumentAutomatic authIf the-cflag is not provided, then httpAWS will attempt to automatically gather your AWS credentials usingbotocore.$httpawsDescribeVpcsManual auth$http-c<Access_Key>:<Secret_Key>DescribeVpcsHTTP redirectsHTTP redirects are not followed and only the first esponse is shown.Output optionsAt this time, httpAWS only outputs the final response and the whole response
message is printed (headers as well as the body).Terminal outputhttpAWS does several things by default in order to make its terminal output
easy to read.Colors and formattingSyntax highlighting is applied to HTTP headers bodies (where it makes
sense).Also, the following formatting is applied:XML data is indented and unicode escapes are converted to the characters they represent.Redirected outputBy default, httpAWS sends all output tostdout.The reason is to make piping httpAWS's output to other programs work with no extra flags. Most of the time, only the raw
response body is of an interest when the output is redirected.Force colorizing and formatting, and show both the request and the response inlesspager:$httpaws-pDescribeVpcsThe-pflag tells httpAWS to pipe the output tolessand to interpret color escape sequences included
httpAWS`s output.Piping outputYou can also redirect the response body to another program:$httpaws-ss3List|grep"MagnumOpus.txt"ResponsesResponses are downloaded synchronously and printed when the download is complete which is convenient for formatting and
coloring moderate sized responses.  However, if you want to download large files without using too much memory, this isn't
the tool you are looking for.SessionsAt this time every request httpAWS makes is completely independent of any previous ones to the same host and httpAWS
does not support persistent sessions.ConfighttpAWS uses the same config files as used by theaws cli.Config file locationThe default location of the configuration files are~/.aws/configand~/.aws/credentials.Configurable optionsThe default AWS region is read from theconfigfile, while the default AWS access and secret keys are read from thecredentialsfile.Best practicesThe-poption for paginating long output is excellent when a human is reading this output, but
is not typically desirable during non-interactive invocations. You most likely do not want to use
use the-poption when httpAWS is invoke from example form a cron job.  Also, if you wnat to redirect or
pipe the output of httpAWS, the-pflag should also be avoided.MetaUser supportPlease use the following support channels:GitHub issuesfor bug reports, feature requests, and to ask questionsGitHub pull requestsfor bug fixes and feature submissionsRelated projectsDependenciesUnder the hood, httpAWS uses these amazing libraries:RequestsPython HTTP library for humansaws-requests-authAWS signature version 4 signing process for the Python requests modulebotocoreThe low-level, core functionality of boto 3 (the official AWS Python SDK)PygmentsPython syntax highlighterColoramaSimple cross-platform colored terminal text in PythonlxmlXML with PythonAlternativesHTTPiean awesome and much more feature rich HTTP CLI that isn't specific to AWScurla "Swiss army knife" command line tool and library for transferring data with URLsWarningThis tool is intended for development and educational purposes.  It is NOT intended for robust and reliable
administration of AWS services.  For interaction with production AWS services, it is highly recommended that you use
an officially supported tool specifically designed for that purpose such as any of the following:AWS ConsoleAWS CLIAWS ShellAWS SDK for Python (boto3)ContributingSeeCONTRIBUTING.mdChange logSeeCHANGELOG.mdLicenceApache 2.0:LICENSEAuthorsTodd Leonhardtcreated httpaws andthese fine peoplehave contributed.