===============
pop-create-idem
===============
.. image:: https://img.shields.io/badge/made%20with-pop-teal
:alt: Made with pop, a Python implementation of Plugin Oriented Programming
:target: https://pop.readthedocs.io/
.. image:: https://img.shields.io/badge/made%20with-idem-teal
:alt: Made with idem, a Python implementation of Plugin Oriented Programming
:target: https://www.idemproject.io/
.. image:: https://img.shields.io/badge/docs%20on-docs.idemproject.io-blue
:alt: Documentation is published with Sphinx on docs.idemproject.io
:target: https://docs.idemproject.io/pop-create-idem/en/latest/index.html
.. image:: https://img.shields.io/badge/made%20with-python-yellow
:alt: Made with Python
:target: https://www.python.org/
About
+++++
`pop-create-idem` is an extension of `pop-create` that creates boilerplate code for new `idem-cloud` projects. `pop-create-idem` includes code that transforms a CloudSpec dictionary into idem states, tools, and exec modules. Your unique `pop_create` plugin's purpose is to convert API documentation into the CloudSpec format.
**Note**: It is recommended that you use a Python virtual environment when creating a new Idem provider plugin.
Getting Started
+++++++++++++++
Before you start, ensure that you installed Python 3.8 or later. If you are running 3.7 or earlier, you might need to use `python3` instead of `python` in the commands in the rest of this tutorial.
To verify your Python version, run the following command:
.. code-block:: bash
python -V
Next, create your virtual environment:
.. code-block:: bash
python -m venv env
source env/bin/activate
Now you should be in your new Python virtual environment.
Update pip
==========
Next, update to the latest version of `pip` inside your virtual environment:
.. code-block:: bash
pip install -U pip
Install dependencies
====================
Next, you need to install `pop-create`:
.. code-block:: bash
pip install pop-create
You now have access to the `pop-create` command for creating Idem plugins.
Install pop-create-idem
=======================
Install `pop-create-idem` with `pip` from the project root:
.. code-block:: bash
pip install -e {project_root}
Next, install `pop-create-idem` with `pip` from PyPi:
.. code-block:: bash
pip install pop-create-idem
Generate an Idem Cloud plugin
+++++++++++++++++++++++++++++
Now you are ready to run pop-create to generate an Idem plugin. You can generate a skeleton project
to write exec and state modules for your cloud manually or completely auto-generate your plugin based
on your cloud OpenAPI or Swagger specification.
Skeleton plugin
===============
To generate a new skeleton Idem Cloud plugin, run the following command:
.. code-block:: bash
pop-create idem-cloud --directory /path/to/new/project --project-name=idem-{my_cloud} --simple_cloud_name={my_cloud} --author={company_name}
This command creates a new project with the directory structure needed to get started with your plugin.
See `Create Idem Provider Plugin <https://docs.idemproject.io/idem/en/latest/developer/tutorials/create-provider-plugin/>`_
for information about developing an Idem plugin.
Swagger specification
=====================
To generate a new Idem plugin with a Swagger specification, run the following command:
.. code-block:: bash
pop-create swagger --directory /path/to/new/project --specification={swagger-spec-yaml-or-accessible-swagger-spec-json-url} --project-name=idem-{my_cloud} --simple_cloud_name={my_cloud} --author={company_name}
OpenAPI3 specification
======================
To generate a new Idem plugin project with an OpenAPI3 specification, run the following command:
.. code-block:: bash
pop-create openapi3 --directory /path/to/new/project --specification={openapi3-spec-yaml-or-accessible-openapi3-spec-json-url} --project-name=idem-{my_cloud} --simple_cloud_name={my_cloud} --author={company_name}
This command creates a new project with the boilerplate code needed to get started with each respective cloud provider.
Next steps
++++++++++
After you generate your Idem plugin:
* Configure the plugin for your provider. See the `quickstart <https://docs.idemproject.io/pop-create-idem/en/latest/tutorial/quickstart.html>`_ for instructions.
* Try the example Swagger petstore tutorial `Auto-generate an Idem plugin from Swagger <https://docs.idemproject.io/pop-create-idem/en/latest/tutorial/swagger_example.html>`_, which walks you through generating an Idem plugin with a Swagger specification.
Raw data
{
"_id": null,
"home_page": "https://docs.idemproject.io/pop-create-idem/en/latest/index.html",
"name": "pop-create-idem",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "",
"author": "VMware, Inc.",
"author_email": "idemproject@vmware.com",
"download_url": "https://files.pythonhosted.org/packages/d4/52/3ca03bcf4b13e635f9e32f884d42c452e5f5758db39fd2f695f955609195/pop-create-idem-4.5.1.tar.gz",
"platform": null,
"description": "===============\npop-create-idem\n===============\n\n.. image:: https://img.shields.io/badge/made%20with-pop-teal\n :alt: Made with pop, a Python implementation of Plugin Oriented Programming\n :target: https://pop.readthedocs.io/\n\n.. image:: https://img.shields.io/badge/made%20with-idem-teal\n :alt: Made with idem, a Python implementation of Plugin Oriented Programming\n :target: https://www.idemproject.io/\n\n.. image:: https://img.shields.io/badge/docs%20on-docs.idemproject.io-blue\n :alt: Documentation is published with Sphinx on docs.idemproject.io\n :target: https://docs.idemproject.io/pop-create-idem/en/latest/index.html\n\n.. image:: https://img.shields.io/badge/made%20with-python-yellow\n :alt: Made with Python\n :target: https://www.python.org/\n\nAbout\n+++++\n\n`pop-create-idem` is an extension of `pop-create` that creates boilerplate code for new `idem-cloud` projects. `pop-create-idem` includes code that transforms a CloudSpec dictionary into idem states, tools, and exec modules. Your unique `pop_create` plugin's purpose is to convert API documentation into the CloudSpec format.\n\n**Note**: It is recommended that you use a Python virtual environment when creating a new Idem provider plugin.\n\n\nGetting Started\n+++++++++++++++\n\nBefore you start, ensure that you installed Python 3.8 or later. If you are running 3.7 or earlier, you might need to use `python3` instead of `python` in the commands in the rest of this tutorial.\n\nTo verify your Python version, run the following command:\n\n.. code-block:: bash\n\n python -V\n\nNext, create your virtual environment:\n\n.. code-block:: bash\n\n python -m venv env\n source env/bin/activate\n\nNow you should be in your new Python virtual environment.\n\nUpdate pip\n==========\n\nNext, update to the latest version of `pip` inside your virtual environment:\n\n.. code-block:: bash\n\n pip install -U pip\n\n\nInstall dependencies\n====================\n\nNext, you need to install `pop-create`:\n\n.. code-block:: bash\n\n pip install pop-create\n\n\nYou now have access to the `pop-create` command for creating Idem plugins.\n\nInstall pop-create-idem\n=======================\n\nInstall `pop-create-idem` with `pip` from the project root:\n\n.. code-block:: bash\n\n pip install -e {project_root}\n\nNext, install `pop-create-idem` with `pip` from PyPi:\n\n.. code-block:: bash\n\n pip install pop-create-idem\n\n\nGenerate an Idem Cloud plugin\n+++++++++++++++++++++++++++++\n\nNow you are ready to run pop-create to generate an Idem plugin. You can generate a skeleton project\nto write exec and state modules for your cloud manually or completely auto-generate your plugin based\non your cloud OpenAPI or Swagger specification.\n\nSkeleton plugin\n===============\n\nTo generate a new skeleton Idem Cloud plugin, run the following command:\n\n.. code-block:: bash\n\n pop-create idem-cloud --directory /path/to/new/project --project-name=idem-{my_cloud} --simple_cloud_name={my_cloud} --author={company_name}\n\nThis command creates a new project with the directory structure needed to get started with your plugin.\n\nSee `Create Idem Provider Plugin <https://docs.idemproject.io/idem/en/latest/developer/tutorials/create-provider-plugin/>`_\nfor information about developing an Idem plugin.\n\nSwagger specification\n=====================\n\nTo generate a new Idem plugin with a Swagger specification, run the following command:\n\n.. code-block:: bash\n\n pop-create swagger --directory /path/to/new/project --specification={swagger-spec-yaml-or-accessible-swagger-spec-json-url} --project-name=idem-{my_cloud} --simple_cloud_name={my_cloud} --author={company_name}\n\nOpenAPI3 specification\n======================\n\nTo generate a new Idem plugin project with an OpenAPI3 specification, run the following command:\n\n.. code-block:: bash\n\n pop-create openapi3 --directory /path/to/new/project --specification={openapi3-spec-yaml-or-accessible-openapi3-spec-json-url} --project-name=idem-{my_cloud} --simple_cloud_name={my_cloud} --author={company_name}\n\n\nThis command creates a new project with the boilerplate code needed to get started with each respective cloud provider.\n\nNext steps\n++++++++++\n\nAfter you generate your Idem plugin:\n\n* Configure the plugin for your provider. See the `quickstart <https://docs.idemproject.io/pop-create-idem/en/latest/tutorial/quickstart.html>`_ for instructions.\n* Try the example Swagger petstore tutorial `Auto-generate an Idem plugin from Swagger <https://docs.idemproject.io/pop-create-idem/en/latest/tutorial/swagger_example.html>`_, which walks you through generating an Idem plugin with a Swagger specification.\n",
"bugtrack_url": null,
"license": "Apache Software License 2.0",
"summary": "",
"version": "4.5.1",
"project_urls": {
"Code": "https://gitlab.com/vmware/idem/pop-create-idem",
"Homepage": "https://docs.idemproject.io/pop-create-idem/en/latest/index.html",
"Issue tracker": "https://gitlab.com/vmware/idem/pop-create-idem/-/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "pypi",
"digests": {
"blake2b_256": "a06d4d56508e3b809e2fb818eabf2f17ba45f58c9c615fc3318202842d19334f",
"md5": "dd60ce8675d2789d5207d1f18cec5bc0",
"sha256": "fa9c03be8ea9dcae0b595e3b0fec88463ddbc49c26d65317217c682af1c1ab50"
},
"downloads": -1,
"filename": "pop_create_idem-4.5.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dd60ce8675d2789d5207d1f18cec5bc0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 86460,
"upload_time": "2023-10-11T13:37:46",
"upload_time_iso_8601": "2023-10-11T13:37:46.896580Z",
"url": "https://files.pythonhosted.org/packages/a0/6d/4d56508e3b809e2fb818eabf2f17ba45f58c9c615fc3318202842d19334f/pop_create_idem-4.5.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "pypi",
"digests": {
"blake2b_256": "d4523ca03bcf4b13e635f9e32f884d42c452e5f5758db39fd2f695f955609195",
"md5": "c6117c5c9fe546b259ac9f5ebf27583b",
"sha256": "2692dea3eb770fe7584d361b51d88ed29c5b04cd801d3eca5ec8a3586c3d430e"
},
"downloads": -1,
"filename": "pop-create-idem-4.5.1.tar.gz",
"has_sig": false,
"md5_digest": "c6117c5c9fe546b259ac9f5ebf27583b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 51322,
"upload_time": "2023-10-11T13:37:48",
"upload_time_iso_8601": "2023-10-11T13:37:48.439084Z",
"url": "https://files.pythonhosted.org/packages/d4/52/3ca03bcf4b13e635f9e32f884d42c452e5f5758db39fd2f695f955609195/pop-create-idem-4.5.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-11 13:37:48",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "vmware",
"gitlab_project": "idem",
"lcname": "pop-create-idem"
}