diff --git a/.gitbook/assets/image (1).png b/.gitbook/assets/image (1).png deleted file mode 100644 index 14285a0..0000000 Binary files a/.gitbook/assets/image (1).png and /dev/null differ diff --git a/.gitbook/assets/image (2).png b/.gitbook/assets/image (2).png deleted file mode 100644 index 2449a8e..0000000 Binary files a/.gitbook/assets/image (2).png and /dev/null differ diff --git a/.gitbook/assets/image (3).png b/.gitbook/assets/image (3).png deleted file mode 100644 index 74f9b92..0000000 Binary files a/.gitbook/assets/image (3).png and /dev/null differ diff --git a/.gitbook/assets/image (4).png b/.gitbook/assets/image (4).png deleted file mode 100644 index 4dc3e1e..0000000 Binary files a/.gitbook/assets/image (4).png and /dev/null differ diff --git a/.gitbook/assets/image (5).png b/.gitbook/assets/image (5).png deleted file mode 100644 index c261388..0000000 Binary files a/.gitbook/assets/image (5).png and /dev/null differ diff --git a/.gitbook/assets/image (6).png b/.gitbook/assets/image (6).png deleted file mode 100644 index 38f6e81..0000000 Binary files a/.gitbook/assets/image (6).png and /dev/null differ diff --git a/.gitbook/assets/image.png b/.gitbook/assets/image.png deleted file mode 100644 index 14285a0..0000000 Binary files a/.gitbook/assets/image.png and /dev/null differ diff --git a/.github/workflows/create-version.yml b/.github/workflows/create-version.yml new file mode 100644 index 0000000..28e80ba --- /dev/null +++ b/.github/workflows/create-version.yml @@ -0,0 +1,23 @@ +name: Create Version 🦉 + +on: + create: + # Triggered when a branch or tag is created + +jobs: + rdme-docs: + runs-on: ubuntu-latest + steps: + - name: Check out repo 📚 + uses: actions/checkout@v3 + + - name: Generate branch version string + run: | + BRANCH_NAME="${{ github.ref }}" + BRANCH_VERSION=$(echo $BRANCH_NAME | tr -cd '0-9.') + echo "BRANCH_VERSION=$BRANCH_VERSION" >> $GITHUB_ENV + + - name: Create version of docs for branch 🚀 + uses: readmeio/rdme@v8 + with: + rdme: versions:create v1.0-${{ env.BRANCH_VERSION }} --key=${{ secrets.README_API_KEY }} --fork=1.0 --main=false --beta=true --deprecated=false --isPublic=false diff --git a/.github/workflows/delete-version.yml b/.github/workflows/delete-version.yml new file mode 100644 index 0000000..4b6334a --- /dev/null +++ b/.github/workflows/delete-version.yml @@ -0,0 +1,24 @@ +name: Delete Version 🦉 + + +on: + pull_request: + types: [ closed ] + +jobs: + rdme-docs: + runs-on: ubuntu-latest + steps: + - name: Check out repo 📚 + uses: actions/checkout@v3 + + - name: Generate branch version string + run: | + BRANCH_NAME="${{ github.head_ref || github.ref || github.event.ref }}" + BRANCH_VERSION=$(echo $BRANCH_NAME | tr -cd '0-9.') + echo "BRANCH_VERSION=$BRANCH_VERSION" >> $GITHUB_ENV + + - name: Delete version of docs for branch (if branch is deleted) 🚀 + uses: readmeio/rdme@v8 + with: + rdme: versions:delete v1.0-${{ env.BRANCH_VERSION }}--key=${{ secrets.README_API_KEY }} diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml new file mode 100644 index 0000000..2b23805 --- /dev/null +++ b/.github/workflows/publish-docs.yml @@ -0,0 +1,22 @@ +# This GitHub Actions workflow was auto-generated by the `rdme` cli on 2023-12-21T18:43:39.465Z +# You can view our full documentation here: https://docs.readme.com/docs/rdme +name: Publish 🦉 + +on: + push: + branches: + # This workflow will run every time you push code to the following branch: `main` + # https://docs.github.com/actions/using-workflows/events-that-trigger-workflows + - main + +jobs: + rdme-docs: + runs-on: ubuntu-latest + steps: + - name: Check out repo 📚 + uses: actions/checkout@v3 + + - name: Run `docs` command 🚀 + uses: readmeio/rdme@v8 + with: + rdme: docs v1.0 --key=${{ secrets.README_API_KEY }} diff --git a/.github/workflows/update-version.yml b/.github/workflows/update-version.yml new file mode 100644 index 0000000..d04f028 --- /dev/null +++ b/.github/workflows/update-version.yml @@ -0,0 +1,26 @@ +name: Update ReadMe Docs on Push + +on: [push] + +jobs: + rdme-docs: + runs-on: ubuntu-latest + steps: + - name: Check out repo 📚 + uses: actions/checkout@v3 + + - name: Generate branch version string + run: | + BRANCH_NAME="${{ github.head_ref || github.ref || github.event.ref }}" + BRANCH_VERSION=$(echo $BRANCH_NAME | tr -cd '0-9.') + echo "BRANCH_VERSION=$BRANCH_VERSION" >> $GITHUB_ENV + + - name: DryRun for debugging + uses: readmeio/rdme@v8 + with: + rdme: docs v1.0 --key=${{ secrets.README_API_KEY }} --version=${{ env.BRANCH_VERSION }} --dryRun + + - name: Update version of docs for branch 🚀 + uses: readmeio/rdme@v8 + with: + rdme: docs v1.0 --key=${{ secrets.README_API_KEY }} --version=${{ env.BRANCH_VERSION }} \ No newline at end of file diff --git a/.vale.ini b/.vale.ini new file mode 100644 index 0000000..a4632f5 --- /dev/null +++ b/.vale.ini @@ -0,0 +1,5 @@ +StylesPath = vale/styles +MinAlertLevel = suggestion +Packages = Google, proselint +[*] +BasedOnStyles = Vale, Google, proselint \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..e23a8b8 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,40 @@ +# Contribution Guide for RunPod Documentation + +We warmly welcome contributions to the RunPod project. +Whether you're fixing bugs, adding new features, or improving documentation, your help is greatly appreciated. This guide will help you get started with contributing to the RunPod project. + +## Getting Started + +1. **Fork the Repository**: Start by forking the RunPod repository to your GitHub account. This creates a personal copy for you to work on. + +2. **Clone Your Fork**: Clone your forked repository to your local machine using `git clone`. This will allow you to make changes to the codebase. + +## Making Contributions + +1. **Create a New Branch**: Always create a new branch for your work. This keeps your contributions organized and separated from the main branch. Use a descriptive name for your branch, such as `feature-add-xyz` or `bugfix-issue-123`. + +2. **Make Your Changes**: Implement your changes or improvements in your branch. Be sure to follow the project's coding standards and guidelines. + +3. **Commit Your Changes**: Commit your changes with clear and concise commit messages. This helps others understand what changes you've made and why. + +4. **Sync with Main Branch**: Regularly sync your branch with the main branch of the original repository to stay updated with any changes and avoid conflicts. + +## Submitting Your Contributions + +1. **Test Your Changes**: Before submitting, ensure your changes do not introduce any bugs or issues. Run any tests if available. + +2. **Create a Pull Request (PR)**: Once your changes are ready and tested, push your branch to your fork and create a pull request to the main RunPod repository. Provide a clear description of your changes and the purpose of the PR. + +3. **Code Review**: Wait for the project maintainers to review your PR. Be open to feedback and make any required revisions. + +4. **Merge**: Once your PR is approved, it will be merged into the main codebase. + +## Additional Guidelines + +- **Follow Project Conventions**: Adhere to the coding, commenting, and formatting conventions used in the project. +- **Respectful Communication**: Always communicate respectfully with other contributors and maintainers. +- **Report Issues**: If you find bugs or have feature requests, open an issue in the repository. + +## Questions or Help + +If you need help or have questions, feel free to reach out to the project maintainers or use the project's communication channels. diff --git a/Changelog Posts/welcome-to-runpod.md b/Changelog Posts/welcome-to-runpod.md new file mode 100644 index 0000000..7f90e91 --- /dev/null +++ b/Changelog Posts/welcome-to-runpod.md @@ -0,0 +1,9 @@ +--- +title: "Welcome to RunPod" +slug: "welcome-to-runpod" +type: "" +createdAt: {} +hidden: false +--- + +Welcome to the developer hub and documentation for RunPod! diff --git a/LICENSE copy b/LICENSE copy new file mode 100644 index 0000000..f49a4e1 --- /dev/null +++ b/LICENSE copy @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/README.md b/README.md index 2efa839..7d88f60 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,64 @@ -# About +# RunPod Documentation Guide -Please use the search or browse through our docs before contacting us directly with any general questions. Feel free to reach us on discord, our support chat, or by email. You can find more info on our [**contact**](https://www.runpod.io/contact) page. +Welcome to the RunPod Documentation Guide. This repository contains all the necessary information and tools to help you effectively use and contribute to the RunPod project. -### **Our Mission** +## Table of Contents -RunPod is on a mission to democratize AI from the ground up. Our first goal is to bring cloud compute to all with very competitive prices without sacrificing usability, experience, or features. +- [Dryrun Documentation](#dryrun-documentation) +- [Format Documentation](#format-documentation) +- [Lint Documentation](#lint-documentation) +- [Creating a New Version](#creating-a-new-version) +- [Contributing](#contributing) +- [License](#license) -RunPod currently provides two cloud compute services: **Secure Cloud** and **Community Cloud**. +## Dryrun Documentation -**Secure Cloud** runs in T3/T4 data centers by our trusted partners. Our close partnership comes with high reliability, redundancy, security, and fast response times to mitigate any downtimes. For any sensitive and enterprise workloads, we highly recommend Secure Cloud. +To perform a dry run of the project, use the following command: -**Community Cloud** brings power in numbers and diversity spanning the whole world. Through our decentralized platform, we can offer peer-to-peer GPU compute that connects individual compute providers to consumers. Community Cloud providers are invite-only and vetted by us to offer compute with good security and uptime. +```bash +yarn dryrun +``` -Both solutions offer far more competitive prices than large cloud providers such as AWS or GCP. +This will simulate the project execution without making any real changes, allowing you to verify the setup and functionality. +## Format Documentation +For formatting your codebase to ensure consistency and readability, use the following command: -{% content-ref url="faq.md" %} -[faq.md](faq.md) -{% endcontent-ref %} +```bash +yarn format +``` -{% content-ref url="graphql-api/" %} -[graphql-api](graphql-api/) -{% endcontent-ref %} +This command will automatically format your code following the predefined coding standards of the project. -{% embed url="https://graphql-spec.runpod.io" %} +## Lint Documentation -{% embed url="https://github.com/runpod/runpodctl" %} +Vale helps in keeping your documentation style clean and consistent. +First, ensure that you have [Vale](https://vale.sh/docs/vale-cli/installation/) installed. + +Once Vale is installed, you can lint your documentation with: + +```bash +yarn lint +``` + +This will check the documentation for any issues or inconsistencies based on the defined linting rules. + +## Creating a New Version + +Versioning is crucial for tracking changes and releases. +For RunPod, we use an automated GitHub workflow for version updates. +This ensures a standardized and error-free process. + +You should rely on the GitHub workflow to update versions. + +## Contributing + +We welcome contributions to the RunPod project. +Whether you're fixing bugs, adding new features, or improving documentation, your help is greatly appreciated. +See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. + +## License + +This project is protected under the [Apache 2.0 License](LICENSE). +For more details, refer to the [LICENSE](LICENSE) file. diff --git a/SUMMARY.md b/SUMMARY.md deleted file mode 100644 index f0ddd1d..0000000 --- a/SUMMARY.md +++ /dev/null @@ -1,59 +0,0 @@ -# Table of contents - -## Welcome - -* [About](README.md) -* [FAQ](faq.md) -* [How Do I?](welcome/how-do-i/README.md) - * [Expose Ports](welcome/how-do-i/expose-ports.md) - * [Transfer Data](welcome/how-do-i/transfer-data.md) - * [Automatically Stop My Pod](welcome/how-do-i/automatically-stop-my-pod.md) - * [Customize a Template](welcome/how-do-i/customize-a-template.md) - * [Use Real SSH](welcome/how-do-i/use-real-ssh.md) - * [Bulk Start/Stop Pods](welcome/how-do-i/bulk-start-stop-pods.md) - * [Override My Public Key](welcome/how-do-i/override-my-public-key.md) - -## GPU Instances - -* [Pod Env Variables](pods/env-variables.md) -* [GraphQL API](graphql-api/README.md) - * [Create Pod](graphql-api/create-pod.md) - * [Get GPU Types](graphql-api/get-gpu-types.md) - * [Get Pod](graphql-api/get-pod.md) - * [Start Pod](graphql-api/start-pod.md) - * [Stop Pod](graphql-api/stop-pod.md) -* [GraphQL API Spec](https://graphql-spec.runpod.io) -* [runpodctl](https://github.com/runpod/runpodctl) - -## Serverless GPUs - -* [Custom APIs](serverless-ai/custom-apis/README.md) - * [Worker Image Creation](serverless-ai-api/bring-your-own-code.md) - * [Template Creation](serverless-ai/custom-apis/template-creation.md) - * [Autoscaling](serverless-ai/custom-apis/autoscaling.md) - * [Using Your API](serverless-ai/custom-apis/using-your-api.md) -* [Worker Functions](serverless-gpus/worker-functions.md) - -## AI Endpoints - -* [RunPod APIs](serverless-ai-api/getting-started.md) -* [Image Based](ai-endpoints/image-based/README.md) - * [Stable Diffusion v1](serverless-ai-api/stable-diffusion-v1.md) - * [Stable Diffusion v2](serverless-ai/runpod-apis/stable-diffusion-v2.md) - * [Anything v3 (SD-v1.5)](serverless-ai/runpod-apis/anything-v3-sd-v1.5.md) - * [Anything v4 (SD-v1.5)](ai-endpoints/image-based/anything-v4-sd-v1.5.md) - * [Openjourney (SD-v1.5)](serverless-ai/runpod-apis/openjourney-sd-v1.5.md) - * [DreamBooth (SD-v1.5)](serverless-ai/runpod-apis/dreambooth-sd-v1.5.md) - * [EveryDream (SD-v1.5)](serverless-ai/runpod-apis/everydream-sd-v1.5.md) -* [Audio Based](ai-endpoints/audio-based/README.md) - * [Whisper](serverless-ai/runpod-apis/whisper.md) -* [Text Based](ai-endpoints/text-based/README.md) - * [GPT Neo 1.3B](ai-endpoints/text-based/gpt-neo-1.3b.md) - * [GPT Neo 2.7B](ai-endpoints/text-based/gpt-neo-2.7b.md) - * [Pygmalion 6B](ai-endpoints/text-based/pygmalion-6b.md) - -## Hosts - -* [How to become a Host?](how-to-become-a-host.md) -* [Maintenance and Reliability](hosts/maintenance-and-reliability.md) -* [Burn Testing](hosts/burn-testing.md) diff --git a/ai-endpoints/audio-based/README.md b/ai-endpoints/audio-based/README.md deleted file mode 100644 index 1beb2f3..0000000 --- a/ai-endpoints/audio-based/README.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -description: >- - Endpoints with a primary focus on audio as either the input or output of a - request. ---- - -# Audio Based - diff --git a/ai-endpoints/image-based/README.md b/ai-endpoints/image-based/README.md deleted file mode 100644 index 8c370ca..0000000 --- a/ai-endpoints/image-based/README.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -description: >- - Endpoints with a primary focus on images as either the input or output of a - request. ---- - -# Image Based - diff --git a/ai-endpoints/image-based/anything-v4-sd-v1.5.md b/ai-endpoints/image-based/anything-v4-sd-v1.5.md deleted file mode 100644 index 2b1b497..0000000 --- a/ai-endpoints/image-based/anything-v4-sd-v1.5.md +++ /dev/null @@ -1,349 +0,0 @@ ---- -description: >- - Anything V4 - a latent diffusion model for weebs. This model is intended to - produce high-quality, highly detailed anime style with just a few prompts. ---- - -# Anything v4 (SD-v1.5) - -Model: [https://huggingface.co/andite/anything-v4.0](https://huggingface.co/andite/anything-v4.0) - -### Examples - -{% tabs %} -{% tab title="cURL" %} -### Create a job request - -```bash -curl -X POST https://api.runpod.ai/v1/sd-anything-v4/run \ --H 'Content-Type: application/json' \ --H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ --d '{"input": {"prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"}}' -``` - -#### Response - -```json -{ - "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", - "status": "IN_QUEUE" -} -``` - -### - -### Retrieve Status/Output - -```bash -curl https://api.runpod.ai/v1/sd-anything-v4/status/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --H 'Content-Type: application/json' \ --H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' -``` - -#### Response - -```json -{ - "delayTime": 123456, // (milliseconds) time in queue - "executionTime": 1234, // (milliseconds) time it took to complete the job - "gpu": "24", // gpu type used to run the job - "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", - "input": { - "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists" - }, - "output": [ - { - "image": "https://job.results1", - "seed": 1 - }, - { - "image": "https://job.results2", - "seed": 2 - } - ], - "status": "COMPLETED" -} -``` -{% endtab %} - -{% tab title="Python" %} -
import requests
-
-# Set the API endpoint URL
-endpoint = "https://api.runpod.ai/v1/sd-anything-v4/run"
-
-# Set the headers for the request
-headers = {
- "Content-Type": "application/json",
- "Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- }
-
-# Define your inputs
-input_data = {
- "input": {
- "prompt": "My creative vision."
- }
- }
-
-# Make the request
-response = requests.post(endpoint, json=input_data, headers=headers)
-
-# Print the response
-print(response.text)
-
-{% endtab %}
-
-{% tab title="NodeJS" %}
-```javascript
-const request = require('request');
-
-// Set the API endpoint and model name
-const endpoint = 'https://api.runpod.ai/v1/sd-anything-v4/run';
-
-// Set the API key and input data
-const apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
-const inputData = {
- input: {
- prompt: 'My creative vision.',
- },
-};
-
-// Set the headers for the request
-const headers = {
- 'Content-Type': 'application/json',
- Authorization: `Bearer ${apiKey}`,
-};
-
-// Make the request
-request.post(
- {
- url: endpoint,
- json: inputData,
- headers,
- },
- (err, response) => {
- if (err) {
- console.error(err);
- return;
- }
-
- // Print the response
- console.log(response.body);
- },
-);
-```
-{% endtab %}
-
-{% tab title="Go" %}
-```go
-package main
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
-)
-
-func main() {
- // Set the API endpoint and model name
- endpoint := "https://api.runpod.ai/v1/sd-anything-v4/run"
-
- // Set the API key and input data
- apiKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- inputData := map[string]interface{}{
- "input": map[string]string{
- "prompt": "My creative vision.",
- },
- }
-
- // Convert the input data to JSON
- inputJSON, err := json.Marshal(inputData)
- if err != nil {
- log.Fatal(err)
- }
-
- // Set the headers for the request
- headers := map[string][]string{
- "Content-Type": {"application/json"},
- "Authorization": {fmt.Sprintf("Bearer %s", apiKey)},
- }
-
- // Make the request
- resp, err := http.Post(endpoint, "application/json", bytes.NewBuffer(inputJSON))
- if err != nil {
- log.Fatal(err)
- }
- defer resp.Body.Close()
-
- // Print the response
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(string(body))
-}
-```
-{% endtab %}
-{% endtabs %}
-
-{% swagger method="post" path="/v1/sd-anything-v4/run" baseUrl="https://api.runpod.ai" summary="Run an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="header" name="Authorization" required="true" %}
-RunPod API Key
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input" type="Object" required="true" %}
-Input Object contains prompt, and more
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="webhook" type="String" %}
-URL endpoint to receive a webhook call on job complete, fail, or timeout.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt" required="true" %}
-Your input prompt.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.negative_prompt" type="String" %}
-Specify things to not see in the output.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.width" type="Integer" %}
-With of output image.\
-128, 256, 384, 448, 512, 576, 640, 704, 768
-
-**Default: 512**\
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.height" type="Integer" %}
-Height of output image.\
-128, 256, 384, 448, 512, 576, 640, 704, 768
-
-**Default: 512**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" type="String" name="input.init_image" %}
-URL for an initial image to generate variations of. Will be resized to the specific width and height.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.mask" type="String" %}
-URL of a black and white image to use as a mask for inpainting over init\_image. Black pixels are inpainted and white pixels are preserved.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.guidance_scale" type="Float" %}
-Scale for classifier-free guidance.\
-Rage 1 -> 20
-
-**Default: 7.5**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" type="Integer" name="input.num_inference_steps" %}
-The number of denoising steps.\
-Range 1 -> 500
-
-**Default: 50**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.num_outputs" type="Integer" %}
-The number of images to output.\
-Range 1 -> 10
-
-**Default: 1**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt_strength" type="Float" %}
-How much importance is given to the prompt.\
-Range: 0.0 -> 1.0
-
-**Default: 0.8**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.scheduler" type="String" %}
-Choose a scheduler.\
-Options: DDIM, K-LMS, PNDM
-
-**Default: K-LMS**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.seed" type="Integer" %}
-Random seed.
-
-\
-
-
-
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="400: Bad Request" description="Invalid input" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="429: Too Many Requests" description="Rate limited due to many requests" %}
-
-{% endswagger-response %}
-{% endswagger %}
-
-{% swagger method="get" path="/v1/sd-anything-v4/status/{ REQUEST_ID }" baseUrl="https://api.runpod.ai" summary="Status and output of an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="path" name="REQUEST_ID" type="UUID" required="true" %}
-inference request id
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "delayTime": 71, // (milliseconds) time in queue
- "executionTime": 3423, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "39a6a9eb-3f39-40ee-892f-d3c2b2545a2f",
- "input": {
- "height": 640,
- "num_inference_steps": 50,
- "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists",
- "width": 512
- },
- "output": [
- "https://r2..." // securely signed URLs
- ],
- "status": "COMPLETED" // COMPLETED, IN_QUEUE, IN_PROGRESS, FAILED
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-```javascript
-{
- // Response
-}
-```
-{% endswagger-response %}
-{% endswagger %}
diff --git a/ai-endpoints/text-based/README.md b/ai-endpoints/text-based/README.md
deleted file mode 100644
index 6dcb04d..0000000
--- a/ai-endpoints/text-based/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# Text Based
-
diff --git a/ai-endpoints/text-based/gpt-neo-1.3b.md b/ai-endpoints/text-based/gpt-neo-1.3b.md
deleted file mode 100644
index 1ebc7b4..0000000
--- a/ai-endpoints/text-based/gpt-neo-1.3b.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# GPT Neo 1.3B
-
-{% swagger method="post" path="gpt-neo-1_3b/runsync" baseUrl="https://api.runpod.ai/v2/" summary="" %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="header" name="Authorization" required="true" %}
-RunPod API Key
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input" type="Object" required="true" %}
-Input components for the GPT model
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt" required="true" %}
-The start of the prompt text that the model will infer from.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.do_sample" type="Boolean" %}
-Enables decoding strategies such as multinomial sampling, beam-search multinomial sampling, Top-K sampling and Top-p sampling. All these strategies select the next token from the probability distribution over the entire vocabulary with various strategy-specific adjustments.
-
-\
-
-
-
-
-**Default: True**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.max_length" type="Integer" %}
-The number of tokens (words) that should be generated.
-
-\
-
-
-
-
-**Default: 100**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.temperature" type="Boolean" %}
-How closely the output should follow the prompt.
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="Requested Output" %}
-
-{% endswagger-response %}
-{% endswagger %}
diff --git a/ai-endpoints/text-based/gpt-neo-2.7b.md b/ai-endpoints/text-based/gpt-neo-2.7b.md
deleted file mode 100644
index 3698bb3..0000000
--- a/ai-endpoints/text-based/gpt-neo-2.7b.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# GPT Neo 2.7B
-
-{% swagger method="post" path="gpt-neo-2_7b/runsync" baseUrl="https://api.runpod.ai/v2/" summary="" %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="header" name="Authorization" required="true" %}
-RunPod API Key
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input" type="Object" required="true" %}
-Input components for the GPT model
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt" required="true" %}
-The start of the prompt text that the model will infer from.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.do_sample" type="Boolean" %}
-Enables decoding strategies such as multinomial sampling, beam-search multinomial sampling, Top-K sampling and Top-p sampling. All these strategies select the next token from the probability distribution over the entire vocabulary with various strategy-specific adjustments.
-
-\
-
-
-
-
-**Default: True**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.max_length" type="Integer" %}
-The number of tokens (words) that should be generated.
-
-\
-
-
-
-
-**Default: 100**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.temperature" type="Boolean" %}
-How closely the output should follow the prompt.
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="Requested Output" %}
-
-{% endswagger-response %}
-{% endswagger %}
diff --git a/ai-endpoints/text-based/pygmalion-6b.md b/ai-endpoints/text-based/pygmalion-6b.md
deleted file mode 100644
index 64002b3..0000000
--- a/ai-endpoints/text-based/pygmalion-6b.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# Pygmalion 6B
-
-Endpoint for [PygmalionAI/pygmalion-6b](https://huggingface.co/PygmalionAI/pygmalion-6b)
-
-{% swagger method="post" path="pygmalion-6b/runsync" baseUrl="https://api.runpod.ai/v2/" summary="" %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="header" name="Authorization" required="true" %}
-RunPod API Key
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input" type="Object" required="true" %}
-Input components for the GPT model
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt" required="true" %}
-The start of the prompt text that the model will infer from.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.do_sample" type="Boolean" %}
-Enables decoding strategies such as multinomial sampling, beam-search multinomial sampling, Top-K sampling and Top-p sampling. All these strategies select the next token from the probability distribution over the entire vocabulary with various strategy-specific adjustments.
-
-\
-
-
-
-
-**Default: True**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.max_length" type="Integer" %}
-The number of tokens (words) that should be generated.
-
-\
-
-
-
-
-**Default: 100**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.temperature" type="Boolean" %}
-How closely the output should follow the prompt.
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="Requested Output" %}
-
-{% endswagger-response %}
-{% endswagger %}
diff --git a/dprint.json b/dprint.json
new file mode 100644
index 0000000..a40b291
--- /dev/null
+++ b/dprint.json
@@ -0,0 +1,26 @@
+{
+ "typescript": {
+ },
+ "json": {
+ },
+ "markdown": {
+ },
+ "toml": {
+ },
+ "ruff": {
+ },
+ "jupyter": {
+ },
+ "excludes": [
+ "**/node_modules",
+ "**/*-lock.json"
+ ],
+ "plugins": [
+ "https://plugins.dprint.dev/typescript-0.88.7.wasm",
+ "https://plugins.dprint.dev/json-0.19.1.wasm",
+ "https://plugins.dprint.dev/markdown-0.16.3.wasm",
+ "https://plugins.dprint.dev/toml-0.5.4.wasm",
+ "https://plugins.dprint.dev/ruff-0.0.4.wasm",
+ "https://plugins.dprint.dev/jupyter-0.1.2.wasm"
+ ]
+}
diff --git a/faq.md b/faq.md
deleted file mode 100644
index bd9e194..0000000
--- a/faq.md
+++ /dev/null
@@ -1,198 +0,0 @@
----
-description: General questions about RunPod and its services.
----
-
-# FAQ
-
-### **Secure Cloud vs Community Cloud**
-
-RunPod provides two cloud computing services: **Secure Cloud** and **Community Cloud**.
-
-**Secure Cloud** runs in T4 data centers by our trusted partners. Our close partnership comes with high-reliability w/ redundancy, security, and fast response times to mitigate any downtimes. For any sensitive and enterprise workloads, we highly recommend Secure Cloud.
-
-**Community Cloud** brings power in numbers and diversity spanning the whole world. Through our decentralized platform, we can offer peer-to-peer GPU computing that connects individual compute providers to compute consumers. Our Community Cloud hosts are invite-only and vetted by us.
-
-Both solutions offer far more competitive prices than large cloud providers such as AWS or GCP.
-
-### On-Demand vs. Spot Pod
-
-**OnDemand** pods can run forever without interruptions with resources dedicated to your pod. They do incur higher costs than **Spot** pods.
-
-**Spot** pods use spare compute capacity and allow you to bid for those compute resources. Resources are dedicated to your pod, but someone else can bid higher or start an **OnDemand** pod that will stop your pod. When this happens, your pod is given 5 seconds to stop with _SIGTERM_ and eventually _SIGKILL_ after 5 seconds. You can use volumes to save any data to the disk in that 5s period or push data to the cloud periodically.
-
-// example event payload
-{
- 'delayTime': 2534,
- 'id': '2a16b881-830f-4d14-af5b-f7db7c0a96fc',
- 'input': {
- 'prompt': 'A beautiful painting of a singular lighthouse, shining its light across a tumultuous sea of blood by greg rutkowski and thomas kinkade, Trending on artstation.'
- },
- 'status': 'IN_PROGRESS'
-}
-
-
-This hello world example simply takes whatever is passed to it, pretends its doing work for 3 (or whatever is configured in the env variable) seconds, then returns "hello world" as an output.
-
-Build and push your image to your favorite container image repository when you're done.
-
-While you can't currently use RunPod for this step, we are looking for ways to make this part of the development experience more smooth. Let us know if you have ideas or feature requests to make this part of the workflow more streamlined!
diff --git a/serverless-ai-api/getting-started.md b/serverless-ai-api/getting-started.md
deleted file mode 100644
index 026d497..0000000
--- a/serverless-ai-api/getting-started.md
+++ /dev/null
@@ -1,107 +0,0 @@
----
-description: Interact with your favorite models without managing the pods yourself.
----
-
-# RunPod APIs
-
-### Prerequisites
-
-* You will need a RunPod API key which can be generated under your [user settings](https://www.runpod.io/console/user/settings). This API key will identify you for billing purposes, so guard it well!
-
-#### Note\*: You must retrieve your results via the status endpoint within 1 hour. We do not keep your inputs or outputs longer than that to protect your privacy!
-
-### Overview
-
-Our initial API implementation works asynchronously. This means you fire an API request to our endpoint with your input parameters, and you immediately get a response with a unique job ID. What do I do with this useless response, you say? You can then query the status endpoint and pass it your job ID. The status endpoint will give you the job results when completed.
-
-Let's take the Stable Diffusion v1 inference endpoint, for example.
-
-#### Start your job
-
-You would first make a request like the following (remember to replace the "xxxxxx"s with your real API key:
-
-```bash
-curl -X POST https://api.runpod.ai/v1/stable-diffusion-v1/run \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--d '{"input": {"prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"}}'
-```
-
-You would get an immediate response that looks like this:
-
-```json
-{
- "id": "c80ffee4-f315-4e25-a146-0f3d98cf024b",
- "status": "IN_QUEUE"
-}
-```
-
-In this example, your job ID would be "c80ffee4-f315-4e25-a146-0f3d98cf024b". You get a new one for each job and it is a unique identifier for your job.
-
-#### Check the status of your job
-
-You haven't gotten any output at this point, so you must make an additional call to the status endpoint after some time. Your status endpoint uses the job ID to route to the correct job status. In this case, the status endpoint is
-
-```
-https://api.runpod.ai/v1/stable-diffusion-v1/status/c80ffee4-f315-4e25-a146-0f3d98cf024b
-```
-
-Note how the last part of the URL is your job ID. You could request that endpoint like so. Remember to use your API key for this request too!
-
-```bash
-curl https://api.runpod.ai/v1/stable-diffusion-v1/status/c80ffee4-f315-4e25-a146-0f3d98cf024b \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
-```
-
-If your job hasn't been completed, you may get something that looks like this back:
-
-```
-{
- "delayTime": 2624,
- "id": "c80ffee4-f315-4e25-a146-0f3d98cf024b",
- "input": {
- "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"
- },
- "status": "IN_PROGRESS"
-}
-```
-
-This just means to wait a bit longer before you query the status endpoint again.
-
-#### Get completed job status
-
-Eventually, you will get the final results of your job. They would look something like this:
-
-```
-{
- "delayTime": 123456, // (milliseconds) time in queue
- "executionTime": 1234, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "c80ffee4-f315-4e25-a146-0f3d98cf024b",
- "input": {
- "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"
- },
- "output": [
- {
- "image": "https://job.results1",
- "seed": 1
- },
- {
- "image": "https://job.results2",
- "seed": 2
- }
- ],
- "status": "COMPLETED"
-}
-```
-
-#### Note\*: You must retrieve your results via the status endpoint within 1 hour. We do not keep your inputs or outputs longer than that to protect your privacy!
-
-#### Get your stuff
-
-Note how you don't get the images directly in the output. The output simply contains the URLs to the cloud storage that will let you download each image.
-
-You've successfully generated your first images with our stable diffusion API! :tada::tada:
-
-If you're interested in descriptions for all parameters and code examples past curl, read on!
diff --git a/serverless-ai-api/stable-diffusion-v1.md b/serverless-ai-api/stable-diffusion-v1.md
deleted file mode 100644
index 75f0610..0000000
--- a/serverless-ai-api/stable-diffusion-v1.md
+++ /dev/null
@@ -1,347 +0,0 @@
----
-description: >-
- Stable Diffusion v1.5 is a latent text-to-image diffusion model capable of
- generating photo-realistic images given any text input.
----
-
-# Stable Diffusion v1
-
-### Examples
-
-{% tabs %}
-{% tab title="cURL" %}
-### Create a job request
-
-```bash
-curl -X POST https://api.runpod.ai/v1/stable-diffusion-v1/run \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--d '{"input": {"prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"}}'
-```
-
-#### Response
-
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-
-###
-
-### Retrieve Status/Output
-
-```bash
-curl https://api.runpod.ai/v1/stable-diffusion-v1/status/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
-```
-
-#### Response
-
-```json
-{
- "delayTime": 123456, // (milliseconds) time in queue
- "executionTime": 1234, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "input": {
- "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"
- },
- "output": [
- {
- "image": "https://job.results1",
- "seed": 1
- },
- {
- "image": "https://job.results2",
- "seed": 2
- }
- ],
- "status": "COMPLETED"
-}
-```
-{% endtab %}
-
-{% tab title="Python" %}
-import requests
-
-# Set the API endpoint URL
-endpoint = "https://api.runpod.ai/v1/stable-diffusion-v1/run"
-
-# Set the headers for the request
-headers = {
- "Content-Type": "application/json",
- "Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- }
-
-# Define your inputs
-input_data = {
- "input": {
- "prompt": "My creative vision."
- }
- }
-
-# Make the request
-response = requests.post(endpoint, json=input_data, headers=headers)
-
-# Print the response
-print(response.text)
-
-{% endtab %}
-
-{% tab title="NodeJS" %}
-```javascript
-const request = require('request');
-
-// Set the API endpoint and model name
-const endpoint = 'https://api.runpod.ai/v1/stable-diffusion-v1/run';
-
-// Set the API key and input data
-const apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
-const inputData = {
- input: {
- prompt: 'My creative vision.',
- },
-};
-
-// Set the headers for the request
-const headers = {
- 'Content-Type': 'application/json',
- Authorization: `Bearer ${apiKey}`,
-};
-
-// Make the request
-request.post(
- {
- url: endpoint,
- json: inputData,
- headers,
- },
- (err, response) => {
- if (err) {
- console.error(err);
- return;
- }
-
- // Print the response
- console.log(response.body);
- },
-);
-```
-{% endtab %}
-
-{% tab title="Go" %}
-```go
-package main
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
-)
-
-func main() {
- // Set the API endpoint and model name
- endpoint := "https://api.runpod.ai/v1/stable-diffusion-v1/run"
-
- // Set the API key and input data
- apiKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- inputData := map[string]interface{}{
- "input": map[string]string{
- "prompt": "My creative vision.",
- },
- }
-
- // Convert the input data to JSON
- inputJSON, err := json.Marshal(inputData)
- if err != nil {
- log.Fatal(err)
- }
-
- // Set the headers for the request
- headers := map[string][]string{
- "Content-Type": {"application/json"},
- "Authorization": {fmt.Sprintf("Bearer %s", apiKey)},
- }
-
- // Make the request
- resp, err := http.Post(endpoint, "application/json", bytes.NewBuffer(inputJSON))
- if err != nil {
- log.Fatal(err)
- }
- defer resp.Body.Close()
-
- // Print the response
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(string(body))
-}
-```
-{% endtab %}
-{% endtabs %}
-
-{% swagger method="post" path="/v1/stable-diffusion-v1/run" baseUrl="https://api.runpod.ai" summary="Run an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="header" name="Authorization" required="true" %}
-RunPod API Key
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input" type="Object" required="true" %}
-Input Object contains prompt, and more
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="webhook" type="String" %}
-URL endpoint to receive a webhook call on job complete, fail, or timeout.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt" required="true" type="String" %}
-Your input prompt.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.negative_prompt" type="String" required="false" %}
-Specify things to not see in the output.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.width" type="Integer" %}
-With of output image.\
-128, 256, 384, 448, 512, 576, 640, 704, 768
-
-**Default: 512**\
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.height" type="Integer" %}
-Height of output image.\
-128, 256, 384, 448, 512, 576, 640, 704, 768
-
-**Default: 512**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.init_image" type="String" %}
-URL for an initial image to generate variations of. Will be resized to the specific width and height.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.mask" type="String" %}
-URL of a black and white image to use as a mask for inpainting over init\_image. Black pixels are inpainted and white pixels are preserved.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.guidance_scale" type="Float" %}
-Scale for classifier-free guidance.\
-Rage 1 -> 20
-
-**Default: 7.5**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" type="Integer" name="input.num_inference_steps" %}
-The number of denoising steps.\
-Range 1 -> 500
-
-**Default: 50**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.num_outputs" type="Integer" %}
-The number of images to output.\
-Range 1 -> 10
-
-**Default: 1**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt_strength" type="Float" %}
-How much importance is given to the prompt.\
-Range: 0.0 -> 1.0
-
-**Default: 0.8**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.scheduler" type="String" %}
-Choose a scheduler.\
-Options: DDIM, DDPM, DPM-M, DPM-S, EULER-A, EULER-D, HEUN, IPNDM, KDPM2-A, KDPM2-D, PNDM, K-LMS
-
-**Default: K-LMS**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.seed" type="Integer" %}
-Random seed.
-
-\
-
-
-
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="400: Bad Request" description="Invalid input" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="429: Too Many Requests" description="Rate limited due to many requests" %}
-
-{% endswagger-response %}
-{% endswagger %}
-
-{% swagger method="get" path="/v1/stable-diffusion-v1/status/{ REQUEST_ID }" baseUrl="https://api.runpod.ai" summary="Status and output of an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="path" name="REQUEST_ID" type="UUID" required="true" %}
-inference request id
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "delayTime": 71, // (milliseconds) time in queue
- "executionTime": 3423, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "39a6a9eb-3f39-40ee-892f-d3c2b2545a2f",
- "input": {
- "height": 640,
- "num_inference_steps": 50,
- "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists",
- "width": 512
- },
- "output": [
- "https://r2..." // securely signed URLs
- ],
- "status": "COMPLETED" // COMPLETED, IN_QUEUE, IN_PROGRESS, FAILED
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-```javascript
-{
- // Response
-}
-```
-{% endswagger-response %}
-{% endswagger %}
diff --git a/serverless-ai/custom-apis/README.md b/serverless-ai/custom-apis/README.md
deleted file mode 100644
index a7fc8c5..0000000
--- a/serverless-ai/custom-apis/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-description: Bring your own container image, we scale and handle the rest.
----
-
-# Custom APIs
-
-### Overview
-
-While we try to add APIs where we can, we can only maintain and create so many APIs. If you have a custom use case, you can use our custom API support to stand up your own serverless API!
-
diff --git a/serverless-ai/custom-apis/autoscaling.md b/serverless-ai/custom-apis/autoscaling.md
deleted file mode 100644
index 13ae7ac..0000000
--- a/serverless-ai/custom-apis/autoscaling.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-description: >-
- The Serverless AI platform enables seamless scale for your models. The
- following properties can be defined for your service.
----
-
-# Autoscaling
-
-New APIs can be created from the [API management page](https://www.runpod.io/console/serverless/user/apis).
-
-**API Name**\
-****Anything you prefer.
-
-**Template**\
-Select from your templates. The template controls what worker is used to run your API jobs.
-
-**Min Workers**
-
-This is the minimum amount of workers that we will try to keep running for you. A minimum worker count of 0 means that if your API doesn't receive requests for a while, then you will have no active workers running. This will help you save on your costs, but may mean that the first cold start will take a bit longer than average. Use your discretion to pick something that suits your scale and budget.
-
-**Max Workers**
-
-You can also configure a max worker count. This is the top limit of what RunPod will attempt to autoscale for you. Use this to cap your concurrent request count and also limit your cost ceiling.
-
-**Idle Timeout** (seconds)\
-Idle timeout to wait before a worker is scaled down. If you specify 5 seconds, workers will sit idle for at least 5 seconds before it's stopped to help reduce cost.
-
-**GPU Type**\
-****You can currently choose between three varieties of configurations: 16 GB, 24 GB, or 80 GB VRAM.\
-For the 16 GB variety, we deploy NVIDIA RTX A4000.\
-For the 24 GB variety, we deploy NVIDIA RTX A5000 or 3090. \
-For the 80 GB variety, we deploy NVIDIA A100 80 GB.
-
-A100s are about 2-3x faster than A5000s and also allow double the VRAM with very high bandwidth throughout. 3090s and A5000s are 1.5-2x faster than A4000s. Sometimes it may make more sense to use 24 GB even if you don't need it compared to 16 GB due to faster response times. Do your own calculations to figure out what's more cost effective for your workload.
-
-Want access to different flavors? Let us know and we can look at expanding our offerings!
diff --git a/serverless-ai/custom-apis/template-creation.md b/serverless-ai/custom-apis/template-creation.md
deleted file mode 100644
index 5b37a3d..0000000
--- a/serverless-ai/custom-apis/template-creation.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-description: Templates define additional configuration for deploying workers
----
-
-# Template Creation
-
-You can access [template creation here](https://www.runpod.io/console/serverless/user/templates).
-
-The following properties can be defined per template.
-
-**Template Name**\
-****Name your template anything you want to help your organize your templates.
-
-**Container Image**\
-****Location to the container image, could be from docker-hub or any other repository. You can use
-
-`runpod/serverless-hello-world`
-
-here if you didn't build your own worker.
-
-**Container Registry Credentials**\
-****Link container credentials for private repositories. These can be configured in your [user settings menu](https://www.runpod.io/console/serverless/user/settings).
-
-**Docker Command**\
-****Command to run on container startup; by default command defined in the Dockerfile will be used.
-
-**Container Disk**\
-****Amount of disk required to run your worker. This will depend on how big your model and other files are in the container.
-
-**Environment Variables**\
-****Use these to pass config and secrets to your container.
diff --git a/serverless-ai/custom-apis/using-your-api.md b/serverless-ai/custom-apis/using-your-api.md
deleted file mode 100644
index 9a8e07f..0000000
--- a/serverless-ai/custom-apis/using-your-api.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-description: Okay so now you have everything set up, but how do you use it?
----
-
-# Using Your API
-
-Once everything above is configured, you will be able to invoke your API using the "run" endpoint on your API dashboard. Our services are currently asynchronous, so you must use the "status" endpoint to get the status/results of each run using the id present in the run response payload. You can also pass in webhook URL when invoking "run" within the JSON body.
-
-Our own APIs are built using the same tools, so you can take a look at the [RunPod API overview](../../serverless-ai-api/getting-started.md). The only difference is that your custom API endpoint only accepts requests using your own account's API key, not any RunPod API key.
diff --git a/serverless-ai/runpod-apis/anything-v3-sd-v1.5.md b/serverless-ai/runpod-apis/anything-v3-sd-v1.5.md
deleted file mode 100644
index 7e066bc..0000000
--- a/serverless-ai/runpod-apis/anything-v3-sd-v1.5.md
+++ /dev/null
@@ -1,349 +0,0 @@
----
-description: >-
- Anything V3 - a latent diffusion model for weebs. This model is intended to
- produce high-quality, highly detailed anime style with just a few prompts.
----
-
-# Anything v3 (SD-v1.5)
-
-Model: [https://huggingface.co/Linaqruf/anything-v3.0](https://huggingface.co/Linaqruf/anything-v3.0)
-
-### Examples
-
-{% tabs %}
-{% tab title="cURL" %}
-### Create a job request
-
-```bash
-curl -X POST https://api.runpod.ai/v1/sd-anything-v3/run \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--d '{"input": {"prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"}}'
-```
-
-#### Response
-
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-
-###
-
-### Retrieve Status/Output
-
-```bash
-curl https://api.runpod.ai/v1/sd-anything-v3/status/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
-```
-
-#### Response
-
-```json
-{
- "delayTime": 123456, // (milliseconds) time in queue
- "executionTime": 1234, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "input": {
- "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"
- },
- "output": [
- {
- "image": "https://job.results1",
- "seed": 1
- },
- {
- "image": "https://job.results2",
- "seed": 2
- }
- ],
- "status": "COMPLETED"
-}
-```
-{% endtab %}
-
-{% tab title="Python" %}
-import requests
-
-# Set the API endpoint URL
-endpoint = "https://api.runpod.ai/v1/sd-anything-v3/run"
-
-# Set the headers for the request
-headers = {
- "Content-Type": "application/json",
- "Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- }
-
-# Define your inputs
-input_data = {
- "input": {
- "prompt": "My creative vision."
- }
- }
-
-# Make the request
-response = requests.post(endpoint, json=input_data, headers=headers)
-
-# Print the response
-print(response.text)
-
-{% endtab %}
-
-{% tab title="NodeJS" %}
-```javascript
-const request = require('request');
-
-// Set the API endpoint and model name
-const endpoint = 'https://api.runpod.ai/v1/sd-anything-v3/run';
-
-// Set the API key and input data
-const apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
-const inputData = {
- input: {
- prompt: 'My creative vision.',
- },
-};
-
-// Set the headers for the request
-const headers = {
- 'Content-Type': 'application/json',
- Authorization: `Bearer ${apiKey}`,
-};
-
-// Make the request
-request.post(
- {
- url: endpoint,
- json: inputData,
- headers,
- },
- (err, response) => {
- if (err) {
- console.error(err);
- return;
- }
-
- // Print the response
- console.log(response.body);
- },
-);
-```
-{% endtab %}
-
-{% tab title="Go" %}
-```go
-package main
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
-)
-
-func main() {
- // Set the API endpoint and model name
- endpoint := "https://api.runpod.ai/v1/sd-anything-v3/run"
-
- // Set the API key and input data
- apiKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- inputData := map[string]interface{}{
- "input": map[string]string{
- "prompt": "My creative vision.",
- },
- }
-
- // Convert the input data to JSON
- inputJSON, err := json.Marshal(inputData)
- if err != nil {
- log.Fatal(err)
- }
-
- // Set the headers for the request
- headers := map[string][]string{
- "Content-Type": {"application/json"},
- "Authorization": {fmt.Sprintf("Bearer %s", apiKey)},
- }
-
- // Make the request
- resp, err := http.Post(endpoint, "application/json", bytes.NewBuffer(inputJSON))
- if err != nil {
- log.Fatal(err)
- }
- defer resp.Body.Close()
-
- // Print the response
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(string(body))
-}
-```
-{% endtab %}
-{% endtabs %}
-
-{% swagger method="post" path="/v1/sd-anything-v3/run" baseUrl="https://api.runpod.ai" summary="Run an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="header" name="Authorization" required="true" %}
-RunPod API Key
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input" type="Object" required="true" %}
-Input Object contains prompt, and more
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="webhook" type="String" %}
-URL endpoint to receive a webhook call on job complete, fail, or timeout.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt" required="true" %}
-Your input prompt.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.negative_prompt" type="String" %}
-Specify things to not see in the output.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.width" type="Integer" %}
-With of output image.\
-128, 256, 384, 448, 512, 576, 640, 704, 768
-
-**Default: 512**\
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.height" type="Integer" %}
-Height of output image.\
-128, 256, 384, 448, 512, 576, 640, 704, 768
-
-**Default: 512**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" type="String" name="input.init_image" %}
-URL for an initial image to generate variations of. Will be resized to the specific width and height.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.mask" type="String" %}
-URL of a black and white image to use as a mask for inpainting over init\_image. Black pixels are inpainted and white pixels are preserved.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.guidance_scale" type="Float" %}
-Scale for classifier-free guidance.\
-Rage 1 -> 20
-
-**Default: 7.5**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" type="Integer" name="input.num_inference_steps" %}
-The number of denoising steps.\
-Range 1 -> 500
-
-**Default: 50**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.num_outputs" type="Integer" %}
-The number of images to output.\
-Range 1 -> 10
-
-**Default: 1**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt_strength" type="Float" %}
-How much importance is given to the prompt.\
-Range: 0.0 -> 1.0
-
-**Default: 0.8**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.scheduler" type="String" %}
-Choose a scheduler.\
-Options: DDIM, K-LMS, PNDM
-
-**Default: K-LMS**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.seed" type="Integer" %}
-Random seed.
-
-\
-
-
-
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="400: Bad Request" description="Invalid input" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="429: Too Many Requests" description="Rate limited due to many requests" %}
-
-{% endswagger-response %}
-{% endswagger %}
-
-{% swagger method="get" path="/v1/sd-anything-v3/status/{ REQUEST_ID }" baseUrl="https://api.runpod.ai" summary="Status and output of an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="path" name="REQUEST_ID" type="UUID" required="true" %}
-inference request id
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "delayTime": 71, // (milliseconds) time in queue
- "executionTime": 3423, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "39a6a9eb-3f39-40ee-892f-d3c2b2545a2f",
- "input": {
- "height": 640,
- "num_inference_steps": 50,
- "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists",
- "width": 512
- },
- "output": [
- "https://r2..." // securely signed URLs
- ],
- "status": "COMPLETED" // COMPLETED, IN_QUEUE, IN_PROGRESS, FAILED
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-```javascript
-{
- // Response
-}
-```
-{% endswagger-response %}
-{% endswagger %}
diff --git a/serverless-ai/runpod-apis/dreambooth-sd-v1.5.md b/serverless-ai/runpod-apis/dreambooth-sd-v1.5.md
deleted file mode 100644
index 68f1ed0..0000000
--- a/serverless-ai/runpod-apis/dreambooth-sd-v1.5.md
+++ /dev/null
@@ -1,650 +0,0 @@
----
-description: >-
- DreamBooth is a deep learning generation model that fine-tunes existing
- text-to-image models such as Stable Diffusion.
----
-
-# DreamBooth (SD-v1.5)
-
-This is an adaptation of [DreamBooth](https://github.com/TheLastBen/fast-stable-diffusion) by [TheLastBen](https://github.com/TheLastBen) to a [RunPod Endpoint](https://www.runpod.io/endpoints). This endpoint requires the URL to a publicly accessible .zip file containing a folder of images of a concept to fine-tune the model. If you want to dive deep into DreamBooth, look at the [original paper](https://arxiv.org/pdf/2208.12242.pdf).
-
-{% tabs %}
-{% tab title="cURL" %}
-### Create a job request
-
-```bash
-curl -X POST https://api.runpod.ai/v1/dream-booth-v1/run \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--d '{"input": {"train": {"data_url": "https://your_public.zip"}, "inference":[ {"prompt": "A yellow submarine."} ] }}'
-```
-
-#### Response
-
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-
-###
-
-### Retrieve Status/Output
-
-```bash
-curl https://api.runpod.ai/v1/dream-booth-v1/status/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
-```
-
-#### Response
-
-```json
-{
- "delayTime": 123456, // (milliseconds) time in queue
- "executionTime": 1234, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "input": {
- "train": {
- "data_url": "https://your_public.zip"
- },
- "inference":[
- {"prompt": "A yellow submarine."}
- ]
- },
- "status": "COMPLETED"
-}
-```
-{% endtab %}
-
-{% tab title="Python" %}
-```python
-import requests
-
-# Set the API endpoint URL
-endpoint = "https://api.runpod.ai/v1/dream-booth-v1/run"
-
-# Set the headers for the request
-headers = {
- "Content-Type": "application/json",
- "Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- }
-
-# Define your inputs
-input_data = {
- "input": {
- "train": {
- "data_url": "https://your_public.zip"
- },
- "inference":[
- {"prompt": "A yellow submarine."}
- ]
- }
-}
-
-# Make the request
-response = requests.post(endpoint, json=input_data, headers=headers)
-
-# Print the response
-print(response.text)
-```
-{% endtab %}
-
-{% tab title="NodeJS" %}
-```javascript
-const request = require('request');
-
-// Set the API endpoint and model name
-const endpoint = 'https://api.runpod.ai/v1/dream-booth-v1/run';
-
-// Set the API key and input data
-const apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
-const inputData = {
- "input": {
- "train": {
- "data_url": "https://your_public.zip"
- },
- "inference":[
- {"prompt": "A yellow submarine."}
- ]
- }
-};
-
-// Set the headers for the request
-const headers = {
- 'Content-Type': 'application/json',
- Authorization: `Bearer ${apiKey}`,
-};
-
-// Make the request
-request.post(
- {
- url: endpoint,
- json: inputData,
- headers,
- },
- (err, response) => {
- if (err) {
- console.error(err);
- return;
- }
-
- // Print the response
- console.log(response.body);
- },
-);
-```
-{% endtab %}
-
-{% tab title="GO" %}
-```go
-package main
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
-)
-
-func main() {
- // Set the API endpoint and model name
- endpoint := "https://api.runpod.ai/v1/dream-booth-v1/run"
-
- // Set the API key and input data
- apiKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- inputData := map[string]interface{}{
- "input": {
- "train": {
- "data_url": "https://your_public.zip"
- },
- "inference":[
- {"prompt": "A yellow submarine."}
- ]
- }
-}
-
- // Convert the input data to JSON
- inputJSON, err := json.Marshal(inputData)
- if err != nil {
- log.Fatal(err)
- }
-
- // Set the headers for the request
- headers := map[string][]string{
- "Content-Type": {"application/json"},
- "Authorization": {fmt.Sprintf("Bearer %s", apiKey)},
- }
-
- // Make the request
- resp, err := http.Post(endpoint, "application/json", bytes.NewBuffer(inputJSON))
- if err != nil {
- log.Fatal(err)
- }
- defer resp.Body.Close()
-
- // Print the response
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(string(body))
-}
-```
-{% endtab %}
-{% endtabs %}
-
-### Supported Inputs
-
-```json
-{
- "input": {
- "train": {
- "data_url": str,
- "concept_name": str,
- "offset_noise": bool,
- "hf_model": str,
- "hf_token": str,
- "ckpt_link": str,
- "text_steps": int,
- "text_seed": int,
- "text_batch_size": int,
- "text_resolution": int,
- "text_learning_rate": float,
- "text_lr_scheduler": str,
- "text_8_bit_adam": bool,
- "unet_seed": int,
- "unet_batch_size": int,
- "unet_resolution": int,
- "unet_epochs": int,
- "unet_learning_rate": float,
- "unet_lr_scheduler": str,
- "unet_8_bit_adam": bool,
- },
- "inference": [
- {
- "enable_hr": bool,
- "denoising_strength": int,
- "firstphase_width": int,
- "firstphase_height": int,
- "hr_scale": int,
- "hr_upscaler": str,
- "hr_second_pass_steps": int,
- "hr_resize_x": int,
- "hr_resize_y": int,
- "prompt": str,
- "styles": list,
- "seed": int,
- "subseed": int,
- "subseed_strength": int,
- "seed_resize_from_h": int,
- "seed_resize_from_w": int,
- "sampler_name": str,
- "batch_size": int,
- "n_iter": int,
- "steps": int,
- "cfg_scale": int,
- "width": int,
- "height": int,
- "restore_faces": bool,
- "tiling": bool,
- "negative_prompt": str,
- "eta": int,
- "s_churn": int,
- "s_tmax": int,
- "s_tmin": int,
- "s_noise": int,
- "sampler_index": str,
- "script_name": str,
- "passback": str
- }
- ]
- },
- "s3Config": {
- "accessId": str,
- "accessSecret": str,
- "bucketName": str,
- "endpointUrl": str
- },
- "webhook": str
-}
-```
-
-{% swagger method="post" path="/v1/dream-booth-v1/run" baseUrl="https://api.runpod.ai" summary="Run an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="body" name="input" type="Object" required="true" %}
-Input object containing your training paramaters, optional infrerence paramaters, optional S3 bucket, and optional webhook.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train" type="Object" required="true" %}
-Contains the list of configurations to train a new model.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.data_url" type="String" required="true" %}
-A bublicly accessible URL to your zip file containing your data set images.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.concept_name" type="String" %}
-A uniqe name to train your concept with, this will over-ride your file names using the following scheme:
-
-_"concept (#).jpg"_
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.offset_noise" type="Boolean" %}
-Enables [offset noise](https://blog.runpod.io/get-awesomer-outputs-from-dreambooth-with-offset-noise/) for style training.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.hf_model" type="String" %}
-URL to a HuggingFace model(repository/model). The model MUST contain a diffuser style model. If it is a standard CKPT, use ckpt\_url
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.trian.hf_token" type="String" %}
-If the huggingface repo is private, your user access token.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.ckpt_link" type="String" %}
-Publicly accessable link toa ckpt file.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.text_steps" type="Integer" %}
-The number of steps used to train the text encoder.
-
-**Default: 350**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.text_seed" type="Integer" %}
-The seed used to train the text encoder.
-
-**Default: 555**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.text_batch_size" type="Integer" %}
-The number of images passed each step of the text encoder process.
-
-Default: 1
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.text_resolution" type="Integer" %}
-The training resolution used for the text training.
-
-**Default: 512**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.text_learning_rate" type="Float" %}
-The learning rate for the text encoder.
-
-**Default: 1e-6**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.text_lr_scheduler" type="String" %}
-The scheduler used when training the text encoder.
-
-_Options: linear, cosine, cosine\_with\_restarts, polynomial, constant, constant\_with\_warmup_
-
-**Default: linear**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.text_8_bit_adam" type="Boolean" %}
-Enable 8-bit-adam.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.unet_seed" type="Integer" %}
-The seed used for training the UNet.
-
-**Default: 555**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.unet_batch_size" type="Integer" %}
-The number of images that are passed through in a single training step.
-
-**Default: 1**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.unet_resolution" type="Integer" %}
-The resolution at which the UNet is trained.
-
-**Default: 256**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.unet_epochs" type="Integer" %}
-The number of epochs used when training the UNet, the number of steps are extrapalated by multiplying the number of input images by the epochs.
-
-**Default: 150**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.unet_learning_rate" type="Float" %}
-The learning rate when training the UNet.
-
-**Default: 2e-6**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.unet_lr_scheduler" type="Integer" %}
-The scheduler used when training the UNet ext encoder.
-
-_Options: linear, cosine, cosine\_with\_restarts, polynomial, constant, constant\_with\_warmup_
-
-**Default: linear**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.train.unet_8_bit_adam" type="Boolean" %}
-Enable 8-bit-adam.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference" type="List" %}
-A list of infrence prompts to generate images from.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.enable_hr" type="Boolean" %}
-Toggle for hires fix.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.denoising_strength" type="Integer" %}
-The amount of denoising applied to the image.
-
-**Default: 0**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.firstphase_width" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.firstphase_height" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.hr_scale" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.hr_upscaler" type="String" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.hr_second_pass_steps" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.hr_resize_x" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.hr_resize_y" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.prompt" type="String" required="true" %}
-The prompt that is used for the generation of the image.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.styles" type="List" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.seed" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.subseed" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.subseed_strength" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.seed_resize_from_h" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.seed_resize_from_w" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.sampler_name" type="String" %}
-Sampler used to generate images. No underscore required.\
-_Options: Euler a, Euler, LMS, Heun, DPM2, DPM2 a, DPM++ 2S a, DPM++ 2M, DPM++ SDE, DPM fast, DPM adaptive, LMS Karras, DPM2 Karras, DPM2 a Karras, DPM++ 2S a Karras, DPM++ 2M Karras, DPM++ SDE Karras_
-
-**Default: Euler a**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.batch_size" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.n_iter" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.steps" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.cfg_scale" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.width" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.height" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.restore_faces" type="Boolean" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.tiling" type="Boolean" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.negative_prompt" type="String" %}
-Prompt for things that should not appear in the final resulting image.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.eta" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.s_churn" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.s_tmax" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.s_tmin" type="Integer" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.s_noise" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.sampler_index" type="String" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.script_name" type="String" %}
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.inference.passback" type="String" %}
-An otpional string that you can provide, this string is simply returned with the corrisponding image in your request.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="webhook" type="String" %}
-URL endpoint to receive a webhook call on job complete, fail, or timeout.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="s3Config" type="Object" %}
-Credentials for a user-defined S3 compatible bucket where the trained model can be uploaded to.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="s3Config.accessId" type="String" %}
-The ID required for your S3 bucket.
-
-\
-
-
-
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="s3Config.accessSecret" type="String" %}
-The secret required for your S3 bucket.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="s3Config.bucketName" type="String" %}
-The name of the bucket where you want to upload your model to.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="s3Config.endpointUrl" type="String" %}
-The URL for your S3 bucket.
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON Response" %}
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="400: Bad Request" description="Invalid input" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="401" description="Invalid API Key" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="429: Too Many Requests" description="Rate limited due to many requests" %}
-
-{% endswagger-response %}
-{% endswagger %}
-
-{% swagger method="get" path="/v1/dream-booth-v1/status/{REQUEST_ID}" baseUrl="https://api.runpod.ai" summary="Status and output of an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="path" name="REQUEST_ID" required="true" type="UUID" %}
-Inference Request id
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="" %}
-```json
-{
- "delayTime": 123456, // (milliseconds) time in queue
- "executionTime": 1234, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "input": {
- "train": {
- "data_url": "https://your_public.zip"
- },
- "inference":[
- {"prompt": "A yellow submarine."}
- ]
- },
- "status": "COMPLETED"
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-```javascript
-{
- // Response
-}
-```
-{% endswagger-response %}
-{% endswagger %}
-
-_Please reach out in discord or email us at support@runpod.io for feature requests regarding DreamBooth fine-tuning._
diff --git a/serverless-ai/runpod-apis/everydream-sd-v1.5.md b/serverless-ai/runpod-apis/everydream-sd-v1.5.md
deleted file mode 100644
index 62a691a..0000000
--- a/serverless-ai/runpod-apis/everydream-sd-v1.5.md
+++ /dev/null
@@ -1,639 +0,0 @@
----
-description: >-
- EveryDream provides general fine-tuning for Stable Diffusion. This endpoint
- also provides inference so that models can be trained and images can be
- generated in one shot.
----
-
-# EveryDream (SD-v1.5)
-
-This is an adaptation of [EveryDream2trainer by victorchall](https://github.com/victorchall/EveryDream2trainer) to a [RunPod Endpoint](https://www.runpod.io/endpoints). To run this endpoint, you will need a publicly accessible .zip file that contains images of a concept you wish to fine-tune the model with. The key to successfully using EveryDream is to have well-captioned images. Here is the [official guide on data preparation](https://github.com/victorchall/EveryDream2trainer/blob/main/doc/DATA.md).
-
-### Examples
-
-{% tabs %}
-{% tab title="cURL" %}
-### Create a job request
-
-```bash
-curl -X POST https://api.runpod.ai/v1/everydream-v1/run \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--d '{"input": {"train": {"data_url": "https://LINK_TO_ZIP.FILE"}, "inference": [{"prompt": "a unique 123xyz concept name as a superhero"}]}}'
-```
-
-#### Response
-
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-
-### Retrieve Status/Output
-
-```bash
-curl https://api.runpod.ai/v1/everydream-v1/status/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
-```
-
-#### Response
-
-```json
-{
- "delayTime": int,
- "executionTime": int,
- "gpu": str,
- "id": str,
- "input": {},
- "output": {},
- "status": str
-}
-```
-{% endtab %}
-
-{% tab title="Python" %}
-```python
-import requests
-
-# Set the API endpoint URL
-endpoint = "https://api.runpod.ai/v1/everydream-v1/run"
-
-# Set the headers for the request
-headers = {
- "Content-Type": "application/json",
- "Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- }
-
-# Define your inputs
-input_data = {
- "input": {
- "train": {
- "data_url": "https://LINK_TO_ZIP.FILE"
- },
- "inference": {
- "prompt": "a unique 123xyz concept name as a superhero"
- }
- }
-}
-
-# Make the request
-response = requests.post(endpoint, json=input_data, headers=headers)
-
-# Print the response
-print(response.text)
-```
-{% endtab %}
-
-{% tab title="NodeJS" %}
-```javascript
-const request = require('request');
-
-// Set the API endpoint and model name
-const endpoint = 'https://api.runpod.ai/v1/everydream-v1/run';
-
-// Set the API key and input data
-const apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
-const inputData = {
- "input": {
- "train": {
- "data_url": "https://LINK_TO_ZIP.FILE"
- },
- "inference": {
- "prompt": "a unique 123xyz concept name as a superhero"
- }
- }
-};
-
-// Set the headers for the request
-const headers = {
- 'Content-Type': 'application/json',
- Authorization: `Bearer ${apiKey}`,
-};
-
-// Make the request
-request.post(
- {
- url: endpoint,
- json: inputData,
- headers,
- },
- (err, response) => {
- if (err) {
- console.error(err);
- return;
- }
-
- // Print the response
- console.log(response.body);
- },
-);
-```
-{% endtab %}
-
-{% tab title="GO" %}
-```go
-package main
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
-)
-
-func main() {
- // Set the API endpoint and model name
- endpoint := "https://api.runpod.ai/v1/everydream-v1/run"
-
- // Set the API key and input data
- apiKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- inputData := map[string]interface{}{
- "input": {
- "train": {
- "data_url": "https://LINK_TO_ZIP.FILE"
- },
- "inference": {
- "prompt": "a unique 123xyz concept name as a superhero"
- }
- }
-}
-
- // Convert the input data to JSON
- inputJSON, err := json.Marshal(inputData)
- if err != nil {
- log.Fatal(err)
- }
-
- // Set the headers for the request
- headers := map[string][]string{
- "Content-Type": {"application/json"},
- "Authorization": {fmt.Sprintf("Bearer %s", apiKey)},
- }
-
- // Make the request
- resp, err := http.Post(endpoint, "application/json", bytes.NewBuffer(inputJSON))
- if err != nil {
- log.Fatal(err)
- }
- defer resp.Body.Close()
-
- // Print the response
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(string(body))
-}
-```
-{% endtab %}
-{% endtabs %}
-
-### Supported Inputs
-
-```json
-{
- "input": {
- "train": {
- "amp": bool,
- "batch_size": int,
- "ckpt_every_n_minutes": int,
- "clip_grad_norm": float,
- "clip_skip": int,
- "cond_dropout": float,
- "data_url": str,
- "disable_textenc_training": bool,
- "disable_unet_training": bool,
- "disable_xformers": bool,
- "flip_p": float,
- "gradient_checkpointing": bool,
- "grad_accum": int,
- "hf_repo_subfolder": str,
- "lr": float,
- "lr_decay_steps": int,
- "lr_scheduler": str,
- "lr_warmup_steps": int,
- "max_epochs": int,
- "resolution": int,
- "resume_ckpt_url": str,
- "sample_prompts": list,
- "sample_steps": int,
- "save_full_precision": bool,
- "save_optimizer": bool,
- "scale_lr": bool,
- "seed": int,
- "shuffle_tags": bool,
- "useadam8bit": bool,
- "rated_dataset": bool,
- "rated_dataset_target_dropout_percent": int
- },
- "inference": [
- {
- "prompt": str,
- "negative_prompt": str,
- "width": int,
- "height": int,
- "num_outputs": int,
- "num_inference_steps": int,
- "guidance_scale": float,
- "scheduler": str,
- "seed": int,
- "passback": str
- }
- ]
- },
- "s3Config": {
- "accessId": str,
- "accessSecret": str,
- "bucketName": str,
- "endpointUrl": str
- },
- "webhook": str
-}
-```
-
-{% swagger method="post" path="/v1/everydream-v1/run" baseUrl="https://api.runpod.ai" summary="" %}
-{% swagger-description %}
-Run a training & inference request.
-{% endswagger-description %}
-
-{% swagger-parameter in="body" name="train" type="Object" %}
-Contains the list of configuration options to train a new model.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.amp" type="Boolean" %}
-Enables automatic mixed precision compute.
-
-**Default: True**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.batch_size" type="Integer" %}
-Batch size
-
-**Default: 2**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.ckpt_every_n_minutes" type="Integer" %}
-Save checkpoint every n minutes.
-
-**Default: 20**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.clip_grad_norm" type="Float" %}
-Clip gradient norm, useful if loss=nan?
-
-\
-
-
-
-
-**Default: None (Disabled)**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.clip_skip" type="Integer" %}
-Train using penultimate layer.
-
-_Options: 0, 1, 2, 3,4_
-
-**Default: 0**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.cond_dropout" type="Float" %}
-Conditional drop out as decimal, see [docs](https://github.com/victorchall/EveryDream2trainer/blob/main/doc/ATWEAKING.md#conditional-dropout) for more info
-
-_Options: 0.0 -> 1.0_\
-**Default: 0.04**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.data_url" type="String" required="true" %}
-URL to a publicly accessible zip file that contains the training images.
-
-\
-
-
-
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.disable_textenc_training" type="Boolean" %}
-Disables training of text encoder.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.disable_unet_training" type="Boolean" %}
-Disables training of unet. (NOT RECOMMENDED)
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.disable_xformers" type="Boolean" %}
-Disable xformers, may reduce performance.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.flip_p" type="Float" %}
-Probability of flipping image horizontally, not good for specific faces!
-
-_Options: 0.0 -> 1.0_
-
-**Default: 0.0**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.gradient_checkpointing" type="Boolean" %}
-Enable gradient checkpointing to reduce VRAM use, may reduce performance.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.grad_accum" type="Integer" %}
-Gradient accumulation factor.
-
-**Default: 1**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.hf_repo_subfolder" type="String" %}
-Subfolder inside the huggingface repo to download, if the model is not in the root of the repo.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.lr" type="Float" %}
-Learning rate, if using scheduler is maximum LR at top of curve.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.lr_decay_steps" type="Integer" %}
-Steps to reach minimum LR.
-
-**Default: None, automatically set**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.lr_scheduler" type="String" %}
-LR scheduler
-
-_Options: constant, linear, cosine, polynomial_
-
-**Default: constant**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.lr_warmup_steps" type="Integer" %}
-Steps to reach max LR during warmup , non-functional for constant.
-
-**Default: 0.02 of lr\_decay\_steps**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.max_epochs" type="Integer" %}
-Maximum number of epochs to train for.
-
-**Default: 300**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.resolution" type="Integer" %}
-Resolution to train.
-
-_Options: 256, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1024, 1088, 1152_
-
-**Default: 512**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.resume_ckpt_url" type="String" %}
-The url to a publicly available checkpoint to resume from, either a local .ckpt file, a converted Diffusers format (ziped) folder, or a Huggingface.co repo such as [https://huggingface.co/stabilityai/stable-diffusion-2-1](https://huggingface.co/stabilityai/stable-diffusion-2-1)
-
-**Default: sd\_v1-5\_vae.ckpt**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.sample_prompts" type="List" %}
-A list of prompt strings to generate samples from your trained model.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.sample_steps" type="Integer" %}
-Number of steps between samples.
-
-**Default: 250**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.save_full_precision" type="Boolean" %}
-Save ckpts at full FP32
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.save_optimizer" type="Boolean" %}
-Saves optimizer state with ckpt, useful for resuming training later.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.scale_lr" type="Boolean" %}
-Automatically scale up learning rate based on batch size and grad accumulation.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.seed" type="Integer" %}
-Seed used for samples and shuffling, use -1 for random.
-
-**Default: 555**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.shuffle_tags" type="Boolean" %}
-Randomly shuffles CSV tags in captions, for booru datasets.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.useadam8bit" type="Boolean" %}
-Use AdamW 8-Bit optimizer, recommended!
-
-**Default: True**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.rated_dataset" type="Boolean" %}
-Enable rated image set training, to less often train on lower rated images through the epochs.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="train.rated_dataset_target_dropout_percent" type="Integer" %}
-How many images (in percent) should be included in the last epoch.
-
-_Options: 1 -> 100_
-
-**Default: 50**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="inference" type="List" %}
-A list of images to create once the model has been trained.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="inference.prompt" type="String" required="true" %}
-Input prompt.
-
-Default: None
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="inference.negative_prompt" type="String" %}
-Specify things to not see in the output.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="inference.width" type="Integer" %}
-Width of the output image.
-
-_Options: 128, 256, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1024_
-
-**Default: 512**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="inference.height" type="Integer" %}
-Height of the output image.
-
-_Options: 128, 256, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1024_
-
-**Default: 512**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="inference.num_outputs" type="Integer" %}
-Number of batched images to generate for the given prompt.
-
-\
-
-
-
-
-_Options: 1 -> 10_
-
-\
-
-
-
-
-**Default: 1**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="inference:num_inference_steps" type="Integer" %}
-Number of denoising steps.\
-_Options: 1 -> 500_
-
-**Default: 50**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="inference:guidance_scale" type="Float" %}
-Scale for classifier-free guidance.
-
-_Options: 1 -> 20_
-
-**Default: 7.5**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="inference:scheduler" type="String" %}
-Choose a scheduler.
-
-_Options: DDIM, DDPM, DPM-M, DPM-S, EULER-A, EULER-D, HEUN, IPNDM, KDPM2-A, KDPM2-D, PNDM, K-LMS_
-
-**Default: K-LMS**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="inference.seed" type="Integer" %}
-Random seed.
-
-\
-
-
-
-
-**Default: Random**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="inference.passback" type="String" %}
-User provide note/identifier, passed back with the corresponding image.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="s3Config" type="Object" %}
-Credentials for a user-defined S3 compatibe bucket where the trained model can be uploaded to.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="s3Config.accessId" type="String" %}
-The ID required for your S3 bucket.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="s3Config.accessSecret" type="String" %}
-The secret required for your S3 bucket.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="s3Config.bucketName" type="String" %}
-The name of the bucket where you want to upload your model to.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="s3Config.endpointUrl" type="String" %}
-The URL for your S3 bucket.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="webhook" type="String" %}
-URL endpoint to receive a webhook call on job complete, fail, or timeout.
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="Request successfully received. " %}
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="400: Bad Request" description="Invalid input" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="429: Too Many Requests" description="Rate limited due to too many requests. " %}
-
-{% endswagger-response %}
-{% endswagger %}
-
-{% swagger method="get" path="/v1/everydream-v1/status/{ REQUEST_ID }" baseUrl="https://api.runpod.ai" summary="" %}
-{% swagger-description %}
-Status and output of an inference request.
-{% endswagger-description %}
-
-{% swagger-parameter in="path" name="REQUEST_ID" type="UUID" %}
-Inference request ID
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="Contains the job status along with the output." %}
-```json
-{
- "delayTime": int,
- "executionTime": int,
- "gpu": str,
- "id": str,
- "input": {},
- "output": {},
- "status": str
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-```javascript
-{
- // Response
-}
-```
-{% endswagger-response %}
-{% endswagger %}
diff --git a/serverless-ai/runpod-apis/openjourney-sd-v1.5.md b/serverless-ai/runpod-apis/openjourney-sd-v1.5.md
deleted file mode 100644
index a781d18..0000000
--- a/serverless-ai/runpod-apis/openjourney-sd-v1.5.md
+++ /dev/null
@@ -1,351 +0,0 @@
----
-description: >-
- Openjourney is an open-source Stable Diffusion fine-tuned model on Midjourney
- images by PromptHero.
----
-
-# Openjourney (SD-v1.5)
-
-Model: [https://huggingface.co/prompthero/openjourney](https://huggingface.co/prompthero/openjourney)
-
-{% tabs %}
-{% tab title="cURL" %}
-### Create a job request
-
-```bash
-curl -X POST https://api.runpod.ai/v1/sd-openjourney/run \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--d '{"input": {"prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"}}'
-```
-
-#### Response
-
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-
-###
-
-### Retrieve Status/Output
-
-```bash
-curl https://api.runpod.ai/v1/sd-openjourney/status/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
-```
-
-#### Response
-
-```json
-{
- "delayTime": 123456, // (milliseconds) time in queue
- "executionTime": 1234, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "input": {
- "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"
- },
- "output": [
- {
- "image": "https://job.results1",
- "seed": 1
- },
- {
- "image": "https://job.results2",
- "seed": 2
- }
- ],
- "status": "COMPLETED"
-}
-```
-{% endtab %}
-
-{% tab title="Python" %}
-```python
-import requests
-
-# Set the API endpoint URL
-endpoint = "https://api.runpod.ai/v1/sd-openjourney/run"
-
-# Set the headers for the request
-headers = {
- "Content-Type": "application/json",
- "Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- }
-
-# Define your inputs
-input_data = {
- "input": {
- "prompt": "My creative vision."
- }
- }
-
-# Make the request
-response = requests.post(endpoint, json=input_data, headers=headers)
-
-# Print the response
-print(response.text)
-```
-{% endtab %}
-
-{% tab title="NodeJS" %}
-```javascript
-const request = require('request');
-
-// Set the API endpoint and model name
-const endpoint = 'https://api.runpod.ai/v1/sd-openjourney/run';
-
-// Set the API key and input data
-const apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
-const inputData = {
- input: {
- prompt: 'My creative vision.',
- },
-};
-
-// Set the headers for the request
-const headers = {
- 'Content-Type': 'application/json',
- Authorization: `Bearer ${apiKey}`,
-};
-
-// Make the request
-request.post(
- {
- url: endpoint,
- json: inputData,
- headers,
- },
- (err, response) => {
- if (err) {
- console.error(err);
- return;
- }
-
- // Print the response
- console.log(response.body);
- },
-);
-```
-{% endtab %}
-
-{% tab title="Go" %}
-```go
-package main
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
-)
-
-func main() {
- // Set the API endpoint and model name
- endpoint := "https://api.runpod.ai/v1/sd-openjourney/run"
-
- // Set the API key and input data
- apiKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- inputData := map[string]interface{}{
- "input": map[string]string{
- "prompt": "My creative vision.",
- },
- }
-
- // Convert the input data to JSON
- inputJSON, err := json.Marshal(inputData)
- if err != nil {
- log.Fatal(err)
- }
-
- // Set the headers for the request
- headers := map[string][]string{
- "Content-Type": {"application/json"},
- "Authorization": {fmt.Sprintf("Bearer %s", apiKey)},
- }
-
- // Make the request
- resp, err := http.Post(endpoint, "application/json", bytes.NewBuffer(inputJSON))
- if err != nil {
- log.Fatal(err)
- }
- defer resp.Body.Close()
-
- // Print the response
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(string(body))
-}
-```
-{% endtab %}
-{% endtabs %}
-
-{% swagger method="post" path="/v1/sd-openjourney/run" baseUrl="https://api.runpod.ai" summary="Run an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="header" name="Authorization" required="true" %}
-RunPod API Key
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input" type="Object" required="true" %}
-Input Object contains prompt, and more
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="webhook" type="String" %}
-URL endpoint to receive a webhook call on job complete, fail, or timeout.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt" type="String" required="true" %}
-Your input prompt.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.negative_prompt" type="String" %}
-Specify things to not see in the output.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.width" type="Integer" %}
-With of output image.\
-128, 256, 384, 448, 512, 576, 640, 704, 768
-
-**Default: 512**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.height" type="Integer" %}
-Height of output image.\
-128, 256, 384, 448, 512, 576, 640, 704, 768
-
-**Default: 512**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.init_image" type="String" %}
-URL for an initial image to generate variations of. Will be resized to the specific width and height.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.mask" type="String" %}
-URL of a black and white image to use as a mask for inpainting over init\_image. Black pixels are inpainted and white pixels are preserved.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.guidance_scale" type="Float" %}
-Scale for classifier-free guidance.\
-Rage 1 -> 20
-
-**Default: 7.5**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.num_inference_steps" type="Integer" %}
-The number of denoising steps.\
-Range 1 -> 500
-
-**Default: 50**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.num_outputs" type="Integer" %}
-The number of images to output.\
-Range 1 -> 10
-
-**Default: 1**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt_strength" type="Float" %}
-How much importance is given to the prompt.\
-Range: 0.0 -> 1.0
-
-**Default: 0.8**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.scheduler" type="Integer" %}
-Choose a scheduler.\
-Options: DDIM, K-LMS, PNDM
-
-**Default: K-LMS**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.seed" type="Integer" %}
-Random seed.
-
-\
-
-
-
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="400: Bad Request" description="Invalid input" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-```javascript
-{
- // Response
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="429: Too Many Requests" description="Rate limited due to many requests" %}
-```javascript
-{
- // Response
-}
-```
-{% endswagger-response %}
-{% endswagger %}
-
-{% swagger method="get" path="/v1/sd-openjourney/status/{ REQUEST_ID }" baseUrl="https://api.runpod.ai" summary="Status and output of an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="path" name="REQUEST_ID" type="UUID" %}
-Inference Request id
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "delayTime": 71, // (milliseconds) time in queue
- "executionTime": 3423, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "39a6a9eb-3f39-40ee-892f-d3c2b2545a2f",
- "input": {
- "height": 640,
- "num_inference_steps": 50,
- "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists",
- "width": 512
- },
- "output": [
- "https://r2..." // securely signed URLs
- ],
- "status": "COMPLETED" // COMPLETED, IN_QUEUE, IN_PROGRESS, FAILED
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-
-{% endswagger-response %}
-{% endswagger %}
diff --git a/serverless-ai/runpod-apis/stable-diffusion-v2.md b/serverless-ai/runpod-apis/stable-diffusion-v2.md
deleted file mode 100644
index 0ada2fe..0000000
--- a/serverless-ai/runpod-apis/stable-diffusion-v2.md
+++ /dev/null
@@ -1,342 +0,0 @@
----
-description: >-
- Stable Diffusion v2 is a latent text-to-image diffusion model capable of
- generating photo-realistic images given any text input.
----
-
-# Stable Diffusion v2
-
-{% tabs %}
-{% tab title="cURL" %}
-### Create a job request
-
-```bash
-curl -X POST https://api.runpod.ai/v1/stable-diffusion-v2/run \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--d '{"input": {"prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"}}'
-```
-
-#### Response
-
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-
-###
-
-### Retrieve Status/Output
-
-```bash
-curl https://api.runpod.ai/v1/stable-diffusion-v2/status/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
-```
-
-#### Response
-
-```json
-{
- "delayTime": 123456, // (milliseconds) time in queue
- "executionTime": 1234, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "input": {
- "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"
- },
- "output": [
- {
- "image": "https://job.results1",
- "seed": 1
- },
- {
- "image": "https://job.results2",
- "seed": 2
- }
- ],
- "status": "COMPLETED"
-}
-```
-{% endtab %}
-
-{% tab title="Python" %}
-```python
-import requests
-
-# Set the API endpoint URL
-endpoint = "https://api.runpod.ai/v1/stable-diffusion-v2/run"
-
-# Set the headers for the request
-headers = {
- "Content-Type": "application/json",
- "Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- }
-
-# Define your inputs
-input_data = {
- "input": {
- "prompt": "My creative vision."
- }
- }
-
-# Make the request
-response = requests.post(endpoint, json=input_data, headers=headers)
-
-# Print the response
-print(response.text)
-```
-{% endtab %}
-
-{% tab title="NodeJS" %}
-```javascript
-const request = require('request');
-
-// Set the API endpoint and model name
-const endpoint = 'https://api.runpod.ai/v1/stable-diffusion-v2/run';
-
-// Set the API key and input data
-const apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
-const inputData = {
- input: {
- prompt: 'My creative vision.',
- },
-};
-
-// Set the headers for the request
-const headers = {
- 'Content-Type': 'application/json',
- Authorization: `Bearer ${apiKey}`,
-};
-
-// Make the request
-request.post(
- {
- url: endpoint,
- json: inputData,
- headers,
- },
- (err, response) => {
- if (err) {
- console.error(err);
- return;
- }
-
- // Print the response
- console.log(response.body);
- },
-);
-```
-{% endtab %}
-
-{% tab title="Go" %}
-```go
-package main
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
-)
-
-func main() {
- // Set the API endpoint and model name
- endpoint := "https://api.runpod.ai/v1/stable-diffusion-v2/run"
-
- // Set the API key and input data
- apiKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- inputData := map[string]interface{}{
- "input": map[string]string{
- "prompt": "My creative vision.",
- },
- }
-
- // Convert the input data to JSON
- inputJSON, err := json.Marshal(inputData)
- if err != nil {
- log.Fatal(err)
- }
-
- // Set the headers for the request
- headers := map[string][]string{
- "Content-Type": {"application/json"},
- "Authorization": {fmt.Sprintf("Bearer %s", apiKey)},
- }
-
- // Make the request
- resp, err := http.Post(endpoint, "application/json", bytes.NewBuffer(inputJSON))
- if err != nil {
- log.Fatal(err)
- }
- defer resp.Body.Close()
-
- // Print the response
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(string(body))
-}
-```
-{% endtab %}
-{% endtabs %}
-
-{% swagger method="post" path="/v1/stable-diffusion-v2/run" baseUrl="https://api.runpod.ai" summary="Run an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="header" name="Authorization" type="String" required="true" %}
-RunPod API Key
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input" type="Object" required="true" %}
-Input Object contains prompt, and more
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="webhook" type="String" %}
-URL endpoint to receive a webhook call on job complete, fail, or timeout.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt" type="String" required="true" %}
-Your input prompt.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.negative_prompt" type="String" %}
-Specify things to not see in the output.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.height" type="Integer" %}
-Height of output image.\
-128, 256, 384, 448, 512, 576, 640, 704, 768
-
-**Default: 512**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.width" type="Integer" %}
-With of output image.\
-128, 256, 384, 448, 512, 576, 640, 704, 768
-
-**Default: 512**\
-
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.prompt_strength" type="Float" %}
-How much importance is given to the prompt.\
-Range: 0.0 -> 1.0
-
-**Default: 0.8**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.num_outputs" type="Integer" %}
-The number of images to output.\
-Range 1 -> 10
-
-**Default: 1**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.num_inference_steps" type="Integer" %}
-The number of denoising steps.\
-Range 1 -> 500
-
-**Default: 50**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.guidance_scale" type="Float" %}
-Scale for classifier-free guidance.\
-Rage 1 -> 20
-
-**Default: 7.5**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.scheduler" type="String" %}
-Choose a scheduler.\
-Options: DDIM, K\_EULER, DPMSolverMultistep, K\_EULER\_ANCESTRAL, PNDM, KLMS
-
-**Default: KLMS**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.seed" type="Integer" %}
-Random seed.
-
-\
-
-
-
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="400: Bad Request" description="Invalid Input" %}
-```javascript
-{
- // Response
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-```javascript
-{
- // Response
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="429: Too Many Requests" description="Rate limited due to too many requests" %}
-```javascript
-{
- // Response
-}
-```
-{% endswagger-response %}
-{% endswagger %}
-
-{% swagger method="get" path="/v1/stable-diffusion-v2/status/{ REQUEST_ID }" baseUrl="https://api.runpod.ai" summary="Status and output of an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="path" name="REQUEST_ID" type="UUID" required="true" %}
-Inference Request ID
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "delayTime": 71, // (milliseconds) time in queue
- "executionTime": 3423, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "39a6a9eb-3f39-40ee-892f-d3c2b2545a2f",
- "input": {
- "height": 640,
- "num_inference_steps": 50,
- "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists",
- "width": 512
- },
- "output": [
- "https://r2..." // securely signed URLs
- ],
- "status": "COMPLETED" // COMPLETED, IN_QUEUE, IN_PROGRESS, FAILED
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-
-{% endswagger-response %}
-{% endswagger %}
diff --git a/serverless-ai/runpod-apis/whisper.md b/serverless-ai/runpod-apis/whisper.md
deleted file mode 100644
index 2183e7a..0000000
--- a/serverless-ai/runpod-apis/whisper.md
+++ /dev/null
@@ -1,400 +0,0 @@
----
-description: Whisper is an automatic speech recognition (ASR) system.
----
-
-# Whisper
-
-### Required Input
-
-```json
-{
- "input":{
- "audio": "https://LINK_TO_AUDIO.FILE"
- }
-}
-```
-
-### Examples
-
-{% tabs %}
-{% tab title="cURL" %}
-### Create a job request
-
-```bash
-curl -X POST https://api.runpod.ai/v1/whisper/run \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--d '{"input": {"audio": "https://LINK_TO_AUDIO.FILE"}}'
-```
-
-#### Response
-
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-
-###
-
-### Retrieve Status/Output
-
-```bash
-curl https://api.runpod.ai/v1/whisper/status/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--H 'Content-Type: application/json' \
--H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
-```
-
-#### Response
-
-```json
-{
- "delayTime": 123456, // (milliseconds) time in queue
- "executionTime": 1234, // (milliseconds) time it took to complete the job
- "gpu": "24", // gpu type used to run the job
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "input": {
- "audio": "https://LINK_TO_AUDIO.FILE"
- },
- "output": {
- "detected_language": "language",
- "segments": [{
- "avg_logprob": 0.1,
- "compression_ratio": 1,
- "end": 2,
- "id": 0,
- "no_speech_prob": 0,
- "seek": 0,
- "start": 0,
- "temperature": 1,
- "text": "Couple starting words",
- "tokens": [1,2,3]
- }],
- "transcription": "Full transcription",
- "translation": null
- },
- "status": "COMPLETED"
-}
-```
-{% endtab %}
-
-{% tab title="Python" %}
-import requests
-
-# Set the API endpoint URL
-endpoint = "https://api.runpod.ai/v1/whisper/run"
-
-# Set the headers for the request
-headers = {
- "Content-Type": "application/json",
- "Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- }
-
-# Define your inputs
-input_data = {
- "input": {
- "audio": "https://LINK_TO_AUDIO.FILE"
- }
- }
-
-# Make the request
-response = requests.post(endpoint, json=input_data, headers=headers)
-
-# Print the response
-print(response.text)
-
-{% endtab %}
-
-{% tab title="NodeJS" %}
-```javascript
-const request = require('request');
-
-// Set the API endpoint and model name
-const endpoint = 'https://api.runpod.ai/v1/whisper/run';
-
-// Set the API key and input data
-const apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
-const inputData = {
- input: {
- audio: 'https://LINK_TO_AUDIO.FILE',
- },
-};
-
-// Set the headers for the request
-const headers = {
- 'Content-Type': 'application/json',
- Authorization: `Bearer ${apiKey}`,
-};
-
-// Make the request
-request.post(
- {
- url: endpoint,
- json: inputData,
- headers,
- },
- (err, response) => {
- if (err) {
- console.error(err);
- return;
- }
-
- // Print the response
- console.log(response.body);
- },
-);
-```
-{% endtab %}
-
-{% tab title="Go" %}
-```go
-package main
-
-import (
- "bytes"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
-)
-
-func main() {
- // Set the API endpoint and model name
- endpoint := "https://api.runpod.ai/v1/whisper/run"
-
- // Set the API key and input data
- apiKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- inputData := map[string]interface{}{
- "input": map[string]string{
- "audio": "https://LINK_TO_AUDIO.FILE",
- },
- }
-
- // Convert the input data to JSON
- inputJSON, err := json.Marshal(inputData)
- if err != nil {
- log.Fatal(err)
- }
-
- // Set the headers for the request
- headers := map[string][]string{
- "Content-Type": {"application/json"},
- "Authorization": {fmt.Sprintf("Bearer %s", apiKey)},
- }
-
- // Make the request
- resp, err := http.Post(endpoint, "application/json", bytes.NewBuffer(inputJSON))
- if err != nil {
- log.Fatal(err)
- }
- defer resp.Body.Close()
-
- // Print the response
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- log.Fatal(err)
- }
- fmt.Println(string(body))
-}
-```
-{% endtab %}
-{% endtabs %}
-
-{% swagger method="post" path="/v1/whisper/run" baseUrl="https://api.runpod.ai" summary="Run an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="header" name="Authorization" required="true" %}
-RunPod API Key
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input" type="Object" required="true" %}
-Input Object contains prompt, and more
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="webhook" type="String" %}
-URL endpoint to receive a webhook call on job complete, fail, or timeout.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.audio" required="false" type="String" %}
-Your input audio file.
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.model" type="String" required="false" %}
-Choose a Whisper model.
-
-Options: tiny, base, small, medium, large-v1, large-v2
-
-**Default: base**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.transcription" type="String" %}
-Choose the format for the transcription.
-
-Options: plain text, srt, vtt
-
-**Default: plain text**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.translate" type="Boolean" %}
-Translate the text to English when set to True.
-
-**Default: False**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.language" type="String" %}
-Language spoken in the audio, specify None to perform language detection.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" type="Float" name="input.temperature" %}
-Temperature to use for sampling.
-
-**Default: 0**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.best_of" type="Integer" %}
-The number of candidates when sampling with non-zero temperature.
-
-**Default: 5**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.beam_size" type="Integer" %}
-Number of beams in beam search, only applicable when temperature is zero.
-
-**Default: 5**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.patience" type="Float" %}
-Optional patience value to use in beam decoding.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.length_penalty" type="Float" %}
-Optional token length penalty coefficient (alpha) as in https://arxiv.org/abs/1609.08144, uses simple length normalization by default.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.suppress_tokens" type="String" %}
-Comma-separated list of token ids to suppress during sampling; '-1' will suppress most special characters except common punctuations.
-
-**Default: -1**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.initial_prompt" type="String" %}
-Optional text to provide as a prompt for the first window.
-
-**Default: None**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.condition_on_previous_text" type="Boolean" %}
-If True, provide the previous output of the model as a prompt for the next window; disabling may make the text inconsistent across windows, but the model becomes less prone to getting stuck in a failure loop.
-
-\
-
-
-
-
-**Default: True**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.temperature_increment_on_fallback" type="Float" %}
-Temperature to increase when falling back when the decoding fails to meet either of the thresholds below.
-
-**Default: 0.2**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.compression_ratio_threshold" type="Float" %}
-If the gzip compression ration is higher than this value, treat the decoding as failed.
-
-**Default: 2.4**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.logprob_threshold" type="Float" %}
-If the average log probability is lower than this value, treat the decoding as failed.
-
-**Default: -1.0**
-{% endswagger-parameter %}
-
-{% swagger-parameter in="body" name="input.no_speech_threshold" type="Float" %}
-If the probability of the <|nospeech|> token is higher than this value AND the decoding has failed due to 'logprob\_threshold', consider the segment as silence.
-
-**Default: 0.6**
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
- "status": "IN_QUEUE"
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="400: Bad Request" description="Invalid input" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-
-{% endswagger-response %}
-
-{% swagger-response status="429: Too Many Requests" description="Rate limited due to many requests" %}
-
-{% endswagger-response %}
-{% endswagger %}
-
-{% swagger method="get" path="/v1/whisper/status/{ REQUEST_ID }" baseUrl="https://api.runpod.ai" summary="Status and output of an inference request." %}
-{% swagger-description %}
-
-{% endswagger-description %}
-
-{% swagger-parameter in="path" name="REQUEST_ID" type="UUID" required="true" %}
-inference request id
-{% endswagger-parameter %}
-
-{% swagger-response status="200: OK" description="JSON response" %}
-```json
-{
- "delayTime": 157664,
- "executionTime": 3289,
- "id": "4b82e3fb-ce2b-49dc-bd35-965041cd161b",
- "input": {
- "audio": "https://github.com/runpod/serverless-workers/raw/main/Input-Samples/gettysburg.wav"
- },
- "output": {
- "detected_language": "english",
- "segments": [{
- "avg_logprob": -0.18336993294793205,
- "compression_ratio": 1.3858267716535433,
- "end": 10,
- "id": 0,
- "no_speech_prob": 0.06009136512875557,
- "seek": 0,
- "start": 0,
- "temperature": 0,
- "text": " Four score and seven years ago, our fathers brought forth on this continent a new nation, conceived in liberty, and dedicated to the proposition that all men are created equal.",
- "tokens": [50364, 7451, 6175, 293, 3407, 924, 2057, 11, 527, 23450, 3038, 5220, 322, 341, 18932, 257, 777, 4790, 11, 34898, 294, 22849, 11, 293, 8374, 281, 264, 24830, 300, 439, 1706, 366, 2942, 2681, 13, 50864]
- }],
- "transcription": "00:00.000 --> 00:10.000\nFour score and seven years ago, our fathers brought forth on this continent a new nation, conceived in liberty, and dedicated to the proposition that all men are created equal.\n\n",
- "translation": null
- },
- "status": "COMPLETED"
-}
-```
-{% endswagger-response %}
-
-{% swagger-response status="401: Unauthorized" description="Invalid API Key" %}
-```javascript
-{
- // Response
-}
-```
-{% endswagger-response %}
-{% endswagger %}
diff --git a/serverless-gpus/worker-functions.md b/serverless-gpus/worker-functions.md
deleted file mode 100644
index 41394f7..0000000
--- a/serverless-gpus/worker-functions.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-description: There are shared functions that are accessible by all serverless APIs.
----
-
-# Worker Functions
-
-## Webhook
-
-To be notified of completed jobs, a URL can be passed within the top level of the request like so:
-
-```json
-{
- "input": "Data needed to complete the job.",
- "webhook": "https://URL.TO.YOUR.WEBHOOK"
-}
-```
-
-A POST request will be sent to your URL when the job is complete. This request will contain the same information you would receive if you fetched the results from the /status/{id} endpoint.
-
-_Note: Webhook functionality is identical regardless of the worker._
-
-## S3 Compatible Storage
-
-The credentials for S3-compatible object storage can be passed in with the request as follows:
-
-```json
-{
- "input": "Data needed to complete the job.",
- "s3Config": {
- "accessId": "key_id_or_username",
- "accessSecret": "key_secret_or_password",
- "bucketName": "storage_location_name",
- "endpointUrl": "storage_location_address"
- },
-}
-```
-
-The configuration is only passed onto the worked, it will not be returned as part of the job request output.
-
-_Note: The serverless worker will need to contain the logic/functionality that allows it to make sure of this input. If you build a custom endpoint and request s3Config in the input, your worker is ultimately responsible for using the information passed in to upload the output._
-
-## Worker Controls
-
-When completing long-running job requests or complicated requests that involve a lot of reading and writing files, starting with a fresh worker can be beneficial each time. A flag can be returned with the resulting job output to stop and refresh the used worker. This behavior is achieved by doing the following within your worker:
-
-```python
-# Requires runpod python version 0.9.0+
-
-def your_handler(job):
- .
- .
- ...
- Your handlers functionality here.
- ...
- .
- .
- return {"refresh_worker": True, "job_results": "can be anything"}
-```
-
-Your handler must return a dictionary that contains `refresh_worker,` this flag will be removed before the remaining job output is returned.
-
-_Note: Refreshing a worker does not impact billing or count for/against your min, max, and warmed workers. It simply "resets" that worker at the end of a job._
diff --git a/v1.0/AI ENDPOINTS/health-check.md b/v1.0/AI ENDPOINTS/health-check.md
new file mode 100644
index 0000000..10db75a
--- /dev/null
+++ b/v1.0/AI ENDPOINTS/health-check.md
@@ -0,0 +1,13 @@
+---
+title: "Health Check"
+slug: "health-check"
+excerpt: "Retrieve endpoint statistics."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Apr 24 2023 19:44:34 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sun Apr 30 2023 06:42:37 GMT+0000 (Coordinated Universal Time)"
+---
+
+The health check is a utility function that can be called on any endpoint to provide worker and queue metrics.
diff --git a/v1.0/AI ENDPOINTS/runpod-apis.md b/v1.0/AI ENDPOINTS/runpod-apis.md
new file mode 100644
index 0000000..bb0456e
--- /dev/null
+++ b/v1.0/AI ENDPOINTS/runpod-apis.md
@@ -0,0 +1,119 @@
+---
+title: "RunPod APIs"
+slug: "runpod-apis"
+excerpt: "Interact with your favorite models without managing the pods yourself."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Mar 27 2023 17:54:52 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jul 28 2023 19:36:04 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Prerequisites
+
+- You will need a RunPod API key which can be generated under your user settings. This API key will identify you for billing purposes, so guard it well!
+
+_**Note: You must retrieve your results via the status endpoint within 30 minutes. We do not keep your inputs or outputs longer than that to protect your privacy!**_
+
+## Overview
+
+Our initial API implementation works asynchronously. This means you fire an API request to our endpoint with your input parameters and immediately get a response with a unique job ID. What do I do with this useless response, you say? You can then query the status endpoint and pass it your job ID. The status endpoint will give you the job results when completed.
+
+Let's take the Stable Diffusion v1 inference endpoint, for example.
+
+### Start your job
+
+You would first make a request like the following (remember to replace the "xxxxxx"s with your real API key:
+
+```curl
+curl -X POST https://api.runpod.ai/v2/stable-diffusion-v1/run \
+-H 'Content-Type: application/json' \
+-H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
+-d '{"input": {"prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"}}'
+```
+
+You would get an immediate response that looks like this:
+
+```json
+{
+ "id": "c80ffee4-f315-4e25-a146-0f3d98cf024b",
+ "status": "IN_QUEUE"
+}
+```
+
+In this example, your job ID would be "c80ffee4-f315-4e25-a146-0f3d98cf024b". You get a new one for each job, and it is a unique identifier for your job.
+
+### Check the status of your job
+
+You haven't gotten any output, so you must make an additional call to the status endpoint after some time. Your status endpoint uses the job ID to route to the correct job status. In this case, the status endpoint is
+
+```
+https://api.runpod.ai/v1/stable-diffusion-v1/status/c80ffee4-f315-4e25-a146-0f3d98cf024b
+```
+
+Note how the last part of the URL is your job ID. You could request that endpoint like so. Remember to use your API key for this request too!
+
+```curl
+curl https://api.runpod.ai/v2/stable-diffusion-v1/status/c80ffee4-f315-4e25-a146-0f3d98cf024b \
+-H 'Content-Type: application/json' \
+-H 'Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
+```
+
+If your job hasn't been completed, you may get something that looks like this back:
+
+```json
+{
+ "delayTime": 2624,
+ "id": "c80ffee4-f315-4e25-a146-0f3d98cf024b",
+ "input": {
+ "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"
+ },
+ "status": "IN_PROGRESS"
+}
+```
+
+This means to wait a bit longer before you query the status endpoint again.
+
+## Get completed job status
+
+Eventually, you will get the final results of your job. They would look something like this:
+
+```json
+{
+ "delayTime": 123456, // (milliseconds) time in queue
+ "executionTime": 1234, // (milliseconds) time it took to complete the job
+ "gpu": "24", // gpu type used to run the job
+ "id": "c80ffee4-f315-4e25-a146-0f3d98cf024b",
+ "input": {
+ "prompt": "a cute magical flying dog, fantasy art drawn by disney concept artists"
+ },
+ "output": [
+ {
+ "image": "https://job.results1",
+ "seed": 1
+ },
+ {
+ "image": "https://job.results2",
+ "seed": 2
+ }
+ ],
+ "status": "COMPLETED"
+}
+```
+
+_**Note: You must retrieve your results via the status endpoint within 1 hour. We do not keep your inputs or outputs longer than that to protect your privacy!**_
+
+### Get your stuff
+
+Note how you don't get the images directly in the output. The output contains the URLs to the cloud storage that will let you download each image.
+
+You've successfully generated your first images with our Stable Diffusion API!
+
+If you want descriptions for all parameters and code examples past curl, read on!
+
+### Rate Limit
+
+`/run` - 1000 requests every 10s
+
+`/runsync` - 2000 requests every 10s
diff --git a/v1.0/Audio MODELS/faster-whisper-copy.md b/v1.0/Audio MODELS/faster-whisper-copy.md
new file mode 100644
index 0000000..b4c0ad1
--- /dev/null
+++ b/v1.0/Audio MODELS/faster-whisper-copy.md
@@ -0,0 +1,19 @@
+---
+title: "Faster-Whisper (COPY)"
+slug: "faster-whisper-copy"
+excerpt: "Whisper is an automatic speech recognition (ASR) system."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Aug 29 2023 18:37:54 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Aug 29 2023 18:38:38 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Worker Repository
+
+The worker repository for this endpoint is available on GitHub at [runpod-works/worker-faster_whisper](https://github.com/runpod-workers/worker-faster_whisper)
diff --git a/v1.0/Audio MODELS/faster-whisper.md b/v1.0/Audio MODELS/faster-whisper.md
new file mode 100644
index 0000000..790fef8
--- /dev/null
+++ b/v1.0/Audio MODELS/faster-whisper.md
@@ -0,0 +1,19 @@
+---
+title: "Faster-Whisper"
+slug: "faster-whisper"
+excerpt: "Whisper is an automatic speech recognition (ASR) system."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue May 30 2023 16:21:42 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Oct 19 2023 00:23:51 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Worker Repository
+
+The worker repository for this endpoint is available on GitHub at [runpod-works/worker-faster_whisper](https://github.com/runpod-workers/worker-faster_whisper)
diff --git a/v1.0/Audio MODELS/retrieve-results-status-copy.md b/v1.0/Audio MODELS/retrieve-results-status-copy.md
new file mode 100644
index 0000000..7f06e97
--- /dev/null
+++ b/v1.0/Audio MODELS/retrieve-results-status-copy.md
@@ -0,0 +1,24 @@
+---
+title: "Retrieve Results & Status"
+slug: "retrieve-results-status-copy"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Apr 25 2023 00:52:16 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Aug 31 2023 16:43:54 GMT+0000 (Coordinated Universal Time)"
+---
+
+When a request is made using the `/run` endpoint, or if a job takes longer than 90 seconds to complete when using the `/runsync` endpoint, a job ID will be returned. This job ID is essential for tracking the progress of a job and obtaining its results upon completion. To do so, use the `/status/{job_id}` endpoint described below.
+
+### Check Job Status and Retrieve Results
+
+To check the status of a job or retrieve its results once completed, make a request to the `/status/{job_id}` endpoint, replacing `{job_id}` with the specific job ID received earlier.
+
+1. **Checking job status:** If the job is still in progress, the endpoint will return the current status of the job (e.g., "IN_QUEUE", "IN_PROGRESS", "FAILED", "COMPLETED", ).
+2. **Retrieving job results:** If the job has been completed successfully, the endpoint will return the results of the job.
+
+Please note that you should periodically poll the `/status/{job_id}` endpoint to monitor the progress of your job and retrieve the results once it has finished.
+
+**Note: Job results are kept for up to 30 minutes after a job is completed. **
diff --git a/v1.0/Audio MODELS/whisper.md b/v1.0/Audio MODELS/whisper.md
new file mode 100644
index 0000000..bb39048
--- /dev/null
+++ b/v1.0/Audio MODELS/whisper.md
@@ -0,0 +1,19 @@
+---
+title: "Whisper"
+slug: "whisper"
+excerpt: "Whisper is an automatic speech recognition (ASR) system."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Mar 27 2023 17:38:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jul 28 2023 14:48:34 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Worker Repository
+
+The worker repository for this endpoint is available on GitHub at [runpod-workers/worker-whisper](https://github.com/runpod-workers/worker-whisper)
diff --git a/v1.0/GPU INSTANCES/persistent-storage.md b/v1.0/GPU INSTANCES/persistent-storage.md
new file mode 100644
index 0000000..3358033
--- /dev/null
+++ b/v1.0/GPU INSTANCES/persistent-storage.md
@@ -0,0 +1,16 @@
+---
+title: "🗄️ | Persistent Storage"
+slug: "persistent-storage"
+excerpt: "Dedicated space to save and retain data."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Nov 06 2023 15:50:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Nov 06 2023 19:44:26 GMT+0000 (Coordinated Universal Time)"
+---
+
+Any data saved to container disk space will be lost when a pod is restarted, in order to maintain data between restarts you must use a form of persistent storage. Currently, RunPod offers the following two solutions:
+
+1. Attached volume, this form of storage is provided at a server level and connects to your pod. You cannot share this storage between pods or move it.
+2. Network storage, this is a network-based storage solution that significantly increases the flexibility of what you can do on RunPod. With network storage, you can share data between different pods.
diff --git a/v1.0/GPU INSTANCES/persistent-storage/attached-volume.md b/v1.0/GPU INSTANCES/persistent-storage/attached-volume.md
new file mode 100644
index 0000000..4dc1023
--- /dev/null
+++ b/v1.0/GPU INSTANCES/persistent-storage/attached-volume.md
@@ -0,0 +1,11 @@
+---
+title: "Attached Volume"
+slug: "attached-volume"
+excerpt: ""
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Nov 06 2023 19:34:44 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Nov 06 2023 19:34:44 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/GPU INSTANCES/persistent-storage/network-storage.md b/v1.0/GPU INSTANCES/persistent-storage/network-storage.md
new file mode 100644
index 0000000..bcb1303
--- /dev/null
+++ b/v1.0/GPU INSTANCES/persistent-storage/network-storage.md
@@ -0,0 +1,15 @@
+---
+title: "Network Storage"
+slug: "network-storage"
+excerpt: "Exclusive to secure cloud, this datacenter level storage option that can be shared between pods."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Nov 06 2023 19:32:55 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Nov 06 2023 19:51:06 GMT+0000 (Coordinated Universal Time)"
+---
+
+When using network storage you are no longer restricted by the resources of an individual system like you were with a basic attached volume. Since this form of storage is at a datacenter level you can easily switch pods/GPU types that are available at that datacenter or even allow multiple Pods to share a single network storage volume.
+
+> 👍 By using `/runpod-volume` as the default mounting location, you will be ready to deploy on serverless if you choose to do so.
diff --git a/v1.0/GPU INSTANCES/pods.md b/v1.0/GPU INSTANCES/pods.md
new file mode 100644
index 0000000..f991379
--- /dev/null
+++ b/v1.0/GPU INSTANCES/pods.md
@@ -0,0 +1,31 @@
+---
+title: "🖥️ | Pods"
+slug: "pods"
+excerpt: "Containers for your compute needs."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Wed May 31 2023 20:54:11 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Nov 06 2023 20:20:34 GMT+0000 (Coordinated Universal Time)"
+---
+
+Pods are running container instances pulled from a container registry such as Docker Hub, GitHub Container Registry, Amazon Elastic Container Registry, or another compatible registry. Pods can be created from a template or deployed directly via the API and CLI tools.
+
+On RunPod you can configure the following:
+
+- GPU Type and Quantity
+- System Disk Size
+- Start Command
+- Environment Variables
+- Open/Expose HTTP/TCP ports
+- Persistent Storage Options
+
+> 🚧 When building a docker image for RunPod be sure to use the flag `--platform linux/amd64,linux/arm64` to ensure it is compatible with the platform.
+
+## Terminating a Pod
+
+1. Click the dropdown arrow to expand the pod page.\
+ ![](https://files.readme.io/b56d880-image.png)
+2. Click the stop/terminate button. A pod that is connected to network storage can not be paused and will have a terminate button in place of a stop button.\
+ ![](https://files.readme.io/6d9fe46-image.png)
diff --git a/v1.0/GPU INSTANCES/pods/logs.md b/v1.0/GPU INSTANCES/pods/logs.md
new file mode 100644
index 0000000..34cdabc
--- /dev/null
+++ b/v1.0/GPU INSTANCES/pods/logs.md
@@ -0,0 +1,27 @@
+---
+title: "Logs"
+slug: "logs"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Wed May 31 2023 21:01:32 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Jun 01 2023 17:00:47 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Accessing Logs
+
+![](https://files.readme.io/6bbe0ac-image.png)
+
+![](https://files.readme.io/2f0330e-image.png)
+
+You are provided with two types of logs, `Container Logs` and `System Logs`
+
+### Container Logs
+
+These logs relay anything typically sent to your console standard out.
+
+### System Logs
+
+The system logs provide information on your container's formation and current status, including download, extraction, start, and stop.
diff --git a/v1.0/GPU INSTANCES/pods/pod-dashboard.md b/v1.0/GPU INSTANCES/pods/pod-dashboard.md
new file mode 100644
index 0000000..a281e83
--- /dev/null
+++ b/v1.0/GPU INSTANCES/pods/pod-dashboard.md
@@ -0,0 +1,20 @@
+---
+title: "Dashboard Interface"
+slug: "pod-dashboard"
+excerpt: ""
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Nov 06 2023 15:45:03 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Nov 06 2023 16:00:48 GMT+0000 (Coordinated Universal Time)"
+---
+
+![](https://files.readme.io/780d697-Untitled_drawing.png)
+
+1. The name and ID of your pod.
+2. Your pods' total container size and size of any attached storage.
+3. The type and quantity of GPUs attached to your pod.
+4. The template name/image name that your pod is currently running and if your pod is running on our secure or community cloud.
+5. Your pod activity and general utilization statistics.
+6. Pod controls and resource links.
diff --git a/v1.0/GPU INSTANCES/pods/pod-env-variables.md b/v1.0/GPU INSTANCES/pods/pod-env-variables.md
new file mode 100644
index 0000000..7dffd41
--- /dev/null
+++ b/v1.0/GPU INSTANCES/pods/pod-env-variables.md
@@ -0,0 +1,27 @@
+---
+title: "Pod Environment Variables"
+slug: "pod-env-variables"
+excerpt: "Environment variables are accessible within in a pod. You can access this page by clicking on the menu icon and Edit Pod."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Mar 28 2023 22:52:14 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Oct 23 2023 18:21:14 GMT+0000 (Coordinated Universal Time)"
+---
+
+| Variable | Description |
+| :------------------ | :---------------------------------------------------------------------------------------- |
+| RUNPOD_POD_ID | The unique identifier for your pod. |
+| RUNPOD_API_KEY | Used to make RunPod API calls to the specific pod. It's limited in scope to only the pod. |
+| RUNPOD_POD_HOSTNAME | Name of the host server the pod is running on. |
+| RUNPOD_GPU_COUNT | Number of GPUs available to the pod. |
+| RUNPOD_CPU_COUNT | Number of CPUs available to the pod. |
+| RUNPOD_PUBLIC_IP | If available, the publicly accessible IP for the pod. |
+| RUNPOD_TCP_PORT_22 | The public port SSH port 22. |
+| RUNPOD_DC_ID | The data center where the pod is located. |
+| RUNPOD_VOLUME_ID | The ID of the volume connected to the pod. |
+| CUDA_VERSION | The installed CUDA version. |
+| PWD | Current working directory. |
+| PYTORCH_VERSION | Installed PyTorch Version. |
+| PUBLIC_KEY | The SSH public keys to access the pod over SSH. |
diff --git a/v1.0/GPU INSTANCES/pods/templates.md b/v1.0/GPU INSTANCES/pods/templates.md
new file mode 100644
index 0000000..ace7915
--- /dev/null
+++ b/v1.0/GPU INSTANCES/pods/templates.md
@@ -0,0 +1,23 @@
+---
+title: "Templates"
+slug: "templates"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Wed May 31 2023 21:02:58 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Jun 01 2023 17:11:03 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Creating a Template
+
+![](https://files.readme.io/8418b2b-image.png)
+
+Templates are used to launch images as a pod; within a template, you define the required container disk size, volume, volume path, and ports needed.
+
+### Environment Variables
+
+![](https://files.readme.io/b7670dd-image.png)
+
+Environment variables are accessible within your pod; define a variable by setting a name with the `key` and then what it should contain with `value`.
diff --git a/v1.0/GPU INSTANCES/savings-plans.md b/v1.0/GPU INSTANCES/savings-plans.md
new file mode 100644
index 0000000..ddf70b4
--- /dev/null
+++ b/v1.0/GPU INSTANCES/savings-plans.md
@@ -0,0 +1,67 @@
+---
+title: "📑 | Savings Plans"
+slug: "savings-plans"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Jun 16 2023 15:35:29 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Nov 06 2023 15:55:02 GMT+0000 (Coordinated Universal Time)"
+---
+
+Savings Plans: Cost Savings for Your RunPod Deployments
+
+Introducing Savings Plans, a powerful cost-saving feature designed to optimize your RunPod experience. With Savings Plans, you can take advantage of upfront payments to unlock discounts on uninterrupted instances, enabling you to maximize cost efficiency and get the most out of specific card types.
+
+**Getting Started:**
+
+To start saving with RunPod's Savings Plans, ensure you have sufficient RunPod credits in your account.
+
+There are two ways to create a savings plan. From the pod dashboard, you can effortlessly add a Savings Plan to your existing running pod. Alternatively, you have the option to initiate a Savings Plan during the pod deployment process. Regularly check the "My Savings Plan" section to track your Savings Plans and associated pods.
+
+[block:image]
+{
+"images": [
+{
+"image": [
+"https://files.readme.io/f58bad9-image.png",
+null,
+"Add a savings plan to a new deployment"
+],
+"align": "center",
+"caption": "Add a savings plan to a new deployment"
+}
+]
+}
+[/block]
+
+[block:image]
+{
+"images": [
+{
+"image": [
+"https://files.readme.io/0eb087a-image.png",
+null,
+"Add a savings plan to an existing deployment"
+],
+"align": "center",
+"caption": "Add a savings plan to an existing deployment"
+}
+]
+}
+[/block]
+
+**Benefits for You:**
+
+Reduced Costs: By paying upfront for a Savings Plan, you can enjoy discounted rates on uninterrupted instances. This translates into significant cost savings for your RunPod deployments.
+
+Flexible Savings: When you stop a pod, the Savings Plan associated with it can be applied to your next deployment of the same card. This means you continue to benefit from your savings commitment even after temporary pauses in your pod usage. **Please note that pausing/stopping your pod(s) does not extend your savings plan. The savings plan expiration date is set at purchase time.**
+
+Instant Activation: Savings Plans kick in immediately upon activation and remain active for the duration of your committed period. You can start saving from the moment you initiate a Savings Plan.
+
+Easy Management: Adding a Savings Plan to your existing running pod is a breeze through the pod dashboard. Alternatively, Savings Plans are automatically started when you deploy a new pod, simplifying the process and ensuring you don't miss out on potential savings.
+
+Clear Visibility: Stay on top of your savings commitments and associated pods by navigating to the "My Savings Plan" menu option. This provides you with a comprehensive overview of your Savings Plans, enabling effective monitoring and management.
+
+Empower your RunPod deployments with Savings Plans and unlock the potential for cost optimization and enhanced savings. Begin maximizing your RunPod experience today!
diff --git a/v1.0/GPU INSTANCES/troubleshooting.md b/v1.0/GPU INSTANCES/troubleshooting.md
new file mode 100644
index 0000000..78f945a
--- /dev/null
+++ b/v1.0/GPU INSTANCES/troubleshooting.md
@@ -0,0 +1,11 @@
+---
+title: "🔧 | Troubleshooting"
+slug: "troubleshooting"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Nov 06 2023 19:54:04 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Nov 06 2023 19:54:36 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/GPU INSTANCES/troubleshooting/ssh-connections.md b/v1.0/GPU INSTANCES/troubleshooting/ssh-connections.md
new file mode 100644
index 0000000..28f9491
--- /dev/null
+++ b/v1.0/GPU INSTANCES/troubleshooting/ssh-connections.md
@@ -0,0 +1,11 @@
+---
+title: "SSH Connections"
+slug: "ssh-connections"
+excerpt: ""
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Nov 06 2023 19:55:07 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Nov 06 2023 19:55:07 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/GPU INSTANCES/troubleshooting/troubleshooting-502-errors.md b/v1.0/GPU INSTANCES/troubleshooting/troubleshooting-502-errors.md
new file mode 100644
index 0000000..b1694f3
--- /dev/null
+++ b/v1.0/GPU INSTANCES/troubleshooting/troubleshooting-502-errors.md
@@ -0,0 +1,46 @@
+---
+title: "502 Errors"
+slug: "troubleshooting-502-errors"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Wed May 31 2023 16:22:25 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Nov 06 2023 19:54:36 GMT+0000 (Coordinated Universal Time)"
+---
+
+502 errors can occur when users attempt to access a program running on a specific port of a deployed pod and the program isn't running or has encountered an error. This document provides guidance to help you troubleshoot this error.
+
+### Check Your Pod's GPU
+
+The first step to troubleshooting a 502 error is to check whether your pod has a GPU attached.
+
+1. **Access your pod's settings**: Click on your pod's settings in the user interface to access detailed information about your pod.
+
+2. **Verify GPU attachment**: Here, you should be able to see if your pod has a GPU attached. If it does not, you will need to attach a GPU.
+
+If a GPU is attached, you will see it under the Pods screen (e.g. 1 x A6000). If a GPU is not attached, this number will be 0. RunPod does allow you to spin up a pod with 0 GPUs so that you can connect to it via a Terminal or CloudSync to access data. However, the options to connect to RunPod via the web interface will be nonfunctional, even if they are lit up.
+
+![](https://files.readme.io/fb4c0dd-image.png)
+
+### Check Your Pod's Logs
+
+After confirming that your pod has a GPU attached, the next step is to check your pod's logs for any errors.
+
+1. **Access your pod's logs**: You can view the logs from the pod's settings in the user interface.
+
+2. ![](https://files.readme.io/3500eba-image.png)\
+ **Look for errors**: Browse through the logs to find any error messages that may provide clues about why you're experiencing a 502 error.
+
+### Verify Additional Steps for Official Templates
+
+In some cases, for our official templates, the user interface does not work right away and may require additional steps to be performed by the user.
+
+1. **Access the template's ReadMe**: Navigate to the template's page and open the ReadMe file.
+
+2. **Follow additional steps**: The ReadMe file should provide instructions on any additional steps you need to perform to get the UI functioning properly. Make sure to follow these instructions closely.
+
+Remember, each template may have unique requirements or steps for setup. It is always recommended to thoroughly review the documentation associated with each template.
+
+If you continue to experience 502 errors after following these steps, please contact our support team. We're here to help ensure that your experience on our platform is as seamless as possible.
diff --git a/v1.0/Image MODELS/anything-v3.md b/v1.0/Image MODELS/anything-v3.md
new file mode 100644
index 0000000..fad7efd
--- /dev/null
+++ b/v1.0/Image MODELS/anything-v3.md
@@ -0,0 +1,19 @@
+---
+title: "Anything v3 (SD-v1.5)"
+slug: "anything-v3"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Mar 24 2023 19:24:50 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sun May 14 2023 17:19:53 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Worker Repository
+
+The worker repository for this endpoint is available on GitHub at [runpod-workers/worker-stable_diffusion_v1](https://github.com/runpod-workers/worker-stable_diffusion_v1)
diff --git a/v1.0/Image MODELS/anything-v4.md b/v1.0/Image MODELS/anything-v4.md
new file mode 100644
index 0000000..03583eb
--- /dev/null
+++ b/v1.0/Image MODELS/anything-v4.md
@@ -0,0 +1,19 @@
+---
+title: "Anything v4 (SD-v1.5)"
+slug: "anything-v4"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Mar 24 2023 19:27:09 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sun May 14 2023 17:20:08 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Worker Repository
+
+The worker repository for this endpoint is available on GitHub at [runpod-workers/worker-stable_diffusion_v1](https://github.com/runpod-workers/worker-stable_diffusion_v1)
diff --git a/v1.0/Image MODELS/blip-captioning.md b/v1.0/Image MODELS/blip-captioning.md
new file mode 100644
index 0000000..fe7dece
--- /dev/null
+++ b/v1.0/Image MODELS/blip-captioning.md
@@ -0,0 +1,15 @@
+---
+title: "BLIP Captioning"
+slug: "blip-captioning"
+excerpt: "This API allows you to caption zipped images that can be later used for Stable Diffusion finetuning (compatible with EveryDream)"
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Apr 24 2023 20:24:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:28:24 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
diff --git a/v1.0/Image MODELS/controlnet.md b/v1.0/Image MODELS/controlnet.md
new file mode 100644
index 0000000..200851f
--- /dev/null
+++ b/v1.0/Image MODELS/controlnet.md
@@ -0,0 +1,11 @@
+---
+title: "ControlNet (SD-v1.5)"
+slug: "controlnet"
+excerpt: ""
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Mar 17 2023 03:57:48 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:13:29 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Image MODELS/controlnet/controlnet-canny.md b/v1.0/Image MODELS/controlnet/controlnet-canny.md
new file mode 100644
index 0000000..d0070a0
--- /dev/null
+++ b/v1.0/Image MODELS/controlnet/controlnet-canny.md
@@ -0,0 +1,11 @@
+---
+title: "Canny"
+slug: "controlnet-canny"
+excerpt: "This page will help you get started with ControlNet - Canny."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Mar 17 2023 02:23:20 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:13:29 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Image MODELS/controlnet/depth.md b/v1.0/Image MODELS/controlnet/depth.md
new file mode 100644
index 0000000..239f3ca
--- /dev/null
+++ b/v1.0/Image MODELS/controlnet/depth.md
@@ -0,0 +1,11 @@
+---
+title: "Depth"
+slug: "depth"
+excerpt: "This page will help you get started with ControlNet - Depth."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Mar 27 2023 17:48:44 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:13:29 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Image MODELS/controlnet/hed.md b/v1.0/Image MODELS/controlnet/hed.md
new file mode 100644
index 0000000..7352a07
--- /dev/null
+++ b/v1.0/Image MODELS/controlnet/hed.md
@@ -0,0 +1,11 @@
+---
+title: "Hed"
+slug: "hed"
+excerpt: "This page will help you get started with ControlNet - Hed."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Mar 27 2023 17:49:08 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:13:29 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Image MODELS/controlnet/mlsd.md b/v1.0/Image MODELS/controlnet/mlsd.md
new file mode 100644
index 0000000..a148f4d
--- /dev/null
+++ b/v1.0/Image MODELS/controlnet/mlsd.md
@@ -0,0 +1,11 @@
+---
+title: "MLSD"
+slug: "mlsd"
+excerpt: "This page will help you get started with ControlNet - MLSD."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Mar 27 2023 17:49:47 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:13:29 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Image MODELS/controlnet/normal.md b/v1.0/Image MODELS/controlnet/normal.md
new file mode 100644
index 0000000..8e002ed
--- /dev/null
+++ b/v1.0/Image MODELS/controlnet/normal.md
@@ -0,0 +1,11 @@
+---
+title: "Normal"
+slug: "normal"
+excerpt: "This page will help you get started with ControlNet - Normal."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Mar 27 2023 17:49:30 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:13:29 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Image MODELS/controlnet/openpose.md b/v1.0/Image MODELS/controlnet/openpose.md
new file mode 100644
index 0000000..6a60b70
--- /dev/null
+++ b/v1.0/Image MODELS/controlnet/openpose.md
@@ -0,0 +1,11 @@
+---
+title: "Openpose"
+slug: "openpose"
+excerpt: "This page will help you get started with ControlNet - Openpose."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Mar 27 2023 17:51:15 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:13:29 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Image MODELS/controlnet/scribble.md b/v1.0/Image MODELS/controlnet/scribble.md
new file mode 100644
index 0000000..3dca911
--- /dev/null
+++ b/v1.0/Image MODELS/controlnet/scribble.md
@@ -0,0 +1,11 @@
+---
+title: "Scribble"
+slug: "scribble"
+excerpt: "This page will help you get started with ControlNet - Scribble."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Mar 27 2023 17:50:47 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:13:29 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Image MODELS/controlnet/seg.md b/v1.0/Image MODELS/controlnet/seg.md
new file mode 100644
index 0000000..1e72f08
--- /dev/null
+++ b/v1.0/Image MODELS/controlnet/seg.md
@@ -0,0 +1,11 @@
+---
+title: "Seg"
+slug: "seg"
+excerpt: "This page will help you get started with ControlNet - Seg."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Mar 27 2023 17:51:01 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:13:29 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Image MODELS/deforum.md b/v1.0/Image MODELS/deforum.md
new file mode 100644
index 0000000..eab2824
--- /dev/null
+++ b/v1.0/Image MODELS/deforum.md
@@ -0,0 +1,21 @@
+---
+title: "Deforum"
+slug: "deforum"
+excerpt: ""
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Wed Jun 21 2023 18:24:21 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Jul 13 2023 17:00:43 GMT+0000 (Coordinated Universal Time)"
+---
+
+This endpoint is run on a 24GB GPU (A5000 or 3090).
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Worker Repository
+
+The worker repository for this endpoint is available on GitHub at [runpod-workers/worker-deforum](https://github.com/runpod-workers/worker-deforum)
diff --git a/v1.0/Image MODELS/dreambooth-sd-v15.md b/v1.0/Image MODELS/dreambooth-sd-v15.md
new file mode 100644
index 0000000..05d9b13
--- /dev/null
+++ b/v1.0/Image MODELS/dreambooth-sd-v15.md
@@ -0,0 +1,21 @@
+---
+title: "DreamBooth (SD-v1.5)"
+slug: "dreambooth-sd-v15"
+excerpt: "DreamBooth is a deep learning generation model that fine-tunes existing text-to-image models such as Stable Diffusion."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Mar 24 2023 19:29:26 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sat Jun 24 2023 10:39:05 GMT+0000 (Coordinated Universal Time)"
+---
+
+This is an adaptation of [DreamBooth](https://github.com/TheLastBen/fast-stable-diffusion) by [TheLastBen](https://github.com/TheLastBen) to a [RunPod Endpoint](https://www.runpod.io/endpoints). This endpoint requires the URL to a publicly accessible .zip file containing a folder of images of a concept to fine-tune the model. To dive deep into DreamBooth, look at the [original paper](https://arxiv.org/pdf/2208.12242.pdf).
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Model Upload (s3Config)
+
+The DreamBooth endpoint can be used to return custom images, return a trained model, or both. To receive back the trained model, you must provide your credentials to an S3-compatible bucket.
diff --git a/v1.0/Image MODELS/everydream-sd-v15.md b/v1.0/Image MODELS/everydream-sd-v15.md
new file mode 100644
index 0000000..f4b045f
--- /dev/null
+++ b/v1.0/Image MODELS/everydream-sd-v15.md
@@ -0,0 +1,15 @@
+---
+title: "EveryDream (SD-v1.5)"
+slug: "everydream-sd-v15"
+excerpt: "EveryDream provides general fine-tuning for Stable Diffusion. This endpoint also provides inference so that models can be trained and images can be generated in one shot."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Mar 27 2023 16:25:33 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Apr 20 2023 22:14:34 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
diff --git a/v1.0/Image MODELS/kandinsky-21.md b/v1.0/Image MODELS/kandinsky-21.md
new file mode 100644
index 0000000..4370e23
--- /dev/null
+++ b/v1.0/Image MODELS/kandinsky-21.md
@@ -0,0 +1,15 @@
+---
+title: "Kandinsky 2.1"
+slug: "kandinsky-21"
+excerpt: "Combining the best practices from Dall-E 2 and Latent diffusion."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Apr 17 2023 07:19:23 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sat Jul 22 2023 16:19:52 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
diff --git a/v1.0/Image MODELS/lora-trainer.md b/v1.0/Image MODELS/lora-trainer.md
new file mode 100644
index 0000000..745abb3
--- /dev/null
+++ b/v1.0/Image MODELS/lora-trainer.md
@@ -0,0 +1,11 @@
+---
+title: "LoRA Trainer"
+slug: "lora-trainer"
+excerpt: "Fine tune a Low-Rank Adaptation model."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Jun 30 2023 20:09:19 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Jul 11 2023 16:46:20 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Image MODELS/openjourney-sd-v15.md b/v1.0/Image MODELS/openjourney-sd-v15.md
new file mode 100644
index 0000000..37dc50e
--- /dev/null
+++ b/v1.0/Image MODELS/openjourney-sd-v15.md
@@ -0,0 +1,19 @@
+---
+title: "Openjourney (SD-v1.5)"
+slug: "openjourney-sd-v15"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Mar 24 2023 19:28:05 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sun May 14 2023 17:20:14 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Worker Repository
+
+The worker repository for this endpoint is available on GitHub at [runpod-workers/worker-stable_diffusion_v1](https://github.com/runpod-workers/worker-stable_diffusion_v1)
diff --git a/v1.0/Image MODELS/real-esrgan.md b/v1.0/Image MODELS/real-esrgan.md
new file mode 100644
index 0000000..a64f3c6
--- /dev/null
+++ b/v1.0/Image MODELS/real-esrgan.md
@@ -0,0 +1,15 @@
+---
+title: "Real-ESRGAN"
+slug: "real-esrgan"
+excerpt: "A model that can upscale images using various pre-trained models. You can provide a set of parameters to control the upscaling process and choose the output format."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Thu Apr 20 2023 14:53:55 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:28:29 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
diff --git a/v1.0/Image MODELS/stable-diffusion-v1.md b/v1.0/Image MODELS/stable-diffusion-v1.md
new file mode 100644
index 0000000..1eefd17
--- /dev/null
+++ b/v1.0/Image MODELS/stable-diffusion-v1.md
@@ -0,0 +1,21 @@
+---
+title: "Stable Diffusion v1"
+slug: "stable-diffusion-v1"
+excerpt: "A text-to-image model from StabilityAI"
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Mar 24 2023 18:42:49 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Jun 01 2023 13:31:09 GMT+0000 (Coordinated Universal Time)"
+---
+
+This endpoint is run on a 24GB GPU (A5000 or 3090).
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Worker Repository
+
+The worker repository for this endpoint is available on GitHub at [runpod-workers/worker-stable_diffusion_v1](https://github.com/runpod-workers/worker-stable_diffusion_v1)
diff --git a/v1.0/Image MODELS/stable-diffusion-v2.md b/v1.0/Image MODELS/stable-diffusion-v2.md
new file mode 100644
index 0000000..c853cea
--- /dev/null
+++ b/v1.0/Image MODELS/stable-diffusion-v2.md
@@ -0,0 +1,15 @@
+---
+title: "Stable Diffusion v2"
+slug: "stable-diffusion-v2"
+excerpt: "A text-to-image model from StabilityAI"
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Mar 24 2023 19:07:02 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Apr 27 2023 17:09:36 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
diff --git a/v1.0/Image MODELS/stable-diffusion-xl.md b/v1.0/Image MODELS/stable-diffusion-xl.md
new file mode 100644
index 0000000..4cd8b7d
--- /dev/null
+++ b/v1.0/Image MODELS/stable-diffusion-xl.md
@@ -0,0 +1,21 @@
+---
+title: "Stable Diffusion XL"
+slug: "stable-diffusion-xl"
+excerpt: "A text-to-image model from StabilityAI"
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Aug 08 2023 16:10:52 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Oct 02 2023 15:23:10 GMT+0000 (Coordinated Universal Time)"
+---
+
+This endpoint is run on a 24GB GPU (A5000 or 3090).
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Worker Repository
+
+The worker repository for this endpoint is available on GitHub at [runpod-workers/worker-stable_diffusion_v1](https://github.com/runpod-workers/worker-stable_diffusion_v1)
diff --git a/v1.0/Image MODELS/status.md b/v1.0/Image MODELS/status.md
new file mode 100644
index 0000000..074df1f
--- /dev/null
+++ b/v1.0/Image MODELS/status.md
@@ -0,0 +1,24 @@
+---
+title: "Retrieve Results & Status"
+slug: "status"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Mar 17 2023 03:58:53 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Jul 11 2023 18:41:42 GMT+0000 (Coordinated Universal Time)"
+---
+
+When a request is made using the `/run` endpoint, or if a job takes longer than 30 seconds to complete when using the `/runsync` endpoint, a job ID will be returned. This job ID is essential for tracking the progress of a job and obtaining its results upon completion. To do so, use the `/status/{job_id}` endpoint described below.
+
+### Check Job Status and Retrieve Results
+
+To check the status of a job or retrieve its results once completed, make a request to the `/status/{job_id}` endpoint, replacing `{job_id}` with the specific job ID received earlier.
+
+1. **Checking job status:** If the job is still in progress, the endpoint will return the current status of the job (e.g., "IN_QUEUE", "IN_PROGRESS", "FAILED", "COMPLETED", ).
+2. **Retrieving job results:** If the job has been completed successfully, the endpoint will return the results of the job.
+
+Please note that you should periodically poll the `/status/{job_id}` endpoint to monitor the progress of your job and retrieve the results once it has finished.
+
+**Note: Job results are kept for up to 30 minutes after a job is completed. **
diff --git a/v1.0/LARGE LANGUAGE MODELS/gpt-j-6b.md b/v1.0/LARGE LANGUAGE MODELS/gpt-j-6b.md
new file mode 100644
index 0000000..d5940c4
--- /dev/null
+++ b/v1.0/LARGE LANGUAGE MODELS/gpt-j-6b.md
@@ -0,0 +1,11 @@
+---
+title: "GPT-J 6B"
+slug: "gpt-j-6b"
+excerpt: ""
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Sat Mar 25 2023 17:24:08 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sat Mar 25 2023 17:24:08 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/LARGE LANGUAGE MODELS/llama2-13b-chat.md b/v1.0/LARGE LANGUAGE MODELS/llama2-13b-chat.md
new file mode 100644
index 0000000..5159bbe
--- /dev/null
+++ b/v1.0/LARGE LANGUAGE MODELS/llama2-13b-chat.md
@@ -0,0 +1,73 @@
+---
+title: "Llama2 13B Chat"
+slug: "llama2-13b-chat"
+excerpt: ""
+hidden: false
+metadata:
+ title: "Llama2 13B Chat"
+ image: []
+ robots: "index"
+createdAt: "Wed Aug 09 2023 01:12:19 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Sep 29 2023 19:55:26 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Streaming Token Outputs
+
+1. Make a POST request to the /llama2-13b-chat/run API endpoint.
+2. Retrieve the job ID.
+3. Make a GET request to /llama2-13b-chat/stream/{job-id} to retrieve the real-time token output.
+
+Here's a code sample in Python:
+
+
+```python Python
+import requests
+import json
+import time
+
+url = f"https://api.runpod.ai/v2/llama2-13b-chat/run"
+
+headers = {
+ "Authorization":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+ "Content-Type": "application/json"
+}
+
+prompt = """
+Write me an essay about how the french revolution impacted the rest of europe over the 18th century.
+"""
+
+payload = {
+ "input": {
+ "prompt": prompt,
+ "sampling_params": {
+ "max_tokens": 1000,
+ "n": 1,
+ "presence_penalty": 0.2,
+ "frequency_penalty": 0.7,
+ "temperature": 0.3,
+ }
+ }
+}
+
+response = requests.post(url, headers=headers, json=payload)
+response_json = json.loads(response.text)
+status_url = f"https://api.runpod.ai/v2/llama2-13b-chat/stream/{response_json['id']}"
+
+
+for i in range(10):
+ time.sleep(1)
+ get_status = requests.get(status_url, headers=headers)
+ print(get_status.text)
+
+ # example output from print(get_status.text)
+ """{"status":"IN_PROGRESS","stream":[{"output":{"text":["\nWrite me an essay about how the french revolution impacted the rest of europe over the 18th century. \n\nThe French Revolution, which began in 1789 and lasted for over a decade, had a profound impact on Europe in the late 18th century. The revolution, which was sparked by economic hardship, political corruption, and social inequality, led to the overthrow of the French monarchy and the establishment of a new political order. This essay will examine how the French Revolution impacted the rest of Europe during this period.\nOne of the most significant ways in which the French Revolution impacted"]}},{"output":{"text":["\nWrite me an essay about how the french revolution impacted the rest of europe over the 18th century. \n\nThe French Revolution, which began in 1789 and lasted for over a decade, had a profound impact on Europe in the late 18th century. The revolution, which was sparked by economic hardship, political corruption, and social inequality, led to the overthrow of the French monarchy and the establishment of a new political order. This essay will examine how the French Revolution impacted the rest of Europe during this period.\nOne of the most significant ways in which the French Revolution impacted Europe was"]}},{"output":{"text":["\nWrite me an essay about how the french revolution impacted the rest of europe over the 18th century. \n\nThe French Revolution, which began in 1789 and lasted for over a decade, had a profound impact on Europe in the late 18th century. The revolution, which was sparked by economic hardship, political corruption, and social inequality, led to the overthrow of the French monarchy and the establishment of a new political order. This essay will examine how the French Revolution impacted the rest of Europe during this period.\nOne of the most significant ways in which the French Revolution impacted Europe was through its"]}},{"output":{"text":["\nWrite me an essay about how the french revolution impacted the rest of europe over the 18th century. \n\nThe French Revolution, which began in 1789 and lasted for over a decade, had a profound impact on Europe in the late 18th century. The revolution, which was sparked by economic hardship, political corruption, and social inequality, led to the overthrow of the French monarchy and the establishment of a new political order. This essay will examine how the French Revolution impacted the rest of Europe during this period.\nOne of the most significant ways in which the French Revolution impacted Europe was through its influence on"]}}]}"""
+```
+
+
+### Worker Resources
+
+- [Source Code Repository](https://github.com/runpod-workers/worker-vllm)
diff --git a/v1.0/LARGE LANGUAGE MODELS/llama2-7b-chat.md b/v1.0/LARGE LANGUAGE MODELS/llama2-7b-chat.md
new file mode 100644
index 0000000..82214d5
--- /dev/null
+++ b/v1.0/LARGE LANGUAGE MODELS/llama2-7b-chat.md
@@ -0,0 +1,72 @@
+---
+title: "Llama2 7B Chat"
+slug: "llama2-7b-chat"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Fri Aug 11 2023 05:51:57 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Sep 29 2023 19:55:44 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+## Streaming Token Outputs
+
+1. Make a POST request to the /llama2-7b-chat/run API endpoint.
+2. Retrieve the job ID.
+3. Make a GET request to /llama2-7b-chat/stream/{job-id} to retrieve the real-time token output.
+
+Here's a code sample in Python:
+
+
+```python python
+import requests
+import json
+import time
+
+url = f"https://api.runpod.ai/v2/llama2-7b-chat/run"
+
+headers = {
+ "Authorization":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+ "Content-Type": "application/json"
+}
+
+prompt = """
+Write me an essay about how the french revolution impacted the rest of europe over the 18th century.
+"""
+
+payload = {
+ "input": {
+ "prompt": prompt,
+ "sampling_params": {
+ "max_tokens": 1000,
+ "n": 1,
+ "presence_penalty": 0.2,
+ "frequency_penalty": 0.7,
+ "temperature": 0.3,
+ }
+ }
+}
+
+response = requests.post(url, headers=headers, json=payload)
+response_json = json.loads(response.text)
+status_url = f"https://api.runpod.ai/v2/llama2-7b-chat/stream/{response_json['id']}"
+
+
+for i in range(10):
+ time.sleep(1)
+ get_status = requests.get(status_url, headers=headers)
+ print(get_status.text)
+
+ # example output from print(get_status.text)
+ """{"status":"IN_PROGRESS","stream":[{"output":{"text":["\nWrite me an essay about how the french revolution impacted the rest of europe over the 18th century. \n\nThe French Revolution, which began in 1789 and lasted for over a decade, had a profound impact on Europe in the late 18th century. The revolution, which was sparked by economic hardship, political corruption, and social inequality, led to the overthrow of the French monarchy and the establishment of a new political order. This essay will examine how the French Revolution impacted the rest of Europe during this period.\nOne of the most significant ways in which the French Revolution impacted"]}},{"output":{"text":["\nWrite me an essay about how the french revolution impacted the rest of europe over the 18th century. \n\nThe French Revolution, which began in 1789 and lasted for over a decade, had a profound impact on Europe in the late 18th century. The revolution, which was sparked by economic hardship, political corruption, and social inequality, led to the overthrow of the French monarchy and the establishment of a new political order. This essay will examine how the French Revolution impacted the rest of Europe during this period.\nOne of the most significant ways in which the French Revolution impacted Europe was"]}},{"output":{"text":["\nWrite me an essay about how the french revolution impacted the rest of europe over the 18th century. \n\nThe French Revolution, which began in 1789 and lasted for over a decade, had a profound impact on Europe in the late 18th century. The revolution, which was sparked by economic hardship, political corruption, and social inequality, led to the overthrow of the French monarchy and the establishment of a new political order. This essay will examine how the French Revolution impacted the rest of Europe during this period.\nOne of the most significant ways in which the French Revolution impacted Europe was through its"]}},{"output":{"text":["\nWrite me an essay about how the french revolution impacted the rest of europe over the 18th century. \n\nThe French Revolution, which began in 1789 and lasted for over a decade, had a profound impact on Europe in the late 18th century. The revolution, which was sparked by economic hardship, political corruption, and social inequality, led to the overthrow of the French monarchy and the establishment of a new political order. This essay will examine how the French Revolution impacted the rest of Europe during this period.\nOne of the most significant ways in which the French Revolution impacted Europe was through its influence on"]}}]}"""
+```
+
+
+### Worker Resources
+
+- [Source Code Repository](https://github.com/runpod-workers/worker-vllm)
diff --git a/v1.0/LARGE LANGUAGE MODELS/neo-13b.md b/v1.0/LARGE LANGUAGE MODELS/neo-13b.md
new file mode 100644
index 0000000..7d70a3c
--- /dev/null
+++ b/v1.0/LARGE LANGUAGE MODELS/neo-13b.md
@@ -0,0 +1,15 @@
+---
+title: "GPT Neo 1.3B"
+slug: "neo-13b"
+excerpt: "GPT-Neo 1.3B is a transformer model designed using EleutherAI's replication of the GPT-3 architecture."
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Sat Mar 25 2023 02:02:54 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:28:54 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
diff --git a/v1.0/LARGE LANGUAGE MODELS/neo-27b.md b/v1.0/LARGE LANGUAGE MODELS/neo-27b.md
new file mode 100644
index 0000000..fdfd5bb
--- /dev/null
+++ b/v1.0/LARGE LANGUAGE MODELS/neo-27b.md
@@ -0,0 +1,15 @@
+---
+title: "GPT Neo 2.7B"
+slug: "neo-27b"
+excerpt: ""
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Sat Mar 25 2023 02:35:46 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Jun 02 2023 13:28:59 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
diff --git a/v1.0/LARGE LANGUAGE MODELS/neox-20b.md b/v1.0/LARGE LANGUAGE MODELS/neox-20b.md
new file mode 100644
index 0000000..321c07d
--- /dev/null
+++ b/v1.0/LARGE LANGUAGE MODELS/neox-20b.md
@@ -0,0 +1,11 @@
+---
+title: "GPT NeoX 20B"
+slug: "neox-20b"
+excerpt: ""
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Sat Mar 25 2023 02:32:31 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sat Mar 25 2023 17:17:16 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/LARGE LANGUAGE MODELS/pygmalion-6b.md b/v1.0/LARGE LANGUAGE MODELS/pygmalion-6b.md
new file mode 100644
index 0000000..afa22d4
--- /dev/null
+++ b/v1.0/LARGE LANGUAGE MODELS/pygmalion-6b.md
@@ -0,0 +1,17 @@
+---
+title: "Pygmalion 6B"
+slug: "pygmalion-6b"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Sat Mar 25 2023 02:33:01 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sat Jun 03 2023 18:28:08 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Retrieve Results & Status
+
+**Note: For information on how to check job status and retrieve results, please refer to our [Status Endpoint Documentation](https://docs.runpod.io/reference/status).**
+
+This is a POC endpoint and we do not recommend trying to use it for serious applications (yet). We are still in the process of optimizing our workflow for serving language model endpoints. Stay tuned!
diff --git a/v1.0/LARGE LANGUAGE MODELS/receive-outputstatus.md b/v1.0/LARGE LANGUAGE MODELS/receive-outputstatus.md
new file mode 100644
index 0000000..298227b
--- /dev/null
+++ b/v1.0/LARGE LANGUAGE MODELS/receive-outputstatus.md
@@ -0,0 +1,13 @@
+---
+title: "Receive Output/Status"
+slug: "receive-outputstatus"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Sat Mar 25 2023 16:36:11 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Wed May 10 2023 17:11:10 GMT+0000 (Coordinated Universal Time)"
+---
+
+**Note: Job results are kept for up to 30 minutes after a job is completed. **
diff --git a/v1.0/Resources - Tools/graphql-api.md b/v1.0/Resources - Tools/graphql-api.md
new file mode 100644
index 0000000..6b4ff60
--- /dev/null
+++ b/v1.0/Resources - Tools/graphql-api.md
@@ -0,0 +1,19 @@
+---
+title: "GraphQL API"
+slug: "graphql-api"
+excerpt: "RunPod GraphQL API examples to manage your pods."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Mar 28 2023 22:54:35 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Apr 07 2023 19:52:10 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Authentication
+
+RunPod uses API Keys for all API requests. Go to [Settings](https://www.runpod.io/console/user/settings) to manage your API keys.
+
+## GraphQL API Spec
+
+If you need detailed queries, mutations, fields, and inputs, look at our [GraphQL Spec](https://graphql-spec.runpod.io/).
diff --git a/v1.0/Resources - Tools/graphql-api/create-pod-template.md b/v1.0/Resources - Tools/graphql-api/create-pod-template.md
new file mode 100644
index 0000000..ec77dfc
--- /dev/null
+++ b/v1.0/Resources - Tools/graphql-api/create-pod-template.md
@@ -0,0 +1,348 @@
+---
+title: "Manage Templates"
+slug: "create-pod-template"
+excerpt: "Create a new Pod/Serverless template, or modify/delete existing ones."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Jul 10 2023 16:51:21 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sat Aug 12 2023 01:05:57 GMT+0000 (Coordinated Universal Time)"
+---
+
+# Creating/Modifying Templates
+
+`containerDiskInGb`, `dockerArgs`, `env`, `imageName`, `name`, and `volumeInGb` are required arguments; all other arguments are optional.
+
+If your container image is private, you can also specify Docker login credentials with a `containerRegistryAuthId` argument, which takes the ID (_not_ the name) of the container registry credentials you saved in your RunPod user settings as a string.
+
+Note that template names must be unique as well; if you try to create a new template with the same name as an existing one, your call will fail.
+
+## Create a New Pod Template
+
+
+
+```curl
+curl --request POST \
+ --header 'content-type: application/json' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
+ --data '{"query": "mutation { saveTemplate(input: { containerDiskInGb: 5, dockerArgs: \"sleep infinity\", env: [ { key: \"key1\", value: \"value1\" }, { key: \"key2\", value: \"value2\" } ], imageName: \"ubuntu:latest\", name: \"Generated Template\", ports: \"8888/http,22/tcp\", readme: \"## Hello, World!\", volumeInGb: 15, volumeMountPath: \"/workspace\" }) { containerDiskInGb dockerArgs env { key value } id imageName name ports readme volumeInGb volumeMountPath } }"}'
+```
+```graphql
+mutation {
+ saveTemplate(input: {
+ containerDiskInGb: 5,
+ dockerArgs: "sleep infinity",
+ env: [
+ {
+ key: "key1",
+ value: "value1"
+ },
+ {
+ key: "key2",
+ value: "value2"
+ }
+ ],
+ imageName: "ubuntu:latest",
+ name: "Generated Template",
+ ports: "8888/http,22/tcp",
+ readme: "## Hello, World!",
+ volumeInGb: 15,
+ volumeMountPath: "/workspace"
+ }) {
+ containerDiskInGb
+ dockerArgs
+ env {
+ key
+ value
+ }
+ id
+ imageName
+ name
+ ports
+ readme
+ volumeInGb
+ volumeMountPath
+ }
+}
+```
+```json Output | JSON
+{
+ "data": {
+ "saveTemplate": {
+ "containerDiskInGb": 5,
+ "dockerArgs": "sleep infinity",
+ "env": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ],
+ "id": "wphkv67a0p",
+ "imageName": "ubuntu:latest",
+ "name": "Generated Template",
+ "ports": "8888/http,22/tcp",
+ "readme": "## Hello, World!",
+ "volumeInGb": 15,
+ "volumeMountPath": "/workspace"
+ }
+ }
+}
+```
+
+
+
+## Create a New Serverless Template
+
+For Serverless templates, always pass `0` for `volumeInGb`, since Serverless workers don't have persistent storage (other than those with network volumes).
+
+
+
+```curl
+curl --request POST \
+ --header 'content-type: application/json' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
+ --data '{"query": "mutation { saveTemplate(input: { containerDiskInGb: 5, dockerArgs: \"python handler.py\", env: [ { key: \"key1\", value: \"value1\" }, { key: \"key2\", value: \"value2\" } ], imageName: \"runpod/serverless-hello-world:latest\", isServerless: true, name: \"Generated Serverless Template\", readme: \"## Hello, World!\", volumeInGb: 0 }) { containerDiskInGb dockerArgs env { key value } id imageName isServerless name readme } }"}'
+```
+```graphql
+mutation {
+ saveTemplate(input: {
+ containerDiskInGb: 5,
+ dockerArgs: "python handler.py",
+ env: [
+ {
+ key: "key1",
+ value: "value1"
+ },
+ {
+ key: "key2",
+ value: "value2"
+ }
+ ],
+ imageName: "runpod/serverless-hello-world:latest",
+ isServerless: true,
+ name: "Generated Serverless Template",
+ readme: "## Hello, World!",
+ volumeInGb: 0
+ }) {
+ containerDiskInGb
+ dockerArgs
+ env {
+ key
+ value
+ }
+ id
+ imageName
+ isServerless
+ name
+ readme
+ }
+}
+```
+```json Output | JSON
+{
+ "data": {
+ "saveTemplate": {
+ "containerDiskInGb": 5,
+ "dockerArgs": "python handler.py",
+ "env": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ],
+ "id": "xkhgg72fuo",
+ "imageName": "runpod/serverless-hello-world:latest",
+ "isServerless": true,
+ "name": "Generated Serverless Template",
+ "readme": "## Hello, World!"
+ }
+ }
+}
+```
+
+
+## Modify an Existing Pod Template
+
+
+```curl
+curl --request POST \
+ --header 'content-type: application/json' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
+ --data '{"query": "mutation { saveTemplate(input: { id: \"wphkv67a0p\", containerDiskInGb: 5, dockerArgs: \"sleep infinity\", env: [ { key: \"key1\", value: \"value1\" }, { key: \"key2\", value: \"value2\" } ], imageName: \"ubuntu:latest\", name: \"Generated Template\", volumeInGb: 15, readme: \"## Goodbye, World!\" }) { id containerDiskInGb dockerArgs env { key value } imageName name volumeInGb readme } }"}'
+```
+```graphql
+mutation {
+ saveTemplate(input: {
+ id: "wphkv67a0p",
+ containerDiskInGb: 5,
+ dockerArgs: "sleep infinity",
+ env: [
+ {
+ key: "key1",
+ value: "value1"
+ },
+ {
+ key: "key2",
+ value: "value2"
+ }
+ ],
+ imageName: "ubuntu:latest",
+ name: "Generated Template",
+ volumeInGb: 15,
+ # Modify your template options here (or above, if applicable).
+ # For this example, we've modified the template's README.
+ readme: "## Goodbye, World!"
+ }) {
+ id
+ containerDiskInGb
+ dockerArgs
+ env {
+ key
+ value
+ }
+ imageName
+ name
+ volumeInGb
+ # You can include what you've changed here, too.
+ readme
+ }
+}
+```
+```json Output | JSON
+{
+ "data": {
+ "saveTemplate": {
+ "id": "wphkv67a0p",
+ "containerDiskInGb": 5,
+ "dockerArgs": "sleep infinity",
+ "env": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ],
+ "imageName": "ubuntu:latest",
+ "name": "Generated Template",
+ "volumeInGb": 15,
+ "readme": "## Goodbye, World!"
+ }
+ }
+}
+```
+
+
+
+## Modify an Existing Serverless Template
+
+
+
+```curl
+curl --request POST \
+ --header 'content-type: application/json' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
+ --data '{"query": "mutation { saveTemplate(input: { id: \"xkhgg72fuo\", containerDiskInGb: 5, dockerArgs: \"python handler.py\", env: [ { key: \"key1\", value: \"value1\" }, { key: \"key2\", value: \"value2\" } ], imageName: \"runpod/serverless-hello-world:latest\", name: \"Generated Serverless Template\", volumeInGb: 0, readme: \"## Goodbye, World!\" }) { id containerDiskInGb dockerArgs env { key value } imageName name readme } }"}'
+```
+```graphql
+mutation {
+ saveTemplate(input: {
+ id: "xkhgg72fuo",
+ containerDiskInGb: 5,
+ dockerArgs: "python handler.py",
+ env: [
+ {
+ key: "key1",
+ value: "value1"
+ },
+ {
+ key: "key2",
+ value: "value2"
+ }
+ ],
+ imageName: "runpod/serverless-hello-world:latest",
+ name: "Generated Serverless Template",
+ volumeInGb: 0,
+ # Modify your template options here (or above, if applicable).
+ # For this example, we've modified the template's README.
+ readme: "## Goodbye, World!"
+ }) {
+ id
+ containerDiskInGb
+ dockerArgs
+ env {
+ key
+ value
+ }
+ imageName
+ name
+ # You can include what you've changed here, too.
+ readme
+ }
+}
+```
+```json Output | JSON
+{
+ "data": {
+ "saveTemplate": {
+ "id": "xkhgg72fuo",
+ "containerDiskInGb": 5,
+ "dockerArgs": "python handler.py",
+ "env": [
+ {
+ "key": "key1",
+ "value": "value1"
+ },
+ {
+ "key": "key2",
+ "value": "value2"
+ }
+ ],
+ "imageName": "runpod/serverless-hello-world:latest",
+ "name": "Generated Serverless Template",
+ "readme": "## Goodbye, World!"
+ }
+ }
+}
+```
+
+
+
+# Deleting Templates
+
+Note that the template you'd like to delete must not be in use by any Pods or assigned to any Serverless endpoints. It can take up to 2 minutes to be able to delete a template after its most recent use by a Pod or Serverless endpoint, too.
+
+The same mutation is used for deleting both Pod and Serverless templates.
+
+
+
+```curl cURL
+curl --request POST \
+ --header 'content-type: application/json' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
+ --data '{"query": "mutation { deleteTemplate(templateName: \"Generated Template\") }"}'
+```
+```graphql
+mutation {
+ deleteTemplate(templateName: "Generated Template")
+}
+```
+```json Output | JSON
+{
+ "data": {
+ "deleteTemplate": null
+ }
+}
+```
+
diff --git a/graphql-api/create-pod.md b/v1.0/Resources - Tools/graphql-api/create-pod.md
similarity index 70%
rename from graphql-api/create-pod.md
rename to v1.0/Resources - Tools/graphql-api/create-pod.md
index 1b6c810..2de00b8 100644
--- a/graphql-api/create-pod.md
+++ b/v1.0/Resources - Tools/graphql-api/create-pod.md
@@ -1,37 +1,36 @@
---
-description: Create a Pod which starts with a container image.
+title: "Create Pod"
+slug: "create-pod"
+excerpt: "Create a Pod which starts with a container image."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Mar 28 2023 22:55:55 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sat Aug 19 2023 04:38:03 GMT+0000 (Coordinated Universal Time)"
---
-# Create Pod
+A Pod consists of the following resources:
-A pod consists of the following resources:
+- 0 or more GPUs - A pod can be started with 0 GPUs for the purposes of accessing data, though GPU-accelerated functions and web services will fail to work.
+- vCPU
+- System RAM
+- Container Disk
+ - It's temporary and removed when the pod is stopped or terminated.
+ - You only pay for the container disk when the pod is running.
+- Instance Volume
+ - Data persists even when you reset or stop a Pod. Volume is removed when the Pod is terminated.
+ - You pay for volume storage even when the Pod is stopped.
-* 0 or more GPUs
-* vCPU
-* System RAM
-* Container Disk
- * It's temporary and removed when the pod is stopped or terminated.
- * _You only pay for the container disk when the pod is running._
-* Instance Volume
- * Data persists even when you reset or stop a pod. Volume is removed when the pod is terminated.
- * _You pay for volume storage even when the pod is stopped._
+## Create On-Demand Pod
-### Create OnDemand Pod
-
-{% tabs %}
-{% tab title="Curl" %}
-{% code overflow="wrap" %}
-```shell
+
+```curl
curl --request POST \
--header 'content-type: application/json' \
- --url 'https://api.runpod.io/graphql?api_key=pewpew' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "mutation { podFindAndDeployOnDemand( input: { cloudType: ALL, gpuCount: 1, volumeInGb: 40, containerDiskInGb: 40, minVcpuCount: 2, minMemoryInGb: 15, gpuTypeId: \"NVIDIA RTX A6000\", name: \"RunPod Tensorflow\", imageName: \"runpod/tensorflow\", dockerArgs: \"\", ports: \"8888/http\", volumeMountPath: \"/workspace\", env: [{ key: \"JUPYTER_PASSWORD\", value: \"rn51hunbpgtltcpac3ol\" }] } ) { id imageName env machineId machine { podHostId } } }"}'
```
-{% endcode %}
-{% endtab %}
-
-{% tab title="GraphQL" %}
-{% code overflow="wrap" %}
```graphql
mutation {
podFindAndDeployOnDemand(
@@ -61,12 +60,7 @@ mutation {
}
}
```
-{% endcode %}
-{% endtab %}
-{% endtabs %}
-
-{% code title="Output" overflow="wrap" %}
-```json
+```json Output | JSON
{
"data": {
"podFindAndDeployOnDemand": {
@@ -83,24 +77,17 @@ mutation {
}
}
```
-{% endcode %}
+
-### Create Spot Pod
+## Create Spot Pod
-{% tabs %}
-{% tab title="Curl" %}
-{% code overflow="wrap" %}
-```shell
+
+```curl
curl --request POST \
--header 'content-type: application/json' \
- --url 'https://api.runpod.io/graphql?api_key=pewpew' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "mutation { podRentInterruptable( input: { bidPerGpu: 0.2, cloudType: SECURE, gpuCount: 1, volumeInGb: 40, containerDiskInGb: 40, minVcpuCount: 2, minMemoryInGb: 15, gpuTypeId: \"NVIDIA RTX A6000\", name: \"RunPod Pytorch\", imageName: \"runpod/pytorch\", dockerArgs: \"\", ports: \"8888/http\", volumeMountPath: \"/workspace\", env: [{ key: \"JUPYTER_PASSWORD\", value: \"vunw9ybnzqwpia2795p2\" }] } ) { id imageName env machineId machine { podHostId } } }"}'
```
-{% endcode %}
-{% endtab %}
-
-{% tab title="GraphQL" %}
-{% code overflow="wrap" %}
```graphql
mutation {
podRentInterruptable(
@@ -131,12 +118,7 @@ mutation {
}
}
```
-{% endcode %}
-{% endtab %}
-{% endtabs %}
-
-{% code title="Output" overflow="wrap" %}
-```json
+```json Output | JSON
{
"data": {
"podRentInterruptable": {
@@ -153,4 +135,4 @@ mutation {
}
}
```
-{% endcode %}
+
diff --git a/v1.0/Resources - Tools/graphql-api/create-serverless-endpoint.md b/v1.0/Resources - Tools/graphql-api/create-serverless-endpoint.md
new file mode 100644
index 0000000..6a26734
--- /dev/null
+++ b/v1.0/Resources - Tools/graphql-api/create-serverless-endpoint.md
@@ -0,0 +1,209 @@
+---
+title: "Manage Serverless Endpoints"
+slug: "create-serverless-endpoint"
+excerpt: "Create a new Serverless endpoint, or modify/delete existing ones."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Mon Jul 10 2023 16:44:22 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sat Aug 12 2023 01:06:20 GMT+0000 (Coordinated Universal Time)"
+---
+
+# Creating/Modifying Serverless Endpoints
+
+`gpuIds`, `name`, and `templateId` are required arguments; all other arguments are optional, and default values will be used if unspecified.
+
+## Create a New Serverless Endpoint
+
+
+```curl
+curl --request POST \
+ --header 'content-type: application/json' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
+ --data '{"query": "mutation { saveEndpoint(input: { gpuIds: \"AMPERE_16\", idleTimeout: 5, locations: \"US\", name: \"Generated Endpoint -fb\", networkVolumeId: \"\", scalerType: \"QUEUE_DELAY\", scalerValue: 4, templateId: \"xkhgg72fuo\", workersMax: 3, workersMin: 0 }) { gpuIds id idleTimeout locations name scalerType scalerValue templateId workersMax workersMin } }"}'
+```
+```graphql
+mutation {
+ saveEndpoint(input: {
+ # options for gpuIds are "AMPERE_16,AMPERE_24,AMPERE_48,AMPERE_80,ADA_24"
+ gpuIds: "AMPERE_16",
+ idleTimeout: 5,
+ # leave locations as an empty string or null for any region
+ # options for locations are "CZ,FR,GB,NO,RO,US"
+ locations: "US",
+ # append -fb to your endpoint's name to enable FlashBoot
+ name: "Generated Endpoint -fb",
+ # uncomment below and provide an ID to mount a network volume to your workers
+ # networkVolumeId: "",
+ scalerType: "QUEUE_DELAY",
+ scalerValue: 4,
+ templateId: "xkhgg72fuo",
+ workersMax: 3,
+ workersMin: 0
+ }) {
+ gpuIds
+ id
+ idleTimeout
+ locations
+ name
+ # networkVolumeId
+ scalerType
+ scalerValue
+ templateId
+ workersMax
+ workersMin
+ }
+}
+```
+```json Output | JSON
+{
+ "data": {
+ "saveEndpoint": {
+ "gpuIds": "AMPERE_16",
+ "id": "i02xupws21hp6i",
+ "idleTimeout": 5,
+ "locations": "US",
+ "name": "Generated Endpoint -fb",
+ "scalerType": "QUEUE_DELAY",
+ "scalerValue": 4,
+ "templateId": "xkhgg72fuo",
+ "workersMax": 3,
+ "workersMin": 0
+ }
+ }
+}
+```
+
+
+## Modify an Existing Serverless Endpoint
+
+
+```curl
+curl --request POST \
+ --header 'content-type: application/json' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
+ --data '{"query": "mutation { saveEndpoint(input: { id: \"i02xupws21hp6i\", gpuIds: \"AMPERE_16\", name: \"Generated Endpoint -fb\", templateId: \"xkhgg72fuo\", workersMax: 0 }) { id gpuIds name templateId workersMax } }"}'
+```
+```graphql
+mutation {
+ saveEndpoint(input: {
+ id: "i02xupws21hp6i",
+ gpuIds: "AMPERE_16",
+ name: "Generated Endpoint -fb",
+ templateId: "xkhgg72fuo",
+ # Modify your template options here (or above, if applicable).
+ # For this example, we've modified the endpoint's max workers.
+ workersMax: 0
+ }) {
+ id
+ gpuIds
+ name
+ templateId
+ # You can include what you've changed here, too.
+ workersMax
+ }
+}
+```
+```json Output | JSON
+{
+ "data": {
+ "saveEndpoint": {
+ "id": "i02xupws21hp6i",
+ "gpuIds": "AMPERE_16",
+ "name": "Generated Endpoint -fb",
+ "templateId": "xkhgg72fuo",
+ "workersMax": 0
+ }
+ }
+}
+```
+
+
+# View Your Endpoints
+
+
+```curl
+curl --request POST \
+ --header 'content-type: application/json' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
+ --data '{"query": "query Endpoints { myself { endpoints { gpuIds id idleTimeout locations name networkVolumeId pods { desiredStatus } scalerType scalerValue templateId workersMax workersMin } serverlessDiscount { discountFactor type expirationDate } } }"}'
+```
+```graphql
+query Endpoints {
+ myself {
+ endpoints {
+ gpuIds
+ id
+ idleTimeout
+ locations
+ name
+ networkVolumeId
+ pods {
+ desiredStatus
+ }
+ scalerType
+ scalerValue
+ templateId
+ workersMax
+ workersMin
+ }
+ serverlessDiscount {
+ discountFactor
+ type
+ expirationDate
+ }
+ }
+}
+```
+```json Output | JSON
+{
+ "data": {
+ "myself": {
+ "endpoints": [
+ {
+ "gpuIds": "AMPERE_16",
+ "id": "i02xupws21hp6i",
+ "idleTimeout": 5,
+ "locations": "US",
+ "name": "Generated Endpoint -fb",
+ "networkVolumeId": null,
+ "pods": [],
+ "scalerType": "QUEUE_DELAY",
+ "scalerValue": 4,
+ "templateId": "xkhgg72fuo",
+ "workersMax": 0,
+ "workersMin": 0
+ }
+ ],
+ "serverlessDiscount": null
+ }
+ }
+}
+```
+
+
+# Deleting Serverless Endpoints
+
+Note that your endpoint's min and max workers must both be set to zero for your call to work.
+
+
+```curl
+curl --request POST \
+ --header 'content-type: application/json' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
+ --data '{"query": "mutation { deleteEndpoint(id: \"i02xupws21hp6i\") }"}'
+```
+```graphql
+mutation {
+ deleteEndpoint(id: "i02xupws21hp6i")
+}
+```
+```json Output | JSON
+{
+ "data": {
+ "deleteEndpoint": null
+ }
+}
+```
+
diff --git a/graphql-api/get-gpu-types.md b/v1.0/Resources - Tools/graphql-api/get-gpu-types.md
similarity index 66%
rename from graphql-api/get-gpu-types.md
rename to v1.0/Resources - Tools/graphql-api/get-gpu-types.md
index c6bf97e..eb272a1 100644
--- a/graphql-api/get-gpu-types.md
+++ b/v1.0/Resources - Tools/graphql-api/get-gpu-types.md
@@ -1,23 +1,26 @@
-# Get GPU Types
+---
+title: "Get GPU Types"
+slug: "get-gpu-types"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Apr 18 2023 12:56:16 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Jul 13 2023 18:12:45 GMT+0000 (Coordinated Universal Time)"
+---
-When creating a pod, you will need to pass GPU type ids. These queries can help find all GPU types and their ids along with other attributes like VRAM.
+When creating a Pod, you will need to pass GPU type IDs. These queries can help find all GPU types, their IDs, and other attributes like VRAM.
-### Get GPU Types
+## Get GPU Types
-{% tabs %}
-{% tab title="Curl" %}
-{% code overflow="wrap" %}
-```bash
+
+```curl
curl --request POST \
--header 'content-type: application/json' \
- --url 'https://api.runpod.io/graphql?api_key=pewpew' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "query GpuTypes { gpuTypes { id displayName memoryInGb } }"}'
```
-{% endcode %}
-{% endtab %}
-
-{% tab title="GraphQL" %}
-{% code overflow="wrap" %}
```graphql
query GpuTypes {
gpuTypes {
@@ -27,12 +30,7 @@ query GpuTypes {
}
}
```
-{% endcode %}
-{% endtab %}
-{% endtabs %}
-
-{% code title="Output" overflow="wrap" %}
-```json
+```json Output | JSON
{
"data": {
"gpuTypes": [
@@ -55,24 +53,17 @@ query GpuTypes {
}
}
```
-{% endcode %}
+
-### Get GPU Type by ID
+## Get GPU Type by ID
-{% tabs %}
-{% tab title="Curl" %}
-{% code overflow="wrap" %}
-```bash
+
+```curl
curl --request POST \
--header 'content-type: application/json' \
- --url 'https://api.runpod.io/graphql?api_key=pewpew' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "query GpuTypes { gpuTypes(input: {id: \"NVIDIA GeForce RTX 3090\"}) { id displayName memoryInGb secureCloud communityCloud lowestPrice(input: {gpuCount: 1}) { minimumBidPrice uninterruptablePrice } } }"}'
```
-{% endcode %}
-{% endtab %}
-
-{% tab title="GraphQL" %}
-{% code overflow="wrap" %}
```graphql
query GpuTypes {
gpuTypes(input: {id: "NVIDIA GeForce RTX 3090"}) {
@@ -88,11 +79,7 @@ query GpuTypes {
}
}
```
-{% endcode %}
-{% endtab %}
-{% endtabs %}
-
-```json
+```json Output | JSON
{
"data": {
"gpuTypes": [
@@ -111,3 +98,4 @@ query GpuTypes {
}
}
```
+
diff --git a/graphql-api/get-pod.md b/v1.0/Resources - Tools/graphql-api/get-pod.md
similarity index 83%
rename from graphql-api/get-pod.md
rename to v1.0/Resources - Tools/graphql-api/get-pod.md
index aedd191..c64f6df 100644
--- a/graphql-api/get-pod.md
+++ b/v1.0/Resources - Tools/graphql-api/get-pod.md
@@ -1,24 +1,24 @@
---
-description: Get pod attributes like podId, name, runtime metrics, and more.
+title: "Get Pod"
+slug: "get-pod"
+excerpt: "Get Pod attributes like Pod ID, name, runtime metrics, and more."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Apr 18 2023 12:57:34 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Jul 10 2023 17:34:57 GMT+0000 (Coordinated Universal Time)"
---
-# Get Pod
+## Get All Pods
-### Get All Pods
-
-{% tabs %}
-{% tab title="Curl" %}
-{% code overflow="wrap" %}
-```bash
+
+```curl
curl --request POST \
--header 'content-type: application/json' \
- --url 'https://api.runpod.io/graphql?api_key=pewpew' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "query Pods { myself { pods { id name runtime { uptimeInSeconds ports { ip isIpPublic privatePort publicPort type } gpus { id gpuUtilPercent memoryUtilPercent } container { cpuPercent memoryPercent } } } } }"}'
```
-{% endcode %}
-{% endtab %}
-
-{% tab title="GraphQL" %}
```graphql
query Pods {
myself {
@@ -48,11 +48,7 @@ query Pods {
}
}
```
-{% endtab %}
-{% endtabs %}
-
-{% code title="Output" overflow="wrap" %}
-```json
+```json Output | JSON
{
"data": {
"myself": {
@@ -108,23 +104,17 @@ query Pods {
}
}
```
-{% endcode %}
+
-### Get Pod by ID
+## Get Pod by ID
-{% tabs %}
-{% tab title="Curl" %}
-{% code overflow="wrap" %}
-```bash
+
+```curl
curl --request POST \
--header 'content-type: application/json' \
- --url 'https://api.runpod.io/graphql?api_key=pewpew' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "query Pod { pod(input: {podId: \"ldl1dxirsim64n\"}) { id name runtime { uptimeInSeconds ports { ip isIpPublic privatePort publicPort type } gpus { id gpuUtilPercent memoryUtilPercent } container { cpuPercent memoryPercent } } } }"}'
```
-{% endcode %}
-{% endtab %}
-
-{% tab title="GraphQL" %}
```graphql
query Pod {
pod(input: {podId: "ldl1dxirsim64n"}) {
@@ -152,11 +142,7 @@ query Pod {
}
}
```
-{% endtab %}
-{% endtabs %}
-
-{% code title="Output" overflow="wrap" %}
-```json
+```json Output | JSON
{
"data": {
"pod": {
@@ -189,4 +175,4 @@ query Pod {
}
}
```
-{% endcode %}
+
diff --git a/graphql-api/start-pod.md b/v1.0/Resources - Tools/graphql-api/start-pod.md
similarity index 71%
rename from graphql-api/start-pod.md
rename to v1.0/Resources - Tools/graphql-api/start-pod.md
index 73434c9..38104b2 100644
--- a/graphql-api/start-pod.md
+++ b/v1.0/Resources - Tools/graphql-api/start-pod.md
@@ -1,24 +1,24 @@
---
-description: Start an OnDemand or Spot pod.
+title: "Start Pod"
+slug: "start-pod"
+excerpt: "Start an On-Demand or Spot Pod."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Apr 18 2023 13:00:16 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Jul 10 2023 17:34:37 GMT+0000 (Coordinated Universal Time)"
---
-# Start Pod
+## Start On-Demand Pod
-### Start OnDemand Pod
-
-{% tabs %}
-{% tab title="Curl" %}
-{% code overflow="wrap" %}
-```bash
+
+```curl
curl --request POST \
--header 'content-type: application/json' \
- --url 'https://api.runpod.io/graphql?api_key=pewpew' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "mutation { podResume( input: { podId: \"inzk6tzuz833h5\", gpuCount: 1 } ) { id desiredStatus imageName env machineId machine { podHostId } } }"}'
```
-{% endcode %}
-{% endtab %}
-
-{% tab title="GraphQL" %}
```graphql
mutation {
podResume(input: {podId: "inzk6tzuz833h5", gpuCount: 1}) {
@@ -33,11 +33,7 @@ mutation {
}
}
```
-{% endtab %}
-{% endtabs %}
-
-{% code title="Output" overflow="wrap" %}
-```json
+```json Output | JSON
{
"data": {
"podResume": {
@@ -55,23 +51,17 @@ mutation {
}
}
```
-{% endcode %}
+
-### Start Spot Pod
+## Start Spot Pod
-{% tabs %}
-{% tab title="Curl" %}
-{% code overflow="wrap" %}
-```bash
+
+```curl
curl --request POST \
--header 'content-type: application/json' \
- --url 'https://api.runpod.io/graphql?api_key=pewpew' \
+ --url 'https://api.runpod.io/graphql?api_key=${YOUR_API_KEY}' \
--data '{"query": "mutation { podBidResume( input: { podId: \"d62t7qg9n5vtan\", bidPerGpu: 0.2, gpuCount: 1 } ) { id desiredStatus imageName env machineId machine { podHostId } } }"}'
```
-{% endcode %}
-{% endtab %}
-
-{% tab title="GraphQL" %}
```graphql
mutation {
podBidResume(input: {podId: "d62t7qg9n5vtan", bidPerGpu: 0.2, gpuCount: 1}) {
@@ -86,11 +76,7 @@ mutation {
}
}
```
-{% endtab %}
-{% endtabs %}
-
-{% code title="Output" overflow="wrap" %}
-```json
+```json Output | JSON
{
"data": {
"podBidResume": {
@@ -108,4 +94,4 @@ mutation {
}
}
```
-{% endcode %}
+
diff --git a/graphql-api/stop-pod.md b/v1.0/Resources - Tools/graphql-api/stop-pod.md
similarity index 54%
rename from graphql-api/stop-pod.md
rename to v1.0/Resources - Tools/graphql-api/stop-pod.md
index 537ae4e..d33c7a9 100644
--- a/graphql-api/stop-pod.md
+++ b/v1.0/Resources - Tools/graphql-api/stop-pod.md
@@ -1,23 +1,22 @@
---
-description: Stop an OnDemand or Spot Pod.
+title: "Stop Pod"
+slug: "stop-pod"
+excerpt: "Stop an On-Demand or Spot Pod."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Apr 18 2023 13:01:34 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Jul 10 2023 17:34:15 GMT+0000 (Coordinated Universal Time)"
---
-# Stop Pod
-
-{% tabs %}
-{% tab title="Curl" %}
-{% code overflow="wrap" %}
-```bash
+
+```curl
curl --request POST \
--header 'content-type: application/json' \
--url 'https://api.runpod.io/graphql?api_key=pewpew' \
--data '{"query": "mutation { podStop(input: {podId: \"riixlu8oclhp\"}) { id desiredStatus } }"}'
```
-{% endcode %}
-{% endtab %}
-
-{% tab title="GraphQL" %}
-{% code overflow="wrap" %}
```graphql
mutation {
podStop(input: {podId: "riixlu8oclhp"}) {
@@ -26,12 +25,7 @@ mutation {
}
}
```
-{% endcode %}
-{% endtab %}
-{% endtabs %}
-
-{% code title="Output" overflow="wrap" %}
-```json
+```json Output | JSON
{
"data": {
"podStop": {
@@ -42,4 +36,4 @@ mutation {
}
```
-{% endcode %}
+
diff --git a/v1.0/Resources - Tools/graphql-spec.md b/v1.0/Resources - Tools/graphql-spec.md
new file mode 100644
index 0000000..7ef8c66
--- /dev/null
+++ b/v1.0/Resources - Tools/graphql-spec.md
@@ -0,0 +1,14 @@
+---
+title: "🧬 | GraphQL Spec"
+slug: "graphql-spec"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Sun Sep 03 2023 16:19:51 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sun Sep 03 2023 16:20:27 GMT+0000 (Coordinated Universal Time)"
+type: "link"
+link_url: "https://graphql-spec.runpod.io/"
+link_external: true
+---
diff --git a/v1.0/Resources - Tools/runpod-python.md b/v1.0/Resources - Tools/runpod-python.md
new file mode 100644
index 0000000..85ed822
--- /dev/null
+++ b/v1.0/Resources - Tools/runpod-python.md
@@ -0,0 +1,14 @@
+---
+title: "🐍 | runpod-python"
+slug: "runpod-python"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Wed May 31 2023 20:23:58 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Aug 07 2023 14:35:23 GMT+0000 (Coordinated Universal Time)"
+type: "link"
+link_url: "https://github.com/runpod/runpod-python"
+link_external: true
+---
diff --git a/v1.0/Resources - Tools/runpodctl.md b/v1.0/Resources - Tools/runpodctl.md
new file mode 100644
index 0000000..57c28f2
--- /dev/null
+++ b/v1.0/Resources - Tools/runpodctl.md
@@ -0,0 +1,14 @@
+---
+title: "🧰 | runpodctl"
+slug: "runpodctl"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Mar 28 2023 23:31:24 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Mon Aug 07 2023 14:35:37 GMT+0000 (Coordinated Universal Time)"
+type: "link"
+link_url: "https://github.com/runpod/runpodctl"
+link_external: true
+---
diff --git a/v1.0/Resources - Tools/skypilot.md b/v1.0/Resources - Tools/skypilot.md
new file mode 100644
index 0000000..3f29c50
--- /dev/null
+++ b/v1.0/Resources - Tools/skypilot.md
@@ -0,0 +1,11 @@
+---
+title: "SkyPilot"
+slug: "skypilot"
+excerpt: ""
+hidden: true
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Sat Aug 26 2023 17:26:17 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sat Aug 26 2023 17:26:17 GMT+0000 (Coordinated Universal Time)"
+---
diff --git a/v1.0/Resources - Tools/video-resources.md b/v1.0/Resources - Tools/video-resources.md
new file mode 100644
index 0000000..c233ead
--- /dev/null
+++ b/v1.0/Resources - Tools/video-resources.md
@@ -0,0 +1,37 @@
+---
+title: "🎞️ | Video Resources"
+slug: "video-resources"
+excerpt: "A collection of commonly referenced videos on RunPod topics."
+hidden: false
+createdAt: "Mon Jul 03 2023 13:52:20 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sun Dec 10 2023 02:28:59 GMT+0000 (Coordinated Universal Time)"
+---
+
+## RunPod Usage
+
+| Video Link | Topics Covered |
+| :------------------------------------------------------------------------------------------------------- | :------------- |
+| [How to redeem your RunPod Coupon](https://www.youtube.com/watch?v=IYqEKwpuyWk&ab_channel=OpenCVCourses) | RunPod |
+| [RunPod Introduction and Tour](https://www.youtube.com/watch?v=6O1oM_N6pcw&ab_channel=OpenCVCourses) | General |
+
+---
+
+## Tutorials
+
+| Video Link | Topics Covered |
+| :---------------------------------------------------------------------------------------------------------------------------- | :---------------------------- |
+| [Generate Stable Diffusion Images FAST with RunPod](https://www.youtube.com/watch?v=susnjHSWFq0&t=32s&ab_channel=BillMeeks) | StableDiffusion, Automatic111 |
+| [Generate Text On Images with DeepFloyd IF](https://www.youtube.com/watch?v=Px7Vv9WYl88&t=2s&ab_channel=BillMeeks) | DeepFloyd |
+| [Remix Your Pics With Stable Diffusion and ControlNet](https://www.youtube.com/watch?v=BqdIdk9LU4w&t=1s&ab_channel=BillMeeks) | StableDiffusion, ControlNet |
+| [Using Automatic1111 WebUI on RunPod](https://www.youtube.com/watch?v=R6HUQOtsVic&ab_channel=OpenCVCourses) | WebUI, Automatic1111 |
+| [RUN TextGen AI WebUI LLM On Runpod & Colab!](https://www.youtube.com/watch?v=TP2yID7Ubr4&ab_channel=Aitrepreneur) | GoogleColab, TextGeneration |
+| [Make Your Renders 10x Faster With Runpod](https://www.youtube.com/watch?v=sJ-Diy93TAg&ab_channel=RahulAhire) | Rendering, Blender |
+
+---
+
+## General/Generic Linux
+
+| Video Link | Topics Covered |
+| :---------------------------------------------------------------------------------------------------------------------------------- | :----------------- |
+| [How to Use the rsync Command \| Linux Essentials Tutorial](https://www.youtube.com/watch?v=2PnAohLS-Q4&ab_channel=AkamaiDeveloper) | File Transfer |
+| [SSH Key Authentication \| How to Create SSH Key Pairs](https://www.youtube.com/watch?v=33dEcCKGBO4&ab_channel=AkamaiDeveloper) | SSH Authentication |
diff --git a/v1.0/SERVERLESS/custom-apis.md b/v1.0/SERVERLESS/custom-apis.md
new file mode 100644
index 0000000..45aa4d7
--- /dev/null
+++ b/v1.0/SERVERLESS/custom-apis.md
@@ -0,0 +1,15 @@
+---
+title: "Custom APIs"
+slug: "custom-apis"
+excerpt: "Bring your own container image, we scale and handle the rest."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Mar 28 2023 23:36:27 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Aug 04 2023 10:07:34 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Overview
+
+While we try to add APIs where we can, we can only maintain and create so many APIs. If you have a custom use case, you can use our custom API support to stand up your serverless API!
diff --git a/v1.0/SERVERLESS/custom-apis/autoscaling.md b/v1.0/SERVERLESS/custom-apis/autoscaling.md
new file mode 100644
index 0000000..c74732f
--- /dev/null
+++ b/v1.0/SERVERLESS/custom-apis/autoscaling.md
@@ -0,0 +1,50 @@
+---
+title: "Autoscaling and Worker Lifecycle"
+slug: "autoscaling"
+excerpt: "The Serverless AI platform enables seamless scale for your models. The following properties can be defined for your service."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Mar 28 2023 23:44:01 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Tue Jun 27 2023 01:42:19 GMT+0000 (Coordinated Universal Time)"
+---
+
+New APIs can be created from the [API management page](https://www.runpod.io/console/serverless/user/apis).
+
+![](https://files.readme.io/6b32f2b-sls-new-config.png)
+
+### API Name
+
+Anything you prefer.
+
+### Network Volume
+
+You can attach a network volume to your serverless endpoint. It will get automatically mounted at the "/runpod-volume" path. This can allow you to persist state between worker invocations and also share state between your workers. While this is a high performance network drive, do keep in mind that it will have higher latency than a local drive. **Please note that this will limit the availability of cards, as your endpoint workers will be locked to the datacenter that houses your network volume!**
+
+### Template
+
+Select from your templates. The template controls what worker is used to run your API jobs. Please note that you should be updating the container image name in your template with a different name:tag combination if you want your workers to update the version of the container image you are using. **If you use the same name:tag combination, workers will not automatically pull updates for you as we currently do not do hash based comparisons.**
+
+### Min Workers
+
+This is the minimum amount of workers that we will try to keep running for you. A minimum worker count of 0 means that if your API doesn't receive requests for a while, then you will have no active workers running. This will help you save on your costs, but may mean that the first cold start will take a bit longer than average. Use your discretion to pick something that suits your scale and budget.
+
+### Max Workers
+
+You can also configure a max worker count. This is the top limit of what RunPod will attempt to auto-scale for you. Use this to cap your concurrent request count and also limit your cost ceiling. Note that we currently base your caching coefficient by this number, so an endpoint with higher max worker count will also receive a higher priority when caching workers. This is partially why we limit new accounts to a relatively low max concurrency at the account level. If you want to get this number raised, you generally will need to have a higher history of spending, or commit to a relatively high spend per month. You should generally aim to set your max worker count to be 20% higher than you expect your max concurrency to be.
+
+### Idle Timeout (seconds)
+
+Idle timeout to wait before a worker is scaled down. If you specify 5 seconds, workers will sit idle for at least 5 seconds before it's stopped to help reduce cost.
+
+### GPU Type
+
+You can currently choose between three varieties of configurations: 16 GB, 24 GB, or 80 GB VRAM.\
+For the 16 GB variety, we deploy NVIDIA RTX A4000.\
+For the 24 GB variety, we deploy NVIDIA RTX A5000 or 3090.\
+For the 80 GB variety, we deploy NVIDIA A100 80 GB.
+
+A100s are about 2-3x faster than A5000s and also allow double the VRAM with very high bandwidth throughout. 3090s and A5000s are 1.5-2x faster than A4000s. Sometimes, it may make more sense to use 24 GB even if you don't need it compared to 16 GB due to faster response times. Depending on the nature of the task, it's also possible that execution speeds may be bottlenecked and not significantly improved simply by using a higher-end card. Do your own calculations and experimentation to determine out what's most cost-effective for your workload and task type.
+
+Want access to different flavors? [Let us know](https://www.runpod.io/contact) and we can look at expanding our offerings!
diff --git a/v1.0/SERVERLESS/custom-apis/template-creation.md b/v1.0/SERVERLESS/custom-apis/template-creation.md
new file mode 100644
index 0000000..6e22aaa
--- /dev/null
+++ b/v1.0/SERVERLESS/custom-apis/template-creation.md
@@ -0,0 +1,57 @@
+---
+title: "Template Creation"
+slug: "template-creation"
+excerpt: "Templates define additional configuration for deploying workers."
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Mar 28 2023 23:42:35 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sat Apr 29 2023 14:17:05 GMT+0000 (Coordinated Universal Time)"
+---
+
+You can access [template creation here](https://www.runpod.io/console/serverless/user/templates).
+
+The following properties can be defined per template.
+
+[block:image]
+{
+"images": [
+{
+"image": [
+"https://files.readme.io/8cd505f-image.png",
+null,
+""
+],
+"align": "center",
+"sizing": "% "
+}
+]
+}
+[/block]
+
+### Template Name
+
+Name your template anything you want to help you organize your templates.
+
+### Container Image
+
+Location to the container image. This could be from docker-hub or any other repository. You can use the following here if you didn't build your own worker:
+
+runpod/serverless-hello-world
+
+### Container Registry Credentials
+
+Link container credentials for private repositories. These can be configured in your [user settings menu](https://www.runpod.io/console/serverless/user/settings).
+
+### Docker Command
+
+Command to run on container startup; by default, command defined in the Dockerfile will be used.
+
+### Container Disk
+
+Amount of disk required to run your worker. This will depend on how your model and accompanying files are in the container.
+
+### Environment Variables
+
+Use these to pass config and secrets to your container.
diff --git a/v1.0/SERVERLESS/custom-apis/testing-your-apis-response-time.md b/v1.0/SERVERLESS/custom-apis/testing-your-apis-response-time.md
new file mode 100644
index 0000000..bfb959a
--- /dev/null
+++ b/v1.0/SERVERLESS/custom-apis/testing-your-apis-response-time.md
@@ -0,0 +1,41 @@
+---
+title: "Testing Your API's Response Time"
+slug: "testing-your-apis-response-time"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Thu Apr 13 2023 08:18:19 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Sat Apr 29 2023 14:27:50 GMT+0000 (Coordinated Universal Time)"
+---
+
+When setting up an API, you have several options available at different price points and resource allocations. You can select a single option if you would prefer to only use one price point, or select a preference order between the pools that will allocate your requests accordingly.
+
+![](https://files.readme.io/742bf51-image.png)
+
+The option that will be most cost effective for you will be based on your use case and your tolerance for task run time. Each situation will be different, so when deciding which API to use, it's worth it to do some testing to not only find out how long your tasks will take to run, but how much you might expect to pay for each task.
+
+To find out how long a task will take to run, select a single pool type as shown in the image above. Then, you can send a request to the API through your preferred method. If you're unfamiliar with how to do so or don't have your own method, then you can use a free option like [reqbin.com](https://reqbin.com/) to send an API request to the RunPod severs.
+
+The URLs to use in the API will be shown in the My APIs screen:
+
+![](https://files.readme.io/0d8dd86-image.png)
+
+On reqbin.com, enter the Run URL of your API, select POST under the dropdown, and enter your API key that was given when you created the key under [Settings](https://www.runpod.io/console/serverless/user/settings)(if you do not have it saved, you will need to return to Settings and create a new key). Under Content, you will also need to give it a basic command (in this example, we've used a Stable Diffusion prompt).
+
+![](https://files.readme.io/a9b9cf3-image.png)
+
+![](https://files.readme.io/7744b62-image.png)
+
+Send the request, and it will give you an ID for the request and notify you that it is processing. You can then swap the URL in the request field with the Status address and add the ID to the end of it, and click Send.
+
+![](https://files.readme.io/325f2bc-image.png)
+
+It will return a Delay Time and an Execution Time, denoted in milliseconds. The Delay Time should be extremely minimal, unless the API process was spun up from a cold start, then a sizable delay is expected for the first request sent. The Execution Time is how long the GPU took to actually process the request once it was received. It may be a good idea to send a number of tests so you can get a min, max, and average run time -- five tests should be an adequate sample size.
+
+![](https://files.readme.io/1608d44-image.png)
+
+You can then switch the GPU pool above to a different pool and repeat the process.
+
+What will ultimately be right for your use case will be determined by how long you can afford to let the process run. For heavier jobs, a task on a slower GPU will be likely be more cost-effective with a tradeoff of speed. For simpler tasks, there may also be diminishing returns on how fast the task that can be run that may not be significantly improved by selecting higher-end GPUs. Experiment to find the best balance for your scenario.
diff --git a/v1.0/SERVERLESS/custom-apis/updating-your-endpoint.md b/v1.0/SERVERLESS/custom-apis/updating-your-endpoint.md
new file mode 100644
index 0000000..5cfad0a
--- /dev/null
+++ b/v1.0/SERVERLESS/custom-apis/updating-your-endpoint.md
@@ -0,0 +1,61 @@
+---
+title: "Updating Your Endpoint"
+slug: "updating-your-endpoint"
+excerpt: ""
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Jun 27 2023 01:34:48 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Jul 13 2023 18:09:42 GMT+0000 (Coordinated Universal Time)"
+---
+
+There are two methods of updating your endpoint from the UI.
+
+1. Replace the image used within the template.
+2. Re-assign your endpoint to a new template.
+
+You can programmatically update your endpoint via CICD or other scripts using the following queries.
+
+To update the number of min and max workers, you can use the following two mutations.
+
+Minimum Workers control the amount of workers that will be provisioned no matter your queue status. **Please keep in mind that these workers will be long lived and billed for every second that they are active.** They are great for if you know that your request volume is stable and you want to keep workers around to make sure users have the best experience. Alternatively, it's sometimes good to set a minimum worker count when debugging your workers.
+
+```
+mutation UpdateEndpointWorkersMin {
+ updateEndpointWorkersMin(
+ input: { endpointId: "myEndpointId", workerCount: 1 }
+ ) {
+ id
+ workersMin
+ workersMax
+ }
+}
+```
+
+Maximum workers control two things. The first (**and probably the less intuitive**) thing it controls is your endpoint's caching coefficient. **This means that the higher your max worker count, the more we prioritize your workers to be cached and ready.** This is partially why we limit new accounts to a relatively low max concurrency at the account level. If you want to get this number raised, you generally will need to have a higher history of spending, or commit to a relatively high spend per month. The second, and more obvious, thing it controls is the maximum concurrency for your endpoint. You should generally aim to set your max worker count to be 20% higher than you expect your max concurrency to be.
+
+```
+mutation UpdateEndpointWorkersMax {
+ updateEndpointWorkersMax(
+ input: { endpointId: "myEndpointId", workerCount: 3 }
+ ) {
+ id
+ workersMin
+ workersMax
+ }
+}
+```
+
+Lastly, you can update your template by using the template ID. We currently recommend that you have two templates for your production deployment. This way, you can swap between them when deploying new changes. Currently, we swap container images based on the name:tag combination, so make sure that the two templates you are swapping between have different name:tag combinations. Once you swap the template, the serverless autobalancer will slowly start to cycle out the older containers for newer containers to prevent downtime. If you want to expedite this process and do not mind downtime, you can set your minimum/maximum workers to 0 before doing this. Setting your counts to 0 will force flush the existing container cache.
+
+```
+mutation UpdateEndpointTemplate {
+ updateEndpointTemplate(
+ input: { endpointId: "myEndpointId", templateId: "myTemplateId" }
+ ) {
+ id
+ templateId
+ }
+}
+```
diff --git a/v1.0/SERVERLESS/custom-apis/using-s3-to-upload-files-with-serverless.md b/v1.0/SERVERLESS/custom-apis/using-s3-to-upload-files-with-serverless.md
new file mode 100644
index 0000000..86668c8
--- /dev/null
+++ b/v1.0/SERVERLESS/custom-apis/using-s3-to-upload-files-with-serverless.md
@@ -0,0 +1,108 @@
+---
+title: "Using S3 to upload images with serverless"
+slug: "using-s3-to-upload-files-with-serverless"
+excerpt: "Here's how you can use S3 to upload files with serverless, and get urls to the outputs as files"
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Tue Apr 18 2023 16:07:56 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Thu Jun 22 2023 08:47:46 GMT+0000 (Coordinated Universal Time)"
+---
+
+## Uploading to an S3 bucket has 2 major steps
+
+1. Writing python code to upload files to S3
+2. Setting the environment variables for your S3 bucket
+
+## Uploading to an S3 bucket with python
+
+1. For the example code, we presume 2 things
+
+ - you've installed the runpod python library with `pip install runpod`
+ - you've an image file at `./image.png` in the docker container
+
+2. Now in your handler function, here's some example code that can upload to an s3 bucket, the code uploads the image `image.png` to an s3 bucket, and returns a url to the image
+
+
+ ```python
+ from runpod.serverless.utils import rp_upload
+ import runpod
+
+ def handler(job):
+ image_url = rp_upload.upload_image(job['id'], "./image.png")
+ return [image_url]
+
+ runpod.serverless.start({"handler": handler})
+ ```
+
+
+3. now package your code in a similar manner as described by the [Worker Image Creation](https://docs.runpod.io/docs/worker-image-creation) and [Template Creation](https://docs.runpod.io/docs/template-creation) steps
+
+## Setting the environment variables
+
+1. You can set environment variables for a pod via the template creation/editing interface, the Environment Variables section is in the very bottom\
+ ![](https://files.readme.io/2d93548-image.png)
+2. Set the following environment variables\
+ ![](https://files.readme.io/0693616-image.png)
+3. You've to set the variables
+
+ - `BUCKET_ENDPOINT_URL`
+ - `BUCKET_ACCESS_KEY_ID`
+ - and `BUCKET_SECRET_ACCESS_KEY`
+
+ ensure your `BUCKET_ENDPOINT_URL` has the bucket name at the start (for example, `https://your-bucket-name.nyc3.digitaloceanspaces.com` or `https://your-bucket.s3.us-west-004.backblazeb2.com`)
+
+## Testing your api out
+
+1. Now when you access your api you should see the image as an output uploaded to s3, here's a sample input\
+ Editors note : your request **must** contain an input key, and it must be a json item, so ensure you put that, a sample request has been provided below
+
+
+ ```python Python
+ import requests
+
+ endpoint = "https://api.runpod.ai/v2/xxxxxxxxx/run"
+
+ headers = {
+ "Content-Type": "application/json",
+ "Authorization": "Bearer XXXXXXXXXXXXX"
+ }
+
+ # Define your inputs
+ # an input value must be present, even if it is unused,
+ # and it must be a json value
+ input_data = {
+ "input": {"inp":"this is an example input"}
+ }
+
+ response = requests.post(endpoint, json=input_data, headers=headers)
+ json = response.json()
+
+ # the json will be similar to
+ # {'id': 'e3d2e250-ea81-4074-9838-1c52d006ddcf', 'status': 'IN_QUEUE'}
+ ```
+
+
+2. Here's an example output request, with the image in output
+
+
+ ```python
+ response = requests.get("https://api.runpod.ai/v2/xxxxxxxxx/status/" + json['id'], headers=headers)
+ response.json()
+ ```
+
+
+Here's an example response, after the request completes
+
+
+ ```python JSON
+ {
+ 'delayTime': 86588,
+ 'executionTime': 1563,
+ 'id': 'e3d2e250-ea81-4074-9838-1c52d006ddcf',
+ 'output': ['https://your-bucket.s3.us-west-004.backblazeb2.com/your-image.png'],
+ 'status': 'COMPLETED'
+ }
+ ```
+
diff --git a/v1.0/SERVERLESS/custom-apis/using-your-api-copy.md b/v1.0/SERVERLESS/custom-apis/using-your-api-copy.md
new file mode 100644
index 0000000..3a06996
--- /dev/null
+++ b/v1.0/SERVERLESS/custom-apis/using-your-api-copy.md
@@ -0,0 +1,227 @@
+---
+title: "Using Your API"
+slug: "using-your-api-copy"
+excerpt: "Okay! Now you have everything set up, but how do you use it?"
+hidden: false
+metadata:
+ image: []
+ robots: "index"
+createdAt: "Thu Jul 27 2023 10:39:12 GMT+0000 (Coordinated Universal Time)"
+updatedAt: "Fri Oct 27 2023 13:53:56 GMT+0000 (Coordinated Universal Time)"
+---
+
+Once everything above is configured, you will be able to invoke your API using the "run" endpoint on your API dashboard. Our services are currently asynchronous, so you must use the "status" endpoint to get the status/results of each run using the ID present in the run response payload. You can also pass in a webhook URL when invoking "run" within the JSON body.
+
+Our own APIs are built using the same tools, so you can take a look at the RunPod API overview. The only difference is that your custom API endpoint only accepts requests using your own account's API key, not any RunPod API key.
+
+We offer two different kinds of run mechanisms: synchronous responses and asynchronous responses.
+
+## Running your API
+
+### /runsync
+
+
+```curl cURL
+curl -X POST https://api.runpod.ai/v2/(sleep 2h; runpodctl stop pod $RUNPOD_POD_ID) &
-
-
-This simple command sleeps for 2 hours (change 2h to whatever you want), and then stops the pod. Keep in mind that you will still incur disk fees on a stopped pod.
-
-If you want to terminate the pod completely, you can configure your pod with 0 volume disk. In this case, stopping the pod is equivalent to terminating it.
-
-You can also request to terminate the pod directly using a similar cli command:
-
-```
-runpodctl remove pod $RUNPOD_POD_ID
-```
diff --git a/welcome/how-do-i/customize-a-template.md b/welcome/how-do-i/customize-a-template.md
deleted file mode 100644
index 969d49e..0000000
--- a/welcome/how-do-i/customize-a-template.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Customize a Template
-
-A RunPod template is just a docker container image paired with some configuration. You can choose how deep you want to get into template customization depending on your skill level.
-
-The easiest is to simply start with a RunPod official template or community template and use it as-is.
-
-If you want better control over what gets done at pod start, you can modify the "Docker Command" field. The default docker command for all RunPod teamplates is:
-
-```
-bash -c './start.sh'
-```
-
-This means that if you want to run something prior to start.sh, you can put extra commands in there. For example, if I wanted to install vim:
-
-```
-bash -c 'apt update && apt install vim -y && ./start.sh'
-```
-
-The only downside to this approach is that you will run these commands every time your pod starts. If you wish to further customize the runtime container, you can create your own docker image. There is nothing special about creating a docker image for RunPod, but if you want a simple primer, [you can read this blog post.](https://www.runpod.io/blog/diy-deep-learning-docker-container)
diff --git a/welcome/how-do-i/override-my-public-key.md b/welcome/how-do-i/override-my-public-key.md
deleted file mode 100644
index 315a873..0000000
--- a/welcome/how-do-i/override-my-public-key.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Override My Public Key
-
-We attempt to inject the public key that you configure in your account's settings page for authentication using basic terminal. If you want to override this at a pod level, you can manually supply a public key as the RUNPOD\_SSH\_PUBLIC\_KEY environment variable.
diff --git a/welcome/how-do-i/transfer-data.md b/welcome/how-do-i/transfer-data.md
deleted file mode 100644
index 73c06d7..0000000
--- a/welcome/how-do-i/transfer-data.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Transfer Data
-
-The easiest way to transfer data is by using our [runpodctl command line tool](https://github.com/runpod/runpodctl/blob/main/README.md).
-
-You can also use our cloud sync integrations. (Guides for each coming soon)
diff --git a/welcome/how-do-i/use-real-ssh.md b/welcome/how-do-i/use-real-ssh.md
deleted file mode 100644
index bdd7705..0000000
--- a/welcome/how-do-i/use-real-ssh.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Use Real SSH
-
-The basic terminal SSH access that RunPod exposes is not a full SSH connection and therefore does not support commands like scp. If you want to have full SSH capabilities, then you will need to run an instance that has public IP support and run a full SSH daemon in your pod.
-
-Most of our official templates will do this for you if you are on a compatible instance. If you want to add SSH to a custom template, then you can [read this article for guidance.](https://www.runpod.io/blog/how-to-achieve-true-ssh-on-runpod/)
diff --git a/yarn.lock b/yarn.lock
new file mode 100644
index 0000000..bcc96d5
--- /dev/null
+++ b/yarn.lock
@@ -0,0 +1,1851 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@75lb/deep-merge@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@75lb/deep-merge/-/deep-merge-1.1.1.tgz#3b06155b90d34f5f8cc2107d796f1853ba02fd6d"
+ integrity sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw==
+ dependencies:
+ lodash.assignwith "^4.2.0"
+ typical "^7.1.1"
+
+"@actions/core@^1.6.0":
+ version "1.10.1"
+ resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.1.tgz#61108e7ac40acae95ee36da074fa5850ca4ced8a"
+ integrity sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==
+ dependencies:
+ "@actions/http-client" "^2.0.1"
+ uuid "^8.3.2"
+
+"@actions/http-client@^2.0.1":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.0.tgz#f8239f375be6185fcd07765efdcf0031ad5df1a0"
+ integrity sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==
+ dependencies:
+ tunnel "^0.0.6"
+ undici "^5.25.4"
+
+"@apidevtools/openapi-schemas@^2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz#9fa08017fb59d80538812f03fc7cac5992caaa17"
+ integrity sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==
+
+"@apidevtools/swagger-methods@^3.0.2":
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz#b789a362e055b0340d04712eafe7027ddc1ac267"
+ integrity sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==
+
+"@babel/code-frame@^7.16.0":
+ version "7.23.5"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
+ integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
+ dependencies:
+ "@babel/highlight" "^7.23.4"
+ chalk "^2.4.2"
+
+"@babel/helper-validator-identifier@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+ integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
+
+"@babel/highlight@^7.23.4":
+ version "7.23.4"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
+ integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.22.20"
+ chalk "^2.4.2"
+ js-tokens "^4.0.0"
+
+"@babel/runtime@^7.21.0":
+ version "7.23.6"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d"
+ integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
+"@dprint/darwin-arm64@0.44.0":
+ version "0.44.0"
+ resolved "https://registry.yarnpkg.com/@dprint/darwin-arm64/-/darwin-arm64-0.44.0.tgz#6716ee44e99a97c26508dfeb4baf8538d55face7"
+ integrity sha512-6MlycQuH1rojgssK6D8CzaEC+rTZCfoHh/QHyZJcjJqIoj1KXGTL+UUTvJ+iGuMMJ1gchsyl0UCVDJ5UE/BBdA==
+
+"@dprint/darwin-x64@0.44.0":
+ version "0.44.0"
+ resolved "https://registry.yarnpkg.com/@dprint/darwin-x64/-/darwin-x64-0.44.0.tgz#aa330077399c6a5ac6940e41cbd77539519a0214"
+ integrity sha512-TKt/qCCVlf2imq1HDSrdpyWFfzySPlSBmaWAg5qADftQWMp2/egQWzqhw92U2x62aoZ0CRcP5BZE8aVIigPELg==
+
+"@dprint/linux-arm64-glibc@0.44.0":
+ version "0.44.0"
+ resolved "https://registry.yarnpkg.com/@dprint/linux-arm64-glibc/-/linux-arm64-glibc-0.44.0.tgz#b37621ab821f787f9cfa784d251478b10fd124b6"
+ integrity sha512-CgGuIFlytPzGMg7trFUtAJm0U7i3dBsp2OZbH2jHNBNC6vODHv1GgZFq4tQpMNPBiJRK+9eVlwHifWoEaVIRXg==
+
+"@dprint/linux-arm64-musl@0.44.0":
+ version "0.44.0"
+ resolved "https://registry.yarnpkg.com/@dprint/linux-arm64-musl/-/linux-arm64-musl-0.44.0.tgz#575b3d26d2def411fc3777373b54723cfdae98d6"
+ integrity sha512-rvs8jDYRqszjoabbycEd32Iob0R6jLjLpnN35e/jOGrguvJj0/TAumWp85O3viB7DVC7qxahgZft0XlhPEHrUQ==
+
+"@dprint/linux-x64-glibc@0.44.0":
+ version "0.44.0"
+ resolved "https://registry.yarnpkg.com/@dprint/linux-x64-glibc/-/linux-x64-glibc-0.44.0.tgz#bb7eb424082d7ca9063e26df15c5653eb1072b95"
+ integrity sha512-/3y4FsYcS+W25/o5yYjO0A9800woZ93b+Htlp7aIHdM53G0canw2306SoyvIZ+tNSaVegbSU9i21i4FLhNMN6g==
+
+"@dprint/linux-x64-musl@0.44.0":
+ version "0.44.0"
+ resolved "https://registry.yarnpkg.com/@dprint/linux-x64-musl/-/linux-x64-musl-0.44.0.tgz#30ee76ae0a08f9d18881a41d0afec9bf551053bb"
+ integrity sha512-XWclrKFozgNoeFZ4ULuwgUh+6tN7zn2tH8SmY8VwwaBsCX3FjCwk2Qx11rRqMmD9oJmu8KqWexSW6kY3Fxjh/g==
+
+"@dprint/win32-x64@0.44.0":
+ version "0.44.0"
+ resolved "https://registry.yarnpkg.com/@dprint/win32-x64/-/win32-x64-0.44.0.tgz#fada157042f172792271c2e0bf08753dfd859a90"
+ integrity sha512-od8W35aAwC1Ah3Zqw5q4w8aNHfABIiKssURF03IlFljAS5xZ4yt7JDkUwaFeLB/Xsh6Jka4YmbOWDrtEUoXY9Q==
+
+"@exodus/schemasafe@^1.0.0-rc.2":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f"
+ integrity sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==
+
+"@fastify/busboy@^2.0.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff"
+ integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==
+
+"@humanwhocodes/momoa@^2.0.3":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/momoa/-/momoa-2.0.4.tgz#8b9e7a629651d15009c3587d07a222deeb829385"
+ integrity sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==
+
+"@jsdevtools/ono@^7.1.3":
+ version "7.1.3"
+ resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796"
+ integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
+
+"@kwsites/file-exists@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@kwsites/file-exists/-/file-exists-1.1.1.tgz#ad1efcac13e1987d8dbaf235ef3be5b0d96faa99"
+ integrity sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==
+ dependencies:
+ debug "^4.1.1"
+
+"@kwsites/promise-deferred@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz#8ace5259254426ccef57f3175bc64ed7095ed919"
+ integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==
+
+"@pnpm/config.env-replace@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c"
+ integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==
+
+"@pnpm/network.ca-file@^1.0.1":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983"
+ integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==
+ dependencies:
+ graceful-fs "4.2.10"
+
+"@pnpm/npm-conf@^2.1.0":
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz#0058baf1c26cbb63a828f0193795401684ac86f0"
+ integrity sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==
+ dependencies:
+ "@pnpm/config.env-replace" "^1.1.0"
+ "@pnpm/network.ca-file" "^1.0.1"
+ config-chain "^1.1.11"
+
+"@readme/better-ajv-errors@^1.6.0":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@readme/better-ajv-errors/-/better-ajv-errors-1.6.0.tgz#cf96740bd71d256ed628f3a7466ecae0846edd62"
+ integrity sha512-9gO9rld84Jgu13kcbKRU+WHseNhaVt76wYMeRDGsUGYxwJtI3RmEJ9LY9dZCYQGI8eUZLuxb5qDja0nqklpFjQ==
+ dependencies:
+ "@babel/code-frame" "^7.16.0"
+ "@babel/runtime" "^7.21.0"
+ "@humanwhocodes/momoa" "^2.0.3"
+ chalk "^4.1.2"
+ json-to-ast "^2.0.3"
+ jsonpointer "^5.0.0"
+ leven "^3.1.0"
+
+"@readme/http-status-codes@^7.2.0":
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/@readme/http-status-codes/-/http-status-codes-7.2.0.tgz#805d281346eb4c25d987d8b86e23b4dba116a96f"
+ integrity sha512-/dBh9qw3QhJYqlGwt2I+KUP/lQ6nytdCx3aq+GpMUhibLHF3O7fwoowNcTwlbnwtyJ+TJYTIIrp3oVUlRNx3fA==
+
+"@readme/json-schema-ref-parser@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@readme/json-schema-ref-parser/-/json-schema-ref-parser-1.2.0.tgz#8552cde8f8ecf455398c59aa6e2cf5ed2d0f3d31"
+ integrity sha512-Bt3QVovFSua4QmHa65EHUmh2xS0XJ3rgTEUPH998f4OW4VVJke3BuS16f+kM0ZLOGdvIrzrPRqwihuv5BAjtrA==
+ dependencies:
+ "@jsdevtools/ono" "^7.1.3"
+ "@types/json-schema" "^7.0.6"
+ call-me-maybe "^1.0.1"
+ js-yaml "^4.1.0"
+
+"@readme/openapi-parser@^2.5.0":
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/@readme/openapi-parser/-/openapi-parser-2.5.0.tgz#9e6f0d246ae45d0aea0efb873201359001d0f11e"
+ integrity sha512-IbymbOqRuUzoIgxfAAR7XJt2FWl6n2yqN09fF5adacGm7W03siA3bj1Emql0X9D2T+RpBYz3x9zDsMhuoMP62A==
+ dependencies:
+ "@apidevtools/openapi-schemas" "^2.1.0"
+ "@apidevtools/swagger-methods" "^3.0.2"
+ "@jsdevtools/ono" "^7.1.3"
+ "@readme/better-ajv-errors" "^1.6.0"
+ "@readme/json-schema-ref-parser" "^1.2.0"
+ ajv "^8.12.0"
+ ajv-draft-04 "^1.0.0"
+ call-me-maybe "^1.0.1"
+
+"@readme/postman-to-openapi@^4.1.0":
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/@readme/postman-to-openapi/-/postman-to-openapi-4.1.0.tgz#ba40dd4374f74cf2112e23e031320ba2c3e0da44"
+ integrity sha512-VvV2Hzjskz01m8doSn7Ypt6cSZzgjnypVqXy1ipThbyYD6SGiM74VSePXykOODj/43Y2m6zeYedPk/ZLts/HvQ==
+ dependencies:
+ "@readme/http-status-codes" "^7.2.0"
+ js-yaml "^4.1.0"
+ jsonc-parser "3.2.0"
+ lodash.camelcase "^4.3.0"
+ marked "^4.3.0"
+ mustache "^4.2.0"
+
+"@types/json-schema@^7.0.11", "@types/json-schema@^7.0.6":
+ version "7.0.15"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
+ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+
+ajv-draft-04@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz#3b64761b268ba0b9e668f0b41ba53fce0ad77fc8"
+ integrity sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==
+
+ajv@^8.0.1, ajv@^8.12.0:
+ version "8.12.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1"
+ integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+ uri-js "^4.2.2"
+
+ansi-align@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59"
+ integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==
+ dependencies:
+ string-width "^4.1.0"
+
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+array-back@^3.0.1, array-back@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0"
+ integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==
+
+array-back@^6.2.2:
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/array-back/-/array-back-6.2.2.tgz#f567d99e9af88a6d3d2f9dfcc21db6f9ba9fd157"
+ integrity sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==
+
+astral-regex@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+ integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+
+balanced-match@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base64-js@^1.3.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
+bl@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
+ integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
+ dependencies:
+ buffer "^5.5.0"
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
+
+boxen@^5.0.0:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50"
+ integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==
+ dependencies:
+ ansi-align "^3.0.0"
+ camelcase "^6.2.0"
+ chalk "^4.1.0"
+ cli-boxes "^2.2.1"
+ string-width "^4.2.2"
+ type-fest "^0.20.2"
+ widest-line "^3.1.0"
+ wrap-ansi "^7.0.0"
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+buffer@^5.5.0:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
+ integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.1.13"
+
+call-me-maybe@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa"
+ integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==
+
+camelcase@^6.2.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
+ integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
+
+chalk-template@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-0.4.0.tgz#692c034d0ed62436b9062c1707fadcd0f753204b"
+ integrity sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==
+ dependencies:
+ chalk "^4.1.2"
+
+chalk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chalk@^4.1.0, chalk@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+ci-info@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+ integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+
+ci-info@^3.6.1:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4"
+ integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
+
+cli-boxes@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
+ integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==
+
+cli-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
+ integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
+ dependencies:
+ restore-cursor "^3.1.0"
+
+cli-spinners@^2.5.0:
+ version "2.9.2"
+ resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41"
+ integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==
+
+cliui@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
+ integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^7.0.0"
+
+clone@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+ integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
+
+code-error-fragment@0.0.230:
+ version "0.0.230"
+ resolved "https://registry.yarnpkg.com/code-error-fragment/-/code-error-fragment-0.0.230.tgz#d736d75c832445342eca1d1fedbf17d9618b14d7"
+ integrity sha512-cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==
+
+color-convert@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+
+color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+combined-stream@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
+command-line-args@^5.2.0, command-line-args@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e"
+ integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==
+ dependencies:
+ array-back "^3.1.0"
+ find-replace "^3.0.0"
+ lodash.camelcase "^4.3.0"
+ typical "^4.0.0"
+
+command-line-usage@^7.0.0, command-line-usage@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-7.0.1.tgz#e540afef4a4f3bc501b124ffde33956309100655"
+ integrity sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==
+ dependencies:
+ array-back "^6.2.2"
+ chalk-template "^0.4.0"
+ table-layout "^3.0.0"
+ typical "^7.1.1"
+
+compute-gcd@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/compute-gcd/-/compute-gcd-1.2.1.tgz#34d639f3825625e1357ce81f0e456a6249d8c77f"
+ integrity sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==
+ dependencies:
+ validate.io-array "^1.0.3"
+ validate.io-function "^1.0.2"
+ validate.io-integer-array "^1.0.0"
+
+compute-lcm@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/compute-lcm/-/compute-lcm-1.1.2.tgz#9107c66b9dca28cefb22b4ab4545caac4034af23"
+ integrity sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==
+ dependencies:
+ compute-gcd "^1.2.1"
+ validate.io-array "^1.0.3"
+ validate.io-function "^1.0.2"
+ validate.io-integer-array "^1.0.0"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
+
+config-chain@^1.1.11:
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4"
+ integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==
+ dependencies:
+ ini "^1.3.4"
+ proto-list "~1.2.1"
+
+config@^3.1.0:
+ version "3.3.9"
+ resolved "https://registry.yarnpkg.com/config/-/config-3.3.9.tgz#27fae95b43e0e1d5723e54143c090954d8e49572"
+ integrity sha512-G17nfe+cY7kR0wVpc49NCYvNtelm/pPy8czHoFkAgtV1lkmcp7DHtWCdDu+C9Z7gb2WVqa9Tm3uF9aKaPbCfhg==
+ dependencies:
+ json5 "^2.2.3"
+
+configstore@^5.0.0, configstore@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"
+ integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==
+ dependencies:
+ dot-prop "^5.2.0"
+ graceful-fs "^4.1.2"
+ make-dir "^3.0.0"
+ unique-string "^2.0.0"
+ write-file-atomic "^3.0.0"
+ xdg-basedir "^4.0.0"
+
+crypto-random-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
+ integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+
+d@1, d@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
+ integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
+ dependencies:
+ es5-ext "^0.10.50"
+ type "^1.0.1"
+
+debug@^4.1.1, debug@^4.3.3, debug@^4.3.4:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
+deep-extend@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+ integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
+defaults@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a"
+ integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==
+ dependencies:
+ clone "^1.0.2"
+
+define-lazy-prop@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f"
+ integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
+
+dot-prop@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
+ integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+ dependencies:
+ is-obj "^2.0.0"
+
+dprint@0.44.0:
+ version "0.44.0"
+ resolved "https://registry.yarnpkg.com/dprint/-/dprint-0.44.0.tgz#8e25e826169e6e7c0291f172c4143414008f9b92"
+ integrity sha512-35gviJKVxK6x48EMBZq3/oBLDRoBF9nDXTxYbl+T/lgCUaW3dccccZfuvIJ1rvq1pFlHt8wVyw8ZDZA9ALMfhA==
+ optionalDependencies:
+ "@dprint/darwin-arm64" "0.44.0"
+ "@dprint/darwin-x64" "0.44.0"
+ "@dprint/linux-arm64-glibc" "0.44.0"
+ "@dprint/linux-arm64-musl" "0.44.0"
+ "@dprint/linux-x64-glibc" "0.44.0"
+ "@dprint/linux-x64-musl" "0.44.0"
+ "@dprint/win32-x64" "0.44.0"
+
+editor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/editor/-/editor-1.0.0.tgz#60c7f87bd62bcc6a894fa8ccd6afb7823a24f742"
+ integrity sha512-SoRmbGStwNYHgKfjOrX2L0mUvp9bUVv0uPppZSOMAntEbcFtoC3MKF5b3T6HQPXKIV+QGY3xPO3JK5it5lVkuw==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46:
+ version "0.10.62"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5"
+ integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==
+ dependencies:
+ es6-iterator "^2.0.3"
+ es6-symbol "^3.1.3"
+ next-tick "^1.1.0"
+
+es6-iterator@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
+ integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==
+ dependencies:
+ d "1"
+ es5-ext "^0.10.35"
+ es6-symbol "^3.1.1"
+
+es6-promise@^3.2.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
+ integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==
+
+es6-symbol@^3.1.1, es6-symbol@^3.1.3:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
+ integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
+ dependencies:
+ d "^1.0.1"
+ ext "^1.1.2"
+
+es6-weak-map@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
+ integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
+ dependencies:
+ d "1"
+ es5-ext "^0.10.46"
+ es6-iterator "^2.0.3"
+ es6-symbol "^3.1.1"
+
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-goat@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675"
+ integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==
+
+escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+
+esprima@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+event-emitter@^0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
+ integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+
+ext@^1.1.2:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
+ integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==
+ dependencies:
+ type "^2.7.2"
+
+extend-shallow@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==
+ dependencies:
+ is-extendable "^0.1.0"
+
+fast-deep-equal@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-safe-stringify@^2.0.7:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
+ integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
+
+find-replace@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38"
+ integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==
+ dependencies:
+ array-back "^3.0.1"
+
+form-data@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+ integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+
+get-caller-file@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+glob@^7.1.3:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+global-dirs@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485"
+ integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==
+ dependencies:
+ ini "2.0.0"
+
+graceful-fs@4.2.10:
+ version "4.2.10"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
+ integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
+
+graceful-fs@^4.1.2:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+grapheme-splitter@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
+ integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
+
+gray-matter@^4.0.1:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798"
+ integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==
+ dependencies:
+ js-yaml "^3.13.1"
+ kind-of "^6.0.2"
+ section-matter "^1.0.0"
+ strip-bom-string "^1.0.0"
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-yarn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
+ integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==
+
+http2-client@^1.2.5:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/http2-client/-/http2-client-1.3.5.tgz#20c9dc909e3cc98284dd20af2432c524086df181"
+ integrity sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==
+
+ieee754@^1.1.13:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
+ignore@^5.2.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78"
+ integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==
+
+import-lazy@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
+ integrity sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@^2.0.3, inherits@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+ini@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
+ integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
+
+ini@^1.3.4, ini@~1.3.0:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+ integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+
+is-ci@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+ integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
+ dependencies:
+ ci-info "^2.0.0"
+
+is-docker@^2.0.0, is-docker@^2.1.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
+ integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
+
+is-extendable@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==
+
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-installed-globally@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520"
+ integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==
+ dependencies:
+ global-dirs "^3.0.0"
+ is-path-inside "^3.0.2"
+
+is-interactive@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
+ integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
+
+is-npm@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8"
+ integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==
+
+is-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
+is-path-inside@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+ integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
+is-promise@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1"
+ integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==
+
+is-typedarray@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+ integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
+
+is-unicode-supported@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
+ integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
+
+is-wsl@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
+ integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
+ dependencies:
+ is-docker "^2.0.0"
+
+is-yarn-global@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
+ integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
+
+isomorphic-fetch@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4"
+ integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==
+ dependencies:
+ node-fetch "^2.6.1"
+ whatwg-fetch "^3.4.1"
+
+js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@^3.13.1:
+ version "3.14.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
+ integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+js-yaml@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ dependencies:
+ argparse "^2.0.1"
+
+json-schema-compare@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/json-schema-compare/-/json-schema-compare-0.2.2.tgz#dd601508335a90c7f4cfadb6b2e397225c908e56"
+ integrity sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==
+ dependencies:
+ lodash "^4.17.4"
+
+json-schema-merge-allof@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz#ed2828cdd958616ff74f932830a26291789eaaf2"
+ integrity sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==
+ dependencies:
+ compute-lcm "^1.1.2"
+ json-schema-compare "^0.2.2"
+ lodash "^4.17.20"
+
+json-schema-traverse@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+ integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
+json-to-ast@^2.0.3:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/json-to-ast/-/json-to-ast-2.1.0.tgz#041a9fcd03c0845036acb670d29f425cea4faaf9"
+ integrity sha512-W9Lq347r8tA1DfMvAGn9QNcgYm4Wm7Yc+k8e6vezpMnRT+NHbtlxgNBXRVjXe9YM6eTn6+p/MKOlV/aABJcSnQ==
+ dependencies:
+ code-error-fragment "0.0.230"
+ grapheme-splitter "^1.0.4"
+
+json5@^2.2.3:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
+jsonc-parser@3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76"
+ integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==
+
+jsonpath-plus@^7.2.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/jsonpath-plus/-/jsonpath-plus-7.2.0.tgz#7ad94e147b3ed42f7939c315d2b9ce490c5a3899"
+ integrity sha512-zBfiUPM5nD0YZSBT/o/fbCUlCcepMIdP0CJZxM1+KgA4f2T206f6VAg9e7mX35+KlMaIc5qXW34f3BnwJ3w+RA==
+
+jsonpointer@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559"
+ integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==
+
+kind-of@^6.0.0, kind-of@^6.0.2:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+
+kleur@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+ integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
+leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
+lodash.assignwith@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz#127a97f02adc41751a954d24b0de17e100e038eb"
+ integrity sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==
+
+lodash.camelcase@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
+ integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==
+
+lodash.truncate@^4.4.2:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
+ integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==
+
+lodash@^4.17.20, lodash@^4.17.4:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+log-symbols@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
+ integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
+ dependencies:
+ chalk "^4.1.0"
+ is-unicode-supported "^0.1.0"
+
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ dependencies:
+ yallist "^4.0.0"
+
+lru-queue@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3"
+ integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==
+ dependencies:
+ es5-ext "~0.10.2"
+
+make-dir@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
+marked@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3"
+ integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==
+
+memoizee@^0.4.14:
+ version "0.4.15"
+ resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72"
+ integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==
+ dependencies:
+ d "^1.0.1"
+ es5-ext "^0.10.53"
+ es6-weak-map "^2.0.3"
+ event-emitter "^0.3.5"
+ is-promise "^2.2.2"
+ lru-queue "^0.1.0"
+ next-tick "^1.1.0"
+ timers-ext "^0.1.7"
+
+mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+mime-types@^2.1.12, mime-types@^2.1.35:
+ version "2.1.35"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
+minimatch@^3.1.1:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@^1.2.0:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+
+ms@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+mustache@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64"
+ integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
+
+next-tick@1, next-tick@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
+ integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
+
+node-fetch-h2@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz#c6188325f9bd3d834020bf0f2d6dc17ced2241ac"
+ integrity sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==
+ dependencies:
+ http2-client "^1.2.5"
+
+node-fetch@^2.6.1:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
+ dependencies:
+ whatwg-url "^5.0.0"
+
+node-readfiles@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/node-readfiles/-/node-readfiles-0.2.0.tgz#dbbd4af12134e2e635c245ef93ffcf6f60673a5d"
+ integrity sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==
+ dependencies:
+ es6-promise "^3.2.1"
+
+oas-kit-common@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/oas-kit-common/-/oas-kit-common-1.0.8.tgz#6d8cacf6e9097967a4c7ea8bcbcbd77018e1f535"
+ integrity sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==
+ dependencies:
+ fast-safe-stringify "^2.0.7"
+
+oas-linter@^3.2.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-3.2.2.tgz#ab6a33736313490659035ca6802dc4b35d48aa1e"
+ integrity sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==
+ dependencies:
+ "@exodus/schemasafe" "^1.0.0-rc.2"
+ should "^13.2.1"
+ yaml "^1.10.0"
+
+oas-normalize@^8.4.0, oas-normalize@^8.4.1:
+ version "8.4.1"
+ resolved "https://registry.yarnpkg.com/oas-normalize/-/oas-normalize-8.4.1.tgz#b647addbf4cfc1a28db6405649f6e9ec414f94ae"
+ integrity sha512-cGODg+AntZteJRHBiYDWKtcO2svWGMXuFWYu2I8b4hOrNiwB3hgDs/ScX3O9mYm6RpLsUIftt6rDHGc8eYG8aA==
+ dependencies:
+ "@readme/openapi-parser" "^2.5.0"
+ "@readme/postman-to-openapi" "^4.1.0"
+ js-yaml "^4.1.0"
+ node-fetch "^2.6.1"
+ openapi-types "^12.1.0"
+ swagger2openapi "^7.0.8"
+
+oas-resolver@^2.5.6:
+ version "2.5.6"
+ resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-2.5.6.tgz#10430569cb7daca56115c915e611ebc5515c561b"
+ integrity sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==
+ dependencies:
+ node-fetch-h2 "^2.3.0"
+ oas-kit-common "^1.0.8"
+ reftools "^1.1.9"
+ yaml "^1.10.0"
+ yargs "^17.0.1"
+
+oas-schema-walker@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz#74c3cd47b70ff8e0b19adada14455b5d3ac38a22"
+ integrity sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==
+
+oas-validator@^5.0.8:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-5.0.8.tgz#387e90df7cafa2d3ffc83b5fb976052b87e73c28"
+ integrity sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==
+ dependencies:
+ call-me-maybe "^1.0.1"
+ oas-kit-common "^1.0.8"
+ oas-linter "^3.2.2"
+ oas-resolver "^2.5.6"
+ oas-schema-walker "^1.1.5"
+ reftools "^1.1.9"
+ should "^13.2.1"
+ yaml "^1.10.0"
+
+oas@^20.10.2:
+ version "20.10.3"
+ resolved "https://registry.yarnpkg.com/oas/-/oas-20.10.3.tgz#197a9b4096ff1b50e8ec38b97825ce8ddf8114e4"
+ integrity sha512-dBxDuwn2ssggPMOqEKEzT4sjCqbkol8JozuWrpwD7chcmbKbverj5vpk2kmsczeyguFkLcKUOMcqUUimf9h+IQ==
+ dependencies:
+ "@readme/json-schema-ref-parser" "^1.2.0"
+ "@types/json-schema" "^7.0.11"
+ json-schema-merge-allof "^0.8.1"
+ jsonpath-plus "^7.2.0"
+ jsonpointer "^5.0.0"
+ memoizee "^0.4.14"
+ oas-normalize "^8.4.0"
+ openapi-types "^12.1.1"
+ path-to-regexp "^6.2.0"
+ remove-undefined-objects "^3.0.0"
+
+once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
+ dependencies:
+ wrappy "1"
+
+onetime@^5.1.0:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+open@^8.2.1:
+ version "8.4.2"
+ resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9"
+ integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==
+ dependencies:
+ define-lazy-prop "^2.0.0"
+ is-docker "^2.1.1"
+ is-wsl "^2.2.0"
+
+openapi-types@^12.1.0, openapi-types@^12.1.1:
+ version "12.1.3"
+ resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-12.1.3.tgz#471995eb26c4b97b7bd356aacf7b91b73e777dd3"
+ integrity sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==
+
+ora@^5.4.1:
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18"
+ integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==
+ dependencies:
+ bl "^4.1.0"
+ chalk "^4.1.0"
+ cli-cursor "^3.1.0"
+ cli-spinners "^2.5.0"
+ is-interactive "^1.0.0"
+ is-unicode-supported "^0.1.0"
+ log-symbols "^4.1.0"
+ strip-ansi "^6.0.0"
+ wcwidth "^1.0.1"
+
+parse-link-header@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/parse-link-header/-/parse-link-header-2.0.0.tgz#949353e284f8aa01f2ac857a98f692b57733f6b7"
+ integrity sha512-xjU87V0VyHZybn2RrCX5TIFGxTVZE6zqqZWMPlIKiSKuWh/X5WZdt+w1Ki1nXB+8L/KtL+nZ4iq+sfI6MrhhMw==
+ dependencies:
+ xtend "~4.0.1"
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
+
+path-to-regexp@^6.2.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5"
+ integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==
+
+pluralize@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1"
+ integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==
+
+prompts@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
+ integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
+ dependencies:
+ kleur "^3.0.3"
+ sisteransi "^1.0.5"
+
+proto-list@~1.2.1:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
+ integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==
+
+punycode@^2.1.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+ integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+
+pupa@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62"
+ integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==
+ dependencies:
+ escape-goat "^2.0.0"
+
+rc@^1.2.8:
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+ integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
+ dependencies:
+ deep-extend "^0.6.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
+rdme@^8.6.6:
+ version "8.6.6"
+ resolved "https://registry.yarnpkg.com/rdme/-/rdme-8.6.6.tgz#00fd173433dbb8086fb56456aa15c2979a66c135"
+ integrity sha512-+H7v3t8yoM89Xe1PYTDitMptosemi/l6thNz5CyBEhipZW11iq3bbvndRDvRSBB0ncOnFQp5heY1HspERc/oPA==
+ dependencies:
+ "@actions/core" "^1.6.0"
+ chalk "^4.1.2"
+ ci-info "^3.6.1"
+ command-line-args "^5.2.0"
+ command-line-usage "^7.0.1"
+ config "^3.1.0"
+ configstore "^5.0.0"
+ debug "^4.3.3"
+ editor "^1.0.0"
+ form-data "^4.0.0"
+ gray-matter "^4.0.1"
+ ignore "^5.2.0"
+ mime-types "^2.1.35"
+ node-fetch "^2.6.1"
+ oas "^20.10.2"
+ oas-normalize "^8.4.1"
+ open "^8.2.1"
+ ora "^5.4.1"
+ parse-link-header "^2.0.0"
+ pluralize "^8.0.0"
+ prompts "^2.4.2"
+ semver "^7.5.3"
+ simple-git "^3.19.1"
+ string-argv "^0.3.1"
+ table "^6.8.1"
+ tmp-promise "^3.0.2"
+ update-notifier-cjs "^5.1.5"
+ validator "^13.7.0"
+
+readable-stream@^3.4.0:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
+ integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+reftools@^1.1.9:
+ version "1.1.9"
+ resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.1.9.tgz#e16e19f662ccd4648605312c06d34e5da3a2b77e"
+ integrity sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==
+
+regenerator-runtime@^0.14.0:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
+ integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
+
+registry-auth-token@^5.0.1:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756"
+ integrity sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==
+ dependencies:
+ "@pnpm/npm-conf" "^2.1.0"
+
+registry-url@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009"
+ integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==
+ dependencies:
+ rc "^1.2.8"
+
+remove-undefined-objects@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/remove-undefined-objects/-/remove-undefined-objects-3.0.0.tgz#34d710fd2953253ad882f42a60c5a81e618cf12b"
+ integrity sha512-nxG1yYfc/Jxi+bNCBiqKhxVJPE+QvziIOKbD+Dxc93Uisz92v/ZYpo4WR0TJuf+dk2xE8lW2WPJsA3mDFzXy8w==
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
+
+require-from-string@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+ integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
+restore-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
+ integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
+ dependencies:
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+
+rimraf@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
+
+safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+section-matter@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167"
+ integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==
+ dependencies:
+ extend-shallow "^2.0.1"
+ kind-of "^6.0.0"
+
+semver-diff@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"
+ integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==
+ dependencies:
+ semver "^6.3.0"
+
+semver@^6.0.0, semver@^6.3.0:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+semver@^7.3.7, semver@^7.5.3:
+ version "7.5.4"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+ integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
+ dependencies:
+ lru-cache "^6.0.0"
+
+should-equal@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3"
+ integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==
+ dependencies:
+ should-type "^1.4.0"
+
+should-format@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1"
+ integrity sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==
+ dependencies:
+ should-type "^1.3.0"
+ should-type-adaptors "^1.0.1"
+
+should-type-adaptors@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a"
+ integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==
+ dependencies:
+ should-type "^1.3.0"
+ should-util "^1.0.0"
+
+should-type@^1.3.0, should-type@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3"
+ integrity sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==
+
+should-util@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.1.tgz#fb0d71338f532a3a149213639e2d32cbea8bcb28"
+ integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==
+
+should@^13.2.1:
+ version "13.2.3"
+ resolved "https://registry.yarnpkg.com/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10"
+ integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==
+ dependencies:
+ should-equal "^2.0.0"
+ should-format "^3.0.3"
+ should-type "^1.4.0"
+ should-type-adaptors "^1.0.1"
+ should-util "^1.0.0"
+
+signal-exit@^3.0.2:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+simple-git@^3.19.1:
+ version "3.21.0"
+ resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.21.0.tgz#fb7b42749f53e7a53dfd213540d78b74e0aabe13"
+ integrity sha512-oTzw9248AF5bDTMk9MrxsRzEzivMlY+DWH0yWS4VYpMhNLhDWnN06pCtaUyPnqv/FpsdeNmRqmZugMABHRPdDA==
+ dependencies:
+ "@kwsites/file-exists" "^1.1.1"
+ "@kwsites/promise-deferred" "^1.1.1"
+ debug "^4.3.4"
+
+sisteransi@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
+slice-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+ integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+ dependencies:
+ ansi-styles "^4.0.0"
+ astral-regex "^2.0.0"
+ is-fullwidth-code-point "^3.0.0"
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
+
+stream-read-all@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/stream-read-all/-/stream-read-all-3.0.1.tgz#60762ae45e61d93ba0978cda7f3913790052ad96"
+ integrity sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==
+
+string-argv@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6"
+ integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==
+
+string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+ dependencies:
+ safe-buffer "~5.2.0"
+
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
+strip-bom-string@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"
+ integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==
+
+strip-json-comments@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+ integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
+
+supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ dependencies:
+ has-flag "^4.0.0"
+
+swagger2openapi@^7.0.8:
+ version "7.0.8"
+ resolved "https://registry.yarnpkg.com/swagger2openapi/-/swagger2openapi-7.0.8.tgz#12c88d5de776cb1cbba758994930f40ad0afac59"
+ integrity sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==
+ dependencies:
+ call-me-maybe "^1.0.1"
+ node-fetch "^2.6.1"
+ node-fetch-h2 "^2.3.0"
+ node-readfiles "^0.2.0"
+ oas-kit-common "^1.0.8"
+ oas-resolver "^2.5.6"
+ oas-schema-walker "^1.1.5"
+ oas-validator "^5.0.8"
+ reftools "^1.1.9"
+ yaml "^1.10.0"
+ yargs "^17.0.1"
+
+table-layout@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-3.0.2.tgz#69c2be44388a5139b48c59cf21e73b488021769a"
+ integrity sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==
+ dependencies:
+ "@75lb/deep-merge" "^1.1.1"
+ array-back "^6.2.2"
+ command-line-args "^5.2.1"
+ command-line-usage "^7.0.0"
+ stream-read-all "^3.0.1"
+ typical "^7.1.1"
+ wordwrapjs "^5.1.0"
+
+table@^6.8.1:
+ version "6.8.1"
+ resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf"
+ integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==
+ dependencies:
+ ajv "^8.0.1"
+ lodash.truncate "^4.4.2"
+ slice-ansi "^4.0.0"
+ string-width "^4.2.3"
+ strip-ansi "^6.0.1"
+
+timers-ext@^0.1.7:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6"
+ integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==
+ dependencies:
+ es5-ext "~0.10.46"
+ next-tick "1"
+
+tmp-promise@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7"
+ integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==
+ dependencies:
+ tmp "^0.2.0"
+
+tmp@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
+ integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
+ dependencies:
+ rimraf "^3.0.0"
+
+tr46@~0.0.3:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+ integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
+
+tunnel@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
+ integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
+
+type-fest@^0.20.2:
+ version "0.20.2"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+ integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
+type@^1.0.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
+ integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
+
+type@^2.7.2:
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0"
+ integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==
+
+typedarray-to-buffer@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+ integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
+ dependencies:
+ is-typedarray "^1.0.0"
+
+typical@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4"
+ integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==
+
+typical@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/typical/-/typical-7.1.1.tgz#ba177ab7ab103b78534463ffa4c0c9754523ac1f"
+ integrity sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==
+
+undici@^5.25.4:
+ version "5.28.2"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91"
+ integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==
+ dependencies:
+ "@fastify/busboy" "^2.0.0"
+
+unique-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
+ integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
+ dependencies:
+ crypto-random-string "^2.0.0"
+
+update-notifier-cjs@^5.1.5:
+ version "5.1.6"
+ resolved "https://registry.yarnpkg.com/update-notifier-cjs/-/update-notifier-cjs-5.1.6.tgz#6e3aff745d1551b55bb0a0a5939b7e636d95877d"
+ integrity sha512-wgxdSBWv3x/YpMzsWz5G4p4ec7JWD0HCl8W6bmNB6E5Gwo+1ym5oN4hiXpLf0mPySVEJEIsYlkshnplkg2OP9A==
+ dependencies:
+ boxen "^5.0.0"
+ chalk "^4.1.0"
+ configstore "^5.0.1"
+ has-yarn "^2.1.0"
+ import-lazy "^2.1.0"
+ is-ci "^2.0.0"
+ is-installed-globally "^0.4.0"
+ is-npm "^5.0.0"
+ is-yarn-global "^0.3.0"
+ isomorphic-fetch "^3.0.0"
+ pupa "^2.1.1"
+ registry-auth-token "^5.0.1"
+ registry-url "^5.1.0"
+ semver "^7.3.7"
+ semver-diff "^3.1.1"
+ xdg-basedir "^4.0.0"
+
+uri-js@^4.2.2:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+ dependencies:
+ punycode "^2.1.0"
+
+util-deprecate@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
+uuid@^8.3.2:
+ version "8.3.2"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
+ integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+
+validate.io-array@^1.0.3:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/validate.io-array/-/validate.io-array-1.0.6.tgz#5b5a2cafd8f8b85abb2f886ba153f2d93a27774d"
+ integrity sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==
+
+validate.io-function@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/validate.io-function/-/validate.io-function-1.0.2.tgz#343a19802ed3b1968269c780e558e93411c0bad7"
+ integrity sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==
+
+validate.io-integer-array@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz#2cabde033293a6bcbe063feafe91eaf46b13a089"
+ integrity sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==
+ dependencies:
+ validate.io-array "^1.0.3"
+ validate.io-integer "^1.0.4"
+
+validate.io-integer@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/validate.io-integer/-/validate.io-integer-1.0.5.tgz#168496480b95be2247ec443f2233de4f89878068"
+ integrity sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==
+ dependencies:
+ validate.io-number "^1.0.3"
+
+validate.io-number@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8"
+ integrity sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==
+
+validator@^13.7.0:
+ version "13.11.0"
+ resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b"
+ integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==
+
+wcwidth@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
+ integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==
+ dependencies:
+ defaults "^1.0.3"
+
+webidl-conversions@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+ integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
+
+whatwg-fetch@^3.4.1:
+ version "3.6.20"
+ resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70"
+ integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==
+
+whatwg-url@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+ integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
+ dependencies:
+ tr46 "~0.0.3"
+ webidl-conversions "^3.0.0"
+
+widest-line@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
+ integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==
+ dependencies:
+ string-width "^4.0.0"
+
+wordwrapjs@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-5.1.0.tgz#4c4d20446dcc670b14fa115ef4f8fd9947af2b3a"
+ integrity sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==
+
+wrap-ansi@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
+
+write-file-atomic@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
+ integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
+ dependencies:
+ imurmurhash "^0.1.4"
+ is-typedarray "^1.0.0"
+ signal-exit "^3.0.2"
+ typedarray-to-buffer "^3.1.5"
+
+xdg-basedir@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
+ integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
+
+xtend@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
+y18n@^5.0.5:
+ version "5.0.8"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+ integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yaml@^1.10.0:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
+yargs-parser@^21.1.1:
+ version "21.1.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
+ integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
+
+yargs@^17.0.1:
+ version "17.7.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
+ integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+ dependencies:
+ cliui "^8.0.1"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.3"
+ y18n "^5.0.5"
+ yargs-parser "^21.1.1"