{ "info": { "author": "Aquil Abdullah", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "\n# py-asl\nPython Object Model for Amazon State Language\n\nThis package provides an object model for creating Step Functions\n\n## Examples\n\n### Simple Hello World Example\n\n```python\nimport py_asl\n\ndef hello_world():\n state_machine = py_asl.StateMachine(Comment=\"A simple minimal example of the States language\", StartAt=\"Hello World\")\n state = py_asl.TaskState(\"Hello World\", Resource=\"arn:aws:lambda:us-east-1:123456789012:function:HelloWorld\", End=True)\n state_machine.States.append(state)\n hw = state_machine.dumps(indent=2)\n return hw\n\nprint(hello_world())\n```\n\n### Example of creating a Parallel Task\n\n```python\nimport py_asl\n\ndef parallel_states():\n state1 = py_asl.TaskState(\"Hello World\", Resource=\"arn:aws:lambda:us-east-1:123456789012:function:HelloWorld\", End=True)\n state2 = py_asl.TaskState(\"Goodbye World\", Resource=\"arn:aws:lambda:us-east-1:123456789012:function:GoodbyeWorld\", End=True)\n parallel_state = state_model.ParallelState(\"Hello Goodbye\", Branches=[state1, state2], Next=\"Foo\")\n ps = parallel_state.dumps(indent=2)\n return ps\n\nprint(parallel_states())\n```\n\n### Arrays and Generated Templates\n\nTemplate variables that where place holders for arrays were tricky, so I implemented\na workaround which is probably not suitable for all cases...Let's say that\nyou have to deploy a Step Function that has a task that invokes an ECS/Fargate\ntask and you need to specify the VPC configuration. In this case you will need\nto supply parameters that include a list of subnets and a list of Security Groups.\n\nYour code might look like this:\n\n```python\nimport py_asl\n\nParameters = {\"Cluster\": \"${cluster_arn}\",\n \"TaskDefinition\": \"${task_definition_arn}\",\n \"LaunchType\": \"FARGATE\",\n \"NetworkConfiguration\": {\"AwsvpcConfiguration\": {\n \"SecurityGroups\": \"[${security_groups}]\",\n \"Subnets\": \"[${subnets}]\"\n }\n }\n }\n\ntask = py_asl.TaskState(\"Run Fargate\",\n Resource=\"arn:aws:states:::ecs:runTask.sync\",\n End=True,\n Parameters=Parameters)\n\nstate_machine = py_asl.StateMachine(Comment=\"Step Function to Test Invoking ECS/Fargate Task\",\n StartAt=\"Run Fargate\",\n States=[task])\n\nif __name__ == '__main__':\n print(state_machine.dumps(indent=2))\n```\n\n**NOTE:** The arrays for the security groups will be transformed into:\n```JSON\n{\n \"Comment\": \"Step Function to Test Invoking ECS/Fargate Task\",\n \"StartAt\": \"Run Fargate\",\n \"States\": {\n \"Run Fargate\": {\n \"Resource\": \"arn:aws:states:::ecs:runTask.sync\",\n \"End\": true,\n \"Parameters\": {\n \"Cluster\": \"${cluster_arn}\",\n \"TaskDefinition\": \"${task_definition_arn}\",\n \"LaunchType\": \"FARGATE\",\n \"NetworkConfiguration\": {\n \"AwsvpcConfiguration\": {\n \"SecurityGroups\": ${security_groups},\n \"Subnets\": ${subnets}\n }\n }\n },\n \"Type\": \"Task\"\n }\n }\n}\n```\n\nIt is expected that your Terraform code supplies and array. For example,\n\n```\nvariable \"security_groups\" {\n type = \"list\"\n default = [\"ab-12345\", \"bc-56788\"]\n}\n\nvariable \"subnets\" {\n type = \"list\"\n default = [\"itsy\", \"bitsy\"]\n}\n```\n\nWhen replacing values in the template you can use:\n\n```\ndata \"template_file\" \"step_function\" {\n template = \"${file(\"${path.module}/step-function.json.tpl\")}\"\n vars = {\n ...\n security_groups = \"${jsonencode(var.cluster_security_groups)}\"\n subnets = \"${jsonencode(var.cluster_subnets)}\"\n }\n}\n```\n\n\n", "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/aabdullah-bos/py-asl", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "py-asl", "package_url": "https://pypi.org/project/py-asl/", "platform": "", "project_url": "https://pypi.org/project/py-asl/", "project_urls": { "Homepage": "https://github.com/aabdullah-bos/py-asl" }, "release_url": "https://pypi.org/project/py-asl/0.1.4/", "requires_dist": null, "requires_python": "", "summary": "Python object model for the Amazon States Language", "version": "0.1.4" }, "last_serial": 5620082, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "6d7dfbb475f1bcfbc7b9212a3046b9c5", "sha256": "e9092c08102286cec984db90425d71afa5bfee804acb3647f9fc75e7f96a612c" }, "downloads": -1, "filename": "py_asl-0.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6d7dfbb475f1bcfbc7b9212a3046b9c5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3631, "upload_time": "2019-07-01T12:15:22", "url": "https://files.pythonhosted.org/packages/ba/6b/bb51e8fa70cd65126e1c36c187a7525be33af4786e70ad1849bd770cd60d/py_asl-0.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6198f452075d42469dbcff385e446f95", "sha256": "06e43624503d11109c1b88b5e87effc63eaa61c41f21f9db68ab453729e5364f" }, "downloads": -1, "filename": "py_asl-0.0.0.tar.gz", "has_sig": false, "md5_digest": "6198f452075d42469dbcff385e446f95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3247, "upload_time": "2019-07-01T12:15:23", "url": "https://files.pythonhosted.org/packages/af/b3/d9e53e3429e1427726fd8660d0ae46149a6aad53c305680a00a3d71017fb/py_asl-0.0.0.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "70e923923a8eaf3de044c5fa76f1c7bd", "sha256": "abc246b9fb96f5a3669e8436ed38dae91c93f29d0a5387fae48db4aa50e98e9e" }, "downloads": -1, "filename": "py_asl-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "70e923923a8eaf3de044c5fa76f1c7bd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3133, "upload_time": "2019-06-25T01:43:06", "url": "https://files.pythonhosted.org/packages/d9/17/46c51840c1ffec2f00e7c45c125781bf0c4001a41da6d71de1da7984b671/py_asl-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23639ae6d19f84a2c910d592f68ebdf7", "sha256": "af17dc82bf037c7a698c5d1fd72616e658410777370d3954b8cb312e1105dc04" }, "downloads": -1, "filename": "py_asl-0.1.0.tar.gz", "has_sig": false, "md5_digest": "23639ae6d19f84a2c910d592f68ebdf7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2231, "upload_time": "2019-06-25T01:43:08", "url": "https://files.pythonhosted.org/packages/5e/a9/436880113294ae27ed9413355a79bde7502c81e838833f922ef3486f92d1/py_asl-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "874ba7744722f6e11ed48660f9cca7b4", "sha256": "62faff9743ec7ae39e5319f70cc4cbf46d2848711049bbca1602b50a912fac41" }, "downloads": -1, "filename": "py_asl-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "874ba7744722f6e11ed48660f9cca7b4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3636, "upload_time": "2019-07-01T11:21:41", "url": "https://files.pythonhosted.org/packages/23/79/e80ff0da01273f94fff2ab7ff0b1a1c43c6c2f5801eb9c786c16af8a2e66/py_asl-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e8bc18d2908b703a93946e71ecf9703", "sha256": "8b34d14711201bf8053b4930273b4ac283a455efd139240adaa5822ec6098f05" }, "downloads": -1, "filename": "py_asl-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0e8bc18d2908b703a93946e71ecf9703", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3242, "upload_time": "2019-07-01T11:21:43", "url": "https://files.pythonhosted.org/packages/86/85/b6d03c0c4223f8dc473e8a9de1a82f40919ed19786d9a2bfc32aa8aaaaf0/py_asl-0.1.1.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "83f9a452d72038cb762066b6a971a54c", "sha256": "f2540585659488df38422f5cbf8bc75576c3cd59ba63fa035642178f3cff64de" }, "downloads": -1, "filename": "py_asl-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "83f9a452d72038cb762066b6a971a54c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3631, "upload_time": "2019-07-01T12:20:21", "url": "https://files.pythonhosted.org/packages/7d/5c/5cfd6183664e8f7781b087d899df8517638a4f9626d1492f21fa8ce5f8e5/py_asl-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ae638e2de0530fab372ba63e22b1e31", "sha256": "adb07f8710d9a8219557ebb2fe526f85396baa188246da6244a5fe2063b72ded" }, "downloads": -1, "filename": "py_asl-0.1.3.tar.gz", "has_sig": false, "md5_digest": "0ae638e2de0530fab372ba63e22b1e31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3248, "upload_time": "2019-07-01T12:20:22", "url": "https://files.pythonhosted.org/packages/6c/fd/86f10ee90057548559f9bb70c42a6ea37f6e83438d6cb22483de9ad80763/py_asl-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "723530df3bf90851ab856cfcae533895", "sha256": "08577f7af2ec0da24390069b099f25ff95eceeee7f0c3a8e1a1ac449bae224f1" }, "downloads": -1, "filename": "py_asl-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "723530df3bf90851ab856cfcae533895", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4693, "upload_time": "2019-08-01T18:27:47", "url": "https://files.pythonhosted.org/packages/d2/39/d2233019932d9663abb3b9326738a667752b2430837b018b9c83d557fae3/py_asl-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "404d161c988c6e43fa1fda33593cf759", "sha256": "e75c444503cd28175f25e31c21e2252fabe763c3e0c9885ab17f3c9f27fef317" }, "downloads": -1, "filename": "py_asl-0.1.4.tar.gz", "has_sig": false, "md5_digest": "404d161c988c6e43fa1fda33593cf759", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4502, "upload_time": "2019-08-01T18:27:48", "url": "https://files.pythonhosted.org/packages/bf/fc/7c438c1a50ff5d19fed5c890c73306bd8f28e0c5515fb3389d2da11b7b04/py_asl-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "723530df3bf90851ab856cfcae533895", "sha256": "08577f7af2ec0da24390069b099f25ff95eceeee7f0c3a8e1a1ac449bae224f1" }, "downloads": -1, "filename": "py_asl-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "723530df3bf90851ab856cfcae533895", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4693, "upload_time": "2019-08-01T18:27:47", "url": "https://files.pythonhosted.org/packages/d2/39/d2233019932d9663abb3b9326738a667752b2430837b018b9c83d557fae3/py_asl-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "404d161c988c6e43fa1fda33593cf759", "sha256": "e75c444503cd28175f25e31c21e2252fabe763c3e0c9885ab17f3c9f27fef317" }, "downloads": -1, "filename": "py_asl-0.1.4.tar.gz", "has_sig": false, "md5_digest": "404d161c988c6e43fa1fda33593cf759", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4502, "upload_time": "2019-08-01T18:27:48", "url": "https://files.pythonhosted.org/packages/bf/fc/7c438c1a50ff5d19fed5c890c73306bd8f28e0c5515fb3389d2da11b7b04/py_asl-0.1.4.tar.gz" } ] }