Skip to main content

Python library for interaction with the AWS Pricing API

Project description

pyutu
-----
.. image:: https://img.shields.io/pypi/v/pyutu.svg
:target: https://pypi.python.org/pypi/pyutu

.. image:: https://img.shields.io/pypi/dm/pyutu.svg
:target: https://pypi.python.org/pypi/pyutu

.. image:: https://secure.travis-ci.org/lashex/pyutu.png?branch=master
:target: http://travis-ci.org/lashex/pyutu

A Python-based CLI and library for cloud pricing APIs. Currently covering `AWS Pricing <http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html>`_.

**utu** – from the Maori_ language, can be a verb that means to repay, pay, ...
.. _Maori: http://maoridictionary.co.nz/word/8937

**pyutu** – when said fast, sounds like "pay you too" ... which seems appropriate.

Initially, this library just strives to simplify pulling product details and pricing terms from a Service's Offer File for a given Region.

Installation
~~~~~~~~~~~~

.. code-block:: bash
pip install pyutu


CLI Examples
~~~~~~~~~~~~
Activate `help`

.. code-block:: bash

pyutu --help


A CLI example that shows details from the pricing index file.

.. code-block:: bash

$> pyutu index
Format Version: v1.0
Publication Date: 2015-12-15T23:51:56Z
Services Offered: AmazonDynamoDB, AmazonVPC, AmazonSimpleDB, AmazonGlacier,
AmazonEC2, AmazonS3, AmazonSES, AmazonRoute53, AmazonElastiCache, AmazonRDS,
AmazonRedshift, awskms, AmazonCloudFront
...snip...

A CLI example showing how to get EC2 Linux on-demand prices in the default
region for the `m4.large` instance type.

.. code-block:: bash

$> pyutu price ec2 -a operatingSystem Linux -a instanceType m4.large
Service Alias: AmazonEC2
URL: https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.json
Region: us-west-2
Product Terms: OnDemand
Filtering Attributes: {'instanceType': 'm4.large', 'operatingSystem': 'Linux'}
Rate Code: 8ZSNJR8WJ5729VXM.JRTCKXETXF.6YS6EN2CT7 price: {
"beginRange": "0",
"description": "$0.139 per Dedicated Usage Linux m4.large Instance Hour",
"effectiveDate": "2015-12-01T00:00:00Z",
"endRange": "Inf",
"pricePerUnit": {
"USD": "0.1390000000"
},
"regionId": "us-west-2",
"sku": "8ZSNJR8WJ5729VXM",
"term_description": "OnDemand",
"unit": "Hrs"
}
Rate Code: B2M25Y2U9824Q5TG.JRTCKXETXF.6YS6EN2CT7 price: {
"beginRange": "0",
"description": "$0.126 per On Demand Linux m4.large Instance Hour",
"effectiveDate": "2015-12-01T00:00:00Z",
"endRange": "Inf",
"pricePerUnit": {
"USD": "0.1260000000"
},
"regionId": "us-west-2",
"sku": "B2M25Y2U9824Q5TG",
"term_description": "OnDemand",
"unit": "Hrs"
}
Rate Code: 62WK2ZX9BN3SYAXW.JRTCKXETXF.6YS6EN2CT7 price: {
"beginRange": "0",
"description": "$0.000 per Linux m4.large Dedicated Host Instance hour",
"effectiveDate": "2015-12-01T00:00:00Z",
"endRange": "Inf",
"pricePerUnit": {
"USD": "0.0000000000"
},
"regionId": "us-west-2",
"sku": "62WK2ZX9BN3SYAXW",
"term_description": "OnDemand",
"unit": "Hrs"
}
Total Prices Found: 3
Time: 5.768927000000001 secs


A CLI example showing how to get EC2 Linux product details in the default region for the shared tenancy `m4.large` instance type

.. code-block:: bash

$> pyutu product ec2 -a operatingSystem Linux -a instanceType m4.large -a tenancy Shared
Service Alias: AmazonEC2
URL: https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.json
Region: us-west-2
Product Terms: OnDemand
Filtering Attributes: {'operatingSystem': 'Linux', 'tenancy': 'Shared', 'instanceType': 'm4.large'}
Product SKU: B2M25Y2U9824Q5TG product: {
"offerCode": "AmazonEC2",
"product": {
"attributes": {
"clockSpeed": "2.4 GHz",
"currentGeneration": "Yes",
"dedicatedEbsThroughput": "450 Mbps",
"enhancedNetworkingSupported": "Yes",
"instanceFamily": "General purpose",
"instanceType": "m4.large",
"licenseModel": "No License required",
"location": "US West (Oregon)",
"locationType": "AWS Region",
"memory": "8 GiB",
"networkPerformance": "Moderate",
"operatingSystem": "Linux",
"operation": "RunInstances",
"physicalProcessor": "Intel Xeon E5-2676 v3 (Haswell)",
"preInstalledSw": "NA",
"processorArchitecture": "64-bit",
"processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
"servicecode": "AmazonEC2",
"storage": "EBS only",
"tenancy": "Shared",
"usagetype": "USW2-BoxUsage:m4.large",
"vcpu": "2"
},
"productFamily": "Compute Instance",
"sku": "B2M25Y2U9824Q5TG"
},
"regionId": "us-west-2",
"term": {
"B2M25Y2U9824Q5TG.JRTCKXETXF": {
"effectiveDate": "2015-12-01T00:00:00Z",
"offerTermCode": "JRTCKXETXF",
"priceDimensions": {
"B2M25Y2U9824Q5TG.JRTCKXETXF.6YS6EN2CT7": {
"appliesTo": [],
"beginRange": "0",
"description": "$0.126 per On Demand Linux m4.large Instance Hour",
"endRange": "Inf",
"pricePerUnit": {
"USD": "0.1260000000"
},
"rateCode": "B2M25Y2U9824Q5TG.JRTCKXETXF.6YS6EN2CT7",
"unit": "Hrs"
}
},
"sku": "B2M25Y2U9824Q5TG",
"termAttributes": {}
}
},
"term_description": "OnDemand"
}
Total Products Found: 1
Time: 5.734775 secs


A CLI example showing how to get all on-demand DDB prices in the default region.

.. code-block:: bash

$> pyutu price ddb
Service Alias: AmazonDynamoDB
URL: https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonDynamoDB/current/index.json
Region: us-west-2
Product Terms: OnDemand
Filtering Attributes: {}
Rate Code: VTDJ9RVHJGJP999U.JRTCKXETXF.6YS6EN2CT7 price: {
"beginRange": "0",
"description": "$0.00 per GB - US West (Oregon) data transfer from EUC1 (FRA)",
"effectiveDate": "2015-07-01T00:00:00Z",
"endRange": "Inf",
"pricePerUnit": {
"USD": "0.0000000000"
},
"regionId": "us-west-2",
"sku": "VTDJ9RVHJGJP999U",
"term_description": "OnDemand",
"unit": "GB"
}
...snip...
Total Prices Found: 31
Time: 0.417241 secs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyutu-0.4.0.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyutu-0.4.0-py3.5.egg (4.1 kB view details)

Uploaded Egg

File details

Details for the file pyutu-0.4.0.tar.gz.

File metadata

  • Download URL: pyutu-0.4.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyutu-0.4.0.tar.gz
Algorithm Hash digest
SHA256 959ec5ae512f84a96144ff7d6849a124c71133e414db682358109337f6f9c4aa
MD5 e98a1650c258a3430048505e787a8945
BLAKE2b-256 744e6bb7399c77c709840ad6935cb1f56939905c253c45c502a26cda92d1dc84

See more details on using hashes here.

File details

Details for the file pyutu-0.4.0-py3.5.egg.

File metadata

  • Download URL: pyutu-0.4.0-py3.5.egg
  • Upload date:
  • Size: 4.1 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyutu-0.4.0-py3.5.egg
Algorithm Hash digest
SHA256 e3d99d76157082edcfc9c3baeda1ea66036c9431ff2cce47cc19ed8ff3b99bb1
MD5 047b13a80d19b3b8f96e81df39238402
BLAKE2b-256 efe8a6cbcd6f57ea4770d62efd0fe5d0704ab98662239d0c01e2b4debbdac70e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page