{ "info": { "author": "Garrett Heel", "author_email": "capacity@lyft.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "==========\nawspricing\n==========\n\nA Python library for working with the `AWS Price List Query API `_.\n\nAs of version 2.0.0, `awspricing` uses boto3 Price List Query API.\nThis requires Price List Query API IAM roles: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-permissions-ref.html#example-policy-pe-api\n\nVersions before 2.0.0 utilized AWS Price Offer files.\n\nFeatures:\n\n* Service-specific helpers (only EC2 and RDS thus far)\n* Local caching support\n\nInstallation\n------------\n\n.. code-block:: sh\n\n $ pip install awspricing\n\nUsage\n-----\n\n.. code-block:: python\n\n import awspricing\n\n ec2_offer = awspricing.offer('AmazonEC2')\n\n ec2_offer.search_skus(\n instance_type='c4.large',\n location='US East (N. Virginia)',\n operating_system='Linux',\n ) # {'4C7N4APU9GEUZ6H6', 'MBQPYDJSY3BY84BH', 'MDKVAJXMJGZFDJUE'}\n\n ec2_offer.reserved_hourly(\n 'c4.xlarge',\n operating_system='Linux',\n lease_contract_length='3yr',\n offering_class='convertible',\n purchase_option='Partial Upfront',\n region='us-east-1'\n ) # 0.10845205479452055\n\n rds_offer = awspricing.offer('AmazonRDS')\n\n rds_offer.search_skus(\n instance_type='db.m4.large',\n location='US East (N. Virginia)',\n database_engine='MySQL',\n license_model='No license required',\n deployment_option='Multi-AZ'\n ) # {'QPZNR6MYN432XTPU'}\n\n rds_offer.ondemand_hourly(\n 'db.m4.large',\n 'MySQL',\n license_model='No license required',\n deployment_option='Multi-AZ',\n region='us-east-1'\n ) # 0.35\n..\n\n**Note** : AWS provides the pricing list in json format with no warranty of format change. If a format change by AWS causes a breaking change; the below mitigation can be used at the cost of \"stale\" pricing.\n\n.. code-block:: python\n\n import awspricing\n\n # For finding EC2 price list versions see script below or download https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/index.json\n ec2_offer_old = awspricing.offer('AmazonEC2', version='some_other_version')\n\n # For finding RDS price list versions see script below or download https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonRDS/index.json\n rds_offer_old = awspricing.offer('AmazonRDS', version='some_other_version')\n\n\n.. code-block:: sh\n\n $ # EC2\n $ curl https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/index.json | python -m json.tool\n\n $ # RDS\n $ curl https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonRDS/index.json | python -m json.tool\n\n\nConfiguration\n-------------\n\nCache\n~~~~~\n\nCache can be configured via the following environment variables:\n\n``AWSPRICING_USE_CACHE``: Whether to use a simple file-based cache. Valid values are ``0|1``. Defaults to ``0`` (false).\n\n``AWSPRICING_CACHE_PATH``: Prefix to write cache files. Defaults to ``/tmp/awspricing``.\n\n``AWSPRICING_CACHE_MINUTES``: Number of minutes to keep cache for. Defaults to ``1440`` (1 day).\n\n\nDeveloping\n----------\n\nEnvironment setup\n~~~~~~~~~~~~~~~~~\n\nRun the following commands (preferably in a virtualenv) to setup your environment:\n\n.. code-block:: sh\n python setup.py develop\n pip install -r test-requirements.txt\n\nRunning unit tests\n~~~~~~~~~~~~~~~~~~\n\nSimply run `make test` after environment setup to run unit tests.\n\nRunning mypy (type checker)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe following commands can be used to run type checks. Note that a ``python3``\ninterpreter is required for mypy.\n\n.. code-block:: sh\n\n pip install mypy\n make test_mypy", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lyft/awspricing", "keywords": "", "license": "apache2", "maintainer": "", "maintainer_email": "", "name": "awspricing", "package_url": "https://pypi.org/project/awspricing/", "platform": "", "project_url": "https://pypi.org/project/awspricing/", "project_urls": { "Homepage": "https://github.com/lyft/awspricing" }, "release_url": "https://pypi.org/project/awspricing/2.0.3/", "requires_dist": null, "requires_python": "", "summary": "An SDK for AWS Pricing", "version": "2.0.3" }, "last_serial": 5913166, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "78edb81e73dcc67ccddc51926a58d973", "sha256": "643e61e1587cd0579554c2981493fbf90876b46c8d93aa1daf391c96a32c57e3" }, "downloads": -1, "filename": "awspricing-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "78edb81e73dcc67ccddc51926a58d973", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9849, "upload_time": "2017-02-10T19:57:37", "url": "https://files.pythonhosted.org/packages/02/72/1e8872b9fba34ebb6772de7d2c8b6d11ebd305235bcaec240f27da856835/awspricing-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "569cdcc87ca94c88de2177e7d4766b36", "sha256": "bbf310747769cd648e47742c79d35801a1909e9d1be924309a39c52b6766ea0f" }, "downloads": -1, "filename": "awspricing-1.0.0.tar.gz", "has_sig": false, "md5_digest": "569cdcc87ca94c88de2177e7d4766b36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6938, "upload_time": "2017-02-10T19:57:39", "url": "https://files.pythonhosted.org/packages/6a/6a/6ce7bddf693208618a0b3261a1e7a7976e539cec10c098a2f347d19bee9a/awspricing-1.0.0.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "2e6f929060c8b7c897d825d58b407ab7", "sha256": "83e9c82a7151dd8582b8d1d1dbbae72eb11f9b027efced173de619175f7616c7" }, "downloads": -1, "filename": "awspricing-1.0.2.tar.gz", "has_sig": false, "md5_digest": "2e6f929060c8b7c897d825d58b407ab7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7534, "upload_time": "2017-04-24T20:12:09", "url": "https://files.pythonhosted.org/packages/97/86/75ecb7998a9f0c05f90eb5d0090fcdf82e381804ab993af2f07cfaaab302/awspricing-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "eba3407bfee8520e26972968469c7b1a", "sha256": "b2ee5522620984fd89dcf1b4562c3598fa0b224a5196269eaeafd980f7fb810a" }, "downloads": -1, "filename": "awspricing-1.1.0.tar.gz", "has_sig": false, "md5_digest": "eba3407bfee8520e26972968469c7b1a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8125, "upload_time": "2017-05-22T16:35:20", "url": "https://files.pythonhosted.org/packages/b7/0f/adf4dc08ffab36a25f48c46abeaff221aede22b433ebf2ef81ccd6c367a5/awspricing-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "702738e54e2f260d290edaaef62675c7", "sha256": "ed837f815739576d722f2b1c1111c1c2c2f45d4d25a6f5c111975c3f84c32d79" }, "downloads": -1, "filename": "awspricing-1.1.1.tar.gz", "has_sig": false, "md5_digest": "702738e54e2f260d290edaaef62675c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8151, "upload_time": "2017-07-17T17:56:44", "url": "https://files.pythonhosted.org/packages/e5/f8/cb305945d2c9c58313484eb033f2006e9e3f4b08bf9108de05b71d4847d6/awspricing-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "2f99036b628cc4ac278b1408a41b3bc7", "sha256": "bca57ddf5f593fac29e47ce5c46270fc11d04656b7623ea9dc0ddb1fd822b612" }, "downloads": -1, "filename": "awspricing-1.1.2.tar.gz", "has_sig": false, "md5_digest": "2f99036b628cc4ac278b1408a41b3bc7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8736, "upload_time": "2018-01-12T16:15:58", "url": "https://files.pythonhosted.org/packages/ef/60/b6b86df9474ee4a41d66c9bb41f317eb25515ca2e157527510836d95ccb3/awspricing-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "5cad62fa7391017324f4d4529fc938ce", "sha256": "957fd2bdf3eca88125df0c933351c3aea8aecd5dbdbc6085e87c0d482f4e8eb8" }, "downloads": -1, "filename": "awspricing-1.1.3.tar.gz", "has_sig": false, "md5_digest": "5cad62fa7391017324f4d4529fc938ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8713, "upload_time": "2018-07-05T17:27:04", "url": "https://files.pythonhosted.org/packages/63/6f/322e965e94d4fff4ee352ebeaedc67d2a97251bad235f58fb21cd2bcc0fd/awspricing-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "df6159a94fb17730746cb47c4771b021", "sha256": "8762050b02451660388891647ad7b49b84726d8a85934c32b4e41ba5784b094f" }, "downloads": -1, "filename": "awspricing-1.1.4.tar.gz", "has_sig": false, "md5_digest": "df6159a94fb17730746cb47c4771b021", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8884, "upload_time": "2018-07-11T17:42:32", "url": "https://files.pythonhosted.org/packages/06/af/bcb63d44ce5737a16e1523ad1f5504280540456b96ce77dcb44c356d0999/awspricing-1.1.4.tar.gz" } ], "1.1.5": [ { "comment_text": "", "digests": { "md5": "8bf0aaee2fb7af7e44ae5d9338858d97", "sha256": "4e868319cc6dab75e37b0c66ea8e69a8a1b13ebc1b8aad94ff3b49d95ec52358" }, "downloads": -1, "filename": "awspricing-1.1.5.tar.gz", "has_sig": false, "md5_digest": "8bf0aaee2fb7af7e44ae5d9338858d97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9036, "upload_time": "2018-11-13T00:38:29", "url": "https://files.pythonhosted.org/packages/9c/d6/d1efff5e500aa276c5d7b8004f5ab757f1d0e2e12a8ee6c2b5bef87694d8/awspricing-1.1.5.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "32d197d14c47fc9c2e5b2b876d73d4b4", "sha256": "7c4bb6ba1d6a2aefb6c9760a1f5283c177c21c752efadf2a33bea006bf71e775" }, "downloads": -1, "filename": "awspricing-2.0.0.tar.gz", "has_sig": false, "md5_digest": "32d197d14c47fc9c2e5b2b876d73d4b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9219, "upload_time": "2019-05-02T17:10:14", "url": "https://files.pythonhosted.org/packages/f6/f3/7d0072dc1971a6fefe85bfdeef05acb164140ad68607c0fc497116e6040c/awspricing-2.0.0.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "521c496052c0d70d88ed973e336a2fec", "sha256": "5ec59efba68bae753384e500b5dde8783d2ecae132c0a4078f84babc651c1275" }, "downloads": -1, "filename": "awspricing-2.0.3.tar.gz", "has_sig": false, "md5_digest": "521c496052c0d70d88ed973e336a2fec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9175, "upload_time": "2019-10-01T15:37:29", "url": "https://files.pythonhosted.org/packages/3c/0d/3d164fe9a279db2dc5f9ddde5b5e5eae210a566d810e437cbd1170bb5452/awspricing-2.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "521c496052c0d70d88ed973e336a2fec", "sha256": "5ec59efba68bae753384e500b5dde8783d2ecae132c0a4078f84babc651c1275" }, "downloads": -1, "filename": "awspricing-2.0.3.tar.gz", "has_sig": false, "md5_digest": "521c496052c0d70d88ed973e336a2fec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9175, "upload_time": "2019-10-01T15:37:29", "url": "https://files.pythonhosted.org/packages/3c/0d/3d164fe9a279db2dc5f9ddde5b5e5eae210a566d810e437cbd1170bb5452/awspricing-2.0.3.tar.gz" } ] }