Repository: dmytrostriletskyi/diagrams-as-code Branch: main Commit: f7682bbf8cd8 Files: 46 Total size: 643.9 KB Directory structure: gitextract_jvv9xyul/ ├── .github/ │ └── workflows/ │ ├── main.yaml │ └── pull_request.yaml ├── .gitignore ├── .project-version ├── .yamllint.yml ├── LICENSE ├── MANIFEST.in ├── Makefile ├── README.md ├── diagrams_as_code/ │ ├── __init__.py │ ├── entrypoint.py │ ├── enums.py │ ├── resources.py │ └── schema.py ├── docs/ │ └── resources/ │ ├── alibaba_cloud.md │ ├── aws.md │ ├── azure.md │ ├── digital_ocean.md │ ├── elastic.md │ ├── firebase.md │ ├── flowchart.md │ ├── gcp.md │ ├── generic.md │ ├── ibm.md │ ├── kubernetes.md │ ├── oci.md │ ├── on_premise.md │ ├── open_stack.md │ ├── outscale.md │ ├── programming.md │ └── saas.md ├── examples/ │ ├── all-fields.yaml │ ├── events-processing-aws.yaml │ ├── exposed-pods-kubernetes.yaml │ ├── message-collecting-gcp.yaml │ ├── picture-in-readme.yaml │ ├── web-services-aws.yaml │ ├── web-services-on-premise.yaml │ └── workers-aws.yaml ├── json-schemas/ │ └── 0.0.1.json ├── pyproject.toml ├── requirements/ │ ├── dev.txt │ ├── ops.txt │ └── project.txt ├── setup.cfg └── setup.py ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/workflows/main.yaml ================================================ --- name: Main branch workflow on: push: branches: - main jobs: release: runs-on: [ubuntu-latest] outputs: project_version: ${{ steps.get_project_version.outputs.project_version }} steps: - uses: actions/checkout@v2 - name: Set up Python 3.11 uses: actions/setup-python@v1 with: python-version: '3.11' - name: Get a project version id: get_project_version run: echo "::set-output name=project_version::$(make get-project-version)" - name: Install project requirements run: make install-requirements - name: Make a release env: ACCESS_TOKEN: ${{secrets.GIT_HUB_ACCESS_TOKEN}} run: | project-version release \ --provider=GitHub \ --organization=dmytrostriletskyi \ --repository=diagrams-as-code \ --branch=main \ --project-version=${{ steps.get_project_version.outputs.project_version }} deploy: runs-on: [ubuntu-latest] needs: [release] outputs: project_version: ${{ steps.get_project_version.outputs.project_version }} steps: - uses: actions/checkout@v2 - name: Set up Python 3.11 uses: actions/setup-python@v1 with: python-version: '3.11' - name: Get a project version id: get_project_version run: echo "::set-output name=project_version::$(make get-project-version)" - name: Install project requirements run: make install-requirements - name: Build the package run: python3 setup.py sdist - name: Deploy the package run: | twine upload \ --username ${{ secrets.PYPI_USERNAME }} \ --password ${{ secrets.PYPI_PASSWORD }} \ dist/diagrams-as-code-${{ steps.get_project_version.outputs.project_version }}.tar.gz ================================================ FILE: .github/workflows/pull_request.yaml ================================================ --- name: Pull request workflow on: pull_request_target: branches: - main jobs: check-project-version: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest] python-version: ['3.11'] outputs: project_version: ${{ steps.get_project_version.outputs.project_version }} steps: - uses: actions/checkout@v2 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Get a version of the project id: get_project_version run: echo "::set-output name=project_version::$(make get-project-version)" - name: Install project requirements run: make install-requirements - name: Check project version env: ACCESS_TOKEN: ${{secrets.GIT_HUB_ACCESS_TOKEN}} run: | project-version check \ --provider=GitHub \ --organization=dmytrostriletskyi \ --repository=diagrams-yaml \ --base-branch=main \ --head-branch=${{ github.head_ref }} lint: name: Lint the codebase (python-${{ matrix.python-version }} on ${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest] python-version: ['3.11'] outputs: project_version: ${{ steps.get_project_version.outputs.project_version }} steps: - uses: actions/checkout@v2 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Get a version of the project id: get_project_version run: echo "::set-output name=project_version::$(make get-project-version)" - name: Install project requirements run: make install-requirements - name: Check code quality run: make check-code-quality ================================================ FILE: .gitignore ================================================ # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover .hypothesis/ .pytest_cache/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # pyenv .python-version # celery beat schedule file celerybeat-schedule # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .idea/ .DS_Store ================================================ FILE: .project-version ================================================ 0.0.4 ================================================ FILE: .yamllint.yml ================================================ --- extends: default rules: indentation: spaces: 2 indent-sequences: true document-start: present: true ignore: | examples/*.yaml line-length: disable colons: max-spaces-before: 0 max-spaces-after: 1 truthy: ignore: | *.yml *.yaml ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2023 Dmytro Striletskyi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: MANIFEST.in ================================================ include *.md include LICENSE include requirements/project.txt include .project-version ================================================ FILE: Makefile ================================================ SOURCE_FOLDER=./diagrams_yaml get-project-version: @cat .project-version install-requirements: pip3 install \ -r requirements/project.txt \ -r requirements/dev.txt \ -r requirements/ops.txt check-code-quality: isort $(SOURCE_FOLDER) --diff --check-only darglint $(SOURCE_FOLDER) ruff check $(SOURCE_FOLDER) --fix yamllint . format: isort $(SOURCE_FOLDER) ruff check $(SOURCE_FOLDER) --fix ================================================ FILE: README.md ================================================ `Diagrams as code`: declarative configurations using `YAML` for drawing cloud system architectures. [![](https://github.com/dmytrostriletskyi/diagrams-as-code/actions/workflows/main.yaml/badge.svg?branch=main)](https://github.com/dmytrostriletskyi/diagrams-as-code/actions/workflows/main.yaml) [![](https://img.shields.io/github/release/dmytrostriletskyi/diagrams-as-code.svg)](https://github.com/dmytrostriletskyi/diagrams-as-code/releases) [![](https://img.shields.io/pypi/v/diagrams-as-code.svg)](https://pypi.python.org/pypi/diagrams-as-code) [![](https://pepy.tech/badge/diagrams-as-code)](https://pepy.tech/project/diagrams-as-code) [![](https://img.shields.io/pypi/l/diagrams-as-code.svg)](https://pypi.python.org/pypi/diagrams-as-code/) [![](https://img.shields.io/pypi/pyversions/diagrams-as-code.svg)](https://pypi.python.org/pypi/diagrams-as-code/) ![](./assets/configurations-architecture-aligned.png) Table of content: * [Introduction](#introduction) * [Roadmap](#roadmap) * [Getting Started](#getting-started) * [How to Install](#how-to-install) * [Examples](#examples) * [Syntax Highlighting](#syntax-highlighting) * [PyCharm](#pycharm) * [VSCode](#vs-code) * [Usage](#usage) * [Command Line Interface](#command-line-interface) * [Guide](#guide) * [Disclaimer](#disclaimer) ## Introduction `Diagrams as code` is essentially the process of managing diagrams through code rather than interactively drawing them on specific web services such as [draw.io](https://app.diagrams.net). It lets you generate the cloud system architecture in a **declarative** way with widely used `YAML` syntax (which is de facto a standard for infrastructure and configurations). Declarative method of describing things means that a user simply describes the solution they need, how it should look, and everything that would be in the state of the final solution, leaving the process for the software to decide. `Diagrams as code` brings you the following benefits compared to drawing architecture on your own, it: * Does not require any knowledge about how to properly draw an architecture diagram. Basically, you just define a set of resources, compose them into groups and set relationships, the rest is done for you. * Allows you to track architecture diagram changes with a version control systems such as `Git`. * Moves collaboration to the next level: updating an architecture diagram through a pull request with a code review instead of a video session and/or screen sharing. * Reduces costs on further updating of an initial architecture diagram. Basically, when you create an image on a web service you have to eventually store two files: `PNG`-like to put into your documentation and `XML` to be able to adjust your image in the future. So, there is no need to care about `XML` anymore. * Backups you in case of losing `XML` files as `YAML` files are always stored in a repository. * Improves consistency as now a diagram is stored along the code in a repository, the place you visit and work on frequently, and it is easier to keep it up-to-date. Currently, the following components are provided: * Major cloud providers: AWS, Azure, GCP, IBM, Alibaba, Oracle, OpenStack, DigitalOcean and so on. * On-Premise, Kubernetes, Firebase, Elastic, SaaS. * Programming languages and frameworks. ## Roadmap * Add support of [C4](https://diagrams.mingrammer.com/docs/nodes/c4). * Add support of [Custom](https://diagrams.mingrammer.com/docs/nodes/custom). * Add IDEs plugins and/or web user interface for live editing. * Add the `JSON Schema` to [Json Schema Store](https://github.com/fox-forks/schemastore). * Research Confluence integration to update images from the CI-builds directly. * Research ChatGRT integration. ## Getting Started ### How to install As the project uses [Graphviz](https://www.graphviz.org) to render the diagram, you need to install it: * For `Linux` — https://graphviz.gitlab.io/download/#linux * For `Windows` — https://graphviz.gitlab.io/download/#windows * For `macOS` — https://graphviz.gitlab.io/download/#mac After, you can install the project itself with the following command using `pip3`: ```bash $ pip3 install diagrams-as-code ``` ### Examples You can find examples of `YAML` configurations in the [examples](https://github.com/dmytrostriletskyi/diagrams-as-code/tree/main/examples) folder. Below are placed are few of them (click on the name to redirect to the configurations file). | [Web Services on AWS](https://github.com/dmytrostriletskyi/diagrams-as-code/blob/main/examples/web-services-aws.yaml) | [Web Services On-Premise](https://github.com/dmytrostriletskyi/diagrams-as-code/blob/main/examples/web-services-on-premise.yaml) | [Exposed Pods on Kubernetes](https://github.com/dmytrostriletskyi/diagrams-as-code/blob/main/examples/exposed-pods-kubernetes.yaml) | |-----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------| | ![](./assets/web-services-architecture-on-aws.png) | ![](./assets/web-services-architecture-on-premise.png) | ![](./assets/exposed-pods-architecture-on-kubernetes.png) | | [Message Collecting on GCP](https://github.com/dmytrostriletskyi/diagrams-as-code/blob/main/examples/message-collecting-gcp.yaml) | [Events Processing on AWS](https://github.com/dmytrostriletskyi/diagrams-as-code/blob/main/examples/events-processing-aws.yaml) | [Workers on AWS](https://github.com/dmytrostriletskyi/diagrams-as-code/blob/main/examples/workers-aws.yaml) | |-----------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------| | ![](./assets/message-collecting-architecture-on-gcp.png) | ![](./assets/events-processing-on-aws.png) | ![](./assets/workers-architecture-on-aws.png) | ### Syntax Highlighting When you will be writing your own `YAML` files, you likely need a syntax highlighting. Currently, there is no mapping of the `YAML` files to a specific schema to enable the syntax highlighting automatically. So, there is a need for manual operation here. #### PyCharm For `PyCharm`, open the settings and proceed to `Languages & Frameworks, then to `Scheams and DTDs`, then to `JSON Schema Mappings`. After, create a new schema, name it `Diagrams as code`, choose `JSON Schema version 7`, paste `https://raw.githubusercontent.com/dmytrostriletskyi/diagrams-as-code/main/json-schemas/0.0.1.json` to the `Schema file or URL` field and click `Apply`:
Open Illustration ![](./assets/json-schema-settings.png)
Right after then, open a `YAML` file and click on `No JSON schema` at to bottom-right corner:
Open Illustration ![](./assets/down-panel-json-schema.png)
It will open a panel where you can choose the newly created schema with the name `Diagrams as code`:
Open Illustration ![](./assets/panel-json-schema.png)
As a result, you will experience syntax highlighting when typing:
Open Illustration ![](./assets/syntax-highlight.png)
#### VS Code For `VS Code`, install the [RedHat YAML](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) extension and include the following line in the top of your diagrams yaml file: ```yaml # yaml-language-server: $schema=https://raw.githubusercontent.com/dmytrostriletskyi/diagrams-as-code/main/json-schemas/0.0.1.json ``` ## Usage ### Command Line Interface To draw an architecture, call `diagrams-as-code` command line interface, providing a path to a `YAML` file with configurations. The drawing will be saved in the folder the command line interface was executed from. ```bash $ diagrams-as-code examples/web-services-aws.yaml ``` ### Guide Please, check [all-fields.yaml](./examples/all-fields.yaml) as the example to see all possible configurations before diving into a detailed explanation about them (and [this](./assets/all-fields.jpg) is the result image). A `YAML` file conceptually contains two configurations: generic information such as a name of a diagram, a format of an image to be generated, style and resources themselves such as `AWS` and `Kubernetes` resources, `Nginx`, `ElasticSearch` and all other things you actually want to draw, and relationships among them. ```yaml diagram: name: Web Services Architecture on AWS file_name: web-services-architecture-aws format: jpg direction: left-to-right style: graph: splines: ortho node: shape: circle edge: color: '#000000' label_resources: false open: true resource: ... ``` Generic information schema looks like this: | Field | Type | Required | Restrictions | Default | Description | |-------------------|---------|----------|---------------------------------------------------------------------|-----------------|------------------------------------------------------------------------| | `name` | String | Yes | - | `PNG` | A name of the diagram which is shown in the image. | | `file_name` | String | No | - | - | A file name of the image that would be created. | | `format` | String | No | `png`, `jpg`, `svg`, `pdf`, `dot` | `png` | A format of the image that would be created. | | `direction` | String | No | `left-to-right`, `right-to-left`, `top-to-bottom`, `bottom-to-top` | `left-to-right` | A direction of the diagram's resource. | | `style` | Object | No | - | - | Style of the diagram. | | `label_resources` | Boolean | No | - | `false` | Whether to label the diagram's resources such as `EC2` or `PodConfig`. | | `open` | Boolean | No | - | `false` | Whether to open the diagram's image after creating it. | | `resources` | List | Yes | - | - | Resources of the diagram. | `style` is responsible for styling overall diagram such as a background color or choosing between curvy or straight arrows. It should go as a nested object of parameters as key/value of [Graphviz's attributes](https://graphviz.org/doc/info/attrs.html). Its schema looks like: | Field | Type | Required | Restrictions | Default | Description | |---------|--------|----------|--------------------------------------------------------------------|---------|------------------| | `graph` | Object | No | [Those](https://graphviz.org/docs/graph/) parameters as key/value. | - | A graph styling. | | `node` | Object | No | [Those](https://graphviz.org/docs/nodes/) parameters as key/value. | - | A node styling | | `edge` | Object | No | [Those](https://graphviz.org/docs/edges/) parameters as key/value. | - | An edge styling. | `resources` is responsible for specifying a list of resources on a diagram and relationships among them. Each resource has a unique identifier, name and type. Name will be shown on a diagram under the specific resource: ```yaml diagram: resources: - id: elb name: ELB type: aws.network.ELB ```
Open Illustration ![](./assets/guide-resource.png)
Identifier will be used by other resources to set a relationship direction's type among them: ```yaml diagram: resources: - id: dns name: DNS type: aws.network.Route53 relates: - to: elb direction: outgoing - id: elb name: ELB type: aws.network.ELB ```
Open Illustration ![](./assets/guide-resource-relationship.png)
There is also a type named `group`. It is not a specific resource, it is rather a group **of** resources. It is needed for other resources to be able to have a relationship with all group's resources at once. Each group's resource can have separate relationships as well: ```yaml diagram: resources: - id: elb name: ELB type: aws.network.ELB relates: - to: graphql-api direction: outgoing - id: graphql-api name: GraphQL API type: group of: - id: first-api name: GraphQL API №1 type: aws.compute.ECS - id: second-api name: GraphQL API №2 type: aws.compute.ECS - id: third-api name: GraphQL API №3 type: aws.compute.ECS ```
Open Illustration ![](./assets/guide-group.png)
There is also a type named `cluster`. It is needed to separate multiple resources or groups logically: for instance, there might be a cluster of different APIs composed as groups, a cluster of databases and a cluster of caches. > Pay attention that to refer a cluster resource, there are the following identifiers `web-services.graphql-api` and > `web-services.rest-api` what means that you need to chain identifiers of nested resources through a dot to identify a > resource you build a relationship with. ```yaml diagram: resources: - id: elb name: ELB type: aws.network.ELB relates: - to: web-services.graphql-api direction: outgoing - to: web-services.rest-api direction: outgoing - id: web-services name: Web Services type: cluster of: - id: graphql-api name: GraphQL API type: group of: - id: first-api name: GraphQL API №1 type: aws.compute.ECS - id: second-api name: GraphQL API №2 type: aws.compute.ECS - id: third-api name: GraphQL API №3 type: aws.compute.ECS - id: rest-api name: REST API type: group of: - id: first-api name: REST API №1 type: aws.compute.EC2 - id: second-api name: REST API №2 type: aws.compute.EC2 - id: third-api name: REST API №3 type: aws.compute.EC2 - id: databases name: Databases type: cluster of: - id: leader name: Leader type: aws.database.RDS relates: - to: databases.follower direction: undirected - id: follower name: Follower type: aws.database.RDS ```
Open Illustration ![](./assets/guide-cluster.png)
Basically, to recap and also clarify: * There are resources, groups (of resources or other groups) and clusters (of resources, groups or other clusters). * You can build a relationship between resource to resource and resource to group (and vice versa), it is impossible to relate to a cluster. * You should chain identifiers of nested resources through a dot to identify a resource you build a relationship to. `resources` schema looks like this: | Field | Type | Required | Restrictions | Default | Description | |-----------|--------|----------|-----------------------------------------------------------------------------------------------------|---------|------------------------------------------| | `id` | String | Yes | - | - | A unique identifier of the resource. | | `name` | String | Yes | - | - | A name of the resource. | | `type` | String | Yes | One of the [those](https://github.com/dmytrostriletskyi/diagrams-as-code/tree/main/docs/resources). | - | A type of the resource. | | `relates` | Object | No | - | - | A relationship to a resource or a group. | This is the table of all available types by a category: | Name | Docs | |---------------|-------------------------------------------------------| | Alibaba Cloud | [alibaba_cloud.md](./docs/resources/alibaba_cloud.md) | | AWS | [aws.md](./docs/resources/aws.md) | | Azure | [azure.md](./docs/resources/azure.md) | | DigitalOcean | [digital_ocean.md](./docs/resources/digital_ocean.md) | | Elastic | [elastic.md](./docs/resources/elastic.md) | | Firebase | [firebase.md](./docs/resources/firebase.md) | | Flowchart | [flowchart.md](./docs/resources/flowchart.md) | | GCP | [gcp.md](./docs/resources/gcp.md) | | Generic | [generic.md](./docs/resources/generic.md) | | IBM | [ibm.md](./docs/resources/ibm.md) | | Kubernetes | [kubernetes.md](./docs/resources/kubernetes.md) | | OCI | [oci.md](./docs/resources/oci.md) | | On-Premise | [on_premise.md](./docs/resources/on_premise.md) | | OpenStack | [open_stack.md](./docs/resources/open_stack.md) | | Outscale | [outscale.md](./docs/resources/outscale.md) | | Programming | [programming.md](./docs/resources/programming.md) | | SaaS | [saas.md](./docs/resources/saas.md) | `relates` schema looks like: | Field | Type | Required | Restrictions | Default | Description | |-------------|--------|----------|-------------------------------------------------------|-----------|-----------------------------------------------------------| | `to` | String | Yes | - | - | A chain of identifiers to a resource via a dot from root. | | `direction` | String | Yes | `incoming`, `outgoing`, `bidirectional`, `undirected` | - | A direction of a relationship. | | `label` | String | No | - | - | A label of a relationship. | | `color` | String | No | `Hexadecimal color` with the `#` symbol. | `#2D3436` | A color of a relationship. | | `style` | String | No | - | - | A style of a relationship. | ## Disclaimer `diagrams-as-code` is a wrapper around the original [diagrams](https://github.com/mingrammer/diagrams). The original `diagrams` lets you draw the cloud system architecture in `Python` code. It was born for prototyping a new system architecture design without any design tools. Under the hood, `diagrams-as-code` parse a `YAML` file and map to a specific set of `diagrams`'s functions and classes, and execute them in proper order. But you don't have to worry about `diagrams` because `diagrams-as-code` is self-contained and encapsulates it well. ================================================ FILE: diagrams_as_code/__init__.py ================================================ ================================================ FILE: diagrams_as_code/entrypoint.py ================================================ """ Provide implementation of `diagrams` as a code using YAML. """ import importlib import os import sys import yaml from diagrams import ( Cluster, Diagram, Edge, Node, ) from diagrams_as_code.enums import ( ServiceResourceType, RelationDirection, ) from diagrams_as_code.resources import DiagramGroup from diagrams_as_code.schema import ( Relationship, YamlDiagram, YamlDiagramResource, ) resources = {} relationships = [] def get_diagram_node_class(path: str) -> Node: """ Get a `diagrams` node class. The common example of a path is `aws.analytics.Analytics` which strongly correlates to `diagrams` real defined classes. In the example, `Analytics` is a class, the rest `aws.analytics` is a few modules. Basically, there are the modules are loaded and then the class is got on fly. It helps to reuse the same «path» in both YAML files and execution of classes without a need of redeclaration. Arguments: path (str): a path to class. References: - https://diagrams.mingrammer.com/docs/nodes/aws Returns: The node's class as a `Node`. """ provider, resource, service = path.split('.') module = importlib.import_module(f'diagrams.{provider}.{resource}') class_ = getattr(module, service) return class_ def process_resource(resource: YamlDiagramResource, parent_id: str, group: DiagramGroup = None) -> None: """ Process a resource. Basically, this function is recursive because `YAML` file can contain infinite number of configurations. There might be a single node (such as EC2 or RDS), a group of nodes and a cluster of nodes and groups further. All nodes are stored by unique identifiers in a global storage (`resources`) and then easily fetched from there to build relationships. For this, there is a need to always pass parent's resource identifier to have unique identifier for each node. There is also the resource called `group` which is literary a list of nodes to which other things relate to. Arguments: resource (YamlDiagramResource): a resource. parent_id (str): a parent's identifier. group (DiagramGroup): a group. """ if resource.type == ServiceResourceType.CLUSTER.value: cluster = Cluster(label=resource.name) cluster.__enter__() for resource_of in resource.of: process_resource(resource=resource_of, parent_id=f'{parent_id}.{resource.id}') cluster.__exit__(None, None, None) if resource.type == ServiceResourceType.GROUP.value: diagram_group = DiagramGroup() resources.update({ f'{parent_id}.{resource.id}': diagram_group, }) for relation in resource.relates: relationship = Relationship( from_=f'{parent_id}.{resource.id}', to=f'diagram.{relation.to}', direction=relation.direction, label=relation.label, color=relation.color, style=relation.style, ) relationships.append(relationship) for resource_of in resource.of: process_resource(resource=resource_of, parent_id=f'{parent_id}.{resource.id}', group=diagram_group) if ( resource.type != ServiceResourceType.CLUSTER.value and resource.type != ServiceResourceType.GROUP.value ): resource_instance = get_diagram_node_class(path=resource.type)(label=resource.name) resources.update({ f'{parent_id}.{resource.id}': resource_instance, }) for relation in resource.relates: relationship = Relationship( from_=f'{parent_id}.{resource.id}', to=f'diagram.{relation.to}', direction=relation.direction, label=relation.label, color=relation.color, style=relation.style, ) relationships.append(relationship) if group is not None: group.add_node(node=resource_instance) def entrypoint() -> None: """ Provide the entrypoint. """ _, yaml_file_path = sys.argv yaml_file_path = os.getcwd() + '/' + yaml_file_path with open(yaml_file_path) as yaml_file: yaml_as_dict = yaml.safe_load(yaml_file) diagram_as_dict = yaml_as_dict.get('diagram') diagram = YamlDiagram(**diagram_as_dict) # TODO: figure out how to pass empty `YamlDiagramStyle` to `diagram.style` in Pydantic to remove the if condition. graph_style = Diagram._default_graph_attrs | diagram.style.graph if diagram.style else {} node_style = Diagram._default_node_attrs | diagram.style.node if diagram.style else {} edge_style = Diagram._default_edge_attrs | diagram.style.edge if diagram.style else {} with Diagram( name='', filename=diagram.file_name, direction=diagram.direction.mapped, outformat=diagram.format, autolabel=diagram.label_resources, show=diagram.open, graph_attr=graph_style, node_attr=node_style, edge_attr=edge_style, ): for resource in diagram.resources: process_resource(resource, 'diagram') for relationship in relationships: edge = Edge(label=relationship.label, color=relationship.color, style=relationship.style) resource_from_instance = resources.get(relationship.from_) resource_to_instance = resources.get(relationship.to) if resource_to_instance is None: resource_to_identifier_from_configs = relationship.to.replace('diagram.', '') raise ValueError( f"There is no such a resource's identifier to relate to: {resource_to_identifier_from_configs}", ) is_resource_from_node = not isinstance(resource_from_instance, DiagramGroup) is_resource_from_group = isinstance(resource_from_instance, DiagramGroup) is_resource_to_node = not isinstance(resource_to_instance, DiagramGroup) is_resource_to_group = isinstance(resource_to_instance, DiagramGroup) if is_resource_from_node and is_resource_to_node: if relationship.direction == RelationDirection.INCOMING: resource_from_instance.__lshift__(other=edge) edge.__lshift__(other=resource_to_instance) if relationship.direction == RelationDirection.OUTGOING: resource_from_instance.__rshift__(other=edge) edge.__rshift__(other=resource_to_instance) if relationship.direction == RelationDirection.BIDIRECTIONAL: resource_from_instance.__rshift__(other=edge) edge.__lshift__(other=resource_to_instance) if relationship.direction == RelationDirection.UNDIRECTED: resource_from_instance.__sub__(other=edge) edge.__sub__(other=resource_to_instance) if is_resource_from_group and is_resource_to_node: group_nodes = resource_from_instance.get_nodes() if relationship.direction == RelationDirection.INCOMING: group_nodes_edges = edge.__rlshift__(other=group_nodes) resource_to_instance.__rlshift__(other=group_nodes_edges) if relationship.direction == RelationDirection.OUTGOING: group_nodes_edges = edge.__rrshift__(other=group_nodes) resource_to_instance.__rrshift__(other=group_nodes_edges) if relationship.direction == RelationDirection.BIDIRECTIONAL: group_nodes_edges = edge.__rrshift__(other=group_nodes) resource_to_instance.__rlshift__(other=group_nodes_edges) if relationship.direction == RelationDirection.UNDIRECTED: group_nodes_edges = edge.__rsub__(other=group_nodes) resource_to_instance.__rsub__(other=group_nodes_edges) if is_resource_from_node and is_resource_to_group: group_nodes = resource_to_instance.get_nodes() if relationship.direction == RelationDirection.INCOMING: resource_from_instance.__lshift__(other=edge) edge.__lshift__(other=group_nodes) if relationship.direction == RelationDirection.OUTGOING: resource_from_instance.__rshift__(other=edge) edge.__rshift__(other=group_nodes) if relationship.direction == RelationDirection.BIDIRECTIONAL: resource_from_instance.__rshift__(other=edge) edge.__lshift__(other=group_nodes) if relationship.direction == RelationDirection.UNDIRECTED: resource_from_instance.__sub__(other=edge) edge.__sub__(other=group_nodes) if __name__ == '__main__': entrypoint() ================================================ FILE: diagrams_as_code/enums.py ================================================ """ Provide implementation of enums. """ from enum import Enum class ServiceResourceType(Enum): """ Service resource type enum implementation. """ CLUSTER = 'cluster' GROUP = 'group' class RelationDirection(str, Enum): """ Relation direction enum implementation. """ INCOMING = 'incoming' OUTGOING = 'outgoing' BIDIRECTIONAL = 'bidirectional' UNDIRECTED = 'undirected' class DiagramDirection(str, Enum): """ Diagram direction enum implementation. """ LEFT_TO_RIGHT = 'left-to-right' RIGHT_TO_LEFT = 'right-to-left' TOP_TO_BOTTOM = 'top-to-bottom' BOTTOM_TO_TOP = 'bottom-to-top' @property def mapped(self): """ References: - https://github.com/mingrammer/diagrams/blob/b19b09761db6f0037fd76e527b9ce6918fbdfcfc/diagrams/__init__.py#L41 :return: """ match self.value: case self.LEFT_TO_RIGHT: return 'LR' case self.RIGHT_TO_LEFT: return 'RL' case self.TOP_TO_BOTTOM: return 'TB' case self.BOTTOM_TO_TOP: return 'BT' class DiagramFormat(str, Enum): """ Diagram format enum implementation. """ PNG = 'png' JPG = 'jpg' SVG = 'svg' PDF = 'pdf' DOT = 'dot' ================================================ FILE: diagrams_as_code/resources.py ================================================ """ Provide implementation of resources. """ from diagrams import Node class DiagramGroup: """ Diagram group resource implementation. Is used to collect a list of `diagrams` resources to pack them as a list for further relationships. """ def __init__(self: 'DiagramGroup') -> None: """ Construct the object. """ self.nodes = [] def add_node(self: 'DiagramGroup', node: Node) -> None: """ Add a node. Arguments: node (Node): a node. """ self.nodes.append(node) def get_nodes(self: 'DiagramGroup') -> list[Node]: """ Get nodes. Returns: A list of nodes as a list of `Node`. """ return self.nodes def __repr__(self: 'DiagramGroup') -> str: """ Get the group's representation. Returns: The group's representation as a string. """ representation = '' for node in self.nodes: representation += f' {node},' return '' ================================================ FILE: diagrams_as_code/schema.py ================================================ """ Provide implementation of schemas. """ from __future__ import annotations from pydantic import BaseModel from diagrams_as_code.enums import ( RelationDirection, DiagramDirection, DiagramFormat, ) class YamlDiagramStyle(BaseModel): """ YAML diagram style schema implementation. """ graph: dict = {} node: dict = {} edge: dict = {} class YamlDiagram(BaseModel): """ YAML diagram schema implementation. References: - https://github.com/mingrammer/diagrams/blob/b19b09761db6f0037fd76e527b9ce6918fbdfcfc/diagrams/__init__.py#L79 """ name: str file_name: str | None = None format: DiagramFormat = DiagramFormat.PNG direction: DiagramDirection = DiagramDirection.LEFT_TO_RIGHT style: YamlDiagramStyle | None = {} label_resources: bool = False open: bool = False resources: list[YamlDiagramResource] class YamlDiagramResource(BaseModel): """ YAML diagram resource schema implementation. """ id: str | int name: str type: str of: list[YamlDiagramResource] | None = [] relates: list[YamlDiagramResourceRelationship] | None = [] class YamlDiagramResourceRelationship(BaseModel): """ Yaml diagram resource relationship schema implementation. """ to: str direction: RelationDirection label: str | None = None color: str | None = None style: str | None = None class Relationship(BaseModel): """ Relationship schema implementation. Is used internally between layers and functions. """ from_: str to: str direction: RelationDirection label: str | None = None color: str | None = None style: str | None = None ================================================ FILE: docs/resources/alibaba_cloud.md ================================================ ## Alibaba Cloud Table of Content: * [Analytics](#analytics) * [Application](#application) * [Communication](#communication) * [Compute](#compute) * [Database](#database) * [Iot](#iot) * [Network](#network) * [Security](#security) * [Storage](#storage) * [Web](#web) ### Analytics | Type | Alias | Image | |--------------------------------------------|-------|---------------------------------------------------------------------------------------------------------------------------| | `alibabacloud.analytics.AnalyticDb` | `-` | AnalyticDb | | `alibabacloud.analytics.ClickHouse` | `-` | ClickHouse | | `alibabacloud.analytics.DataLakeAnalytics` | `-` | DataLakeAnalytics | | `alibabacloud.analytics.ElaticMapReduce` | `-` | ElaticMapReduce | | `alibabacloud.analytics.OpenSearch` | `-` | OpenSearch | ### Application | Type | Alias | Image | |-------------------------------------------------------|--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------| | `alibabacloud.application.ApiGateway` | `-` | ApiGateway | | `alibabacloud.application.BeeBot` | `-` | BeeBot | | `alibabacloud.application.BlockchainAsAService` | `-` | BlockchainAsAService | | `alibabacloud.application.CloudCallCenter` | `-` | CloudCallCenter | | `alibabacloud.application.CodePipeline` | `-` | CodePipeline | | `alibabacloud.application.DirectMail` | `-` | DirectMail | | `alibabacloud.application.LogService` | `alibabacloud.application.SLS` | LogService | | `alibabacloud.application.MessageNotificationService` | `alibabacloud.application.MNS` | MessageNotificationService | | `alibabacloud.application.NodeJsPerformancePlatform` | `-` | NodeJsPerformancePlatform | | `alibabacloud.application.OpenSearch` | `-` | OpenSearch | | `alibabacloud.application.PerformanceTestingService` | `alibabacloud.application.PTS` | PerformanceTestingService | | `alibabacloud.application.RdCloud` | `-` | RdCloud | | `alibabacloud.application.SmartConversationAnalysis` | `alibabacloud.application.SCA` | SmartConversationAnalysis | | `alibabacloud.application.Yida` | `-` | Yida | ### Communication | Type | Alias | Image | |-----------------------------------------|-------|----------------------------------------------------------------------------------------------------------------| | `alibabacloud.communication.DirectMail` | `-` | DirectMail | | `alibabacloud.communication.MobilePush` | `-` | MobilePush | ### Compute | Type | Alias | Image | |--------------------------------------------------------|-----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------| | `alibabacloud.compute.AutoScaling` | `alibabacloud.compute.ESS` | AutoScaling | | `alibabacloud.compute.BatchCompute` | `-` | BatchCompute | | `alibabacloud.compute.ContainerRegistry` | `-` | ContainerRegistry | | `alibabacloud.compute.ContainerService` | `-` | ContainerService | | `alibabacloud.compute.ElasticComputeService` | `alibabacloud.compute.ECS` | ElasticComputeService | | `alibabacloud.compute.ElasticContainerInstance` | `alibabacloud.compute.ECI` | ElasticContainerInstance | | `alibabacloud.compute.ElasticHighPerformanceComputing` | `alibabacloud.compute.EHPC` | ElasticHighPerformanceComputing | | `alibabacloud.compute.ElasticSearch` | `-` | ElasticSearch | | `alibabacloud.compute.FunctionCompute` | `alibabacloud.compute.FC` | FunctionCompute | | `alibabacloud.compute.OperationOrchestrationService` | `alibabacloud.compute.OOS` | OperationOrchestrationService | | `alibabacloud.compute.ResourceOrchestrationService` | `alibabacloud.compute.ROS` | ResourceOrchestrationService | | `alibabacloud.compute.ServerLoadBalancer` | `alibabacloud.compute.SLB` | ServerLoadBalancer | | `alibabacloud.compute.ServerlessAppEngine` | `alibabacloud.compute.SAE` | ServerlessAppEngine | | `alibabacloud.compute.SimpleApplicationServer` | `alibabacloud.compute.SAS` | SimpleApplicationServer | | `alibabacloud.compute.WebAppService` | `alibabacloud.compute.WAS` | WebAppService | ### Database | Type | Alias | Image | |------------------------------------------------------------|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------| | `alibabacloud.database.ApsaradbCassandra` | `-` | ApsaradbCassandra | | `alibabacloud.database.ApsaradbHbase` | `-` | ApsaradbHbase | | `alibabacloud.database.ApsaradbMemcache` | `-` | ApsaradbMemcache | | `alibabacloud.database.ApsaradbMongodb` | `-` | ApsaradbMongodb | | `alibabacloud.database.ApsaradbOceanbase` | `-` | ApsaradbOceanbase | | `alibabacloud.database.ApsaradbPolardb` | `-` | ApsaradbPolardb | | `alibabacloud.database.ApsaradbPostgresql` | `-` | ApsaradbPostgresql | | `alibabacloud.database.ApsaradbPpas` | `-` | ApsaradbPpas | | `alibabacloud.database.ApsaradbRedis` | `-` | ApsaradbRedis | | `alibabacloud.database.ApsaradbSqlserver` | `-` | ApsaradbSqlserver | | `alibabacloud.database.DataManagementService` | `alibabacloud.database.DMS` | DataManagementService | | `alibabacloud.database.DataTransmissionService` | `alibabacloud.database.DTS` | DataTransmissionService | | `alibabacloud.database.DatabaseBackupService` | `alibabacloud.database.DBS` | DatabaseBackupService | | `alibabacloud.database.DisributeRelationalDatabaseService` | `alibabacloud.database.DRDS` | DisributeRelationalDatabaseService | | `alibabacloud.database.GraphDatabaseService` | `alibabacloud.database.GDS` | GraphDatabaseService | | `alibabacloud.database.HybriddbForMysql` | `-` | HybriddbForMysql | | `alibabacloud.database.RelationalDatabaseService` | `alibabacloud.database.RDS` | RelationalDatabaseService | ### Iot | Type | Alias | Image | |-----------------------------------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------| | `alibabacloud.iot.IotInternetDeviceId` | `-` | IotInternetDeviceId | | `alibabacloud.iot.IotLinkWan` | `-` | IotLinkWan | | `alibabacloud.iot.IotMobileConnectionPackage` | `-` | IotMobileConnectionPackage | | `alibabacloud.iot.IotPlatform` | `-` | IotPlatform | ### Network | Type | Alias | Image | |-----------------------------------------------|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------| | `alibabacloud.network.Cdn` | `-` | Cdn | | `alibabacloud.network.CloudEnterpriseNetwork` | `alibabacloud.network.CEN` | CloudEnterpriseNetwork | | `alibabacloud.network.ElasticIpAddress` | `alibabacloud.network.EIP` | ElasticIpAddress | | `alibabacloud.network.ExpressConnect` | `-` | ExpressConnect | | `alibabacloud.network.NatGateway` | `-` | NatGateway | | `alibabacloud.network.ServerLoadBalancer` | `alibabacloud.network.SLB` | ServerLoadBalancer | | `alibabacloud.network.SmartAccessGateway` | `-` | SmartAccessGateway | | `alibabacloud.network.VirtualPrivateCloud` | `alibabacloud.network.VPC` | VirtualPrivateCloud | | `alibabacloud.network.VpnGateway` | `-` | VpnGateway | ### Security | Type | Alias | Image | |-----------------------------------------------------|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| | `alibabacloud.security.AntiBotService` | `alibabacloud.security.ABS` | AntiBotService | | `alibabacloud.security.AntiDdosBasic` | `-` | AntiDdosBasic | | `alibabacloud.security.AntiDdosPro` | `-` | AntiDdosPro | | `alibabacloud.security.AntifraudService` | `alibabacloud.security.AS` | AntifraudService | | `alibabacloud.security.BastionHost` | `-` | BastionHost | | `alibabacloud.security.CloudFirewall` | `alibabacloud.security.CFW` | CloudFirewall | | `alibabacloud.security.CloudSecurityScanner` | `-` | CloudSecurityScanner | | `alibabacloud.security.ContentModeration` | `alibabacloud.security.CM` | ContentModeration | | `alibabacloud.security.CrowdsourcedSecurityTesting` | `-` | CrowdsourcedSecurityTesting | | `alibabacloud.security.DataEncryptionService` | `alibabacloud.security.DES` | DataEncryptionService | | `alibabacloud.security.DbAudit` | `-` | DbAudit | | `alibabacloud.security.GameShield` | `-` | GameShield | | `alibabacloud.security.IdVerification` | `-` | IdVerification | | `alibabacloud.security.ManagedSecurityService` | `-` | ManagedSecurityService | | `alibabacloud.security.SecurityCenter` | `-` | SecurityCenter | | `alibabacloud.security.ServerGuard` | `-` | ServerGuard | | `alibabacloud.security.SslCertificates` | `-` | SslCertificates | | `alibabacloud.security.WebApplicationFirewall` | `alibabacloud.security.WAF` | WebApplicationFirewall | ### Storage | Type | Alias | Image | |----------------------------------------------------|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------| | `alibabacloud.storage.CloudStorageGateway` | `-` | CloudStorageGateway | | `alibabacloud.storage.FileStorageHdfs` | `alibabacloud.storage.HDFS` | FileStorageHdfs | | `alibabacloud.storage.FileStorageNas` | `alibabacloud.storage.NAS` | FileStorageNas | | `alibabacloud.storage.HybridBackupRecovery` | `alibabacloud.storage.HBR` | HybridBackupRecovery | | `alibabacloud.storage.HybridCloudDisasterRecovery` | `alibabacloud.storage.HDR` | HybridCloudDisasterRecovery | | `alibabacloud.storage.Imm` | `-` | Imm | | `alibabacloud.storage.ObjectStorageService` | `alibabacloud.storage.OSS` | ObjectStorageService | | `alibabacloud.storage.ObjectTableStore` | `alibabacloud.storage.OTS` | ObjectTableStore | ### Web | Type | Alias | Image | |---------------------------|-------|---------------------------------------------------------------------------------------------| | `alibabacloud.web.Dns` | `-` | Dns | | `alibabacloud.web.Domain` | `-` | Domain | ================================================ FILE: docs/resources/aws.md ================================================ ## AWS Table of Content: * [Analytics](#analytics) * [Ar](#ar) * [Blockchain](#blockchain) * [Business](#business) * [Compute](#compute) * [Cost](#cost) * [Database](#database) * [Devtools](#devtools) * [Enablement](#enablement) * [End user](#end-user) * [Engagement](#engagement) * [Game](#game) * [General](#general) * [Integration](#integration) * [Iot](#iot) * [Management](#management) * [Media](#media) * [Migration](#migration) * [Ml](#ml) * [Mobile](#mobile) * [Network](#network) * [Quantum](#quantum) * [Robotics](#robotics) * [Satellite](#satellite) * [Security](#security) * [Storage](#storage) ### Analytics | Type | Alias | Image | |-----------------------------------------------|-------|---------------------------------------------------------------------------------------------------| | `aws.analytics.Analytics` | `-` | | | `aws.analytics.Athena` | `-` | | | `aws.analytics.CloudsearchSearchDocuments` | `-` | | | `aws.analytics.Cloudsearch` | `-` | | | `aws.analytics.DataLakeResource` | `-` | | | `aws.analytics.DataPipeline` | `-` | | | `diagrams.aws.analytics.ElasticsearchService` | `ES` | | | `aws.analytics.EMRCluster` | `-` | | | `aws.analytics.EMREngineMaprM3` | `-` | | | `aws.analytics.EMREngineMaprM5` | `-` | | | `aws.analytics.EMREngineMaprM7` | `-` | | | `aws.analytics.EMREngine` | `-` | | | `aws.analytics.EMRHdfsCluster` | `-` | | | `aws.analytics.EMR` | `-` | | | `aws.analytics.GlueCrawlers` | `-` | | | `aws.analytics.GlueDataCatalog` | `-` | | | `aws.analytics.Glue` | `-` | | | `aws.analytics.KinesisDataAnalytics` | `-` | | | `aws.analytics.KinesisDataFirehose` | `-` | | | `aws.analytics.KinesisDataStreams` | `-` | | | `aws.analytics.KinesisVideoStreams` | `-` | | | `aws.analytics.Kinesis` | `-` | | | `aws.analytics.LakeFormation` | `-` | | | `aws.analytics.ManagedStreamingForKafka` | `-` | | | `aws.analytics.Quicksight` | `-` | | | `aws.analytics.RedshiftDenseComputeNode` | `-` | | | `aws.analytics.RedshiftDenseStorageNode` | `-` | | | `aws.analytics.Redshift` | `-` | | ### Ar | Type | Alias | Image | |-------------------|-------|------------------------------------------------------------------------| | `aws.ar.ArVr` | `-` | | | `aws.ar.Sumerian` | `-` | | ### Blockchain | Type | Alias | Image | |--------------------------------------------|--------|----------------------------------------------------------------------------------------------------| | `aws.blockchain.BlockchainResource` | `-` | | | `aws.blockchain.Blockchain` | `-` | | | `aws.blockchain.ManagedBlockchain` | `-` | | | `aws.blockchain.QuantumLedgerDatabaseQldb` | `QLDB` | | ### Business | Type | Alias | Image | |-------------------------------------|-------|-------------------------------------------------------------------------------------------| | `aws.business.AlexaForBusiness` | `A4B` | | | `aws.business.BusinessApplications` | `-` | | | `aws.business.Chime` | `-` | | | `aws.business.Workmail` | `-` | | ### Compute | Type | Alias | Image | |------------------------------------------------|---------------|--------------------------------------------------------------------------------------------------------| | `aws.compute.AppRunner` | `-` | | | `aws.compute.ApplicationAutoScaling` | `AutoScaling` | | | `aws.compute.Batch` | `-` | | | `aws.compute.ComputeOptimizer` | `-` | | | `aws.compute.Compute` | `-` | | | `aws.compute.EC2Ami` | `AMI` | | | `aws.compute.EC2AutoScaling` | `-` | | | `aws.compute.EC2ContainerRegistryImage` | `-` | | | `aws.compute.EC2ContainerRegistryRegistry` | `-` | | | `aws.compute.EC2ContainerRegistry` | `ECR` | | | `aws.compute.EC2ElasticIpAddress` | `-` | | | `aws.compute.EC2ImageBuilder` | `-` | | | `aws.compute.EC2Instance` | `-` | | | `aws.compute.EC2Instances` | `-` | | | `aws.compute.EC2Rescue` | `-` | | | `aws.compute.EC2SpotInstance` | `-` | | | `aws.compute.EC2` | `-` | | | `aws.compute.ElasticBeanstalkApplication` | `-` | | | `aws.compute.ElasticBeanstalkDeployment` | `-` | | | `aws.compute.ElasticBeanstalk` | `EB` | | | `aws.compute.ElasticContainerServiceContainer` | `-` | | | `aws.compute.ElasticContainerServiceService` | `-` | | | `aws.compute.ElasticContainerService, ECS` | `-` | | | `aws.compute.ElasticKubernetesService, EKS` | `-` | | | `aws.compute.Fargate` | `-` | | | `aws.compute.LambdaFunction` | `-` | | | `aws.compute.Lambda` | `-` | | | `aws.compute.Lightsail` | `-` | | | `aws.compute.LocalZones` | `-` | | | `aws.compute.Outposts` | `-` | | | `aws.compute.ServerlessApplicationRepository` | `SAR` | | | `aws.compute.ThinkboxDeadline` | `-` | | | `aws.compute.ThinkboxDraft` | `-` | | | `aws.compute.ThinkboxFrost` | `-` | | | `aws.compute.ThinkboxKrakatoa` | `-` | | | `aws.compute.ThinkboxSequoia` | `-` | | | `aws.compute.ThinkboxStoke` | `-` | | | `aws.compute.ThinkboxXmesh` | `-` | | | `aws.compute.VmwareCloudOnAWS` | `-` | | | `aws.compute.Wavelength` | `-` | | ### Cost | Type | Alias | Image | |--------------------------------------|-------|---------------------------------------------------------------------------------------------| | `aws.cost.Budgets` | `-` | | | `aws.cost.CostAndUsageReport` | `-` | | | `aws.cost.CostExplorer` | `-` | | | `aws.cost.CostManagement` | `-` | | | `aws.cost.ReservedInstanceReporting` | `-` | | | `aws.cost.SavingsPlans` | `-` | | ### Database | Type | Alias | Image | |------------------------------------------------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------| | `aws.database.AuroraInstance` | `-` | | | `aws.database.Aurora` | `-` | | | `aws.database.DatabaseMigrationServiceDatabaseMigrationWorkflow` | `-` | | | `aws.database.DatabaseMigrationService` | `DMS` | | | `aws.database.Database` | `DB` | | | `aws.database.DocumentdbMongodbCompatibility` | `DocumentDB` | | | `aws.database.DynamodbAttribute` | `-` | | | `aws.database.DynamodbAttributes` | `-` | | | `aws.database.DynamodbDax` | `DAX` | | | `aws.database.DynamodbGlobalSecondaryIndex` | `DynamodbGSI` | | | `aws.database.DynamodbItem` | `-` | | | `aws.database.DynamodbItems` | `-` | | | `aws.database.DynamodbTable` | `-` | | | `aws.database.Dynamodb` | `DDB` | | | `aws.database.ElasticacheCacheNode` | `-` | | | `aws.database.ElasticacheForMemcached` | `-` | | | `aws.database.ElasticacheForRedis` | `-` | | | `aws.database.Elasticache` | `ElastiCache` | | | `aws.database.KeyspacesManagedApacheCassandraService` | `-` | | | `aws.database.Neptune` | `-` | | | `aws.database.QuantumLedgerDatabaseQldb` | `QLDB` | | | `aws.database.RDSInstance` | `-` | | | `aws.database.RDSMariadbInstance` | `-` | | | `aws.database.RDSMysqlInstance` | `-` | | | `aws.database.RDSOnVmware` | `-` | | | `aws.database.RDSOracleInstance` | `-` | | | `aws.database.RDSPostgresqlInstance` | `-` | | | `aws.database.RDSSqlServerInstance` | `-` | | | `aws.database.RDS` | `-` | | | `aws.database.RedshiftDenseComputeNode` | `-` | | | `aws.database.RedshiftDenseStorageNode` | `-` | | | `aws.database.Redshift` | `-` | | | `aws.database.Timestream` | `-` | | ### Devtools | Type | Alias | Image | |-------------------------------------|------------|--------------------------------------------------------------------------------------------| | `aws.devtools.CloudDevelopmentKit` | `-` | | | `aws.devtools.Cloud9Resource` | `-` | | | `aws.devtools.Cloud9` | `-` | | | `aws.devtools.Codebuild` | `-` | | | `aws.devtools.Codecommit` | `-` | | | `aws.devtools.Codedeploy` | `-` | | | `aws.devtools.Codepipeline` | `-` | | | `aws.devtools.Codestar` | `-` | | | `aws.devtools.CommandLineInterface` | `CLI` | | | `aws.devtools.DeveloperTools` | `DevTools` | | | `aws.devtools.ToolsAndSdks` | `-` | | | `aws.devtools.XRay` | `-` | | ### Enablement | Type | Alias | Image | |---------------------------------------|-------|---------------------------------------------------------------------------------------------| | `aws.enablement.CustomerEnablement` | `-` | | | `aws.enablement.Iq` | `-` | | | `aws.enablement.ManagedServices` | `-` | | | `aws.enablement.ProfessionalServices` | `-` | | | `aws.enablement.Support` | `-` | | ### End User | Type | Alias | Image | |--------------------------------------|--------|----------------------------------------------------------------------------------------------| | `aws.enduser.Appstream20` | `-` | | | `aws.enduser.DesktopAndAppStreaming` | `-` | | | `aws.enduser.Workdocs` | `-` | | | `aws.enduser.Worklink` | `-` | | | `aws.enduser.Workspaces` | `-` | | ### Engagement | Type | Alias | Image | |---------------------------------------------|-------|------------------------------------------------------------------------------------------------------| | `aws.engagement.Connect` | `-` | | | `aws.engagement.CustomerEngagement` | `-` | | | `aws.engagement.Pinpoint` | `-` | | | `aws.engagement.SimpleEmailServiceSesEmail` | `-` | | | `aws.engagement.SimpleEmailServiceSes` | `SES` | | ### Game | Type | Alias | Image | |----------------------|-------|-----------------------------------------------------------------------------| | `aws.game.GameTech` | `-` | | | `aws.game.Gamelift` | `-` | | ### General | Type | Alias | Image | |-------------------------------------|------------------|--------------------------------------------------------------------------------------------| | `aws.general.Client` | `-` | | | `aws.general.Disk` | `-` | | | `aws.general.Forums` | `-` | | | `aws.general.General` | `-` | | | `aws.general.GenericDatabase` | `-` | | | `aws.general.GenericFirewall` | `-` | | | `aws.general.GenericOfficeBuilding` | `OfficeBuilding` | | | `aws.general.GenericSamlToken` | `-` | | | `aws.general.GenericSDK` | `-` | | | `aws.general.InternetAlt1` | `-` | | | `aws.general.InternetAlt2` | `-` | | | `aws.general.InternetGateway` | `-` | | | `aws.general.Marketplace` | `-` | | | `aws.general.MobileClient` | `-` | | | `aws.general.Multimedia` | `-` | | | `aws.general.OfficeBuilding` | `-` | | | `aws.general.SamlToken` | `-` | | | `aws.general.SDK` | `-` | | | `aws.general.SslPadlock` | `-` | | | `aws.general.TapeStorage` | `-` | | | `aws.general.Toolkit` | `-` | | | `aws.general.TraditionalServer` | `-` | | | `aws.general.User` | `-` | | | `aws.general.Users` | `-` | | ### Integration | Type | Alias | Image | |-----------------------------------------------------------------|---------|---------------------------------------------------------------------------------------------------------------------------| | `aws.integration.ApplicationIntegration` | `-` | | | `aws.integration.Appsync` | `-` | | | `aws.integration.ConsoleMobileApplication` | `-` | | | `aws.integration.EventResource` | `-` | | | `aws.integration.EventbridgeCustomEventBusResource` | `-` | | | `aws.integration.EventbridgeDefaultEventBusResource` | `-` | | | `aws.integration.EventbridgeSaasPartnerEventBusResource` | `-` | | | `aws.integration.Eventbridge` | `-` | | | `aws.integration.ExpressWorkflows` | `-` | | | `aws.integration.MQ` | `-` | | | `aws.integration.SimpleNotificationServiceSnsEmailNotification` | `-` | | | `aws.integration.SimpleNotificationServiceSnsHttpNotification` | `-` | | | `aws.integration.SimpleNotificationServiceSnsTopic` | `-` | | | `aws.integration.SimpleNotificationServiceSns` | `SNS` | | | `aws.integration.SimpleQueueServiceSqsMessage` | `-` | | | `aws.integration.SimpleQueueServiceSqsQueue` | `-` | | | `aws.integration.SimpleQueueServiceSqs` | `SQS` | | | `aws.integration.StepFunctions` | `SF` | | ### Iot | Type | Alias | Image | |----------------------------------|------------|-------------------------------------------------------------------------------------------| | `aws.iot.Freertos` | `FreeRTOS` | | | `aws.iot.InternetOfThings` | `-` | | | `aws.iot.Iot1Click` | `-` | | | `aws.iot.IotAction` | `-` | | | `aws.iot.IotActuator` | `-` | | | `aws.iot.IotAlexaEcho` | `-` | | | `aws.iot.IotAlexaEnabledDevice` | `-` | | | `aws.iot.IotAlexaSkill` | `-` | | | `aws.iot.IotAlexaVoiceService` | `-` | | | `aws.iot.IotAnalyticsChannel` | `-` | | | `aws.iot.IotAnalyticsDataSet` | `-` | | | `aws.iot.IotAnalyticsDataStore` | `-` | | | `aws.iot.IotAnalyticsNotebook` | `-` | | | `aws.iot.IotAnalyticsPipeline` | `-` | | | `aws.iot.IotAnalytics` | `-` | | | `aws.iot.IotBank` | `-` | | | `aws.iot.IotBicycle` | `-` | | | `aws.iot.IotButton` | `-` | | | `aws.iot.IotCamera` | `-` | | | `aws.iot.IotCar` | `-` | | | `aws.iot.IotCart` | `-` | | | `aws.iot.IotCertificate` | `-` | | | `aws.iot.IotCoffeePot` | `-` | | | `aws.iot.IotCore` | `-` | | | `aws.iot.IotDesiredState` | `-` | | | `aws.iot.IotDeviceDefender` | `-` | | | `aws.iot.IotDeviceGateway` | `-` | | | `aws.iot.IotDeviceManagement` | `-` | | | `aws.iot.IotDoorLock` | `-` | | | `aws.iot.IotEvents` | `-` | | | `aws.iot.IotFactory` | `-` | | | `aws.iot.IotFireTvStick` | `-` | | | `aws.iot.IotFireTv` | `-` | | | `aws.iot.IotGeneric` | `-` | | | `aws.iot.IotGreengrassConnector` | `-` | | | `aws.iot.IotGreengrass` | `-` | | | `aws.iot.IotHardwareBoard` | `IotBoard` | | | `aws.iot.IotHouse` | `-` | | | `aws.iot.IotHttp` | `-` | | | `aws.iot.IotHttp2` | `-` | | | `aws.iot.IotJobs` | `-` | | | `aws.iot.IotLambda` | `-` | | | `aws.iot.IotLightbulb` | `-` | | | `aws.iot.IotMedicalEmergency` | `-` | | | `aws.iot.IotMqtt` | `-` | | | `aws.iot.IotOverTheAirUpdate` | `-` | | | `aws.iot.IotPolicyEmergency` | `-` | | | `aws.iot.IotPolicy` | `-` | | | `aws.iot.IotReportedState` | `-` | | | `aws.iot.IotRule` | `-` | | | `aws.iot.IotSensor` | `-` | | | `aws.iot.IotServo` | `-` | | | `aws.iot.IotShadow` | `-` | | | `aws.iot.IotSimulator` | `-` | | | `aws.iot.IotSitewise` | `-` | | | `aws.iot.IotThermostat` | `-` | | | `aws.iot.IotThingsGraph` | `-` | | | `aws.iot.IotTopic` | `-` | | | `aws.iot.IotTravel` | `-` | | | `aws.iot.IotUtility` | `-` | | | `aws.iot.IotWindfarm` | `-` | | ### Management | Type | Alias | Image | |-------------------------------------------------------|------------------|----------------------------------------------------------------------------------------------------------------| | `aws.management.AutoScaling` | `-` | | | `aws.management.Chatbot` | `-` | | | `aws.management.CloudformationChangeSet` | `-` | | | `aws.management.CloudformationStack` | `-` | | | `aws.management.CloudformationTemplate` | `-` | | | `aws.management.Cloudformation` | `-` | | | `aws.management.Cloudtrail` | `-` | | | `aws.management.CloudwatchAlarm` | `-` | | | `aws.management.CloudwatchEventEventBased` | `-` | | | `aws.management.CloudwatchEventTimeBased` | `-` | | | `aws.management.CloudwatchRule` | `-` | | | `aws.management.Cloudwatch` | `-` | | | `aws.management.Codeguru` | `-` | | | `aws.management.CommandLineInterface` | `-` | | | `aws.management.Config` | `-` | | | `aws.management.ControlTower` | `-` | | | `aws.management.LicenseManager` | `-` | | | `aws.management.ManagedServices` | `-` | | | `aws.management.ManagementAndGovernance` | `-` | | | `aws.management.ManagementConsole` | `-` | | | `aws.management.OpsworksApps` | `-` | | | `aws.management.OpsworksDeployments` | `-` | | | `aws.management.OpsworksInstances` | `-` | | | `aws.management.OpsworksLayers` | `-` | | | `aws.management.OpsworksMonitoring` | `-` | | | `aws.management.OpsworksPermissions` | `-` | | | `aws.management.OpsworksResources` | `-` | | | `aws.management.OpsworksStack` | `-` | | | `aws.management.Opsworks` | `-` | | | `aws.management.OrganizationsAccount` | `-` | | | `aws.management.OrganizationsOrganizationalUnit` | `-` | | | `aws.management.Organizations` | `-` | | | `aws.management.PersonalHealthDashboard` | `-` | | | `aws.management.ServiceCatalog` | `-` | | | `aws.management.SystemsManagerAutomation` | `-` | | | `aws.management.SystemsManagerDocuments` | `-` | | | `aws.management.SystemsManagerInventory` | `-` | | | `aws.management.SystemsManagerMaintenanceWindows` | `-` | | | `aws.management.SystemsManagerOpscenter` | `-` | | | `aws.management.SystemsManagerParameterStore` | `ParameterStore` | | | `aws.management.SystemsManagerPatchManager` | `-` | | | `aws.management.SystemsManagerRunCommand` | `-` | | | `aws.management.SystemsManagerStateManager` | `-` | | | `aws.management.SystemsManager` | `SSM` | | | `aws.management.TrustedAdvisorChecklistCost` | `-` | | | `aws.management.TrustedAdvisorChecklistFaultTolerant` | `-` | | | `aws.management.TrustedAdvisorChecklistPerformance` | `-` | | | `aws.management.TrustedAdvisorChecklistSecurity` | `-` | | | `aws.management.TrustedAdvisorChecklist` | `-` | | | `aws.management.TrustedAdvisor` | `-` | | | `aws.management.WellArchitectedTool` | `-` | | ### Media | Type | Alias | Image | |-----------------------------------|--------|------------------------------------------------------------------------------------------| | `aws.media.ElasticTranscoder` | `-` | | | `aws.media.ElementalConductor` | `-` | | | `aws.media.ElementalDelta` | `-` | | | `aws.media.ElementalLive` | `-` | | | `aws.media.ElementalMediaconnect` | `-` | | | `aws.media.ElementalMediaconvert` | `-` | | | `aws.media.ElementalMedialive` | `-` | | | `aws.media.ElementalMediapackage` | `-` | | | `aws.media.ElementalMediastore` | `-` | | | `aws.media.ElementalMediatailor` | `-` | | | `aws.media.ElementalServer` | `-` | | | `aws.media.KinesisVideoStreams` | `-` | | | `aws.media.MediaServices` | `-` | | ### Migration | Type | Alias | Image | |---------------------------------------------|-------|----------------------------------------------------------------------------------------------------| | `aws.migration.ApplicationDiscoveryService` | `ADS` | | | `aws.migration.CloudendureMigration` | `CEM` | | | `aws.migration.DatabaseMigrationService` | `DMS` | | | `aws.migration.DatasyncAgent` | `-` | | | `aws.migration.Datasync` | `-` | | | `aws.migration.MigrationAndTransfer` | `MAT` | | | `aws.migration.MigrationHub` | `-` | | | `aws.migration.ServerMigrationService` | `SMS` | | | `aws.migration.SnowballEdge` | `-` | | | `aws.migration.Snowball` | `-` | | | `aws.migration.Snowmobile` | `-` | | | `aws.migration.TransferForSftp` | `-` | | ### Ml | Type | Alias | Image | |---------------------------------|-------|----------------------------------------------------------------------------------------| | `aws.ml.ApacheMxnetOnAWS` | `-` | | | `aws.ml.AugmentedAi` | `-` | | | `aws.ml.Comprehend` | `-` | | | `aws.ml.DeepLearningAmis` | `-` | | | `aws.ml.DeepLearningContainers` | `DLC` | | | `aws.ml.Deepcomposer` | `-` | | | `aws.ml.Deeplens` | `-` | | | `aws.ml.Deepracer` | `-` | | | `aws.ml.ElasticInference` | `-` | | | `aws.ml.Forecast` | `-` | | | `aws.ml.FraudDetector` | `-` | | | `aws.ml.Kendra` | `-` | | | `aws.ml.Lex` | `-` | | | `aws.ml.MachineLearning` | `-` | | | `aws.ml.Personalize` | `-` | | | `aws.ml.Polly` | `-` | | | `aws.ml.RekognitionImage` | `-` | | | `aws.ml.RekognitionVideo` | `-` | | | `aws.ml.Rekognition` | `-` | | | `aws.ml.SagemakerGroundTruth` | `-` | | | `aws.ml.SagemakerModel` | `-` | | | `aws.ml.SagemakerNotebook` | `-` | | | `aws.ml.SagemakerTrainingJob` | `-` | | | `aws.ml.Sagemaker` | `-` | | | `aws.ml.TensorflowOnAWS` | `-` | | | `aws.ml.Textract` | `-` | | | `aws.ml.Transcribe` | `-` | | | `aws.ml.Translate` | `-` | | ### Mobile | Type | Alias | Image | |---------------------------------|-------|----------------------------------------------------------------------------------------| | `aws.mobile.Amplify` | `-` | | | `aws.mobile.APIGatewayEndpoint` | `-` | | | `aws.mobile.APIGateway` | `-` | | | `aws.mobile.Appsync` | `-` | | | `aws.mobile.DeviceFarm` | `-` | | | `aws.mobile.Mobile` | `-` | | | `aws.mobile.Pinpoint` | `-` | | ### Network | Type | Alias | Image | |-----------------------------------------------|-------|------------------------------------------------------------------------------------------------------| | `aws.network.APIGatewayEndpoint` | `-` | | | `aws.network.APIGateway` | `-` | | | `aws.network.AppMesh` | `-` | | | `aws.network.ClientVpn` | `-` | | | `aws.network.CloudMap` | `-` | | | `aws.network.CloudFrontDownloadDistribution` | `-` | | | `aws.network.CloudFrontEdgeLocation` | `-` | | | `aws.network.CloudFrontStreamingDistribution` | `-` | | | `aws.network.CloudFront` | `CF` | | | `aws.network.DirectConnect` | `-` | | | `aws.network.ElasticLoadBalancing` | `ELB` | | | `aws.network.ElbApplicationLoadBalancer` | `ALB` | | | `aws.network.ElbClassicLoadBalancer` | `CLB` | | | `aws.network.ElbNetworkLoadBalancer` | `NLB` | | | `aws.network.Endpoint` | `-` | | | `aws.network.GlobalAccelerator` | `GAX` | | | `aws.network.InternetGateway` | `-` | | | `aws.network.Nacl` | `-` | | | `aws.network.NATGateway` | `-` | | | `aws.network.NetworkingAndContentDelivery` | `-` | | | `aws.network.PrivateSubnet` | `-` | | | `aws.network.Privatelink` | `-` | | | `aws.network.PublicSubnet` | `-` | | | `aws.network.Route53HostedZone` | `-` | | | `aws.network.Route53` | `-` | | | `aws.network.RouteTable` | `-` | | | `aws.network.SiteToSiteVpn` | `-` | | | `aws.network.TransitGateway` | `-` | | | `aws.network.VPCCustomerGateway` | `-` | | | `aws.network.VPCElasticNetworkAdapter` | `-` | | | `aws.network.VPCElasticNetworkInterface` | `-` | | | `aws.network.VPCFlowLogs` | `-` | | | `aws.network.VPCPeering` | `-` | | | `aws.network.VPCRouter` | `-` | | | `aws.network.VPCTrafficMirroring` | `-` | | | `aws.network.VPC` | `-` | | | `aws.network.VpnConnection` | `-` | | | `aws.network.VpnGateway` | `-` | | ### Quantum | Type | Alias | Image | |-----------------------------------|-------|-----------------------------------------------------------------------------------------| | `aws.quantum.Braket` | `-` | | | `aws.quantum.QuantumTechnologies` | `-` | | ### Robotics | Type | Alias | Image | |------------------------------------------------|-------|-------------------------------------------------------------------------------------------------------| | `aws.robotics.RobomakerCloudExtensionRos` | `-` | | | `aws.robotics.RobomakerDevelopmentEnvironment` | `-` | | | `aws.robotics.RobomakerFleetManagement` | `-` | | | `aws.robotics.RobomakerSimulator` | `-` | | | `aws.robotics.Robomaker` | `-` | | | `aws.robotics.Robotics` | `-` | | ### Satellite | Type | Alias | Image | |-------------------------------|-------|-------------------------------------------------------------------------------------| | `aws.satellite.GroundStation` | `-` | | | `aws.satellite.Satellite` | `-` | | ### Security | Type | Alias | Image | |--------------------------------------------------------------------------|---------------------|--------------------------------------------------------------------------------------------------------------------------------------| | `aws.security.AdConnector` | `-` | | | `aws.security.Artifact` | `-` | | | `aws.security.CertificateAuthority` | `-` | | | `aws.security.CertificateManager` | `ACM` | | | `aws.security.CloudDirectory` | `-` | | | `aws.security.Cloudhsm` | `CloudHSM` | | | `aws.security.Cognito` | `-` | | | `aws.security.Detective` | `-` | | | `aws.security.DirectoryService` | `DS` | | | `aws.security.FirewallManager` | `FMS` | | | `aws.security.Guardduty` | `-` | | | `aws.security.IdentityAndAccessManagementIamAccessAnalyzer` | `IAMAccessAnalyzer` | | | `aws.security.IdentityAndAccessManagementIamAddOn` | `-` | | | `aws.security.IdentityAndAccessManagementIamAWSStsAlternate` | `-` | | | `aws.security.IdentityAndAccessManagementIamAWSSts` | `IAMAWSSts` | | | `aws.security.IdentityAndAccessManagementIamDataEncryptionKey` | `-` | | | `aws.security.IdentityAndAccessManagementIamEncryptedData` | `-` | | | `aws.security.IdentityAndAccessManagementIamLongTermSecurityCredential` | `-` | | | `aws.security.IdentityAndAccessManagementIamMfaToken` | `-` | | | `aws.security.IdentityAndAccessManagementIamPermissions` | `IAMPermissions` | | | `aws.security.IdentityAndAccessManagementIamRole` | `IAMRole` | | | `aws.security.IdentityAndAccessManagementIamTemporarySecurityCredential` | `-` | | | `aws.security.IdentityAndAccessManagementIam` | `IAM` | | | `aws.security.InspectorAgent` | `-` | | | `aws.security.Inspector` | `-` | | | `aws.security.KeyManagementService` | `KMS` | | | `aws.security.Macie` | `-` | | | `aws.security.ManagedMicrosoftAd` | `-` | | | `aws.security.ResourceAccessManager` | `RAM` | | | `aws.security.SecretsManager` | `-` | | | `aws.security.SecurityHubFinding` | `-` | | | `aws.security.SecurityHub` | `-` | | | `aws.security.SecurityIdentityAndCompliance` | `-` | | | `aws.security.ShieldAdvanced` | `-` | | | `aws.security.Shield` | `-` | | | `aws.security.SimpleAd` | `-` | | | `aws.security.SingleSignOn` | `-` | | | `aws.security.WAFFilteringRule` | `-` | | | `aws.security.WAF` | `-` | | ### Storage | Type | Alias | Image | |-------------------------------------------------------|--------|------------------------------------------------------------------------------------------------------------------| | `aws.storage.Backup` | `-` | | | `aws.storage.CloudendureDisasterRecovery` | `CDR` | | | `aws.storage.EFSInfrequentaccessPrimaryBg` | `-` | | | `aws.storage.EFSStandardPrimaryBg` | `-` | | | `aws.storage.ElasticBlockStoreEBSSnapshot` | `-` | | | `aws.storage.ElasticBlockStoreEBSVolume` | `-` | | | `aws.storage.ElasticBlockStoreEBS` | `EBS` | | | `aws.storage.ElasticFileSystemEFSFileSystem` | `-` | | | `aws.storage.ElasticFileSystemEFS` | `EFS` | | | `aws.storage.FsxForLustre` | `-` | | | `aws.storage.FsxForWindowsFileServer` | `-` | | | `aws.storage.Fsx` | `FSx` | | | `aws.storage.MultipleVolumesResource` | `-` | | | `aws.storage.S3GlacierArchive` | `-` | | | `aws.storage.S3GlacierVault` | `-` | | | `aws.storage.S3Glacier` | `-` | | | `aws.storage.SimpleStorageServiceS3BucketWithObjects` | `-` | | | `aws.storage.SimpleStorageServiceS3Bucket` | `-` | | | `aws.storage.SimpleStorageServiceS3Object` | `-` | | | `aws.storage.SimpleStorageServiceS3` | `S3` | | | `aws.storage.SnowFamilySnowballImportExport` | `-` | | | `aws.storage.SnowballEdge` | `-` | | | `aws.storage.Snowball` | `-` | | | `aws.storage.Snowmobile` | `-` | | | `aws.storage.StorageGatewayCachedVolume` | `-` | | | `aws.storage.StorageGatewayNonCachedVolume` | `-` | | | `aws.storage.StorageGatewayVirtualTapeLibrary` | `-` | | | `aws.storage.StorageGateway` | `-` | | | `aws.storage.Storage` | `-` | | ================================================ FILE: docs/resources/azure.md ================================================ ## Azure Table of Content: * [Analytics](#analytics) * [Compute](#compute) * [Database](#database) * [DevOps](#devops) * [General](#general) * [Identity](#identity) * [Integration](#integration) * [Iot](#iot) * [Migration](#migration) * [Ml](#ml) * [Mobile](#mobile) * [Network](#network) * [Security](#security) * [Storage](#storage) * [Web](#web) ### Analytics | Type | Alias | Image | |------------------------------------------|-------|-------------------------------------------------------------------------------------------------| | `azure.analytics.AnalysisServices` | `-` | | | `azure.analytics.DataExplorerClusters` | `-` | | | `azure.analytics.DataFactories` | `-` | | | `azure.analytics.DataLakeAnalytics` | `-` | | | `azure.analytics.DataLakeStoreGen1` | `-` | | | `azure.analytics.Databricks` | `-` | | | `azure.analytics.EventHubClusters` | `-` | | | `azure.analytics.EventHubs` | `-` | | | `azure.analytics.Hdinsightclusters` | `-` | | | `azure.analytics.LogAnalyticsWorkspaces` | `-` | | | `azure.analytics.StreamAnalyticsJobs` | `-` | | | `azure.analytics.SynapseAnalytics` | `-` | | ### Compute | Type | Alias | Image | |-------------------------------------------------|--------|---------------------------------------------------------------------------------------------------------| | `azure.compute.AppServices` | `-` | | | `azure.compute.AutomanagedVM` | `-` | | | `azure.compute.AvailabilitySets` | `-` | | | `azure.compute.BatchAccounts` | `-` | | | `azure.compute.CitrixVirtualDesktopsEssentials` | `-` | | | `azure.compute.CloudServicesClassic` | `-` | | | `azure.compute.CloudServices` | `-` | | | `azure.compute.CloudsimpleVirtualMachines` | `-` | | | `azure.compute.ContainerInstances` | `-` | | | `azure.compute.ContainerRegistries` | `ACR` | | | `azure.compute.DiskEncryptionSets` | `-` | | | `azure.compute.DiskSnapshots` | `-` | | | `azure.compute.Disks` | `-` | | | `azure.compute.FunctionApps` | `-` | | | `azure.compute.ImageDefinitions` | `-` | | | `azure.compute.ImageVersions` | `-` | | | `azure.compute.KubernetesServices` | `AKS` | | | `azure.compute.MeshApplications` | `-` | | | `azure.compute.OsImages` | `-` | | | `azure.compute.SAPHANAOnAzure` | `-` | | | `azure.compute.ServiceFabricClusters` | `-` | | | `azure.compute.SharedImageGalleries` | `-` | | | `azure.compute.SpringCloud` | `-` | | | `azure.compute.VMClassic` | `-` | | | `azure.compute.VMImages` | `-` | | | `azure.compute.VMLinux` | `-` | | | `azure.compute.VMScaleSet` | `VMSS` | | | `azure.compute.VMWindows` | `-` | | | `azure.compute.VM` | `-` | | | `azure.compute.Workspaces` | `-` | | ### Database | Type | Alias | Image | |-----------------------------------------------|-------|-------------------------------------------------------------------------------------------------------| | `azure.database.BlobStorage` | `-` | | | `azure.database.CacheForRedis` | `-` | | | `azure.database.CosmosDb` | `-` | | | `azure.database.DataExplorerClusters` | `-` | | | `azure.database.DataFactory` | `-` | | | `azure.database.DataLake` | `-` | | | `azure.database.DatabaseForMariadbServers` | `-` | | | `azure.database.DatabaseForMysqlServers` | `-` | | | `azure.database.DatabaseForPostgresqlServers` | `-` | | | `azure.database.ElasticDatabasePools` | `-` | | | `azure.database.ElasticJobAgents` | `-` | | | `azure.database.InstancePools` | `-` | | | `azure.database.ManagedDatabases` | `-` | | | `azure.database.SQLDatabases` | `-` | | | `azure.database.SQLDatawarehouse` | `-` | | | `azure.database.SQLManagedInstances` | `-` | | | `azure.database.SQLServerStretchDatabases` | `-` | | | `azure.database.SQLServers` | `-` | | | `azure.database.SQLVM` | `-` | | | `azure.database.SQL` | `-` | | | `azure.database.SsisLiftAndShiftIr` | `-` | | | `azure.database.SynapseAnalytics` | `-` | | | `azure.database.VirtualClusters` | `-` | | | `azure.database.VirtualDatacenter` | `-` | | ### DevOps | Type | Alias | Image | |------------------------------------|-------|------------------------------------------------------------------------------------------| | `azure.devops.ApplicationInsights` | `-` | | | `azure.devops.Artifacts` | `-` | | | `azure.devops.Boards` | `-` | | | `azure.devops.Devops` | `-` | | | `azure.devops.DevtestLabs` | `-` | | | `azure.devops.LabServices` | `-` | | | `azure.devops.Pipelines` | `-` | | | `azure.devops.Repos` | `-` | | | `azure.devops.TestPlans` | `-` | | ### General | Type | Alias | Image | |----------------------------------|-------|---------------------------------------------------------------------------------------| | `azure.general.Allresources` | `-` | | | `azure.general.Azurehome` | `-` | | | `azure.general.Developertools` | `-` | | | `azure.general.Helpsupport` | `-` | | | `azure.general.Information` | `-` | | | `azure.general.Managementgroups` | `-` | | | `azure.general.Marketplace` | `-` | | | `azure.general.Quickstartcenter` | `-` | | | `azure.general.Recent` | `-` | | | `azure.general.Reservations` | `-` | | | `azure.general.Resource` | `-` | | | `azure.general.Resourcegroups` | `-` | | | `azure.general.Servicehealth` | `-` | | | `azure.general.Shareddashboard` | `-` | | | `azure.general.Subscriptions` | `-` | | | `azure.general.Support` | `-` | | | `azure.general.Supportrequests` | `-` | | | `azure.general.Tag` | `-` | | | `azure.general.Tags` | `-` | | | `azure.general.Templates` | `-` | | | `azure.general.Twousericon` | `-` | | | `azure.general.Userhealthicon` | `-` | | | `azure.general.Usericon` | `-` | | | `azure.general.Userprivacy` | `-` | | | `azure.general.Userresource` | `-` | | | `azure.general.Whatsnew` | `-` | | ### Identity | Type | Alias | Image | |-------------------------------------------------|-------|---------------------------------------------------------------------------------------------------------| | `azure.identity.AccessReview` | `-` | | | `azure.identity.ActiveDirectoryConnectHealth` | `-` | | | `azure.identity.ActiveDirectory` | `-` | | | `azure.identity.ADB2C` | `-` | | | `azure.identity.ADDomainServices` | `-` | | | `azure.identity.ADIdentityProtection` | `-` | | | `azure.identity.ADPrivilegedIdentityManagement` | `-` | | | `azure.identity.AppRegistrations` | `-` | | | `azure.identity.ConditionalAccess` | `-` | | | `azure.identity.EnterpriseApplications` | `-` | | | `azure.identity.Groups` | `-` | | | `azure.identity.IdentityGovernance` | `-` | | | `azure.identity.InformationProtection` | `-` | | | `azure.identity.ManagedIdentities` | `-` | | | `azure.identity.Users` | `-` | | ### Integration | Type | Alias | Image | |-----------------------------------------------------------------|-------|--------------------------------------------------------------------------------------------------------------------------| | `azure.integration.APIForFhir` | `-` | | | `azure.integration.APIManagement` | `-` | | | `azure.integration.AppConfiguration` | `-` | | | `azure.integration.DataCatalog` | `-` | | | `azure.integration.EventGridDomains` | `-` | | | `azure.integration.EventGridSubscriptions` | `-` | | | `azure.integration.EventGridTopics` | `-` | | | `azure.integration.IntegrationAccounts` | `-` | | | `azure.integration.IntegrationServiceEnvironments` | `-` | | | `azure.integration.LogicAppsCustomConnector` | `-` | | | `azure.integration.LogicApps` | `-` | | | `azure.integration.PartnerTopic` | `-` | | | `azure.integration.SendgridAccounts` | `-` | | | `azure.integration.ServiceBusRelays` | `-` | | | `azure.integration.ServiceBus` | `-` | | | `azure.integration.ServiceCatalogManagedApplicationDefinitions` | `-` | | | `azure.integration.SoftwareAsAService` | `-` | | | `azure.integration.StorsimpleDeviceManagers` | `-` | | | `azure.integration.SystemTopic` | `-` | | ### Iot | Type | Alias | Image | |---------------------------------------------|-------|------------------------------------------------------------------------------------------------------| | `azure.iot.DeviceProvisioningServices` | `-` | | | `azure.iot.DigitalTwins` | `-` | | | `azure.iot.IotCentralApplications` | `-` | | | `azure.iot.IotHubSecurity` | `-` | | | `azure.iot.IotHub` | `-` | | | `azure.iot.Maps` | `-` | | | `azure.iot.Sphere` | `-` | | | `azure.iot.TimeSeriesInsightsEnvironments` | `-` | | | `azure.iot.TimeSeriesInsightsEventsSources` | `-` | | | `azure.iot.Windows10IotCoreServices` | `-` | | ### Migration | Type | Alias | Image | |---------------------------------------------|-------|----------------------------------------------------------------------------------------------------| | `azure.migration.DataBoxEdge` | `-` | | | `azure.migration.DataBox` | `-` | | | `azure.migration.DatabaseMigrationServices` | `-` | | | `azure.migration.MigrationProjects` | `-` | | | `azure.migration.RecoveryServicesVaults` | `-` | | ### Ml | Type | Alias | Image | |-------------------------------------------------|-------|-----------------------------------------------------------------------------------------------------------| | `azure.ml.BatchAI` | `-` | | | `azure.ml.BotServices` | `-` | | | `azure.ml.CognitiveServices` | `-` | | | `azure.ml.GenomicsAccounts` | `-` | | | `azure.ml.MachineLearningServiceWorkspaces` | `-` | | | `azure.ml.MachineLearningStudioWebServicePlans` | `-` | | | `azure.ml.MachineLearningStudioWebServices` | `-` | | | `azure.ml.MachineLearningStudioWorkspaces` | `-` | | ### Mobile | Type | Alias | Image | |---------------------------------|-------|----------------------------------------------------------------------------------------| | `azure.mobile.AppServiceMobile` | `-` | | | `azure.mobile.MobileEngagement` | `-` | | | `azure.mobile.NotificationHubs` | `-` | | ### Network | Type | Alias | Image | |----------------------------------------------|-------|------------------------------------------------------------------------------------------------------| | `azure.network.ApplicationGateway` | `-` | | | `azure.network.ApplicationSecurityGroups` | `-` | | | `azure.network.CDNProfiles` | `-` | | | `azure.network.Connections` | `-` | | | `azure.network.DDOSProtectionPlans` | `-` | | | `azure.network.DNSPrivateZones` | `-` | | | `azure.network.DNSZones` | `-` | | | `azure.network.ExpressrouteCircuits` | `-` | | | `azure.network.Firewall` | `-` | | | `azure.network.FrontDoors` | `-` | | | `azure.network.LoadBalancers` | `-` | | | `azure.network.LocalNetworkGateways` | `-` | | | `azure.network.NetworkInterfaces` | `-` | | | `azure.network.NetworkSecurityGroupsClassic` | `-` | | | `azure.network.NetworkWatcher` | `-` | | | `azure.network.OnPremisesDataGateways` | `-` | | | `azure.network.PublicIpAddresses` | `-` | | | `azure.network.ReservedIpAddressesClassic` | `-` | | | `azure.network.RouteFilters` | `-` | | | `azure.network.RouteTables` | `-` | | | `azure.network.ServiceEndpointPolicies` | `-` | | | `azure.network.Subnets` | `-` | | | `azure.network.TrafficManagerProfiles` | `-` | | | `azure.network.VirtualNetworkClassic` | `-` | | | `azure.network.VirtualNetworkGateways` | `-` | | | `azure.network.VirtualNetworks` | `-` | | | `azure.network.VirtualWans` | `-` | | ### Security | Type | Alias | Image | |--------------------------------------------|-------|---------------------------------------------------------------------------------------------------| | `azure.security.ApplicationSecurityGroups` | `-` | | | `azure.security.ConditionalAccess` | `-` | | | `azure.security.Defender` | `-` | | | `azure.security.ExtendedSecurityUpdates` | `-` | | | `azure.security.KeyVaults` | `-` | | | `azure.security.SecurityCenter` | `-` | | | `azure.security.Sentinel` | `-` | | ### Storage | Type | Alias | Image | |-------------------------------------------|-------|-----------------------------------------------------------------------------------------------------| | `azure.storage.ArchiveStorage` | `-` | | | `azure.storage.Azurefxtedgefiler` | `-` | | | `azure.storage.BlobStorage` | `-` | | | `azure.storage.DataBoxEdgeDataBoxGateway` | `-` | | | `azure.storage.DataBox` | `-` | | | `azure.storage.DataLakeStorage` | `-` | | | `azure.storage.GeneralStorage` | `-` | | | `azure.storage.NetappFiles` | `-` | | | `azure.storage.QueuesStorage` | `-` | | | `azure.storage.StorageAccountsClassic` | `-` | | | `azure.storage.StorageAccounts` | `-` | | | `azure.storage.StorageExplorer` | `-` | | | `azure.storage.StorageSyncServices` | `-` | | | `azure.storage.StorsimpleDataManagers` | `-` | | | `azure.storage.StorsimpleDeviceManagers` | `-` | | | `azure.storage.TableStorage` | `-` | | ### Web | Type | Alias | Image | |---------------------------------------|-------|----------------------------------------------------------------------------------------------| | `azure.web.APIConnections` | `-` | | | `azure.web.AppServiceCertificates` | `-` | | | `azure.web.AppServiceDomains` | `-` | | | `azure.web.AppServiceEnvironments` | `-` | | | `azure.web.AppServicePlans` | `-` | | | `azure.web.AppServices` | `-` | | | `azure.web.MediaServices` | `-` | | | `azure.web.NotificationHubNamespaces` | `-` | | | `azure.web.Search` | `-` | | | `azure.web.Signalr` | `-` | | ================================================ FILE: docs/resources/digital_ocean.md ================================================ ## DigitalOcean Table of Content: * [Compute](#compute) * [Database](#database) * [Network](#network) * [Storage](#storage) ### Compute | Type | Alias | Image | |----------------------------------------|-------|----------------------------------------------------------------------------------------------| | `digitalocean.compute.Containers` | `-` | | | `digitalocean.compute.Docker` | `-` | | | `digitalocean.compute.DropletConnect` | `-` | | | `digitalocean.compute.DropletSnapshot` | `-` | | | `digitalocean.compute.Droplet` | `-` | | | `digitalocean.compute.K8SCluster` | `-` | | | `digitalocean.compute.K8SNodePool` | `-` | | | `digitalocean.compute.K8SNode` | `-` | | ### Database | Type | Alias | Image | |-------------------------------------------------|-------|---------------------------------------------------------------------------------------------------------| | `digitalocean.database.DbaasPrimaryStandbyMore` | `-` | | | `digitalocean.database.DbaasPrimary` | `-` | | | `digitalocean.database.DbaasReadOnly` | `-` | | | `digitalocean.database.DbaasStandby` | `-` | | ### Network | Type | Alias | Image | |-------------------------------------------|-------|-------------------------------------------------------------------------------------------------| | `digitalocean.network.Certificate` | `-` | | | `digitalocean.network.DomainRegistration` | `-` | | | `digitalocean.network.Domain` | `-` | | | `digitalocean.network.Firewall` | `-` | | | `digitalocean.network.FloatingIp` | `-` | | | `digitalocean.network.InternetGateway` | `-` | | | `digitalocean.network.LoadBalancer` | `-` | | | `digitalocean.network.ManagedVpn` | `-` | | | `digitalocean.network.Vpc` | `-` | | ### Storage | Type | Alias | Image | |---------------------------------------|-------|---------------------------------------------------------------------------------------------| | `digitalocean.storage.Folder` | `-` | | | `digitalocean.storage.Space` | `-` | | | `digitalocean.storage.VolumeSnapshot` | `-` | | | `digitalocean.storage.Volume` | `-` | | ================================================ FILE: docs/resources/elastic.md ================================================ ## Elastic Table of Content: * [Agent](#agent) * [Beats](#beats) * [Elasticsearch](#elasticsearch) * [Enterprise Search](#enterprise-search) * [Observability](#observability) * [Orchestration](#orchestration) * [Saas](#saas) * [Security](#security) ### Agent | Type | Alias | Image | |------------------------------|-------|-----------------------------------------------------------------------------------| | `elastic.agent.Agent` | `-` | | | `elastic.agent.Endpoint` | `-` | | | `elastic.agent.Fleet` | `-` | | | `elastic.agent.Integrations` | `-` | | ### Beats | Type | Alias | Image | |------------------------------|-------|-----------------------------------------------------------------------------------| | `elastic.beats.APM` | `-` | | | `elastic.beats.Auditbeat` | `-` | | | `elastic.beats.Filebeat` | `-` | | | `elastic.beats.Functionbeat` | `-` | | | `elastic.beats.Heartbeat` | `-` | | | `elastic.beats.Metricbeat` | `-` | | | `elastic.beats.Packetbeat` | `-` | | | `elastic.beats.Winlogbeat` | `-` | | ### Elasticsearch | Type | Alias | Image | |---------------------------------------------|-----------------|---------------------------------------------------------------------------------------------------| | `elastic.elasticsearch.Alerting` | `-` | | | `elastic.elasticsearch.Beats` | `-` | | | `elastic.elasticsearch.Elasticsearch` | `ElasticSearch` | | | `elastic.elasticsearch.Kibana` | `-` | | | `elastic.elasticsearch.LogstashPipeline` | `-` | | | `elastic.elasticsearch.Logstash` | `LogStash` | | | `elastic.elasticsearch.MachineLearning` | `alias` | | | `elastic.elasticsearch.MapServices` | `-` | | | `elastic.elasticsearch.Maps` | `-` | | | `elastic.elasticsearch.Monitoring` | `-` | | | `elastic.elasticsearch.SearchableSnapshots` | `-` | | | `elastic.elasticsearch.SecuritySettings` | `-` | | | `elastic.elasticsearch.SQL` | `-` | | | `elastic.elasticsearch.Stack` | `-` | | ### Enterprise Search | Type | Alias | Image | |---------------------------------------------|-------|---------------------------------------------------------------------------------------------------| | `elastic.enterprisesearch.AppSearch` | `-` | | | `elastic.enterprisesearch.Crawler` | `-` | | | `elastic.enterprisesearch.EnterpriseSearch` | `-` | | | `elastic.enterprisesearch.SiteSearch` | `-` | | | `elastic.enterprisesearch.WorkplaceSearch` | `-` | | ### Observability | Type | Alias | Image | |---------------------------------------|-------|--------------------------------------------------------------------------------------------| | `elastic.observability.APM` | `-` | | | `elastic.observability.Logs` | `-` | | | `elastic.observability.Metrics` | `-` | | | `elastic.observability.Observability` | `-` | | | `elastic.observability.Uptime` | `-` | | ### Orchestration | Type | Alias | Image | |-----------------------------|-------|----------------------------------------------------------------------------------| | `elastic.orchestration.ECE` | `-` | | | `elastic.orchestration.ECK` | `-` | | ### Saas | Type | Alias | Image | |------------------------|-------|-----------------------------------------------------------------------------| | `elastic.saas.Cloud` | `-` | | | `elastic.saas.Elastic` | `-` | | ### Security | Type | Alias | Image | |-----------------------------|-------|----------------------------------------------------------------------------------| | `elastic.security.Endpoint` | `-` | | | `elastic.security.Security` | `-` | | | `elastic.security.SIEM` | `-` | | | `elastic.security.Xdr` | `-` | | ================================================ FILE: docs/resources/firebase.md ================================================ ## Firebase Table of Content: * [Base](#base) * [Develop](#develop) * [Extentions](#extentions) * [Grow](#grow) * [Quality](#quality) ### Base | Type | Alias | Image | |--------------------------|-------|-------------------------------------------------------------------------------| | `firebase.base.Firebase` | `-` | | ### Develop | Type | Alias | Image | |-------------------------------------|-------|-------------------------------------------------------------------------------------------| | `firebase.develop.Authentication` | `-` | | | `firebase.develop.Firestore` | `-` | | | `firebase.develop.Functions` | `-` | | | `firebase.develop.Hosting` | `-` | | | `firebase.develop.MLKit` | `-` | | | `firebase.develop.RealtimeDatabase` | `-` | | | `firebase.develop.Storage` | `-` | | ### Extentions | Type | Alias | Image | |----------------------------------|-------|---------------------------------------------------------------------------------------| | `firebase.extentions.Extensions` | `-` | | ### Grow | Type | Alias | Image | |--------------------------------|-------|---------------------------------------------------------------------------------------| | `firebase.grow.ABTesting` | `-` | | | `firebase.grow.AppIndexing` | `-` | | | `firebase.grow.DynamicLinks` | `-` | | | `firebase.grow.InAppMessaging` | `-` | | | `firebase.grow.Invites` | `-` | | | `firebase.grow.Messaging` | `FCM` | | | `firebase.grow.Predictions` | `-` | | | `firebase.grow.RemoteConfig` | `-` | | ### Quality | Type | Alias | Image | |------------------------------------------|-------|------------------------------------------------------------------------------------------------| | `firebase.quality.AppDistribution` | `-` | | | `firebase.quality.CrashReporting` | `-` | | | `firebase.quality.Crashlytics` | `-` | | | `firebase.quality.PerformanceMonitoring` | `-` | | | `firebase.quality.TestLab` | `-` | | ================================================ FILE: docs/resources/flowchart.md ================================================ ## Flowchart | Type | Alias | Image | |-----------------------------------------------|-------|-------------------------------------------------------------------------------------------| | `programming.flowchart.Action` | `-` | | | `programming.flowchart.Collate` | `-` | | | `programming.flowchart.Database` | `-` | | | `programming.flowchart.Decision` | `-` | | | `programming.flowchart.Delay` | `-` | | | `programming.flowchart.Display` | `-` | | | `programming.flowchart.Document` | `-` | | | `programming.flowchart.InputOutput` | `-` | | | `programming.flowchart.Inspection` | `-` | | | `programming.flowchart.InternalStorage` | `-` | | | `programming.flowchart.LoopLimit` | `-` | | | `programming.flowchart.ManualInput` | `-` | | | `programming.flowchart.ManualLoop` | `-` | | | `programming.flowchart.Merge` | `-` | | | `programming.flowchart.MultipleDocuments` | `-` | | | `programming.flowchart.OffPageConnectorLeft` | `-` | | | `programming.flowchart.OffPageConnectorRight` | `-` | | | `programming.flowchart.Or` | `-` | | | `programming.flowchart.PredefinedProcess` | `-` | | | `programming.flowchart.Preparation` | `-` | | | `programming.flowchart.Sort` | `-` | | | `programming.flowchart.StartEnd` | `-` | | | `programming.flowchart.StoredData` | `-` | | | `programming.flowchart.SummingJunction` | `-` | | ================================================ FILE: docs/resources/gcp.md ================================================ ## GCP Table of Content: * [Analytics](#analytics) * [Api](#api) * [Compute](#compute) * [Database](#database) * [Devtools](#devtools) * [Iot](#iot) * [Migration](#migration) * [Ml](#ml) * [Network](#network) * [Operations](#operations) * [Security](#security) * [Storage](#storage) ### Analytics | Type | Alias | Image | |-----------------------------|--------------------------|-----------------------------------------------------------------------------------| | `gcp.analytics.Bigquery` | `gcp.analytics.BigQuery` | | | `gcp.analytics.Composer` | `-` | | | `gcp.analytics.DataCatalog` | `-` | | | `gcp.analytics.DataFusion` | `-` | | | `gcp.analytics.Dataflow` | `-` | | | `gcp.analytics.Datalab` | `-` | | | `gcp.analytics.Dataprep` | `-` | | | `gcp.analytics.Dataproc` | `-` | | | `gcp.analytics.Genomics` | `-` | | | `gcp.analytics.Pubsub**,` | `gcp.analytics.Sub` | | ### Api | Type | Alias | Image | |----------------------|-------|----------------------------------------------------------------------------| | `gcp.api.APIGateway` | `-` | | | `gcp.api.Endpoints` | `-` | | ### Compute | Type | Alias | Image | |------------------------------------|-------------------|-------------------------------------------------------------------------------------------| | `gcp.compute.AppEngine` | `gcp.compute.GAE` | | | `gcp.compute.ComputeEngine` | `gcp.compute.GCE` | | | `gcp.compute.ContainerOptimizedOS` | `-` | | | `gcp.compute.Functions` | `gcp.compute.GCF` | | | `gcp.compute.GKEOnPrem` | `-` | | | `gcp.compute.GPU` | `-` | | | `gcp.compute.KubernetesEngine` | `gcp.compute.GKE` | | | `gcp.compute.Run` | `-` | | ### Database | Type | Alias | Image | |----------------------------|-------------------------|---------------------------------------------------------------------------------| | `gcp.database.Bigtable` | `gcp.database.Bigtable` | | | `gcp.database.Datastore` | `-` | | | `gcp.database.Firestore` | `-` | | | `gcp.database.Memorystore` | `-` | | | `gcp.database.Spanner` | `-` | | | `gcp.database.SQL` | `-` | | ### Devtools | Type | Alias | Image | |--------------------------------------|--------------------|----------------------------------------------------------------------------------------------| | `gcp.devtools.Build` | `-` | | | `gcp.devtools.CodeForIntellij` | `-` | | | `gcp.devtools.Code` | `-` | | | `gcp.devtools.ContainerRegistry` | `gcp.devtools.GCR` | | | `gcp.devtools.GradleAppEnginePlugin` | `-` | | | `gcp.devtools.IdePlugins` | `-` | | | `gcp.devtools.MavenAppEnginePlugin` | `-` | | | `gcp.devtools.Scheduler` | `-` | | | `gcp.devtools.SDK` | `-` | | | `gcp.devtools.SourceRepositories` | `-` | | | `gcp.devtools.Tasks` | `-` | | | `gcp.devtools.TestLab` | `-` | | | `gcp.devtools.ToolsForEclipse` | `-` | | | `gcp.devtools.ToolsForPowershell` | `-` | | | `gcp.devtools.ToolsForVisualStudio` | `-` | | ### Iot | Type | Alias | Image | |-------------------|-------|-------------------------------------------------------------------------| | `gcp.iot.IotCore` | `-` | | ### Migration | Type | Alias | Image | |-----------------------------------|-------|-----------------------------------------------------------------------------------------| | `gcp.migration.TransferAppliance` | `-` | | ### Ml | Type | Alias | Image | |----------------------------------------|--------------|-------------------------------------------------------------------------------------------------| | `gcp.ml.AdvancedSolutionsLab` | `-` | | | `gcp.ml.AIHub` | `-` | | | `gcp.ml.AIPlatformDataLabelingService` | `-` | | | `gcp.ml.AIPlatform` | `-` | | | `gcp.ml.AutomlNaturalLanguage` | `-` | | | `gcp.ml.AutomlTables` | `-` | | | `gcp.ml.AutomlTranslation` | `-` | | | `gcp.ml.AutomlVideoIntelligence` | `-` | | | `gcp.ml.AutomlVision` | `-` | | | `gcp.ml.Automl**,` | `gcp.ml.oML` | | | `gcp.ml.DialogFlowEnterpriseEdition` | `-` | | | `gcp.ml.InferenceAPI` | `-` | | | `gcp.ml.JobsAPI` | `-` | | | `gcp.ml.NaturalLanguageAPI` | `gcp.ml.API` | | | `gcp.ml.RecommendationsAI` | `-` | | | `gcp.ml.SpeechToText` | `gcp.ml.STT` | | | `gcp.ml.TextToSpeech` | `gcp.ml.TTS` | | | `gcp.ml.TPU` | `-` | | | `gcp.ml.TranslationAPI` | `-` | | | `gcp.ml.VideoIntelligenceAPI` | `-` | | | `gcp.ml.VisionAPI` | `-` | | ### Network | Type | Alias | Image | |-------------------------------------|-------------------|-------------------------------------------------------------------------------------------| | `gcp.network.Armor` | `-` | | | `gcp.network.CDN` | `-` | | | `gcp.network.DedicatedInterconnect` | `-` | | | `gcp.network.DNS` | `-` | | | `gcp.network.ExternalIpAddresses` | `-` | | | `gcp.network.FirewallRules` | `-` | | | `gcp.network.LoadBalancing` | `-` | | | `gcp.network.NAT` | `-` | | | `gcp.network.Network` | `-` | | | `gcp.network.PartnerInterconnect` | `-` | | | `gcp.network.PremiumNetworkTier` | `-` | | | `gcp.network.Router` | `-` | | | `gcp.network.Routes` | `-` | | | `gcp.network.StandardNetworkTier` | `-` | | | `gcp.network.TrafficDirector` | `-` | | | `gcp.network.VirtualPrivateCloud` | `gcp.network.VPC` | | | `gcp.network.VPN` | `-` | | ### Operations | Type | Alias | Image | |-----------------------------|-------|----------------------------------------------------------------------------------| | `gcp.operations.Monitoring` | `-` | | ### Security | Type | Alias | Image | |--------------------------------------|--------------------|---------------------------------------------------------------------------------------------| | `gcp.security.Iam` | `-` | | | `gcp.security.IAP` | `-` | | | `gcp.security.KeyManagementService` | `gcp.security.KMS` | | | `gcp.security.ResourceManager` | `-` | | | `gcp.security.SecurityCommandCenter` | `gcp.security.SCC` | | | `gcp.security.SecurityScanner` | `-` | | ### Storage | Type | Alias | Image | |------------------------------|-------------------|------------------------------------------------------------------------------------| | `gcp.storage.Filestore` | `-` | | | `gcp.storage.PersistentDisk` | `-` | | | `gcp.storage.Storage` | `gcp.storage.GCS` | | ================================================ FILE: docs/resources/generic.md ================================================ ## Generic Table of Content: * [Blank](#blank) * [Compute](#compute) * [Database](#database) * [Device](#device) * [Network](#network) * [Os](#os) * [Place](#place) * [Storage](#storage) * [Virtualization](#virtualization) ### Blank | Type | Alias | Image | |-----------------------|-------|----------------------------------------------------------------------------| | `generic.blank.Blank` | `-` | | ### Compute | Type | Alias | Image | |------------------------|-------|-----------------------------------------------------------------------------| | `generic.compute.Rack` | `-` | | ### Database | Type | Alias | Image | |------------------------|-------|-----------------------------------------------------------------------------| | `generic.database.SQL` | `-` | | ### Device | Type | Alias | Image | |-------------------------|-------|------------------------------------------------------------------------------| | `generic.device.Mobile` | `-` | | | `generic.device.Tablet` | `-` | | ### Network | Type | Alias | Image | |----------------------------|-------|---------------------------------------------------------------------------------| | `generic.network.Firewall` | `-` | | | `generic.network.Router` | `-` | | | `generic.network.Subnet` | `-` | | | `generic.network.Switch` | `-` | | | `generic.network.VPN` | `-` | | ### Os | Type | Alias | Image | |---------------------------|-------|---------------------------------------------------------------------------------| | `generic.os.Android` | `-` | | | `generic.os.Centos` | `-` | | | `generic.os.Debian` | `-` | | | `generic.os.IOS` | `-` | | | `generic.os.LinuxGeneral` | `-` | | | `generic.os.Raspbian` | `-` | | | `generic.os.RedHat` | `-` | | | `generic.os.Suse` | `-` | | | `generic.os.Ubuntu` | `-` | | | `generic.os.Windows` | `-` | | ### Place | Type | Alias | Image | |----------------------------|-------|---------------------------------------------------------------------------------| | `generic.place.Datacenter` | `-` | | ### Storage | Type | Alias | Image | |---------------------------|-------|--------------------------------------------------------------------------------| | `generic.storage.Storage` | `-` | | ### Virtualization | Type | Alias | Image | |-------------------------------------|-------|------------------------------------------------------------------------------------------| | `generic.virtualization.Virtualbox` | `-` | | | `generic.virtualization.Vmware` | `-` | | | `generic.virtualization.XEN` | `-` | | ================================================ FILE: docs/resources/ibm.md ================================================ ## IBM Table of Content: * [Analytics](#analytics) * [Applications](#applications) * [Blockchain](#blockchain) * [Compute](#compute) * [Data](#data) * [Devops](#devops) * [General](#general) * [Infrastructure](#infrastructure) * [Management](#management) * [Network](#network) * [Security](#security) * [Social](#social) * [Storage](#storage) * [User](#user) ### Analytics | Type | Alias | Image | |------------------------------------|-------|------------------------------------------------------------------------------------------| | `ibm.analytics.Analytics` | `-` | | | `ibm.analytics.DataIntegration` | `-` | | | `ibm.analytics.DataRepositories` | `-` | | | `ibm.analytics.DeviceAnalytics` | `-` | | | `ibm.analytics.StreamingComputing` | `-` | | ### Applications | Type | Alias | Image | |-------------------------------------------|-------|-------------------------------------------------------------------------------------------------| | `ibm.applications.ActionableInsight` | `-` | | | `ibm.applications.Annotate` | `-` | | | `ibm.applications.ApiDeveloperPortal` | `-` | | | `ibm.applications.ApiPolyglotRuntimes` | `-` | | | `ibm.applications.AppServer` | `-` | | | `ibm.applications.ApplicationLogic` | `-` | | | `ibm.applications.EnterpriseApplications` | `-` | | | `ibm.applications.Index` | `-` | | | `ibm.applications.IotApplication` | `-` | | | `ibm.applications.Microservice` | `-` | | | `ibm.applications.MobileApp` | `-` | | | `ibm.applications.Ontology` | `-` | | | `ibm.applications.OpenSourceTools` | `-` | | | `ibm.applications.RuntimeServices` | `-` | | | `ibm.applications.SaasApplications` | `-` | | | `ibm.applications.ServiceBroker` | `-` | | | `ibm.applications.SpeechToText` | `-` | | | `ibm.applications.VisualRecognition` | `-` | | | `ibm.applications.Visualization` | `-` | | ### Blockchain | Type | Alias | Image | |------------------------------------------------|-------|--------------------------------------------------------------------------------------------------------| | `ibm.blockchain.BlockchainDeveloper` | `-` | | | `ibm.blockchain.Blockchain` | `-` | | | `ibm.blockchain.CertificateAuthority` | `-` | | | `ibm.blockchain.ClientApplication` | `-` | | | `ibm.blockchain.Communication` | `-` | | | `ibm.blockchain.Consensus` | `-` | | | `ibm.blockchain.EventListener` | `-` | | | `ibm.blockchain.Event` | `-` | | | `ibm.blockchain.ExistingEnterpriseSystems` | `-` | | | `ibm.blockchain.HyperledgerFabric` | `-` | | | `ibm.blockchain.KeyManagement` | `-` | | | `ibm.blockchain.Ledger` | `-` | | | `ibm.blockchain.MembershipServicesProviderApi` | `-` | | | `ibm.blockchain.Membership` | `-` | | | `ibm.blockchain.MessageBus` | `-` | | | `ibm.blockchain.Node` | `-` | | | `ibm.blockchain.Services` | `-` | | | `ibm.blockchain.SmartContract` | `-` | | | `ibm.blockchain.TransactionManager` | `-` | | | `ibm.blockchain.Wallet` | `-` | | ### Compute | Type | Alias | Image | |-------------------------------|-------|--------------------------------------------------------------------------------------| | `ibm.compute.BareMetalServer` | `-` | | | `ibm.compute.ImageService` | `-` | | | `ibm.compute.Instance` | `-` | | | `ibm.compute.Key` | `-` | | | `ibm.compute.PowerInstance` | `-` | | ### Data | Type | Alias | Image | |----------------------------------------|-------|-----------------------------------------------------------------------------------------------| | `ibm.data.Caches` | `-` | | | `ibm.data.Cloud` | `-` | | | `ibm.data.ConversationTrainedDeployed` | `-` | | | `ibm.data.DataServices` | `-` | | | `ibm.data.DataSources` | `-` | | | `ibm.data.DeviceIdentityService` | `-` | | | `ibm.data.DeviceRegistry` | `-` | | | `ibm.data.EnterpriseData` | `-` | | | `ibm.data.EnterpriseUserDirectory` | `-` | | | `ibm.data.FileRepository` | `-` | | | `ibm.data.GroundTruth` | `-` | | | `ibm.data.Model` | `-` | | | `ibm.data.TmsDataInterface` | `-` | | ### Devops | Type | Alias | Image | |---------------------------------------|-------|---------------------------------------------------------------------------------------------| | `ibm.devops.ArtifactManagement` | `-` | | | `ibm.devops.BuildTest` | `-` | | | `ibm.devops.CodeEditor` | `-` | | | `ibm.devops.CollaborativeDevelopment` | `-` | | | `ibm.devops.ConfigurationManagement` | `-` | | | `ibm.devops.ContinuousDeploy` | `-` | | | `ibm.devops.ContinuousTesting` | `-` | | | `ibm.devops.Devops` | `-` | | | `ibm.devops.Provision` | `-` | | | `ibm.devops.ReleaseManagement` | `-` | | ### General | Type | Alias | Image | |---------------------------------------------|-------|----------------------------------------------------------------------------------------------------| | `ibm.general.CloudMessaging` | `-` | | | `ibm.general.CloudServices` | `-` | | | `ibm.general.Cloudant` | `-` | | | `ibm.general.CognitiveServices` | `-` | | | `ibm.general.DataSecurity` | `-` | | | `ibm.general.Enterprise` | `-` | | | `ibm.general.GovernanceRiskCompliance` | `-` | | | `ibm.general.IBMContainers` | `-` | | | `ibm.general.IBMPublicCloud` | `-` | | | `ibm.general.IdentityAccessManagement` | `-` | | | `ibm.general.IdentityProvider` | `-` | | | `ibm.general.InfrastructureSecurity` | `-` | | | `ibm.general.Internet` | `-` | | | `ibm.general.IotCloud` | `-` | | | `ibm.general.MicroservicesApplication` | `-` | | | `ibm.general.MicroservicesMesh` | `-` | | | `ibm.general.MonitoringLogging` | `-` | | | `ibm.general.Monitoring` | `-` | | | `ibm.general.ObjectStorage` | `-` | | | `ibm.general.OfflineCapabilities` | `-` | | | `ibm.general.Openwhisk` | `-` | | | `ibm.general.PeerCloud` | `-` | | | `ibm.general.RetrieveRank` | `-` | | | `ibm.general.Scalable` | `-` | | | `ibm.general.ServiceDiscoveryConfiguration` | `-` | | | `ibm.general.TextToSpeech` | `-` | | | `ibm.general.TransformationConnectivity` | `-` | | ### Infrastructure | Type | Alias | Image | |----------------------------------------------------|-------|-----------------------------------------------------------------------------------------------------------| | `ibm.infrastructure.Channels` | `-` | | | `ibm.infrastructure.CloudMessaging` | `-` | | | `ibm.infrastructure.Dashboard` | `-` | | | `ibm.infrastructure.Diagnostics` | `-` | | | `ibm.infrastructure.EdgeServices` | `-` | | | `ibm.infrastructure.EnterpriseMessaging` | `-` | | | `ibm.infrastructure.EventFeed` | `-` | | | `ibm.infrastructure.InfrastructureServices` | `-` | | | `ibm.infrastructure.InterserviceCommunication` | `-` | | | `ibm.infrastructure.LoadBalancingRouting` | `-` | | | `ibm.infrastructure.MicroservicesMesh` | `-` | | | `ibm.infrastructure.MobileBackend` | `-` | | | `ibm.infrastructure.MobileProviderNetwork` | `-` | | | `ibm.infrastructure.MonitoringLogging` | `-` | | | `ibm.infrastructure.Monitoring` | `-` | | | `ibm.infrastructure.PeerServices` | `-` | | | `ibm.infrastructure.ServiceDiscoveryConfiguration` | `-` | | | `ibm.infrastructure.TransformationConnectivity` | `-` | | ### Management | Type | Alias | Image | |---------------------------------------------|-------|-----------------------------------------------------------------------------------------------------| | `ibm.management.AlertNotification` | `-` | | | `ibm.management.ApiManagement` | `-` | | | `ibm.management.CloudManagement` | `-` | | | `ibm.management.ClusterManagement` | `-` | | | `ibm.management.ContentManagement` | `-` | | | `ibm.management.DataServices` | `-` | | | `ibm.management.DeviceManagement` | `-` | | | `ibm.management.InformationGovernance` | `-` | | | `ibm.management.ItServiceManagement` | `-` | | | `ibm.management.Management` | `-` | | | `ibm.management.MonitoringMetrics` | `-` | | | `ibm.management.ProcessManagement` | `-` | | | `ibm.management.ProviderCloudPortalService` | `-` | | | `ibm.management.PushNotifications` | `-` | | | `ibm.management.ServiceManagementTools` | `-` | | ### Network | Type | Alias | Image | |------------------------------------|-------|-------------------------------------------------------------------------------------------| | `ibm.network.Bridge` | `-` | | | `ibm.network.DirectLink` | `-` | | | `ibm.network.Enterprise` | `-` | | | `ibm.network.Firewall` | `-` | | | `ibm.network.FloatingIp` | `-` | | | `ibm.network.Gateway` | `-` | | | `ibm.network.InternetServices` | `-` | | | `ibm.network.LoadBalancerListener` | `-` | | | `ibm.network.LoadBalancerPool` | `-` | | | `ibm.network.LoadBalancer` | `-` | | | `ibm.network.LoadBalancingRouting` | `-` | | | `ibm.network.PublicGateway` | `-` | | | `ibm.network.Region` | `-` | | | `ibm.network.Router` | `-` | | | `ibm.network.Rules` | `-` | | | `ibm.network.Subnet` | `-` | | | `ibm.network.TransitGateway` | `-` | | | `ibm.network.Vpc` | `-` | | | `ibm.network.VpnConnection` | `-` | | | `ibm.network.VpnGateway` | `-` | | | `ibm.network.VpnPolicy` | `-` | | ### Security | Type | Alias | Image | |-----------------------------------------------|-------|------------------------------------------------------------------------------------------------------| | `ibm.security.ApiSecurity` | `-` | | | `ibm.security.BlockchainSecurityService` | `-` | | | `ibm.security.DataSecurity` | `-` | | | `ibm.security.Firewall` | `-` | | | `ibm.security.Gateway` | `-` | | | `ibm.security.GovernanceRiskCompliance` | `-` | | | `ibm.security.IdentityAccessManagement` | `-` | | | `ibm.security.IdentityProvider` | `-` | | | `ibm.security.InfrastructureSecurity` | `-` | | | `ibm.security.PhysicalSecurity` | `-` | | | `ibm.security.SecurityMonitoringIntelligence` | `-` | | | `ibm.security.SecurityServices` | `-` | | | `ibm.security.TrustendComputing` | `-` | | | `ibm.security.Vpn` | `-` | | ### Social | Type | Alias | Image | |--------------------------------|-------|--------------------------------------------------------------------------------------| | `ibm.social.Communities` | `-` | | | `ibm.social.FileSync` | `-` | | | `ibm.social.LiveCollaboration` | `-` | | | `ibm.social.Messaging` | `-` | | | `ibm.social.Networking` | `-` | | ### Storage | Type | Alias | Image | |-----------------------------|-------|-----------------------------------------------------------------------------------| | `ibm.storage.BlockStorage` | `-` | | | `ibm.storage.ObjectStorage` | `-` | | ### User | Type | Alias | Image | |-----------------------------------------|-------|------------------------------------------------------------------------------------------------| | `ibm.user.Browser` | `-` | | | `ibm.user.Device` | `-` | | | `ibm.user.IntegratedDigitalExperiences` | `-` | | | `ibm.user.PhysicalEntity` | `-` | | | `ibm.user.Sensor` | `-` | | | `ibm.user.User` | `-` | | ================================================ FILE: docs/resources/kubernetes.md ================================================ ## Kubernetes Table of Content: * [Chaos](#chaos) * [ClusterConfig](#clusterconfig) * [Compute](#compute) * [Control Plane](#control-plane) * [Ecosystem](#ecosystem) * [Group](#group) * [Infra](#infra) * [Network](#network) * [Others](#others) * [PodConfig](#podconfig) * [RBAC](#rbac) * [Storage](#storage) ### Chaos | Type | Alias | Image | |-------------------------|-------|-------------------------------------------------------------------------------| | `k8s.chaos.ChaosMesh` | `-` | | | `k8s.chaos.LitmusChaos` | `-` | | ### ClusterConfig | Type | Alias | Image | |----------------------------|---------------------------------------------|---------------------------------------------------------------------------------| | `k8s.clusterconfig.HPA` | `k8s.clusterconfig.HorizontalPodAutoscaler` | | | `k8s.clusterconfig.Limits` | `k8s.clusterconfig.LimitRange` | | | `k8s.clusterconfig.Quota` | `-` | | ### Compute | Type | Alias | Image | |-----------------------|---------------------------|----------------------------------------------------------------------------| | `k8s.compute.Cronjob` | `-` | | | `k8s.compute.Deploy` | `k8s.compute.Deployment` | | | `k8s.compute.DS` | `k8s.compute.DaemonSet` | | | `k8s.compute.Job` | `-` | | | `k8s.compute.Pod` | `-` | | | `k8s.compute.RS` | `k8s.compute.ReplicaSet` | | | `k8s.compute.STS` | `k8s.compute.StatefulSet` | | ### Control Plane | Type | Alias | Image | |----------------------------|--------------------------------------|---------------------------------------------------------------------------------| | `k8s.controlplane.API` | `k8s.controlplane.APIServer` | | | `k8s.controlplane.CCM` | `-` | | | `k8s.controlplane.CM` | `k8s.controlplane.ControllerManager` | | | `k8s.controlplane.KProxy` | `k8s.controlplane.KubeProxy` | | | `k8s.controlplane.Kubelet` | `-` | | | `k8s.controlplane.Sched` | `k8s.controlplane.Scheduler` | | ### Ecosystem | Type | Alias | Image | |-----------------------------|-------|-----------------------------------------------------------------------------------| | `k8s.ecosystem.ExternalDns` | `-` | | | `k8s.ecosystem.Helm` | `-` | | | `k8s.ecosystem.Krew` | `-` | | | `k8s.ecosystem.Kustomize` | `-` | | ### Group | Type | Alias | Image | |----------------|-----------------------|---------------------------------------------------------------------| | `k8s.group.NS` | `k8s.group.Namespace` | | ### Infra | Type | Alias | Image | |--------------------|-------|-------------------------------------------------------------------------| | `k8s.infra.ETCD` | `-` | | | `k8s.infra.Master` | `-` | | | `k8s.infra.Node` | `-` | | ### Network | Type | Alias | Image | |----------------------|-----------------------------|---------------------------------------------------------------------------| | `k8s.network.Ep` | `k8s.network.Endpoint` | | | `k8s.network.Ing` | `k8s.network.Ingress` | | | `k8s.network.Netpol` | `k8s.network.NetworkPolicy` | | | `k8s.network.SVC` | `k8s.network.Service` | | ### Others | Type | Alias | Image | |------------------|-------|-----------------------------------------------------------------------| | `k8s.others.CRD` | `-` | | | `k8s.others.PSP` | `-` | | ### PodConfig | Type | Alias | Image | |------------------------|---------------------------|-----------------------------------------------------------------------------| | `k8s.podconfig.CM` | `k8s.podconfig.ConfigMap` | | | `k8s.podconfig.Secret` | `-` | | ### RBAC | Type | Alias | Image | |------------------|-------------------------------|------------------------------------------------------------------------| | `k8s.rbac.CRole` | `k8s.rbac.ClusterRole` | | | `k8s.rbac.CRB` | `k8s.rbac.ClusterRoleBinding` | | | `k8s.rbac.Group` | `-` | | | `k8s.rbac.RB` | `k8s.rbac.RoleBinding` | | | `k8s.rbac.Role` | `-` | | | `k8s.rbac.SA` | `k8s.rbac.ServiceAccount` | | | `k8s.rbac.User` | `-` | | ### Storage | Type | Alias | Image | |-------------------|-------------------------------------|------------------------------------------------------------------------| | `k8s.storage.PV` | `k8s.storage.PersistentVolume` | | | `k8s.storage.PVC` | `k8s.storage.PersistentVolumeClaim` | | | `k8s.storage.SC` | `k8s.storage.StorageClass` | | | `k8s.storage.Vol` | `k8s.storage.Volume` | | ================================================ FILE: docs/resources/oci.md ================================================ ## OCI Table of Content: * [Compute](#compute) * [Connectivity](#connectivity) * [Database](#database) * [Devops](#devops) * [Governance](#governance) * [Monitoring](#monitoring) * [Network](#network) * [Security](#security) * [Storage](#storage) ### Compute | Type | Alias | Image | |----------------------------------|------------------------------------|-----------------------------------------------------------------------------------------| | `oci.compute.AutoscaleWhite` | `-` | | | `oci.compute.Autoscale` | `-` | | | `oci.compute.BMWhite` | `oci.compute.BareMetalWhite` | | | `oci.compute.BM` | `oci.compute.BareMetal` | | | `oci.compute.ContainerWhite` | `-` | | | `oci.compute.Container` | `-` | | | `oci.compute.FunctionsWhite` | `-` | | | `oci.compute.Functions` | `-` | | | `oci.compute.InstancePoolsWhite` | `-` | | | `oci.compute.InstancePools` | `-` | | | `oci.compute.OCIRWhite` | `oci.compute.OCIRegistryWhite` | | | `oci.compute.OCIR` | `oci.compute.OCIRegistry` | | | `oci.compute.OKEWhite` | `oci.compute.ContainerEngineWhite` | | | `oci.compute.OKE` | `oci.compute.ContainerEngine` | | | `oci.compute.VMWhite` | `oci.compute.VirtualMachineWhite` | | | `oci.compute.VM` | `oci.compute.VirtualMachine` | | ### Connectivity | Type | Alias | Image | |---------------------------------------------|-------|----------------------------------------------------------------------------------------------------| | `oci.connectivity.BackboneWhite` | `-` | | | `oci.connectivity.Backbone` | `-` | | | `oci.connectivity.CDNWhite` | `-` | | | `oci.connectivity.CDN` | `-` | | | `oci.connectivity.CustomerDatacenter` | `-` | | | `oci.connectivity.CustomerDatacntrWhite` | `-` | | | `oci.connectivity.CustomerPremiseWhite` | `-` | | | `oci.connectivity.CustomerPremise` | `-` | | | `oci.connectivity.DisconnectedRegionsWhite` | `-` | | | `oci.connectivity.DisconnectedRegions` | `-` | | | `oci.connectivity.DNSWhite` | `-` | | | `oci.connectivity.DNS` | `-` | | | `oci.connectivity.FastConnectWhite` | `-` | | | `oci.connectivity.FastConnect` | `-` | | | `oci.connectivity.NATGatewayWhite` | `-` | | | `oci.connectivity.NATGateway` | `-` | | | `oci.connectivity.VPNWhite` | `-` | | | `oci.connectivity.VPN` | `-` | | ### Database | Type | Alias | Image | |-------------------------------------|-------------------------------|--------------------------------------------------------------------------------------------| | `oci.database.AutonomousWhite` | `oci.database.ADBWhite` | | | `oci.database.Autonomous` | `oci.database.ADB` | | | `oci.database.BigdataServiceWhite` | `-` | | | `oci.database.BigdataService` | `-` | | | `oci.database.DatabaseServiceWhite` | `oci.database.DBServiceWhite` | | | `oci.database.DatabaseService` | `oci.database.DBService` | | | `oci.database.DataflowApacheWhite` | `-` | | | `oci.database.DataflowApache` | `-` | | | `oci.database.DcatWhite` | `-` | | | `oci.database.Dcat` | `-` | | | `oci.database.DisWhite` | `-` | | | `oci.database.Dis` | `-` | | | `oci.database.DMSWhite` | `-` | | | `oci.database.DMS` | `-` | | | `oci.database.ScienceWhite` | `-` | | | `oci.database.Science` | `-` | | | `oci.database.StreamWhite` | `-` | | | `oci.database.Stream` | `-` | | ### Devops | Type | Alias | Image | |--------------------------------|-------|---------------------------------------------------------------------------------------| | `oci.devops.APIGatewayWhite` | `-` | | | `oci.devops.APIGateway` | `-` | | | `oci.devops.APIServiceWhite` | `-` | | | `oci.devops.APIService` | `-` | | | `oci.devops.ResourceMgmtWhite` | `-` | | | `oci.devops.ResourceMgmt` | `-` | | ### Governance | Type | Alias | Image | |------------------------------------|-------|------------------------------------------------------------------------------------------| | `oci.governance.AuditWhite` | `-` | | | `oci.governance.Audit` | `-` | | | `oci.governance.CompartmentsWhite` | `-` | | | `oci.governance.Compartments` | `-` | | | `oci.governance.GroupsWhite` | `-` | | | `oci.governance.Groups` | `-` | | | `oci.governance.LoggingWhite` | `-` | | | `oci.governance.Logging` | `-` | | | `oci.governance.OCIDWhite` | `-` | | | `oci.governance.OCID` | `-` | | | `oci.governance.PoliciesWhite` | `-` | | | `oci.governance.Policies` | `-` | | | `oci.governance.TaggingWhite` | `-` | | | `oci.governance.Tagging` | `-` | | ### Monitoring | Type | Alias | Image | |-------------------------------------|-------|-------------------------------------------------------------------------------------------| | `oci.monitoring.AlarmWhite` | `-` | | | `oci.monitoring.Alarm` | `-` | | | `oci.monitoring.EmailWhite` | `-` | | | `oci.monitoring.Email` | `-` | | | `oci.monitoring.EventsWhite` | `-` | | | `oci.monitoring.Events` | `-` | | | `oci.monitoring.HealthCheckWhite` | `-` | | | `oci.monitoring.HealthCheck` | `-` | | | `oci.monitoring.NotificationsWhite` | `-` | | | `oci.monitoring.Notifications` | `-` | | | `oci.monitoring.QueueWhite` | `-` | | | `oci.monitoring.Queue` | `-` | | | `oci.monitoring.SearchWhite` | `-` | | | `oci.monitoring.Search` | `-` | | | `oci.monitoring.TelemetryWhite` | `-` | | | `oci.monitoring.Telemetry` | `-` | | | `oci.monitoring.WorkflowWhite` | `-` | | | `oci.monitoring.Workflow` | `-` | | ### Network | Type | Alias | Image | |------------------------------------|-------|-------------------------------------------------------------------------------------------| | `oci.network.DrgWhite` | `-` | | | `oci.network.Drg` | `-` | | | `oci.network.FirewallWhite` | `-` | | | `oci.network.Firewall` | `-` | | | `oci.network.InternetGatewayWhite` | `-` | | | `oci.network.InternetGateway` | `-` | | | `oci.network.LoadBalancerWhite` | `-` | | | `oci.network.LoadBalancer` | `-` | | | `oci.network.RouteTableWhite` | `-` | | | `oci.network.RouteTable` | `-` | | | `oci.network.SecurityListsWhite` | `-` | | | `oci.network.SecurityLists` | `-` | | | `oci.network.ServiceGatewayWhite` | `-` | | | `oci.network.ServiceGateway` | `-` | | | `oci.network.VcnWhite` | `-` | | | `oci.network.Vcn` | `-` | | ### Security | Type | Alias | Image | |-------------------------------------|-------|---------------------------------------------------------------------------------------------| | `oci.security.CloudGuardWhite` | `-` | | | `oci.security.CloudGuard` | `-` | | | `oci.security.DDOSWhite` | `-` | | | `oci.security.DDOS` | `-` | | | `oci.security.EncryptionWhite` | `-` | | | `oci.security.Encryption` | `-` | | | `oci.security.IDAccessWhite` | `-` | | | `oci.security.IDAccess` | `-` | | | `oci.security.KeyManagementWhite` | `-` | | | `oci.security.KeyManagement` | `-` | | | `oci.security.MaxSecurityZoneWhite` | `-` | | | `oci.security.MaxSecurityZone` | `-` | | | `oci.security.VaultWhite` | `-` | | | `oci.security.Vault` | `-` | | | `oci.security.WAFWhite` | `-` | | | `oci.security.WAF` | `-` | | ### Storage | Type | Alias | Image | |---------------------------------------|-------|----------------------------------------------------------------------------------------------| | `oci.storage.BackupRestoreWhite` | `-` | | | `oci.storage.BackupRestore` | `-` | | | `oci.storage.BlockStorageCloneWhite` | `-` | | | `oci.storage.BlockStorageClone` | `-` | | | `oci.storage.BlockStorageWhite` | `-` | | | `oci.storage.BlockStorage` | `-` | | | `oci.storage.BucketsWhite` | `-` | | | `oci.storage.Buckets` | `-` | | | `oci.storage.DataTransferWhite` | `-` | | | `oci.storage.DataTransfer` | `-` | | | `oci.storage.ElasticPerformanceWhite` | `-` | | | `oci.storage.ElasticPerformance` | `-` | | | `oci.storage.FileStorageWhite` | `-` | | | `oci.storage.FileStorage` | `-` | | | `oci.storage.ObjectStorageWhite` | `-` | | | `oci.storage.ObjectStorage` | `-` | | | `oci.storage.StorageGatewayWhite` | `-` | | | `oci.storage.StorageGateway` | `-` | | ================================================ FILE: docs/resources/on_premise.md ================================================ ## On-Premise Table of Content: * [Aggregator](#aggregator) * [Analytics](#analytics) * [Auth](#auth) * [Cd](#cd) * [Certificates](#certificates) * [Ci](#ci) * [Client](#client) * [Compute](#compute) * [Container](#container) * [Database](#database) * [Dns](#dns) * [Etl](#etl) * [Gitops](#gitops) * [Groupware](#groupware) * [Iac](#iac) * [Identity](#identity) * [Inmemory](#inmemory) * [Logging](#logging) * [Messaging](#messaging) * [Mlops](#mlops) * [Monitoring](#monitoring) * [Network](#network) * [Proxmox](#proxmox) * [Queue](#queue) * [Registry](#registry) * [Search](#search) * [Security](#security) * [Storage](#storage) * [Tracing](#tracing) * [Vcs](#vcs) * [Workflow](#workflow) ### Aggregator | Type | Alias | Image | |-----------------------------|-------|----------------------------------------------------------------------------------| | `onprem.aggregator.Fluentd` | `-` | | | `onprem.aggregator.Vector` | `-` | | ### Analytics | Type | Alias | Image | |-------------------------------|----------------------------|------------------------------------------------------------------------------------| | `onprem.analytics.Beam` | `-` | | | `onprem.analytics.Databricks` | `-` | | | `onprem.analytics.Dbt` | `-` | | | `onprem.analytics.Dremio` | `-` | | | `onprem.analytics.Flink` | `-` | | | `onprem.analytics.Hadoop` | `-` | | | `onprem.analytics.Hive` | `-` | | | `onprem.analytics.Metabase` | `-` | | | `onprem.analytics.Norikra` | `-` | | | `onprem.analytics.Powerbi` | `onprem.analytics.PowerBI` | | | `onprem.analytics.Presto` | `-` | | | `onprem.analytics.Singer` | `-` | | | `onprem.analytics.Spark` | `-` | | | `onprem.analytics.Storm` | `-` | | | `onprem.analytics.Superset` | `-` | | | `onprem.analytics.Tableau` | `-` | | ### Auth | Type | Alias | Image | |---------------------------|-------|---------------------------------------------------------------------------------| | `onprem.auth.Boundary` | `-` | | | `onprem.auth.BuzzfeedSso` | `-` | | | `onprem.auth.Oauth2Proxy` | `-` | | ### Cd | Type | Alias | Image | |-----------------------|-------|-----------------------------------------------------------------------------| | `onprem.cd.Spinnaker` | `-` | | | `onprem.cd.TektonCli` | `-` | | | `onprem.cd.Tekton` | `-` | | ### Certificates | Type | Alias | Image | |-----------------------------------|-------|-----------------------------------------------------------------------------------------| | `onprem.certificates.CertManager` | `-` | | | `onprem.certificates.LetsEncrypt` | `-` | | ### Ci | Type | Alias | Image | |---------------------------|-------------------------|---------------------------------------------------------------------------------| | `onprem.ci.Circleci` | `onprem.ci.CircleCI` | | | `onprem.ci.Concourseci` | `onprem.ci.ConcourseCI` | | | `onprem.ci.Droneci` | `onprem.ci.DroneCI` | | | `onprem.ci.GithubActions` | `-` | | | `onprem.ci.Gitlabci` | `onprem.ci.GitlabCI` | | | `onprem.ci.Jenkins` | `-` | | | `onprem.ci.Teamcity` | `onprem.ci.TC` | | | `onprem.ci.Travisci` | `onprem.ci.TravisCI` | | | `onprem.ci.Zuulci` | `onprem.ci.ZuulCI` | | ### Client | Type | Alias | Image | |------------------------|-------|-----------------------------------------------------------------------------| | `onprem.client.Client` | `-` | | | `onprem.client.User` | `-` | | | `onprem.client.Users` | `-` | | ### Compute | Type | Alias | Image | |-------------------------|-------|------------------------------------------------------------------------------| | `onprem.compute.Nomad` | `-` | | | `onprem.compute.Server` | `-` | | ### Container | Type | Alias | Image | |--------------------------------|------------------------|-------------------------------------------------------------------------------------| | `onprem.container.Containerd` | `-` | | | `onprem.container.Crio` | `-` | | | `onprem.container.Docker` | `-` | | | `onprem.container.Firecracker` | `-` | | | `onprem.container.Gvisor` | `-` | | | `onprem.container.K3S` | `-` | | | `onprem.container.Lxc` | `onprem.container.LXC` | | | `onprem.container.Rkt` | `onprem.container.RKT` | | ### Database | Type | Alias | Image | |-------------------------------|-------------------------------|------------------------------------------------------------------------------------| | `onprem.database.Cassandra` | `-` | | | `onprem.database.Clickhouse` | `onprem.database.ClickHouse` | | | `onprem.database.Cockroachdb` | `onprem.database.CockroachDB` | | | `onprem.database.Couchbase` | `-` | | | `onprem.database.Couchdb` | `onprem.database.CouchDB` | | | `onprem.database.Dgraph` | `-` | | | `onprem.database.Druid` | `-` | | | `onprem.database.Hbase` | `onprem.database.HBase` | | | `onprem.database.Influxdb` | `onprem.database.InfluxDB` | | | `onprem.database.Janusgraph` | `onprem.database.JanusGraph` | | | `onprem.database.Mariadb` | `onprem.database.MariaDB` | | | `onprem.database.Mongodb` | `onprem.database.MongoDB` | | | `onprem.database.Mssql` | `onprem.database.MSSQL` | | | `onprem.database.Mysql` | `onprem.database.MySQL` | | | `onprem.database.Neo4J` | `-` | | | `onprem.database.Oracle` | `-` | | | `onprem.database.Postgresql` | `onprem.database.PostgreSQL` | | | `onprem.database.Scylla` | `-` | | ### Dns | Type | Alias | Image | |-----------------------|-------|----------------------------------------------------------------------------| | `onprem.dns.Coredns` | `-` | | | `onprem.dns.Powerdns` | `-` | | ### Etl | Type | Alias | Image | |---------------------|-------|--------------------------------------------------------------------------| | `onprem.etl.Embulk` | `-` | | ### Gitops | Type | Alias | Image | |-------------------------|------------------------|------------------------------------------------------------------------------| | `onprem.gitops.Argocd` | `onprem.gitops.ArgoCD` | | | `onprem.gitops.Flagger` | `-` | | | `onprem.gitops.Flux` | `-` | | ### Groupware | Type | Alias | Image | |------------------------------|-------|-----------------------------------------------------------------------------------| | `onprem.groupware.Nextcloud` | `-` | | ### Iac | Type | Alias | Image | |------------------------|-------|-----------------------------------------------------------------------------| | `onprem.iac.Ansible` | `-` | | | `onprem.iac.Atlantis` | `-` | | | `onprem.iac.Awx` | `-` | | | `onprem.iac.Puppet` | `-` | | | `onprem.iac.Terraform` | `-` | | ### Identity | Type | Alias | Image | |-----------------------|-------|----------------------------------------------------------------------------| | `onprem.identity.Dex` | `-` | | ### Inmemory | Type | Alias | Image | |-----------------------------|-------|----------------------------------------------------------------------------------| | `onprem.inmemory.Aerospike` | `-` | | | `onprem.inmemory.Hazelcast` | `-` | | | `onprem.inmemory.Memcached` | `-` | | | `onprem.inmemory.Redis` | `-` | | ### Logging | Type | Alias | Image | |----------------------------|----------------------------|---------------------------------------------------------------------------------| | `onprem.logging.Fluentbit` | `onprem.logging.FluentBit` | | | `onprem.logging.Graylog` | `-` | | | `onprem.logging.Loki` | `-` | | | `onprem.logging.Rsyslog` | `onprem.logging.RSyslog` | | | `onprem.logging.SyslogNg` | `-` | | ### Messaging | Type | Alias | Image | |-------------------------------|-------|------------------------------------------------------------------------------------| | `onprem.messaging.Centrifugo` | `-` | | ### Mlops | Type | Alias | Image | |-------------------------|-------|------------------------------------------------------------------------------| | `onprem.mlops.Mlflow` | `-` | | | `onprem.mlops.Polyaxon` | `-` | | ### Monitoring | Type | Alias | Image | |----------------------------------------|-------|----------------------------------------------------------------------------------------------| | `onprem.monitoring.Cortex` | `-` | | | `onprem.monitoring.Datadog` | `-` | | | `onprem.monitoring.Dynatrace` | `-` | | | `onprem.monitoring.Grafana` | `-` | | | `onprem.monitoring.Humio` | `-` | | | `onprem.monitoring.Mimir` | `-` | | | `onprem.monitoring.Nagios` | `-` | | | `onprem.monitoring.Newrelic` | `-` | | | `onprem.monitoring.PrometheusOperator` | `-` | | | `onprem.monitoring.Prometheus` | `-` | | | `onprem.monitoring.Sentry` | `-` | | | `onprem.monitoring.Splunk` | `-` | | | `onprem.monitoring.Thanos` | `-` | | | `onprem.monitoring.Zabbix` | `-` | | ### Network | Type | Alias | Image | |----------------------------------|---------------------------|-----------------------------------------------------------------------------------------| | `onprem.network.Ambassador` | `-` | | | `onprem.network.Apache` | `-` | | | `onprem.network.Bind9` | `-` | | | `onprem.network.Caddy` | `-` | | | `onprem.network.Consul` | `-` | | | `onprem.network.Envoy` | `-` | | | `onprem.network.Etcd` | `onprem.network.ETCD` | | | `onprem.network.Glassfish` | `-` | | | `onprem.network.Gunicorn` | `-` | | | `onprem.network.Haproxy` | `onprem.network.HAProxy` | | | `onprem.network.Internet` | `-` | | | `onprem.network.Istio` | `-` | | | `onprem.network.Jbossas` | `-` | | | `onprem.network.Jetty` | `-` | | | `onprem.network.Kong` | `-` | | | `onprem.network.Linkerd` | `-` | | | `onprem.network.Nginx` | `-` | | | `onprem.network.Ocelot` | `-` | | | `onprem.network.OpenServiceMesh` | `onprem.network.OSM` | | | `onprem.network.Opnsense` | `onprem.network.OPNSense` | | | `onprem.network.Pfsense` | `onprem.network.PFSense` | | | `onprem.network.Pomerium` | `-` | | | `onprem.network.Powerdns` | `-` | | | `onprem.network.Tomcat` | `-` | | | `onprem.network.Traefik` | `-` | | | `onprem.network.Tyk` | `-` | | | `onprem.network.Vyos` | `onprem.network.VyOS` | | | `onprem.network.Wildfly` | `-` | | | `onprem.network.Yarp` | `-` | | | `onprem.network.Zookeeper` | `-` | | ### Proxmox | Type | Alias | Image | |----------------------|----------------------------|---------------------------------------------------------------------------| | `onprem.proxmox.Pve` | `onprem.proxmox.ProxmoxVE` | | ### Queue | Type | Alias | Image | |-------------------------|-------------------------|------------------------------------------------------------------------------| | `onprem.queue.Activemq` | `onprem.queue.ActiveMQ` | | | `onprem.queue.Celery` | `-` | | | `onprem.queue.Emqx` | `onprem.queue.EMQX` | | | `onprem.queue.Kafka` | `-` | | | `onprem.queue.Nats` | `-` | | | `onprem.queue.Rabbitmq` | `onprem.queue.RabbitMQ` | | | `onprem.queue.Zeromq` | `onprem.queue.ZeroMQ` | | ### Registry | Type | Alias | Image | |--------------------------|-------|-------------------------------------------------------------------------------| | `onprem.registry.Harbor` | `-` | | | `onprem.registry.Jfrog` | `-` | | ### Search | Type | Alias | Image | |----------------------|-------|---------------------------------------------------------------------------| | `onprem.search.Solr` | `-` | | ### Security | Type | Alias | Image | |-----------------------------|-------|----------------------------------------------------------------------------------| | `onprem.security.Bitwarden` | `-` | | | `onprem.security.Trivy` | `-` | | | `onprem.security.Vault` | `-` | | ### Storage | Type | Alias | Image | |----------------------------|---------------------------|---------------------------------------------------------------------------------| | `onprem.storage.CephOsd` | `onprem.storage.CEPH_OSD` | | | `onprem.storage.Ceph` | `onprem.storage.CEPH` | | | `onprem.storage.Glusterfs` | `-` | | | `onprem.storage.Portworx` | `-` | | ### Tracing | Type | Alias | Image | |-------------------------|-------|------------------------------------------------------------------------------| | `onprem.tracing.Jaeger` | `-` | | | `onprem.tracing.Tempo` | `-` | | ### Vcs | Type | Alias | Image | |---------------------|-------|--------------------------------------------------------------------------| | `onprem.vcs.Git` | `-` | | | `onprem.vcs.Gitea` | `-` | | | `onprem.vcs.Github` | `-` | | | `onprem.vcs.Gitlab` | `-` | | | `onprem.vcs.Svn` | `-` | | ### Workflow | Type | Alias | Image | |----------------------------|----------------------------|---------------------------------------------------------------------------------| | `onprem.workflow.Airflow` | `-` | | | `onprem.workflow.Digdag` | `-` | | | `onprem.workflow.Kubeflow` | `onprem.workflow.KubeFlow` | | | `onprem.workflow.Nifi` | `onprem.workflow.NiFi` | | ================================================ FILE: docs/resources/open_stack.md ================================================ ## OpenStack Table of Content: * [API Proxies](#api-proxies) * [Application Life Cycle](#application-life-cycle) * [Bare Metal](#bare-metal) * [Billing](#billing) * [Compute](#compute) * [Container Services](#container-services) * [Deployment](#deployment) * [Front-end](#front-end) * [Monitoring](#monitoring) * [Multiregion](#multiregion) * [Networking](#networking) * [NFV](#nfv) * [Optimization](#optimization) * [Orchestration](#orchestration) * [Packaging](#packaging) * [Shared Services](#shared-services) * [Storage](#storage) * [User](#user) * [Workload Provisioning](#workload-provisioning) ### API Proxies | Type | Alias | Image | |-------------------------------|-------|------------------------------------------------------------------------------------| | `openstack.apiproxies.EC2API` | `-` | | ### Application Life Cycle | Type | Alias | Image | |-------------------------------------------|-------|------------------------------------------------------------------------------------------------| | `openstack.applicationlifecycle.Freezer` | `-` | | | `openstack.applicationlifecycle.Masakari` | `-` | | | `openstack.applicationlifecycle.Murano` | `-` | | | `openstack.applicationlifecycle.Solum` | `-` | | ### Bare Metal | Type | Alias | Image | |------------------------------|-------|-----------------------------------------------------------------------------------| | `openstack.baremetal.Cyborg` | `-` | | | `openstack.baremetal.Ironic` | `-` | | ### Billing | Type | Alias | Image | |--------------------------------|--------------------------------|-------------------------------------------------------------------------------------| | `openstack.billing.Cloudkitty` | `openstack.billing.CloudKitty` | | ### Compute | Type | Alias | Image | |-----------------------------|-------|----------------------------------------------------------------------------------| | `openstack.compute.Nova` | `-` | | | `openstack.compute.Qinling` | `-` | | | `openstack.compute.Zun` | `-` | | ### Container Services | Type | Alias | Image | |-------------------------------------|-------|------------------------------------------------------------------------------------------| | `openstack.containerservices.Kuryr` | `-` | | ### Deployment | Type | Alias | Image | |--------------------------------|-------------------------------------|-------------------------------------------------------------------------------------| | `openstack.deployment.Ansible` | `-` | | | `openstack.deployment.Charms` | `-` | | | `openstack.deployment.Chef` | `-` | | | `openstack.deployment.Helm` | `-` | | | `openstack.deployment.Kolla` | `openstack.deployment.KollaAnsible` | | | `openstack.deployment.Tripleo` | `openstack.deployment.TripleO` | | ### Front-end | Type | Alias | Image | |------------------------------|-------|-----------------------------------------------------------------------------------| | `openstack.frontend.Horizon` | `-` | | ### Monitoring | Type | Alias | Image | |----------------------------------|-------|---------------------------------------------------------------------------------------| | `openstack.monitoring.Monasca` | `-` | | | `openstack.monitoring.Telemetry` | `-` | | ### Multiregion | Type | Alias | Image | |-----------------------------------|-------|----------------------------------------------------------------------------------------| | `openstack.multiregion.Tricircle` | `-` | | ### Networking | Type | Alias | Image | |----------------------------------|-------|---------------------------------------------------------------------------------------| | `openstack.networking.Designate` | `-` | | | `openstack.networking.Neutron` | `-` | | | `openstack.networking.Octavia` | `-` | | ### NFV | Type | Alias | Image | |------------------------|-------|-----------------------------------------------------------------------------| | `openstack.nfv.Tacker` | `-` | | ### Optimization | Type | Alias | Image | |-----------------------------------|-------|----------------------------------------------------------------------------------------| | `openstack.optimization.Congress` | `-` | | | `openstack.optimization.Rally` | `-` | | | `openstack.optimization.Vitrage` | `-` | | | `openstack.optimization.Watcher` | `-` | | ### Orchestration | Type | Alias | Image | |-----------------------------------|-------|----------------------------------------------------------------------------------------| | `openstack.orchestration.Blazar` | `-` | | | `openstack.orchestration.Heat` | `-` | | | `openstack.orchestration.Mistral` | `-` | | | `openstack.orchestration.Senlin` | `-` | | | `openstack.orchestration.Zaqar` | `-` | | ### Packaging | Type | Alias | Image | |------------------------------|-------|-----------------------------------------------------------------------------------| | `openstack.packaging.LOCI` | `-` | | | `openstack.packaging.Puppet` | `-` | | | `openstack.packaging.RPM` | `-` | | ### Shared Services | Type | Alias | Image | |----------------------------------------|-------|---------------------------------------------------------------------------------------------| | `openstack.sharedservices.Barbican` | `-` | | | `openstack.sharedservices.Glance` | `-` | | | `openstack.sharedservices.Karbor` | `-` | | | `openstack.sharedservices.Keystone` | `-` | | | `openstack.sharedservices.Searchlight` | `-` | | ### Storage | Type | Alias | Image | |----------------------------|-------|---------------------------------------------------------------------------------| | `openstack.storage.Cinder` | `-` | | | `openstack.storage.Manila` | `-` | | | `openstack.storage.Swift` | `-` | | ### User | Type | Alias | Image | |----------------------------------|----------------------------------|---------------------------------------------------------------------------------------| | `openstack.user.Openstackclient` | `openstack.user.OpenStackClient` | | ### Workload Provisioning | Type | Alias | Image | |-----------------------------------------|-------|----------------------------------------------------------------------------------------------| | `openstack.workloadprovisioning.Magnum` | `-` | | | `openstack.workloadprovisioning.Sahara` | `-` | | | `openstack.workloadprovisioning.Trove` | `-` | | ================================================ FILE: docs/resources/outscale.md ================================================ ## Outscale Table of Content: * [Compute](#compute) * [Network](#network) * [Security](#security) * [Storage](#storage) ### Compute | Type | Alias | Image | |----------------------------------|-------|-----------------------------------------------------------------------------------------| | `outscale.compute.Compute` | `-` | | | `outscale.compute.DirectConnect` | `-` | | ### Network | Type | Alias | Image | |------------------------------------|-------|--------------------------------------------------------------------------------------------| | `outscale.network.ClientVpn` | `-` | | | `outscale.network.InternetService` | `-` | | | `outscale.network.LoadBalancer` | `-` | | | `outscale.network.NatService` | `-` | | | `outscale.network.Net` | `-` | | | `outscale.network.SiteToSiteVpng` | `-` | | ### Security | Type | Alias | Image | |-------------------------------------------------|-------|----------------------------------------------------------------------------------------------------------| | `outscale.security.Firewall` | `-` | | | `outscale.security.IdentityAndAccessManagement` | `-` | | ### Storage | Type | Alias | Image | |-----------------------------------------|-------|-------------------------------------------------------------------------------------------------| | `outscale.storage.SimpleStorageService` | `-` | | | `outscale.storage.Storage` | `-` | | ================================================ FILE: docs/resources/programming.md ================================================ ## Programming Table of Content: * [Framework](#framework) * [Language](#language) * [Runtime](#runtime) ### Framework | Type | Alias | Image | |-----------------------------------|---------------------------------|----------------------------------------------------------------------------------------| | `programming.framework.Angular` | `-` | | | `programming.framework.Backbone` | `-` | | | `programming.framework.Django` | `-` | | | `programming.framework.Ember` | `-` | | | `programming.framework.Fastapi` | `programming.framework.FastAPI` | | | `programming.framework.Flask` | `-` | | | `programming.framework.Flutter` | `-` | | | `programming.framework.Graphql` | `programming.framework.GraphQL` | | | `programming.framework.Laravel` | `-` | | | `programming.framework.Micronaut` | `-` | | | `programming.framework.Rails` | `-` | | | `programming.framework.React` | `-` | | | `programming.framework.Spring` | `-` | | | `programming.framework.Starlette` | `-` | | | `programming.framework.Svelte` | `-` | | | `programming.framework.Vue` | `-` | | ### Language | Type | Alias | Image | |-----------------------------------|-----------------------------------|----------------------------------------------------------------------------------------| | `programming.language.Bash` | `-` | | | `programming.language.C` | `-` | | | `programming.language.Cpp` | `-` | | | `programming.language.Csharp` | `-` | | | `programming.language.Dart` | `-` | | | `programming.language.Elixir` | `-` | | | `programming.language.Erlang` | `-` | | | `programming.language.Go` | `-` | | | `programming.language.Java` | `-` | | | `programming.language.Javascript` | `programming.language.JavaScript` | | | `programming.language.Kotlin` | `-` | | | `programming.language.Latex` | `-` | | | `programming.language.Matlab` | `-` | | | `programming.language.Nodejs ` | `programming.language.NodeJS` | | | `programming.language.Php` | `programming.language.PHP` | | | `programming.language.Python` | `-` | | | `programming.language.R` | `-` | | | `programming.language.Ruby` | `-` | | | `programming.language.Rust` | `-` | | | `programming.language.Scala` | `-` | | | `programming.language.Swift` | `-` | | | `programming.language.Typescript` | `programming.language.TypeScript` | | ### Runtime | Type | Alias | Image | |----------------------------|-------|---------------------------------------------------------------------------------| | `programming.runtime.Dapr` | `-` | | ================================================ FILE: docs/resources/saas.md ================================================ ## SaaS Table of Content: * [Alerting](#alerting) * [Analytics](#analytics) * [Cdn](#cdn) * [Chat](#chat) * [Communication](#communication) * [Filesharing](#filesharing) * [Identity](#identity) * [Logging](#logging) * [Media](#media) * [Recommendation](#recommendation) * [Social](#social) ### Alerting | Type | Alias | Image | |---------------------------|-------|--------------------------------------------------------------------------------| | `saas.alerting.Newrelic` | `-` | | | `saas.alerting.Opsgenie` | `-` | | | `saas.alerting.Pushover` | `-` | | | `saas.alerting.Xmatters` | `-` | | | `saas.alerting.Pagerduty` | `-` | | ### Analytics | Type | Alias | Image | |----------------------------|-------|---------------------------------------------------------------------------------| | `saas.analytics.Dataform` | `-` | | | `saas.analytics.Snowflake` | `-` | | | `saas.analytics.Stitch` | `-` | | ### Cdn | Type | Alias | Image | |-----------------------|-------|----------------------------------------------------------------------------| | `saas.cdn.Akamai` | `-` | | | `saas.cdn.Cloudflare` | `-` | | | `saas.cdn.Fastly` | `-` | | ### Chat | Type | Alias | Image | |------------------------|-------|------------------------------------------------------------------------------| | `saas.chat.Discord` | `-` | | | `saas.chat.Line` | `-` | | | `saas.chat.Mattermost` | `-` | | | `saas.chat.Messenger` | `-` | | | `saas.chat.RocketChat` | `-` | | | `saas.chat.Slack` | `-` | | | `saas.chat.Teams` | `-` | | | `saas.chat.Telegram` | `-` | | ### Communication | Type | Alias | Image | |-----------------------------|-------|----------------------------------------------------------------------------------| | `saas.communication.Twilio` | `-` | | ### Filesharing | Type | Alias | Image | |------------------------------|-------|-----------------------------------------------------------------------------------| | `saas.filesharing.Nextcloud` | `-` | | ### Identity | Type | Alias | Image | |-----------------------|-------|----------------------------------------------------------------------------| | `saas.identity.Auth0` | `-` | | | `saas.identity.Okta` | `-` | | ### Logging | Type | Alias | Image | |---------------------------|-------------------------|--------------------------------------------------------------------------------| | `saas.logging.Datadog` | `saas.logging.DataDog` | | | `saas.logging.Newrelic` | `saas.logging.NewRelic` | | | `saas.logging.Papertrail` | `-` | | ### Media | Type | Alias | Image | |-------------------------|-------|------------------------------------------------------------------------------| | `saas.media.Cloudinary` | `-` | | ### Recommendation | Type | Alias | Image | |--------------------------------|-------|-------------------------------------------------------------------------------------| | `saas.recommendation.Recombee` | `-` | | ### Social | Type | Alias | Image | |------------------------|-------|-----------------------------------------------------------------------------| | `saas.social.Facebook` | `-` | | | `saas.social.Twitter` | `-` | | ================================================ FILE: examples/all-fields.yaml ================================================ diagram: name: Web Services Architecture on AWS file_name: web-services-architecture-aws format: jpg direction: left-to-right style: graph: splines: ortho node: shape: circle edge: color: '#000000' label_resources: false open: true resources: - id: dns name: DNS type: aws.network.Route53 relates: - to: elb direction: outgoing label: Makes Request color: brown style: dotted - id: elb name: ELB type: aws.network.ELB relates: - to: web-services.graphql-api direction: outgoing label: Proxy Request color: firebrick style: dashed - id: web-services name: Web Services type: cluster of: - id: graphql-api name: GraphQL API type: group of: - id: first-ecs name: GraphQL API №1 type: aws.compute.ECS - id: second-ecs name: GraphQL API №2 type: aws.compute.ECS relates: - to: databases.leader direction: outgoing - id: databases name: Databases type: cluster of: - id: leader name: R/W Leader type: aws.database.RDS relates: - to: databases.follower direction: undirected - id: follower name: R/O Follower type: aws.database.RDS ================================================ FILE: examples/events-processing-aws.yaml ================================================ diagram: name: Events Processing Architecture on AWS open: true resources: - id: web-service name: Web Service (Source) type: aws.compute.EKS relates: - to: events-flow.workers.workers direction: outgoing - id: storage name: Events Storage type: aws.storage.S3 - id: analytics name: Events Analytics type: aws.database.Redshift - id: events-flow name: Events Flow type: cluster of: - id: queue name: Events Queue type: aws.integration.SQS relates: - to: events-flow.processing.lambdas direction: outgoing - id: workers name: Workers type: cluster of: - id: workers name: Workers type: group of: - id: first-worker name: Worker №1 type: aws.compute.ECS - id: second-worker name: Worker №2 type: aws.compute.ECS - id: third-worker name: Worker №3 type: aws.compute.ECS relates: - to: events-flow.queue direction: outgoing - id: processing name: Processing type: cluster of: - id: lambdas name: Lambdas type: group of: - id: first-process name: Lambda №1 type: aws.compute.Lambda - id: second-process name: Lambda №2 type: aws.compute.Lambda - id: third-process name: Lambda №3 type: aws.compute.Lambda relates: - to: storage direction: outgoing - to: analytics direction: outgoing ================================================ FILE: examples/exposed-pods-kubernetes.yaml ================================================ diagram: name: Exposed Pods Architecture on Kubernetes open: true resources: - id: ingress name: Ingress type: k8s.network.Ingress relates: - to: service direction: outgoing - id: service name: Service type: k8s.network.Service relates: - to: pods direction: outgoing - id: pods name: Pods type: group of: - id: first-pod name: Pod №1 type: k8s.compute.Pod - id: second-pod name: Pod №2 type: k8s.compute.Pod - id: third-pod name: Pod №3 type: k8s.compute.Pod relates: - to: replica-set direction: incoming - id: replica-set name: Replica Set type: k8s.compute.ReplicaSet relates: - to: deployment direction: incoming - id: deployment name: Deployment type: k8s.compute.Deployment relates: - to: hpa direction: incoming - id: hpa name: HPA type: k8s.clusterconfig.HPA ================================================ FILE: examples/message-collecting-gcp.yaml ================================================ diagram: name: Message Collecting Architecture on GCP open: true resources: - id: pubsub name: Pubsub type: gcp.analytics.PubSub relates: - to: targets.data-flows.data-flow direction: outgoing - id: source-of-data name: Source of Data type: cluster of: - id: iot name: IoT type: group of: - id: first-iot name: Core №1 type: gcp.iot.IotCore - id: second-iot name: Core №2 type: gcp.iot.IotCore - id: third-iot name: Core №3 type: gcp.iot.IotCore relates: - to: pubsub direction: outgoing - id: targets name: Targets type: cluster of: - id: data-flows name: Data Flow type: cluster of: - id: data-flow name: Data Flow type: gcp.analytics.Dataflow relates: - to: targets.data-lake.data-lake-group direction: outgoing - to: targets.event-driven.processing.engine direction: outgoing - to: targets.event-driven.serverless.function direction: outgoing - id: data-lake name: Data Lake type: cluster of: - id: data-lake-group name: Data Lake Group type: group of: - id: big-query name: Big Query type: gcp.analytics.BigQuery - id: storage name: Storage type: gcp.storage.GCS - id: event-driven name: Event Driven type: cluster of: - id: processing name: Processing type: cluster of: - id: engine name: Engine type: gcp.compute.AppEngine relates: - to: targets.event-driven.processing.bigtable direction: outgoing - id: bigtable name: Bigtable type: gcp.database.BigTable - id: serverless name: Serverless type: cluster of: - id: function name: Function type: gcp.compute.Functions relates: - to: targets.event-driven.serverless.application-engine direction: outgoing - id: application-engine name: Application Engine type: gcp.compute.AppEngine ================================================ FILE: examples/picture-in-readme.yaml ================================================ diagram: name: Web Services Architecture on AWS open: true direction: top-to-bottom resources: - id: dns name: DNS type: aws.network.Route53 relates: - to: elb direction: outgoing - id: elb name: ELB type: aws.network.ELB relates: - to: web-services.graphql-api direction: outgoing - id: web-services name: Web Services type: cluster of: - id: graphql-api name: GraphQL API type: group of: - id: first-ecs name: GraphQL API №1 type: aws.compute.ECS - id: second-ecs name: GraphQL API №2 type: aws.compute.ECS relates: - to: databases.leader direction: outgoing - id: databases name: Databases type: cluster of: - id: leader name: R/W Leader type: aws.database.RDS relates: - to: databases.follower direction: undirected - id: follower name: R/O Follower type: aws.database.RDS ================================================ FILE: examples/web-services-aws.yaml ================================================ diagram: name: Web Services Architecture on AWS open: true resources: - id: dns name: DNS type: aws.network.Route53 relates: - to: elb direction: outgoing - id: elb name: ELB type: aws.network.ELB relates: - to: web-services.graphql-api direction: outgoing - id: web-services name: Web Services type: cluster of: - id: graphql-api name: GraphQL API type: group of: - id: first-api name: GraphQL API №1 type: aws.compute.ECS - id: second-api name: GraphQL API №2 type: aws.compute.ECS - id: third-api name: GraphQL API №3 type: aws.compute.ECS relates: - to: databases.leader direction: outgoing - to: memcached direction: outgoing - id: databases name: Databases type: cluster of: - id: leader name: R/W Leader type: aws.database.RDS relates: - to: databases.followers direction: undirected - id: followers name: R/O Followers type: group of: - id: first-follower name: R/O Follower №1 type: aws.database.RDS - id: second-follower name: R/O Follower №2 type: aws.database.RDS - id: memcached name: Memcached type: aws.database.ElastiCache ================================================ FILE: examples/web-services-on-premise.yaml ================================================ diagram: name: Web Services Architecture On-Premise open: true resources: - id: ingress name: Ingress type: onprem.network.Nginx relates: - to: web-services.graphql direction: bidirectional color: darkgreen - id: metrics name: Metrics type: onprem.monitoring.Prometheus relates: - to: monitoring direction: incoming color: firebrick style: dashed - id: monitoring name: Monitoring type: onprem.monitoring.Grafana - id: web-services name: Web Services type: cluster of: - id: graphql name: GraphQL API type: group of: - id: first-ecs name: GraphQL API №1 type: onprem.compute.Server - id: second-ecs name: GraphQL API №2 type: onprem.compute.Server - id: third-ecs name: GraphQL API №3 type: onprem.compute.Server relates: - to: cache.leader direction: outgoing color: brown - to: databases.leader direction: outgoing color: black - to: logs-aggregator direction: outgoing color: black - id: cache name: Cache type: cluster of: - id: leader name: Leader type: onprem.inmemory.Redis relates: - to: cache.follower direction: undirected color: brown style: dashed - id: follower name: Follower type: onprem.inmemory.Redis relates: - to: metrics direction: incoming label: collect - id: databases name: Databases type: cluster of: - id: leader name: Leader type: onprem.database.PostgreSQL relates: - to: databases.follower direction: undirected color: brown style: dotted - id: follower name: Follower type: onprem.database.PostgreSQL relates: - to: metrics direction: incoming label: collect - id: logs-aggregator name: Logs Aggregator type: onprem.aggregator.Fluentd relates: - to: message-queue direction: outgoing label: parse - id: message-queue name: Message Queue type: onprem.queue.Kafka relates: - to: analytics direction: outgoing color: black style: bold - id: analytics name: Analytics type: onprem.analytics.Spark ================================================ FILE: examples/workers-aws.yaml ================================================ diagram: name: Workers Architecture on AWS direction: top-to-bottom open: true resources: - id: elb name: ELB type: aws.network.ELB relates: - to: workers direction: outgoing - id: workers name: Workers type: group of: - id: first-worker name: Worker №1 type: aws.compute.EC2 - id: second-worker name: Worker №2 type: aws.compute.EC2 - id: third-worker name: Worker №3 type: aws.compute.EC2 - id: fourth-worker name: Worker №4 type: aws.compute.EC2 - id: fifth-worker name: Worker №5 type: aws.compute.EC2 - id: sixth-worker name: Worker №6 type: aws.compute.EC2 relates: - to: database direction: outgoing - id: database name: Events type: aws.database.RDS ================================================ FILE: json-schemas/0.0.1.json ================================================ { "$schema": "http://json-schema.org/draft-07/schema#", "title": "Diagrams as code", "description": "Diagrams as code's YAML JSON schema", "$ref": "#/definitions/Welcome5", "definitions": { "Welcome5": { "type": "object", "additionalProperties": false, "properties": { "diagram": { "$ref": "#/definitions/Diagram" } }, "required": [ "diagram" ], "title": "Welcome5" }, "Diagram": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string", "description": "A name of the diagram which is shown in the image" }, "file_name": { "type": "string", "description": "A file name of the image that would be created" }, "format": { "type": "string", "description": "A format of the image that would be created", "oneOf": [ { "const": "png" }, { "const": "jpg" }, { "const": "svg" }, { "const": "pdf" }, { "const": "dot" } ] }, "direction": { "type": "string", "description": "A direction of the diagram's resource", "oneOf": [ { "const": "left-to-right" }, { "const": "right-to-left" }, { "const": "top-to-bottom" }, { "const": "bottom-to-top" } ] }, "style": { "$ref": "#/definitions/Style", "description": "Style of the diagram" }, "label_resources": { "type": "boolean", "description": "Whether to label the diagram's resources" }, "open": { "type": "boolean", "description": "Whether to open the diagram's image after creating it" }, "resources": { "type": "array", "description": "Resources of the diagram", "items": { "$ref": "#/definitions/Resource" } } }, "required": [ "name", "resources" ], "title": "Diagram" }, "Resource": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "description": "A unique identifier of the resource" }, "name": { "type": "string", "description": "A name of the resource" }, "type": { "type": "string", "description": "A type of the resource", "oneOf": [ { "const": "cluster" }, { "const": "group" }, { "const": "alibabacloud.analytics.AnalyticDb" }, { "const": "alibabacloud.analytics.ClickHouse" }, { "const": "alibabacloud.analytics.DataLakeAnalytics" }, { "const": "alibabacloud.analytics.ElaticMapReduce" }, { "const": "alibabacloud.analytics.OpenSearch" }, { "const": "alibabacloud.application.ApiGateway" }, { "const": "alibabacloud.application.BeeBot" }, { "const": "alibabacloud.application.BlockchainAsAService" }, { "const": "alibabacloud.application.CloudCallCenter" }, { "const": "alibabacloud.application.CodePipeline" }, { "const": "alibabacloud.application.DirectMail" }, { "const": "alibabacloud.application.LogService" }, { "const": "alibabacloud.application.SLS" }, { "const": "alibabacloud.application.MessageNotificationService" }, { "const": "alibabacloud.application.MNS" }, { "const": "alibabacloud.application.NodeJsPerformancePlatform" }, { "const": "alibabacloud.application.OpenSearch" }, { "const": "alibabacloud.application.PerformanceTestingService" }, { "const": "alibabacloud.application.PTS" }, { "const": "alibabacloud.application.RdCloud" }, { "const": "alibabacloud.application.SmartConversationAnalysis" }, { "const": "alibabacloud.application.SCA" }, { "const": "alibabacloud.application.Yida" }, { "const": "alibabacloud.communication.DirectMail" }, { "const": "alibabacloud.communication.MobilePush" }, { "const": "alibabacloud.compute.AutoScaling" }, { "const": "alibabacloud.compute.ESS" }, { "const": "alibabacloud.compute.BatchCompute" }, { "const": "alibabacloud.compute.ContainerRegistry" }, { "const": "alibabacloud.compute.ContainerService" }, { "const": "alibabacloud.compute.ElasticComputeService" }, { "const": "alibabacloud.compute.ECS" }, { "const": "alibabacloud.compute.ElasticContainerInstance" }, { "const": "alibabacloud.compute.ECI" }, { "const": "alibabacloud.compute.ElasticHighPerformanceComputing" }, { "const": "alibabacloud.compute.EHPC" }, { "const": "alibabacloud.compute.ElasticSearch" }, { "const": "alibabacloud.compute.FunctionCompute" }, { "const": "alibabacloud.compute.FC" }, { "const": "alibabacloud.compute.OperationOrchestrationService" }, { "const": "alibabacloud.compute.OOS" }, { "const": "alibabacloud.compute.ResourceOrchestrationService" }, { "const": "alibabacloud.compute.ROS" }, { "const": "alibabacloud.compute.ServerLoadBalancer" }, { "const": "alibabacloud.compute.SLB" }, { "const": "alibabacloud.compute.ServerlessAppEngine" }, { "const": "alibabacloud.compute.SAE" }, { "const": "alibabacloud.compute.SimpleApplicationServer" }, { "const": "alibabacloud.compute.SAS" }, { "const": "alibabacloud.compute.WebAppService" }, { "const": "alibabacloud.compute.WAS" }, { "const": "alibabacloud.database.ApsaradbCassandra" }, { "const": "alibabacloud.database.ApsaradbHbase" }, { "const": "alibabacloud.database.ApsaradbMemcache" }, { "const": "alibabacloud.database.ApsaradbMongodb" }, { "const": "alibabacloud.database.ApsaradbOceanbase" }, { "const": "alibabacloud.database.ApsaradbPolardb" }, { "const": "alibabacloud.database.ApsaradbPostgresql" }, { "const": "alibabacloud.database.ApsaradbPpas" }, { "const": "alibabacloud.database.ApsaradbRedis" }, { "const": "alibabacloud.database.ApsaradbSqlserver" }, { "const": "alibabacloud.database.DataManagementService" }, { "const": "alibabacloud.database.DMS" }, { "const": "alibabacloud.database.DataTransmissionService" }, { "const": "alibabacloud.database.DTS" }, { "const": "alibabacloud.database.DatabaseBackupService" }, { "const": "alibabacloud.database.DBS" }, { "const": "alibabacloud.database.DisributeRelationalDatabaseService" }, { "const": "alibabacloud.database.DRDS" }, { "const": "alibabacloud.database.GraphDatabaseService" }, { "const": "alibabacloud.database.GDS" }, { "const": "alibabacloud.database.HybriddbForMysql" }, { "const": "alibabacloud.database.RelationalDatabaseService" }, { "const": "alibabacloud.database.RDS" }, { "const": "alibabacloud.iot.IotInternetDeviceId" }, { "const": "alibabacloud.iot.IotLinkWan" }, { "const": "alibabacloud.iot.IotMobileConnectionPackage" }, { "const": "alibabacloud.iot.IotPlatform" }, { "const": "alibabacloud.network.Cdn" }, { "const": "alibabacloud.network.CloudEnterpriseNetwork" }, { "const": "alibabacloud.network.CEN" }, { "const": "alibabacloud.network.ElasticIpAddress" }, { "const": "alibabacloud.network.EIP" }, { "const": "alibabacloud.network.ExpressConnect" }, { "const": "alibabacloud.network.NatGateway" }, { "const": "alibabacloud.network.ServerLoadBalancer" }, { "const": "alibabacloud.network.SLB" }, { "const": "alibabacloud.network.SmartAccessGateway" }, { "const": "alibabacloud.network.VirtualPrivateCloud" }, { "const": "alibabacloud.network.VPC" }, { "const": "alibabacloud.network.VpnGateway" }, { "const": "alibabacloud.security.AntiBotService" }, { "const": "alibabacloud.security.ABS" }, { "const": "alibabacloud.security.AntiDdosBasic" }, { "const": "alibabacloud.security.AntiDdosPro" }, { "const": "alibabacloud.security.AntifraudService" }, { "const": "alibabacloud.security.AS" }, { "const": "alibabacloud.security.BastionHost" }, { "const": "alibabacloud.security.CloudFirewall" }, { "const": "alibabacloud.security.CFW" }, { "const": "alibabacloud.security.CloudSecurityScanner" }, { "const": "alibabacloud.security.ContentModeration" }, { "const": "alibabacloud.security.CM" }, { "const": "alibabacloud.security.CrowdsourcedSecurityTesting" }, { "const": "alibabacloud.security.DataEncryptionService" }, { "const": "alibabacloud.security.DES" }, { "const": "alibabacloud.security.DbAudit" }, { "const": "alibabacloud.security.GameShield" }, { "const": "alibabacloud.security.IdVerification" }, { "const": "alibabacloud.security.ManagedSecurityService" }, { "const": "alibabacloud.security.SecurityCenter" }, { "const": "alibabacloud.security.ServerGuard" }, { "const": "alibabacloud.security.SslCertificates" }, { "const": "alibabacloud.security.WebApplicationFirewall" }, { "const": "alibabacloud.security.WAF" }, { "const": "alibabacloud.storage.CloudStorageGateway" }, { "const": "alibabacloud.storage.FileStorageHdfs" }, { "const": "alibabacloud.storage.HDFS" }, { "const": "alibabacloud.storage.FileStorageNas" }, { "const": "alibabacloud.storage.NAS" }, { "const": "alibabacloud.storage.HybridBackupRecovery" }, { "const": "alibabacloud.storage.HBR" }, { "const": "alibabacloud.storage.HybridCloudDisasterRecovery" }, { "const": "alibabacloud.storage.HDR" }, { "const": "alibabacloud.storage.Imm" }, { "const": "alibabacloud.storage.ObjectStorageService" }, { "const": "alibabacloud.storage.OSS" }, { "const": "alibabacloud.storage.ObjectTableStore" }, { "const": "alibabacloud.storage.OTS" }, { "const": "alibabacloud.web.Dns" }, { "const": "alibabacloud.web.Domain" }, { "const": "aws.analytics.Analytics" }, { "const": "aws.analytics.Athena" }, { "const": "aws.analytics.CloudsearchSearchDocuments" }, { "const": "aws.analytics.Cloudsearch" }, { "const": "aws.analytics.DataLakeResource" }, { "const": "aws.analytics.DataPipeline" }, { "const": "aws.analytics.ElasticsearchService" }, { "const": "aws.analytics.ES" }, { "const": "aws.analytics.EMRCluster" }, { "const": "aws.analytics.EMREngineMaprM3" }, { "const": "aws.analytics.EMREngineMaprM5" }, { "const": "aws.analytics.EMREngineMaprM7" }, { "const": "aws.analytics.EMREngine" }, { "const": "aws.analytics.EMRHdfsCluster" }, { "const": "aws.analytics.EMR" }, { "const": "aws.analytics.GlueCrawlers" }, { "const": "aws.analytics.GlueDataCatalog" }, { "const": "aws.analytics.Glue" }, { "const": "aws.analytics.KinesisDataAnalytics" }, { "const": "aws.analytics.KinesisDataFirehose" }, { "const": "aws.analytics.KinesisDataStreams" }, { "const": "aws.analytics.KinesisVideoStreams" }, { "const": "aws.analytics.Kinesis" }, { "const": "aws.analytics.LakeFormation" }, { "const": "aws.analytics.ManagedStreamingForKafka" }, { "const": "aws.analytics.Quicksight" }, { "const": "aws.analytics.RedshiftDenseComputeNode" }, { "const": "aws.analytics.RedshiftDenseStorageNode" }, { "const": "aws.analytics.Redshift" }, { "const": "aws.ar.ArVr" }, { "const": "aws.ar.Sumerian" }, { "const": "aws.blockchain.BlockchainResource" }, { "const": "aws.blockchain.Blockchain" }, { "const": "aws.blockchain.ManagedBlockchain" }, { "const": "aws.blockchain.QuantumLedgerDatabaseQldb" }, { "const": "aws.blockchain.QLDB" }, { "const": "aws.business.AlexaForBusiness" }, { "const": "aws.business.A4B" }, { "const": "aws.business.BusinessApplications" }, { "const": "aws.business.Chime" }, { "const": "aws.business.Workmail" }, { "const": "aws.compute.AppRunner" }, { "const": "aws.compute.ApplicationAutoScaling" }, { "const": "aws.compute.AutoScaling" }, { "const": "aws.compute.Batch" }, { "const": "aws.compute.ComputeOptimizer" }, { "const": "aws.compute.Compute" }, { "const": "aws.compute.EC2Ami" }, { "const": "aws.compute.AMI" }, { "const": "aws.compute.EC2AutoScaling" }, { "const": "aws.compute.EC2ContainerRegistryImage" }, { "const": "aws.compute.EC2ContainerRegistryRegistry" }, { "const": "aws.compute.EC2ContainerRegistry" }, { "const": "aws.compute.ECR" }, { "const": "aws.compute.EC2ElasticIpAddress" }, { "const": "aws.compute.EC2ImageBuilder" }, { "const": "aws.compute.EC2Instance" }, { "const": "aws.compute.EC2Instances" }, { "const": "aws.compute.EC2Rescue" }, { "const": "aws.compute.EC2SpotInstance" }, { "const": "aws.compute.EC2" }, { "const": "aws.compute.ElasticBeanstalkApplication" }, { "const": "aws.compute.ElasticBeanstalkDeployment" }, { "const": "aws.compute.ElasticBeanstalk" }, { "const": "aws.compute.EB" }, { "const": "aws.compute.ElasticContainerServiceContainer" }, { "const": "aws.compute.ElasticContainerServiceService" }, { "const": "aws.compute.ElasticContainerService" }, { "const": "aws.compute.ECS" }, { "const": "aws.compute.ElasticKubernetesService" }, { "const": "aws.compute.EKS" }, { "const": "aws.compute.Fargate" }, { "const": "aws.compute.LambdaFunction" }, { "const": "aws.compute.Lambda" }, { "const": "aws.compute.Lightsail" }, { "const": "aws.compute.LocalZones" }, { "const": "aws.compute.Outposts" }, { "const": "aws.compute.ServerlessApplicationRepository" }, { "const": "aws.compute.SAR" }, { "const": "aws.compute.ThinkboxDeadline" }, { "const": "aws.compute.ThinkboxDraft" }, { "const": "aws.compute.ThinkboxFrost" }, { "const": "aws.compute.ThinkboxKrakatoa" }, { "const": "aws.compute.ThinkboxSequoia" }, { "const": "aws.compute.ThinkboxStoke" }, { "const": "aws.compute.ThinkboxXmesh" }, { "const": "aws.compute.VmwareCloudOnAWS" }, { "const": "aws.compute.Wavelength" }, { "const": "aws.cost.Budgets" }, { "const": "aws.cost.CostAndUsageReport" }, { "const": "aws.cost.CostExplorer" }, { "const": "aws.cost.CostManagement" }, { "const": "aws.cost.ReservedInstanceReporting" }, { "const": "aws.cost.SavingsPlans" }, { "const": "aws.database.AuroraInstance" }, { "const": "aws.database.Aurora" }, { "const": "aws.database.DatabaseMigrationServiceDatabaseMigrationWorkflow" }, { "const": "aws.database.DatabaseMigrationService" }, { "const": "aws.database.DMS" }, { "const": "aws.database.Database" }, { "const": "aws.database.DB" }, { "const": "aws.database.DocumentdbMongodbCompatibility" }, { "const": "aws.database.DocumentDB" }, { "const": "aws.database.DynamodbAttribute" }, { "const": "aws.database.DynamodbAttributes" }, { "const": "aws.database.DynamodbDax" }, { "const": "aws.database.DAX" }, { "const": "aws.database.DynamodbGlobalSecondaryIndex" }, { "const": "aws.database.DynamodbGSI" }, { "const": "aws.database.DynamodbItem" }, { "const": "aws.database.DynamodbItems" }, { "const": "aws.database.DynamodbTable" }, { "const": "aws.database.Dynamodb" }, { "const": "aws.database.DDB" }, { "const": "aws.database.ElasticacheCacheNode" }, { "const": "aws.database.ElasticacheForMemcached" }, { "const": "aws.database.ElasticacheForRedis" }, { "const": "aws.database.Elasticache" }, { "const": "aws.database.ElastiCache" }, { "const": "aws.database.KeyspacesManagedApacheCassandraService" }, { "const": "aws.database.Neptune" }, { "const": "aws.database.QuantumLedgerDatabaseQldb" }, { "const": "aws.database.QLDB" }, { "const": "aws.database.RDSInstance" }, { "const": "aws.database.RDSMariadbInstance" }, { "const": "aws.database.RDSMysqlInstance" }, { "const": "aws.database.RDSOnVmware" }, { "const": "aws.database.RDSOracleInstance" }, { "const": "aws.database.RDSPostgresqlInstance" }, { "const": "aws.database.RDSSqlServerInstance" }, { "const": "aws.database.RDS" }, { "const": "aws.database.RedshiftDenseComputeNode" }, { "const": "aws.database.RedshiftDenseStorageNode" }, { "const": "aws.database.Redshift" }, { "const": "aws.database.Timestream" }, { "const": "aws.devtools.CloudDevelopmentKit" }, { "const": "aws.devtools.Cloud9Resource" }, { "const": "aws.devtools.Cloud9" }, { "const": "aws.devtools.Codebuild" }, { "const": "aws.devtools.Codecommit" }, { "const": "aws.devtools.Codedeploy" }, { "const": "aws.devtools.Codepipeline" }, { "const": "aws.devtools.Codestar" }, { "const": "aws.devtools.CommandLineInterface" }, { "const": "aws.devtools.CLI" }, { "const": "aws.devtools.DeveloperTools" }, { "const": "aws.devtools.DevTools" }, { "const": "aws.devtools.ToolsAndSdks" }, { "const": "aws.devtools.XRay" }, { "const": "aws.enablement.CustomerEnablement" }, { "const": "aws.enablement.Iq" }, { "const": "aws.enablement.ManagedServices" }, { "const": "aws.enablement.ProfessionalServices" }, { "const": "aws.enablement.Support" }, { "const": "aws.enduser.Appstream20" }, { "const": "aws.enduser.DesktopAndAppStreaming" }, { "const": "aws.enduser.Workdocs" }, { "const": "aws.enduser.Worklink" }, { "const": "aws.enduser.Workspaces" }, { "const": "aws.engagement.Connect" }, { "const": "aws.engagement.CustomerEngagement" }, { "const": "aws.engagement.Pinpoint" }, { "const": "aws.engagement.SimpleEmailServiceSesEmail" }, { "const": "aws.engagement.SimpleEmailServiceSes" }, { "const": "aws.engagement.SES" }, { "const": "aws.game.GameTech" }, { "const": "aws.game.Gamelift" }, { "const": "aws.general.Client" }, { "const": "aws.general.Disk" }, { "const": "aws.general.Forums" }, { "const": "aws.general.General" }, { "const": "aws.general.GenericDatabase" }, { "const": "aws.general.GenericFirewall" }, { "const": "aws.general.GenericOfficeBuilding" }, { "const": "aws.general.OfficeBuilding" }, { "const": "aws.general.GenericSamlToken" }, { "const": "aws.general.GenericSDK" }, { "const": "aws.general.InternetAlt1" }, { "const": "aws.general.InternetAlt2" }, { "const": "aws.general.InternetGateway" }, { "const": "aws.general.Marketplace" }, { "const": "aws.general.MobileClient" }, { "const": "aws.general.Multimedia" }, { "const": "aws.general.OfficeBuilding" }, { "const": "aws.general.SamlToken" }, { "const": "aws.general.SDK" }, { "const": "aws.general.SslPadlock" }, { "const": "aws.general.TapeStorage" }, { "const": "aws.general.Toolkit" }, { "const": "aws.general.TraditionalServer" }, { "const": "aws.general.User" }, { "const": "aws.general.Users" }, { "const": "aws.integration.ApplicationIntegration" }, { "const": "aws.integration.Appsync" }, { "const": "aws.integration.ConsoleMobileApplication" }, { "const": "aws.integration.EventResource" }, { "const": "aws.integration.EventbridgeCustomEventBusResource" }, { "const": "aws.integration.EventbridgeDefaultEventBusResource" }, { "const": "aws.integration.EventbridgeSaasPartnerEventBusResource" }, { "const": "aws.integration.Eventbridge" }, { "const": "aws.integration.ExpressWorkflows" }, { "const": "aws.integration.MQ" }, { "const": "aws.integration.SimpleNotificationServiceSnsEmailNotification" }, { "const": "aws.integration.SimpleNotificationServiceSnsHttpNotification" }, { "const": "aws.integration.SimpleNotificationServiceSnsTopic" }, { "const": "aws.integration.SimpleNotificationServiceSns" }, { "const": "aws.integration.SNS" }, { "const": "aws.integration.SimpleQueueServiceSqsMessage" }, { "const": "aws.integration.SimpleQueueServiceSqsQueue" }, { "const": "aws.integration.SimpleQueueServiceSqs" }, { "const": "aws.integration.SQS" }, { "const": "aws.integration.StepFunctions" }, { "const": "aws.integration.SF" }, { "const": "aws.iot.Freertos" }, { "const": "aws.iot.FreeRTOS" }, { "const": "aws.iot.InternetOfThings" }, { "const": "aws.iot.Iot1Click" }, { "const": "aws.iot.IotAction" }, { "const": "aws.iot.IotActuator" }, { "const": "aws.iot.IotAlexaEcho" }, { "const": "aws.iot.IotAlexaEnabledDevice" }, { "const": "aws.iot.IotAlexaSkill" }, { "const": "aws.iot.IotAlexaVoiceService" }, { "const": "aws.iot.IotAnalyticsChannel" }, { "const": "aws.iot.IotAnalyticsDataSet" }, { "const": "aws.iot.IotAnalyticsDataStore" }, { "const": "aws.iot.IotAnalyticsNotebook" }, { "const": "aws.iot.IotAnalyticsPipeline" }, { "const": "aws.iot.IotAnalytics" }, { "const": "aws.iot.IotBank" }, { "const": "aws.iot.IotBicycle" }, { "const": "aws.iot.IotButton" }, { "const": "aws.iot.IotCamera" }, { "const": "aws.iot.IotCar" }, { "const": "aws.iot.IotCart" }, { "const": "aws.iot.IotCertificate" }, { "const": "aws.iot.IotCoffeePot" }, { "const": "aws.iot.IotCore" }, { "const": "aws.iot.IotDesiredState" }, { "const": "aws.iot.IotDeviceDefender" }, { "const": "aws.iot.IotDeviceGateway" }, { "const": "aws.iot.IotDeviceManagement" }, { "const": "aws.iot.IotDoorLock" }, { "const": "aws.iot.IotEvents" }, { "const": "aws.iot.IotFactory" }, { "const": "aws.iot.IotFireTvStick" }, { "const": "aws.iot.IotFireTv" }, { "const": "aws.iot.IotGeneric" }, { "const": "aws.iot.IotGreengrassConnector" }, { "const": "aws.iot.IotGreengrass" }, { "const": "aws.iot.IotHardwareBoard" }, { "const": "aws.iot.IotBoard" }, { "const": "aws.iot.IotHouse" }, { "const": "aws.iot.IotHttp" }, { "const": "aws.iot.IotHttp2" }, { "const": "aws.iot.IotJobs" }, { "const": "aws.iot.IotLambda" }, { "const": "aws.iot.IotLightbulb" }, { "const": "aws.iot.IotMedicalEmergency" }, { "const": "aws.iot.IotMqtt" }, { "const": "aws.iot.IotOverTheAirUpdate" }, { "const": "aws.iot.IotPolicyEmergency" }, { "const": "aws.iot.IotPolicy" }, { "const": "aws.iot.IotReportedState" }, { "const": "aws.iot.IotRule" }, { "const": "aws.iot.IotSensor" }, { "const": "aws.iot.IotServo" }, { "const": "aws.iot.IotShadow" }, { "const": "aws.iot.IotSimulator" }, { "const": "aws.iot.IotSitewise" }, { "const": "aws.iot.IotThermostat" }, { "const": "aws.iot.IotThingsGraph" }, { "const": "aws.iot.IotTopic" }, { "const": "aws.iot.IotTravel" }, { "const": "aws.iot.IotUtility" }, { "const": "aws.iot.IotWindfarm" }, { "const": "aws.management.AutoScaling" }, { "const": "aws.management.Chatbot" }, { "const": "aws.management.CloudformationChangeSet" }, { "const": "aws.management.CloudformationStack" }, { "const": "aws.management.CloudformationTemplate" }, { "const": "aws.management.Cloudformation" }, { "const": "aws.management.Cloudtrail" }, { "const": "aws.management.CloudwatchAlarm" }, { "const": "aws.management.CloudwatchEventEventBased" }, { "const": "aws.management.CloudwatchEventTimeBased" }, { "const": "aws.management.CloudwatchRule" }, { "const": "aws.management.Cloudwatch" }, { "const": "aws.management.Codeguru" }, { "const": "aws.management.CommandLineInterface" }, { "const": "aws.management.Config" }, { "const": "aws.management.ControlTower" }, { "const": "aws.management.LicenseManager" }, { "const": "aws.management.ManagedServices" }, { "const": "aws.management.ManagementAndGovernance" }, { "const": "aws.management.ManagementConsole" }, { "const": "aws.management.OpsworksApps" }, { "const": "aws.management.OpsworksDeployments" }, { "const": "aws.management.OpsworksInstances" }, { "const": "aws.management.OpsworksLayers" }, { "const": "aws.management.OpsworksMonitoring" }, { "const": "aws.management.OpsworksPermissions" }, { "const": "aws.management.OpsworksResources" }, { "const": "aws.management.OpsworksStack" }, { "const": "aws.management.Opsworks" }, { "const": "aws.management.OrganizationsAccount" }, { "const": "aws.management.OrganizationsOrganizationalUnit" }, { "const": "aws.management.Organizations" }, { "const": "aws.management.PersonalHealthDashboard" }, { "const": "aws.management.ServiceCatalog" }, { "const": "aws.management.SystemsManagerAutomation" }, { "const": "aws.management.SystemsManagerDocuments" }, { "const": "aws.management.SystemsManagerInventory" }, { "const": "aws.management.SystemsManagerMaintenanceWindows" }, { "const": "aws.management.SystemsManagerOpscenter" }, { "const": "aws.management.SystemsManagerParameterStore" }, { "const": "aws.management.ParameterStore" }, { "const": "aws.management.SystemsManagerPatchManager" }, { "const": "aws.management.SystemsManagerRunCommand" }, { "const": "aws.management.SystemsManagerStateManager" }, { "const": "aws.management.SystemsManager" }, { "const": "aws.management.SSM" }, { "const": "aws.management.TrustedAdvisorChecklistCost" }, { "const": "aws.management.TrustedAdvisorChecklistFaultTolerant" }, { "const": "aws.management.TrustedAdvisorChecklistPerformance" }, { "const": "aws.management.TrustedAdvisorChecklistSecurity" }, { "const": "aws.management.TrustedAdvisorChecklist" }, { "const": "aws.management.TrustedAdvisor" }, { "const": "aws.management.WellArchitectedTool" }, { "const": "aws.media.ElasticTranscoder" }, { "const": "aws.media.ElementalConductor" }, { "const": "aws.media.ElementalDelta" }, { "const": "aws.media.ElementalLive" }, { "const": "aws.media.ElementalMediaconnect" }, { "const": "aws.media.ElementalMediaconvert" }, { "const": "aws.media.ElementalMedialive" }, { "const": "aws.media.ElementalMediapackage" }, { "const": "aws.media.ElementalMediastore" }, { "const": "aws.media.ElementalMediatailor" }, { "const": "aws.media.ElementalServer" }, { "const": "aws.media.KinesisVideoStreams" }, { "const": "aws.media.MediaServices" }, { "const": "aws.migration.ApplicationDiscoveryService" }, { "const": "aws.migration.ADS" }, { "const": "aws.migration.CloudendureMigration" }, { "const": "aws.migration.CEM" }, { "const": "aws.migration.DatabaseMigrationService" }, { "const": "aws.migration.DMS" }, { "const": "aws.migration.DatasyncAgent" }, { "const": "aws.migration.Datasync" }, { "const": "aws.migration.MigrationAndTransfer" }, { "const": "aws.migration.MAT" }, { "const": "aws.migration.MigrationHub" }, { "const": "aws.migration.ServerMigrationService" }, { "const": "aws.migration.SMS" }, { "const": "aws.migration.SnowballEdge" }, { "const": "aws.migration.Snowball" }, { "const": "aws.migration.Snowmobile" }, { "const": "aws.migration.TransferForSftp" }, { "const": "aws.ml.ApacheMxnetOnAWS" }, { "const": "aws.ml.AugmentedAi" }, { "const": "aws.ml.Comprehend" }, { "const": "aws.ml.DeepLearningAmis" }, { "const": "aws.ml.DeepLearningContainers" }, { "const": "aws.ml.DLC" }, { "const": "aws.ml.Deepcomposer" }, { "const": "aws.ml.Deeplens" }, { "const": "aws.ml.Deepracer" }, { "const": "aws.ml.ElasticInference" }, { "const": "aws.ml.Forecast" }, { "const": "aws.ml.FraudDetector" }, { "const": "aws.ml.Kendra" }, { "const": "aws.ml.Lex" }, { "const": "aws.ml.MachineLearning" }, { "const": "aws.ml.Personalize" }, { "const": "aws.ml.Polly" }, { "const": "aws.ml.RekognitionImage" }, { "const": "aws.ml.RekognitionVideo" }, { "const": "aws.ml.Rekognition" }, { "const": "aws.ml.SagemakerGroundTruth" }, { "const": "aws.ml.SagemakerModel" }, { "const": "aws.ml.SagemakerNotebook" }, { "const": "aws.ml.SagemakerTrainingJob" }, { "const": "aws.ml.Sagemaker" }, { "const": "aws.ml.TensorflowOnAWS" }, { "const": "aws.ml.Textract" }, { "const": "aws.ml.Transcribe" }, { "const": "aws.ml.Translate" }, { "const": "aws.mobile.Amplify" }, { "const": "aws.mobile.APIGatewayEndpoint" }, { "const": "aws.mobile.APIGateway" }, { "const": "aws.mobile.Appsync" }, { "const": "aws.mobile.DeviceFarm" }, { "const": "aws.mobile.Mobile" }, { "const": "aws.mobile.Pinpoint" }, { "const": "aws.network.APIGatewayEndpoint" }, { "const": "aws.network.APIGateway" }, { "const": "aws.network.AppMesh" }, { "const": "aws.network.ClientVpn" }, { "const": "aws.network.CloudMap" }, { "const": "aws.network.CloudFrontDownloadDistribution" }, { "const": "aws.network.CloudFrontEdgeLocation" }, { "const": "aws.network.CloudFrontStreamingDistribution" }, { "const": "aws.network.CloudFront" }, { "const": "aws.network.CF" }, { "const": "aws.network.DirectConnect" }, { "const": "aws.network.ElasticLoadBalancing" }, { "const": "aws.network.ELB" }, { "const": "aws.network.ElbApplicationLoadBalancer" }, { "const": "aws.network.ALB" }, { "const": "aws.network.ElbClassicLoadBalancer" }, { "const": "aws.network.CLB" }, { "const": "aws.network.ElbNetworkLoadBalancer" }, { "const": "aws.network.NLB" }, { "const": "aws.network.Endpoint" }, { "const": "aws.network.GlobalAccelerator" }, { "const": "aws.network.GAX" }, { "const": "aws.network.InternetGateway" }, { "const": "aws.network.Nacl" }, { "const": "aws.network.NATGateway" }, { "const": "aws.network.NetworkingAndContentDelivery" }, { "const": "aws.network.PrivateSubnet" }, { "const": "aws.network.Privatelink" }, { "const": "aws.network.PublicSubnet" }, { "const": "aws.network.Route53HostedZone" }, { "const": "aws.network.Route53" }, { "const": "aws.network.RouteTable" }, { "const": "aws.network.SiteToSiteVpn" }, { "const": "aws.network.TransitGateway" }, { "const": "aws.network.VPCCustomerGateway" }, { "const": "aws.network.VPCElasticNetworkAdapter" }, { "const": "aws.network.VPCElasticNetworkInterface" }, { "const": "aws.network.VPCFlowLogs" }, { "const": "aws.network.VPCPeering" }, { "const": "aws.network.VPCRouter" }, { "const": "aws.network.VPCTrafficMirroring" }, { "const": "aws.network.VPC" }, { "const": "aws.network.VpnConnection" }, { "const": "aws.network.VpnGateway" }, { "const": "aws.quantum.Braket" }, { "const": "aws.quantum.QuantumTechnologies" }, { "const": "aws.robotics.RobomakerCloudExtensionRos" }, { "const": "aws.robotics.RobomakerDevelopmentEnvironment" }, { "const": "aws.robotics.RobomakerFleetManagement" }, { "const": "aws.robotics.RobomakerSimulator" }, { "const": "aws.robotics.Robomaker" }, { "const": "aws.robotics.Robotics" }, { "const": "aws.satellite.GroundStation" }, { "const": "aws.satellite.Satellite" }, { "const": "aws.security.AdConnector" }, { "const": "aws.security.Artifact" }, { "const": "aws.security.CertificateAuthority" }, { "const": "aws.security.CertificateManager" }, { "const": "aws.security.ACM" }, { "const": "aws.security.CloudDirectory" }, { "const": "aws.security.Cloudhsm" }, { "const": "aws.security.CloudHSM" }, { "const": "aws.security.Cognito" }, { "const": "aws.security.Detective" }, { "const": "aws.security.DirectoryService" }, { "const": "aws.security.DS" }, { "const": "aws.security.FirewallManager" }, { "const": "aws.security.FMS" }, { "const": "aws.security.Guardduty" }, { "const": "aws.security.IdentityAndAccessManagementIamAccessAnalyzer" }, { "const": "aws.security.IAMAccessAnalyzer" }, { "const": "aws.security.IdentityAndAccessManagementIamAddOn" }, { "const": "aws.security.IdentityAndAccessManagementIamAWSStsAlternate" }, { "const": "aws.security.IdentityAndAccessManagementIamAWSSts" }, { "const": "aws.security.IAMAWSSts" }, { "const": "aws.security.IdentityAndAccessManagementIamDataEncryptionKey" }, { "const": "aws.security.IdentityAndAccessManagementIamEncryptedData" }, { "const": "aws.security.IdentityAndAccessManagementIamLongTermSecurityCredential" }, { "const": "aws.security.IdentityAndAccessManagementIamMfaToken" }, { "const": "aws.security.IdentityAndAccessManagementIamPermissions" }, { "const": "aws.security.IAMPermissions" }, { "const": "aws.security.IdentityAndAccessManagementIamRole" }, { "const": "aws.security.IAMRole" }, { "const": "aws.security.IdentityAndAccessManagementIamTemporarySecurityCredential" }, { "const": "aws.security.IdentityAndAccessManagementIam" }, { "const": "aws.security.IAM" }, { "const": "aws.security.InspectorAgent" }, { "const": "aws.security.Inspector" }, { "const": "aws.security.KeyManagementService" }, { "const": "aws.security.KMS" }, { "const": "aws.security.Macie" }, { "const": "aws.security.ManagedMicrosoftAd" }, { "const": "aws.security.ResourceAccessManager" }, { "const": "aws.security.RAM" }, { "const": "aws.security.SecretsManager" }, { "const": "aws.security.SecurityHubFinding" }, { "const": "aws.security.SecurityHub" }, { "const": "aws.security.SecurityIdentityAndCompliance" }, { "const": "aws.security.ShieldAdvanced" }, { "const": "aws.security.Shield" }, { "const": "aws.security.SimpleAd" }, { "const": "aws.security.SingleSignOn" }, { "const": "aws.security.WAFFilteringRule" }, { "const": "aws.security.WAF" }, { "const": "aws.storage.Backup" }, { "const": "aws.storage.CloudendureDisasterRecovery" }, { "const": "aws.storage.CDR" }, { "const": "aws.storage.EFSInfrequentaccessPrimaryBg" }, { "const": "aws.storage.EFSStandardPrimaryBg" }, { "const": "aws.storage.ElasticBlockStoreEBSSnapshot" }, { "const": "aws.storage.ElasticBlockStoreEBSVolume" }, { "const": "aws.storage.ElasticBlockStoreEBS" }, { "const": "aws.storage.EBS" }, { "const": "aws.storage.ElasticFileSystemEFSFileSystem" }, { "const": "aws.storage.ElasticFileSystemEFS" }, { "const": "aws.storage.EFS" }, { "const": "aws.storage.FsxForLustre" }, { "const": "aws.storage.FsxForWindowsFileServer" }, { "const": "aws.storage.Fsx" }, { "const": "aws.storage.FSx" }, { "const": "aws.storage.MultipleVolumesResource" }, { "const": "aws.storage.S3GlacierArchive" }, { "const": "aws.storage.S3GlacierVault" }, { "const": "aws.storage.S3Glacier" }, { "const": "aws.storage.SimpleStorageServiceS3BucketWithObjects" }, { "const": "aws.storage.SimpleStorageServiceS3Bucket" }, { "const": "aws.storage.SimpleStorageServiceS3Object" }, { "const": "aws.storage.SimpleStorageServiceS3" }, { "const": "aws.storage.S3" }, { "const": "aws.storage.SnowFamilySnowballImportExport" }, { "const": "aws.storage.SnowballEdge" }, { "const": "aws.storage.Snowball" }, { "const": "aws.storage.Snowmobile" }, { "const": "aws.storage.StorageGatewayCachedVolume" }, { "const": "aws.storage.StorageGatewayNonCachedVolume" }, { "const": "aws.storage.StorageGatewayVirtualTapeLibrary" }, { "const": "aws.storage.StorageGateway" }, { "const": "aws.storage.Storage" }, { "const": "azure.analytics.AnalysisServices" }, { "const": "azure.analytics.DataExplorerClusters" }, { "const": "azure.analytics.DataFactories" }, { "const": "azure.analytics.DataLakeAnalytics" }, { "const": "azure.analytics.DataLakeStoreGen1" }, { "const": "azure.analytics.Databricks" }, { "const": "azure.analytics.EventHubClusters" }, { "const": "azure.analytics.EventHubs" }, { "const": "azure.analytics.Hdinsightclusters" }, { "const": "azure.analytics.LogAnalyticsWorkspaces" }, { "const": "azure.analytics.StreamAnalyticsJobs" }, { "const": "azure.analytics.SynapseAnalytics" }, { "const": "azure.compute.AppServices" }, { "const": "azure.compute.AutomanagedVM" }, { "const": "azure.compute.AvailabilitySets" }, { "const": "azure.compute.BatchAccounts" }, { "const": "azure.compute.CitrixVirtualDesktopsEssentials" }, { "const": "azure.compute.CloudServicesClassic" }, { "const": "azure.compute.CloudServices" }, { "const": "azure.compute.CloudsimpleVirtualMachines" }, { "const": "azure.compute.ContainerInstances" }, { "const": "azure.compute.ContainerRegistries**, **ACR" }, { "const": "azure.compute.ACR" }, { "const": "azure.compute.DiskEncryptionSets" }, { "const": "azure.compute.DiskSnapshots" }, { "const": "azure.compute.Disks" }, { "const": "azure.compute.FunctionApps" }, { "const": "azure.compute.ImageDefinitions" }, { "const": "azure.compute.ImageVersions" }, { "const": "azure.compute.KubernetesServices" }, { "const": "azure.compute.AKS" }, { "const": "azure.compute.MeshApplications" }, { "const": "azure.compute.OsImages" }, { "const": "azure.compute.SAPHANAOnAzure" }, { "const": "azure.compute.ServiceFabricClusters" }, { "const": "azure.compute.SharedImageGalleries" }, { "const": "azure.compute.SpringCloud" }, { "const": "azure.compute.VMClassic" }, { "const": "azure.compute.VMImages" }, { "const": "azure.compute.VMLinux" }, { "const": "azure.compute.VMScaleSet" }, { "const": "azure.compute.VMSS" }, { "const": "azure.compute.VMWindows" }, { "const": "azure.compute.VM" }, { "const": "azure.compute.Workspaces" }, { "const": "azure.database.BlobStorage" }, { "const": "azure.database.CacheForRedis" }, { "const": "azure.database.CosmosDb" }, { "const": "azure.database.DataExplorerClusters" }, { "const": "azure.database.DataFactory" }, { "const": "azure.database.DataLake" }, { "const": "azure.database.DatabaseForMariadbServers" }, { "const": "azure.database.DatabaseForMysqlServers" }, { "const": "azure.database.DatabaseForPostgresqlServers" }, { "const": "azure.database.ElasticDatabasePools" }, { "const": "azure.database.ElasticJobAgents" }, { "const": "azure.database.InstancePools" }, { "const": "azure.database.ManagedDatabases" }, { "const": "azure.database.SQLDatabases" }, { "const": "azure.database.SQLDatawarehouse" }, { "const": "azure.database.SQLManagedInstances" }, { "const": "azure.database.SQLServerStretchDatabases" }, { "const": "azure.database.SQLServers" }, { "const": "azure.database.SQLVM" }, { "const": "azure.database.SQL" }, { "const": "azure.database.SsisLiftAndShiftIr" }, { "const": "azure.database.SynapseAnalytics" }, { "const": "azure.database.VirtualClusters" }, { "const": "azure.database.VirtualDatacenter" }, { "const": "azure.devops.ApplicationInsights" }, { "const": "azure.devops.Artifacts" }, { "const": "azure.devops.Boards" }, { "const": "azure.devops.Devops" }, { "const": "azure.devops.DevtestLabs" }, { "const": "azure.devops.LabServices" }, { "const": "azure.devops.Pipelines" }, { "const": "azure.devops.Repos" }, { "const": "azure.devops.TestPlans" }, { "const": "azure.general.Allresources" }, { "const": "azure.general.Azurehome" }, { "const": "azure.general.Developertools" }, { "const": "azure.general.Helpsupport" }, { "const": "azure.general.Information" }, { "const": "azure.general.Managementgroups" }, { "const": "azure.general.Marketplace" }, { "const": "azure.general.Quickstartcenter" }, { "const": "azure.general.Recent" }, { "const": "azure.general.Reservations" }, { "const": "azure.general.Resource" }, { "const": "azure.general.Resourcegroups" }, { "const": "azure.general.Servicehealth" }, { "const": "azure.general.Shareddashboard" }, { "const": "azure.general.Subscriptions" }, { "const": "azure.general.Support" }, { "const": "azure.general.Supportrequests" }, { "const": "azure.general.Tag" }, { "const": "azure.general.Tags" }, { "const": "azure.general.Templates" }, { "const": "azure.general.Twousericon" }, { "const": "azure.general.Userhealthicon" }, { "const": "azure.general.Usericon" }, { "const": "azure.general.Userprivacy" }, { "const": "azure.general.Userresource" }, { "const": "azure.general.Whatsnew" }, { "const": "azure.identity.AccessReview" }, { "const": "azure.identity.ActiveDirectoryConnectHealth" }, { "const": "azure.identity.ActiveDirectory" }, { "const": "azure.identity.ADB2C" }, { "const": "azure.identity.ADDomainServices" }, { "const": "azure.identity.ADIdentityProtection" }, { "const": "azure.identity.ADPrivilegedIdentityManagement" }, { "const": "azure.identity.AppRegistrations" }, { "const": "azure.identity.ConditionalAccess" }, { "const": "azure.identity.EnterpriseApplications" }, { "const": "azure.identity.Groups" }, { "const": "azure.identity.IdentityGovernance" }, { "const": "azure.identity.InformationProtection" }, { "const": "azure.identity.ManagedIdentities" }, { "const": "azure.identity.Users" }, { "const": "azure.integration.APIForFhir" }, { "const": "azure.integration.APIManagement" }, { "const": "azure.integration.AppConfiguration" }, { "const": "azure.integration.DataCatalog" }, { "const": "azure.integration.EventGridDomains" }, { "const": "azure.integration.EventGridSubscriptions" }, { "const": "azure.integration.EventGridTopics" }, { "const": "azure.integration.IntegrationAccounts" }, { "const": "azure.integration.IntegrationServiceEnvironments" }, { "const": "azure.integration.LogicAppsCustomConnector" }, { "const": "azure.integration.LogicApps" }, { "const": "azure.integration.PartnerTopic" }, { "const": "azure.integration.SendgridAccounts" }, { "const": "azure.integration.ServiceBusRelays" }, { "const": "azure.integration.ServiceBus" }, { "const": "azure.integration.ServiceCatalogManagedApplicationDefinitions" }, { "const": "azure.integration.SoftwareAsAService" }, { "const": "azure.integration.StorsimpleDeviceManagers" }, { "const": "azure.integration.SystemTopic" }, { "const": "azure.iot.DeviceProvisioningServices" }, { "const": "azure.iot.DigitalTwins" }, { "const": "azure.iot.IotCentralApplications" }, { "const": "azure.iot.IotHubSecurity" }, { "const": "azure.iot.IotHub" }, { "const": "azure.iot.Maps" }, { "const": "azure.iot.Sphere" }, { "const": "azure.iot.TimeSeriesInsightsEnvironments" }, { "const": "azure.iot.TimeSeriesInsightsEventsSources" }, { "const": "azure.iot.Windows10IotCoreServices" }, { "const": "azure.migration.DataBoxEdge" }, { "const": "azure.migration.DataBox" }, { "const": "azure.migration.DatabaseMigrationServices" }, { "const": "azure.migration.MigrationProjects" }, { "const": "azure.migration.RecoveryServicesVaults" }, { "const": "azure.ml.BatchAI" }, { "const": "azure.ml.BotServices" }, { "const": "azure.ml.CognitiveServices" }, { "const": "azure.ml.GenomicsAccounts" }, { "const": "azure.ml.MachineLearningServiceWorkspaces" }, { "const": "azure.ml.MachineLearningStudioWebServicePlans" }, { "const": "azure.ml.MachineLearningStudioWebServices" }, { "const": "azure.ml.MachineLearningStudioWorkspaces" }, { "const": "azure.mobile.AppServiceMobile" }, { "const": "azure.mobile.MobileEngagement" }, { "const": "azure.mobile.NotificationHubs" }, { "const": "azure.network.ApplicationGateway" }, { "const": "azure.network.ApplicationSecurityGroups" }, { "const": "azure.network.CDNProfiles" }, { "const": "azure.network.Connections" }, { "const": "azure.network.DDOSProtectionPlans" }, { "const": "azure.network.DNSPrivateZones" }, { "const": "azure.network.DNSZones" }, { "const": "azure.network.ExpressrouteCircuits" }, { "const": "azure.network.Firewall" }, { "const": "azure.network.FrontDoors" }, { "const": "azure.network.LoadBalancers" }, { "const": "azure.network.LocalNetworkGateways" }, { "const": "azure.network.NetworkInterfaces" }, { "const": "azure.network.NetworkSecurityGroupsClassic" }, { "const": "azure.network.NetworkWatcher" }, { "const": "azure.network.OnPremisesDataGateways" }, { "const": "azure.network.PublicIpAddresses" }, { "const": "azure.network.ReservedIpAddressesClassic" }, { "const": "azure.network.RouteFilters" }, { "const": "azure.network.RouteTables" }, { "const": "azure.network.ServiceEndpointPolicies" }, { "const": "azure.network.Subnets" }, { "const": "azure.network.TrafficManagerProfiles" }, { "const": "azure.network.VirtualNetworkClassic" }, { "const": "azure.network.VirtualNetworkGateways" }, { "const": "azure.network.VirtualNetworks" }, { "const": "azure.network.VirtualWans" }, { "const": "azure.security.ApplicationSecurityGroups" }, { "const": "azure.security.ConditionalAccess" }, { "const": "azure.security.Defender" }, { "const": "azure.security.ExtendedSecurityUpdates" }, { "const": "azure.security.KeyVaults" }, { "const": "azure.security.SecurityCenter" }, { "const": "azure.security.Sentinel" }, { "const": "azure.storage.ArchiveStorage" }, { "const": "azure.storage.Azurefxtedgefiler" }, { "const": "azure.storage.BlobStorage" }, { "const": "azure.storage.DataBoxEdgeDataBoxGateway" }, { "const": "azure.storage.DataBox" }, { "const": "azure.storage.DataLakeStorage" }, { "const": "azure.storage.GeneralStorage" }, { "const": "azure.storage.NetappFiles" }, { "const": "azure.storage.QueuesStorage" }, { "const": "azure.storage.StorageAccountsClassic" }, { "const": "azure.storage.StorageAccounts" }, { "const": "azure.storage.StorageExplorer" }, { "const": "azure.storage.StorageSyncServices" }, { "const": "azure.storage.StorsimpleDataManagers" }, { "const": "azure.storage.StorsimpleDeviceManagers" }, { "const": "azure.storage.TableStorage" }, { "const": "azure.web.APIConnections" }, { "const": "azure.web.AppServiceCertificates" }, { "const": "azure.web.AppServiceDomains" }, { "const": "azure.web.AppServiceEnvironments" }, { "const": "azure.web.AppServicePlans" }, { "const": "azure.web.AppServices" }, { "const": "azure.web.MediaServices" }, { "const": "azure.web.NotificationHubNamespaces" }, { "const": "azure.web.Search" }, { "const": "azure.web.Signalr" }, { "const": "digitalocean.compute.Containers" }, { "const": "digitalocean.compute.Docker" }, { "const": "digitalocean.compute.DropletConnect" }, { "const": "digitalocean.compute.DropletSnapshot" }, { "const": "digitalocean.compute.Droplet" }, { "const": "digitalocean.compute.K8SCluster" }, { "const": "digitalocean.compute.K8SNodePool" }, { "const": "digitalocean.compute.K8SNode" }, { "const": "digitalocean.database.DbaasPrimaryStandbyMore" }, { "const": "digitalocean.database.DbaasPrimary" }, { "const": "digitalocean.database.DbaasReadOnly" }, { "const": "digitalocean.database.DbaasStandby" }, { "const": "digitalocean.network.Certificate" }, { "const": "digitalocean.network.DomainRegistration" }, { "const": "digitalocean.network.Domain" }, { "const": "digitalocean.network.Firewall" }, { "const": "digitalocean.network.FloatingIp" }, { "const": "digitalocean.network.InternetGateway" }, { "const": "digitalocean.network.LoadBalancer" }, { "const": "digitalocean.network.ManagedVpn" }, { "const": "digitalocean.network.Vpc" }, { "const": "digitalocean.storage.Folder" }, { "const": "digitalocean.storage.Space" }, { "const": "digitalocean.storage.VolumeSnapshot" }, { "const": "digitalocean.storage.Volume" }, { "const": "elastic.agent.Agent" }, { "const": "elastic.agent.Endpoint" }, { "const": "elastic.agent.Fleet" }, { "const": "elastic.agent.Integrations" }, { "const": "elastic.beats.APM" }, { "const": "elastic.beats.Auditbeat" }, { "const": "elastic.beats.Filebeat" }, { "const": "elastic.beats.Functionbeat" }, { "const": "elastic.beats.Heartbeat" }, { "const": "elastic.beats.Metricbeat" }, { "const": "elastic.beats.Packetbeat" }, { "const": "elastic.beats.Winlogbeat" }, { "const": "elastic.elasticsearch.Alerting" }, { "const": "elastic.elasticsearch.Beats" }, { "const": "elastic.elasticsearch.Elasticsearch" }, { "const": "elastic.elasticsearch.ElasticSearch" }, { "const": "elastic.elasticsearch.Kibana" }, { "const": "elastic.elasticsearch.LogstashPipeline" }, { "const": "elastic.elasticsearch.Logstash" }, { "const": "elastic.elasticsearch.LogStash" }, { "const": "elastic.elasticsearch.MachineLearning" }, { "const": "elastic.elasticsearch.ML" }, { "const": "elastic.elasticsearch.MapServices" }, { "const": "elastic.elasticsearch.Maps" }, { "const": "elastic.elasticsearch.Monitoring" }, { "const": "elastic.elasticsearch.SearchableSnapshots" }, { "const": "elastic.elasticsearch.SecuritySettings" }, { "const": "elastic.elasticsearch.SQL" }, { "const": "elastic.elasticsearch.Stack" }, { "const": "elastic.enterprisesearch.AppSearch" }, { "const": "elastic.enterprisesearch.Crawler" }, { "const": "elastic.enterprisesearch.EnterpriseSearch" }, { "const": "elastic.enterprisesearch.SiteSearch" }, { "const": "elastic.enterprisesearch.WorkplaceSearch" }, { "const": "elastic.observability.APM" }, { "const": "elastic.observability.Logs" }, { "const": "elastic.observability.Metrics" }, { "const": "elastic.observability.Observability" }, { "const": "elastic.observability.Uptime" }, { "const": "elastic.orchestration.ECE" }, { "const": "elastic.orchestration.ECK" }, { "const": "elastic.saas.Cloud" }, { "const": "elastic.saas.Elastic" }, { "const": "elastic.security.Endpoint" }, { "const": "elastic.security.Security" }, { "const": "elastic.security.SIEM" }, { "const": "elastic.security.Xdr" }, { "const": "firebase.base.Firebase" }, { "const": "firebase.develop.Authentication" }, { "const": "firebase.develop.Firestore" }, { "const": "firebase.develop.Functions" }, { "const": "firebase.develop.Hosting" }, { "const": "firebase.develop.MLKit" }, { "const": "firebase.develop.RealtimeDatabase" }, { "const": "firebase.develop.Storage" }, { "const": "firebase.extentions.Extensions" }, { "const": "firebase.grow.ABTesting" }, { "const": "firebase.grow.AppIndexing" }, { "const": "firebase.grow.DynamicLinks" }, { "const": "firebase.grow.InAppMessaging" }, { "const": "firebase.grow.Invites" }, { "const": "firebase.grow.Messaging" }, { "const": "firebase.grow.FCM" }, { "const": "firebase.grow.Predictions" }, { "const": "firebase.grow.RemoteConfig" }, { "const": "firebase.quality.AppDistribution" }, { "const": "firebase.quality.CrashReporting" }, { "const": "firebase.quality.Crashlytics" }, { "const": "firebase.quality.PerformanceMonitoring" }, { "const": "firebase.quality.TestLab" }, { "const": "gcp.analytics.Bigquery" }, { "const": "gcp.analytics.BigQuery" }, { "const": "gcp.analytics.Composer" }, { "const": "gcp.analytics.DataCatalog" }, { "const": "gcp.analytics.DataFusion" }, { "const": "gcp.analytics.Dataflow" }, { "const": "gcp.analytics.Datalab" }, { "const": "gcp.analytics.Dataprep" }, { "const": "gcp.analytics.Dataproc" }, { "const": "gcp.analytics.Genomics" }, { "const": "gcp.analytics.Pubsub" }, { "const": "gcp.analytics.PubSub" }, { "const": "gcp.api.APIGateway" }, { "const": "gcp.api.Endpoints" }, { "const": "gcp.compute.AppEngine" }, { "const": "gcp.compute.GAE" }, { "const": "gcp.compute.ComputeEngine" }, { "const": "gcp.compute.GCE" }, { "const": "gcp.compute.ContainerOptimizedOS" }, { "const": "gcp.compute.Functions" }, { "const": "gcp.compute.GCF" }, { "const": "gcp.compute.GKEOnPrem" }, { "const": "gcp.compute.GPU" }, { "const": "gcp.compute.KubernetesEngine" }, { "const": "gcp.compute.GKE" }, { "const": "gcp.compute.Run" }, { "const": "gcp.database.Bigtable" }, { "const": "gcp.database.BigTable" }, { "const": "gcp.database.Datastore" }, { "const": "gcp.database.Firestore" }, { "const": "gcp.database.Memorystore" }, { "const": "gcp.database.Spanner" }, { "const": "gcp.database.SQL" }, { "const": "gcp.devtools.Build" }, { "const": "gcp.devtools.CodeForIntellij" }, { "const": "gcp.devtools.Code" }, { "const": "gcp.devtools.ContainerRegistry" }, { "const": "gcp.devtools.GCR" }, { "const": "gcp.devtools.GradleAppEnginePlugin" }, { "const": "gcp.devtools.IdePlugins" }, { "const": "gcp.devtools.MavenAppEnginePlugin" }, { "const": "gcp.devtools.Scheduler" }, { "const": "gcp.devtools.SDK" }, { "const": "gcp.devtools.SourceRepositories" }, { "const": "gcp.devtools.Tasks" }, { "const": "gcp.devtools.TestLab" }, { "const": "gcp.devtools.ToolsForEclipse" }, { "const": "gcp.devtools.ToolsForPowershell" }, { "const": "gcp.devtools.ToolsForVisualStudio" }, { "const": "gcp.iot.IotCore" }, { "const": "gcp.migration.TransferAppliance" }, { "const": "gcp.ml.AdvancedSolutionsLab" }, { "const": "gcp.ml.AIHub" }, { "const": "gcp.ml.AIPlatformDataLabelingService" }, { "const": "gcp.ml.AIPlatform" }, { "const": "gcp.ml.AutomlNaturalLanguage" }, { "const": "gcp.ml.AutomlTables" }, { "const": "gcp.ml.AutomlTranslation" }, { "const": "gcp.ml.AutomlVideoIntelligence" }, { "const": "gcp.ml.AutomlVision" }, { "const": "gcp.ml.Automl" }, { "const": "gcp.ml.AutoML" }, { "const": "gcp.ml.DialogFlowEnterpriseEdition" }, { "const": "gcp.ml.InferenceAPI" }, { "const": "gcp.ml.JobsAPI" }, { "const": "gcp.ml.NaturalLanguageAPI" }, { "const": "gcp.ml.NLAPI" }, { "const": "gcp.ml.RecommendationsAI" }, { "const": "gcp.ml.SpeechToText" }, { "const": "gcp.ml.STT" }, { "const": "gcp.ml.TextToSpeech" }, { "const": "gcp.ml.TTS" }, { "const": "gcp.ml.TPU" }, { "const": "gcp.ml.TranslationAPI" }, { "const": "gcp.ml.VideoIntelligenceAPI" }, { "const": "gcp.ml.VisionAPI" }, { "const": "gcp.network.Armor" }, { "const": "gcp.network.CDN" }, { "const": "gcp.network.DedicatedInterconnect" }, { "const": "gcp.network.DNS" }, { "const": "gcp.network.ExternalIpAddresses" }, { "const": "gcp.network.FirewallRules" }, { "const": "gcp.network.LoadBalancing" }, { "const": "gcp.network.NAT" }, { "const": "gcp.network.Network" }, { "const": "gcp.network.PartnerInterconnect" }, { "const": "gcp.network.PremiumNetworkTier" }, { "const": "gcp.network.Router" }, { "const": "gcp.network.Routes" }, { "const": "gcp.network.StandardNetworkTier" }, { "const": "gcp.network.TrafficDirector" }, { "const": "gcp.network.VirtualPrivateCloud" }, { "const": "gcp.network.VPC" }, { "const": "gcp.network.VPN" }, { "const": "gcp.operations.Monitoring" }, { "const": "gcp.security.Iam" }, { "const": "gcp.security.IAP" }, { "const": "gcp.security.KeyManagementService" }, { "const": "gcp.security.KMS" }, { "const": "gcp.security.ResourceManager" }, { "const": "gcp.security.SecurityCommandCenter" }, { "const": "gcp.security.SCC" }, { "const": "gcp.security.SecurityScanner" }, { "const": "gcp.storage.Filestore" }, { "const": "gcp.storage.PersistentDisk" }, { "const": "gcp.storage.Storage" }, { "const": "gcp.storage.GCS" }, { "const": "generic.blank.Blank" }, { "const": "generic.compute.Rack" }, { "const": "generic.database.SQL" }, { "const": "generic.device.Mobile" }, { "const": "generic.device.Tablet" }, { "const": "generic.network.Firewall" }, { "const": "generic.network.Router" }, { "const": "generic.network.Subnet" }, { "const": "generic.network.Switch" }, { "const": "generic.network.VPN" }, { "const": "generic.os.Android" }, { "const": "generic.os.Centos" }, { "const": "generic.os.Debian" }, { "const": "generic.os.IOS" }, { "const": "generic.os.LinuxGeneral" }, { "const": "generic.os.Raspbian" }, { "const": "generic.os.RedHat" }, { "const": "generic.os.Suse" }, { "const": "generic.os.Ubuntu" }, { "const": "generic.os.Windows" }, { "const": "generic.place.Datacenter" }, { "const": "generic.storage.Storage" }, { "const": "generic.virtualization.Virtualbox" }, { "const": "generic.virtualization.Vmware" }, { "const": "generic.virtualization.XEN" }, { "const": "ibm.analytics.Analytics" }, { "const": "ibm.analytics.DataIntegration" }, { "const": "ibm.analytics.DataRepositories" }, { "const": "ibm.analytics.DeviceAnalytics" }, { "const": "ibm.analytics.StreamingComputing" }, { "const": "ibm.applications.ActionableInsight" }, { "const": "ibm.applications.Annotate" }, { "const": "ibm.applications.ApiDeveloperPortal" }, { "const": "ibm.applications.ApiPolyglotRuntimes" }, { "const": "ibm.applications.AppServer" }, { "const": "ibm.applications.ApplicationLogic" }, { "const": "ibm.applications.EnterpriseApplications" }, { "const": "ibm.applications.Index" }, { "const": "ibm.applications.IotApplication" }, { "const": "ibm.applications.Microservice" }, { "const": "ibm.applications.MobileApp" }, { "const": "ibm.applications.Ontology" }, { "const": "ibm.applications.OpenSourceTools" }, { "const": "ibm.applications.RuntimeServices" }, { "const": "ibm.applications.SaasApplications" }, { "const": "ibm.applications.ServiceBroker" }, { "const": "ibm.applications.SpeechToText" }, { "const": "ibm.applications.VisualRecognition" }, { "const": "ibm.applications.Visualization" }, { "const": "ibm.blockchain.BlockchainDeveloper" }, { "const": "ibm.blockchain.Blockchain" }, { "const": "ibm.blockchain.CertificateAuthority" }, { "const": "ibm.blockchain.ClientApplication" }, { "const": "ibm.blockchain.Communication" }, { "const": "ibm.blockchain.Consensus" }, { "const": "ibm.blockchain.EventListener" }, { "const": "ibm.blockchain.Event" }, { "const": "ibm.blockchain.ExistingEnterpriseSystems" }, { "const": "ibm.blockchain.HyperledgerFabric" }, { "const": "ibm.blockchain.KeyManagement" }, { "const": "ibm.blockchain.Ledger" }, { "const": "ibm.blockchain.MembershipServicesProviderApi" }, { "const": "ibm.blockchain.Membership" }, { "const": "ibm.blockchain.MessageBus" }, { "const": "ibm.blockchain.Node" }, { "const": "ibm.blockchain.Services" }, { "const": "ibm.blockchain.SmartContract" }, { "const": "ibm.blockchain.TransactionManager" }, { "const": "ibm.blockchain.Wallet" }, { "const": "ibm.compute.BareMetalServer" }, { "const": "ibm.compute.ImageService" }, { "const": "ibm.compute.Instance" }, { "const": "ibm.compute.Key" }, { "const": "ibm.compute.PowerInstance" }, { "const": "ibm.data.Caches" }, { "const": "ibm.data.Cloud" }, { "const": "ibm.data.ConversationTrainedDeployed" }, { "const": "ibm.data.DataServices" }, { "const": "ibm.data.DataSources" }, { "const": "ibm.data.DeviceIdentityService" }, { "const": "ibm.data.DeviceRegistry" }, { "const": "ibm.data.EnterpriseData" }, { "const": "ibm.data.EnterpriseUserDirectory" }, { "const": "ibm.data.FileRepository" }, { "const": "ibm.data.GroundTruth" }, { "const": "ibm.data.Model" }, { "const": "ibm.data.TmsDataInterface" }, { "const": "ibm.devops.ArtifactManagement" }, { "const": "ibm.devops.BuildTest" }, { "const": "ibm.devops.CodeEditor" }, { "const": "ibm.devops.CollaborativeDevelopment" }, { "const": "ibm.devops.ConfigurationManagement" }, { "const": "ibm.devops.ContinuousDeploy" }, { "const": "ibm.devops.ContinuousTesting" }, { "const": "ibm.devops.Devops" }, { "const": "ibm.devops.Provision" }, { "const": "ibm.devops.ReleaseManagement" }, { "const": "ibm.general.CloudMessaging" }, { "const": "ibm.general.CloudServices" }, { "const": "ibm.general.Cloudant" }, { "const": "ibm.general.CognitiveServices" }, { "const": "ibm.general.DataSecurity" }, { "const": "ibm.general.Enterprise" }, { "const": "ibm.general.GovernanceRiskCompliance" }, { "const": "ibm.general.IBMContainers" }, { "const": "ibm.general.IBMPublicCloud" }, { "const": "ibm.general.IdentityAccessManagement" }, { "const": "ibm.general.IdentityProvider" }, { "const": "ibm.general.InfrastructureSecurity" }, { "const": "ibm.general.Internet" }, { "const": "ibm.general.IotCloud" }, { "const": "ibm.general.MicroservicesApplication" }, { "const": "ibm.general.MicroservicesMesh" }, { "const": "ibm.general.MonitoringLogging" }, { "const": "ibm.general.Monitoring" }, { "const": "ibm.general.ObjectStorage" }, { "const": "ibm.general.OfflineCapabilities" }, { "const": "ibm.general.Openwhisk" }, { "const": "ibm.general.PeerCloud" }, { "const": "ibm.general.RetrieveRank" }, { "const": "ibm.general.Scalable" }, { "const": "ibm.general.ServiceDiscoveryConfiguration" }, { "const": "ibm.general.TextToSpeech" }, { "const": "ibm.general.TransformationConnectivity" }, { "const": "ibm.infrastructure.Channels" }, { "const": "ibm.infrastructure.CloudMessaging" }, { "const": "ibm.infrastructure.Dashboard" }, { "const": "ibm.infrastructure.Diagnostics" }, { "const": "ibm.infrastructure.EdgeServices" }, { "const": "ibm.infrastructure.EnterpriseMessaging" }, { "const": "ibm.infrastructure.EventFeed" }, { "const": "ibm.infrastructure.InfrastructureServices" }, { "const": "ibm.infrastructure.InterserviceCommunication" }, { "const": "ibm.infrastructure.LoadBalancingRouting" }, { "const": "ibm.infrastructure.MicroservicesMesh" }, { "const": "ibm.infrastructure.MobileBackend" }, { "const": "ibm.infrastructure.MobileProviderNetwork" }, { "const": "ibm.infrastructure.MonitoringLogging" }, { "const": "ibm.infrastructure.Monitoring" }, { "const": "ibm.infrastructure.PeerServices" }, { "const": "ibm.infrastructure.ServiceDiscoveryConfiguration" }, { "const": "ibm.infrastructure.TransformationConnectivity" }, { "const": "ibm.management.AlertNotification" }, { "const": "ibm.management.ApiManagement" }, { "const": "ibm.management.CloudManagement" }, { "const": "ibm.management.ClusterManagement" }, { "const": "ibm.management.ContentManagement" }, { "const": "ibm.management.DataServices" }, { "const": "ibm.management.DeviceManagement" }, { "const": "ibm.management.InformationGovernance" }, { "const": "ibm.management.ItServiceManagement" }, { "const": "ibm.management.Management" }, { "const": "ibm.management.MonitoringMetrics" }, { "const": "ibm.management.ProcessManagement" }, { "const": "ibm.management.ProviderCloudPortalService" }, { "const": "ibm.management.PushNotifications" }, { "const": "ibm.management.ServiceManagementTools" }, { "const": "ibm.network.Bridge" }, { "const": "ibm.network.DirectLink" }, { "const": "ibm.network.Enterprise" }, { "const": "ibm.network.Firewall" }, { "const": "ibm.network.FloatingIp" }, { "const": "ibm.network.Gateway" }, { "const": "ibm.network.InternetServices" }, { "const": "ibm.network.LoadBalancerListener" }, { "const": "ibm.network.LoadBalancerPool" }, { "const": "ibm.network.LoadBalancer" }, { "const": "ibm.network.LoadBalancingRouting" }, { "const": "ibm.network.PublicGateway" }, { "const": "ibm.network.Region" }, { "const": "ibm.network.Router" }, { "const": "ibm.network.Rules" }, { "const": "ibm.network.Subnet" }, { "const": "ibm.network.TransitGateway" }, { "const": "ibm.network.Vpc" }, { "const": "ibm.network.VpnConnection" }, { "const": "ibm.network.VpnGateway" }, { "const": "ibm.network.VpnPolicy" }, { "const": "ibm.security.ApiSecurity" }, { "const": "ibm.security.BlockchainSecurityService" }, { "const": "ibm.security.DataSecurity" }, { "const": "ibm.security.Firewall" }, { "const": "ibm.security.Gateway" }, { "const": "ibm.security.GovernanceRiskCompliance" }, { "const": "ibm.security.IdentityAccessManagement" }, { "const": "ibm.security.IdentityProvider" }, { "const": "ibm.security.InfrastructureSecurity" }, { "const": "ibm.security.PhysicalSecurity" }, { "const": "ibm.security.SecurityMonitoringIntelligence" }, { "const": "ibm.security.SecurityServices" }, { "const": "ibm.security.TrustendComputing" }, { "const": "ibm.security.Vpn" }, { "const": "ibm.social.Communities" }, { "const": "ibm.social.FileSync" }, { "const": "ibm.social.LiveCollaboration" }, { "const": "ibm.social.Messaging" }, { "const": "ibm.social.Networking" }, { "const": "ibm.storage.BlockStorage" }, { "const": "ibm.storage.ObjectStorage" }, { "const": "ibm.user.Browser" }, { "const": "ibm.user.Device" }, { "const": "ibm.user.IntegratedDigitalExperiences" }, { "const": "ibm.user.PhysicalEntity" }, { "const": "ibm.user.Sensor" }, { "const": "ibm.user.User" }, { "const": "k8s.chaos.ChaosMesh" }, { "const": "k8s.chaos.LitmusChaos" }, { "const": "k8s.clusterconfig.HPA" }, { "const": "k8s.clusterconfig.HorizontalPodAutoscaler" }, { "const": "k8s.clusterconfig.Limits" }, { "const": "k8s.clusterconfig.LimitRange" }, { "const": "k8s.clusterconfig.Quota" }, { "const": "k8s.compute.Cronjob" }, { "const": "k8s.compute.Deploy" }, { "const": "k8s.compute.Deployment" }, { "const": "k8s.compute.DS" }, { "const": "k8s.compute.DaemonSet" }, { "const": "k8s.compute.Job" }, { "const": "k8s.compute.Pod" }, { "const": "k8s.compute.RS" }, { "const": "k8s.compute.ReplicaSet" }, { "const": "k8s.compute.STS" }, { "const": "k8s.compute.StatefulSet" }, { "const": "k8s.controlplane.API" }, { "const": "k8s.controlplane.APIServer" }, { "const": "k8s.controlplane.CCM" }, { "const": "k8s.controlplane.CM" }, { "const": "k8s.controlplane.ControllerManager" }, { "const": "k8s.controlplane.KProxy" }, { "const": "k8s.controlplane.KubeProxy" }, { "const": "k8s.controlplane.Kubelet" }, { "const": "k8s.controlplane.Sched" }, { "const": "k8s.controlplane.Scheduler" }, { "const": "k8s.ecosystem.ExternalDns" }, { "const": "k8s.ecosystem.Helm" }, { "const": "k8s.ecosystem.Krew" }, { "const": "k8s.ecosystem.Kustomize" }, { "const": "k8s.group.NS" }, { "const": "k8s.group.Namespace" }, { "const": "k8s.infra.ETCD" }, { "const": "k8s.infra.Master" }, { "const": "k8s.infra.Node" }, { "const": "k8s.network.Ep" }, { "const": "k8s.network.Endpoint" }, { "const": "k8s.network.Ing" }, { "const": "k8s.network.Ingress" }, { "const": "k8s.network.Netpol" }, { "const": "k8s.network.NetworkPolicy" }, { "const": "k8s.network.SVC" }, { "const": "k8s.network.Service" }, { "const": "k8s.others.CRD" }, { "const": "k8s.others.PSP" }, { "const": "k8s.podconfig.CM" }, { "const": "k8s.podconfig.ConfigMap" }, { "const": "k8s.podconfig.Secret" }, { "const": "k8s.rbac.CRole" }, { "const": "k8s.rbac.ClusterRole" }, { "const": "k8s.rbac.CRB" }, { "const": "k8s.rbac.ClusterRoleBinding" }, { "const": "k8s.rbac.Group" }, { "const": "k8s.rbac.RB" }, { "const": "k8s.rbac.RoleBinding" }, { "const": "k8s.rbac.Role" }, { "const": "k8s.rbac.SA" }, { "const": "k8s.rbac.ServiceAccount" }, { "const": "k8s.rbac.User" }, { "const": "k8s.storage.PV" }, { "const": "k8s.storage.PersistentVolume" }, { "const": "k8s.storage.PVC" }, { "const": "k8s.storage.PersistentVolumeClaim" }, { "const": "k8s.storage.SC" }, { "const": "k8s.storage.StorageClass" }, { "const": "k8s.storage.Vol" }, { "const": "k8s.storage.Volume" }, { "const": "oci.compute.AutoscaleWhite" }, { "const": "oci.compute.Autoscale" }, { "const": "oci.compute.BMWhite" }, { "const": "oci.compute.BareMetalWhite" }, { "const": "oci.compute.BM" }, { "const": "oci.compute.BareMetal" }, { "const": "oci.compute.ContainerWhite" }, { "const": "oci.compute.Container" }, { "const": "oci.compute.FunctionsWhite" }, { "const": "oci.compute.Functions" }, { "const": "oci.compute.InstancePoolsWhite" }, { "const": "oci.compute.InstancePools" }, { "const": "oci.compute.OCIRWhite" }, { "const": "oci.compute.OCIRegistryWhite" }, { "const": "oci.compute.OCIR" }, { "const": "oci.compute.OCIRegistry" }, { "const": "oci.compute.OKEWhite" }, { "const": "oci.compute.ContainerEngineWhite" }, { "const": "oci.compute.OKE" }, { "const": "oci.compute.ContainerEngine" }, { "const": "oci.compute.VMWhite" }, { "const": "oci.compute.VirtualMachineWhite" }, { "const": "oci.compute.VM" }, { "const": "oci.compute.VirtualMachine" }, { "const": "oci.connectivity.BackboneWhite" }, { "const": "oci.connectivity.Backbone" }, { "const": "oci.connectivity.CDNWhite" }, { "const": "oci.connectivity.CDN" }, { "const": "oci.connectivity.CustomerDatacenter" }, { "const": "oci.connectivity.CustomerDatacntrWhite" }, { "const": "oci.connectivity.CustomerPremiseWhite" }, { "const": "oci.connectivity.CustomerPremise" }, { "const": "oci.connectivity.DisconnectedRegionsWhite" }, { "const": "oci.connectivity.DisconnectedRegions" }, { "const": "oci.connectivity.DNSWhite" }, { "const": "oci.connectivity.DNS" }, { "const": "oci.connectivity.FastConnectWhite" }, { "const": "oci.connectivity.FastConnect" }, { "const": "oci.connectivity.NATGatewayWhite" }, { "const": "oci.connectivity.NATGateway" }, { "const": "oci.connectivity.VPNWhite" }, { "const": "oci.connectivity.VPN" }, { "const": "oci.database.AutonomousWhite" }, { "const": "oci.database.ADBWhite" }, { "const": "oci.database.Autonomous" }, { "const": "oci.database.ADB" }, { "const": "oci.database.BigdataServiceWhite" }, { "const": "oci.database.BigdataService" }, { "const": "oci.database.DatabaseServiceWhite" }, { "const": "oci.database.DBServiceWhite" }, { "const": "oci.database.DatabaseService" }, { "const": "oci.database.DBService" }, { "const": "oci.database.DataflowApacheWhite" }, { "const": "oci.database.DataflowApache" }, { "const": "oci.database.DcatWhite" }, { "const": "oci.database.Dcat" }, { "const": "oci.database.DisWhite" }, { "const": "oci.database.Dis" }, { "const": "oci.database.DMSWhite" }, { "const": "oci.database.DMS" }, { "const": "oci.database.ScienceWhite" }, { "const": "oci.database.Science" }, { "const": "oci.database.StreamWhite" }, { "const": "oci.database.Stream" }, { "const": "oci.devops.APIGatewayWhite" }, { "const": "oci.devops.APIGateway" }, { "const": "oci.devops.APIServiceWhite" }, { "const": "oci.devops.APIService" }, { "const": "oci.devops.ResourceMgmtWhite" }, { "const": "oci.devops.ResourceMgmt" }, { "const": "oci.governance.AuditWhite" }, { "const": "oci.governance.Audit" }, { "const": "oci.governance.CompartmentsWhite" }, { "const": "oci.governance.Compartments" }, { "const": "oci.governance.GroupsWhite" }, { "const": "oci.governance.Groups" }, { "const": "oci.governance.LoggingWhite" }, { "const": "oci.governance.Logging" }, { "const": "oci.governance.OCIDWhite" }, { "const": "oci.governance.OCID" }, { "const": "oci.governance.PoliciesWhite" }, { "const": "oci.governance.Policies" }, { "const": "oci.governance.TaggingWhite" }, { "const": "oci.governance.Tagging" }, { "const": "oci.monitoring.AlarmWhite" }, { "const": "oci.monitoring.Alarm" }, { "const": "oci.monitoring.EmailWhite" }, { "const": "oci.monitoring.Email" }, { "const": "oci.monitoring.EventsWhite" }, { "const": "oci.monitoring.Events" }, { "const": "oci.monitoring.HealthCheckWhite" }, { "const": "oci.monitoring.HealthCheck" }, { "const": "oci.monitoring.NotificationsWhite" }, { "const": "oci.monitoring.Notifications" }, { "const": "oci.monitoring.QueueWhite" }, { "const": "oci.monitoring.Queue" }, { "const": "oci.monitoring.SearchWhite" }, { "const": "oci.monitoring.Search" }, { "const": "oci.monitoring.TelemetryWhite" }, { "const": "oci.monitoring.Telemetry" }, { "const": "oci.monitoring.WorkflowWhite" }, { "const": "oci.monitoring.Workflow" }, { "const": "oci.network.DrgWhite" }, { "const": "oci.network.Drg" }, { "const": "oci.network.FirewallWhite" }, { "const": "oci.network.Firewall" }, { "const": "oci.network.InternetGatewayWhite" }, { "const": "oci.network.InternetGateway" }, { "const": "oci.network.LoadBalancerWhite" }, { "const": "oci.network.LoadBalancer" }, { "const": "oci.network.RouteTableWhite" }, { "const": "oci.network.RouteTable" }, { "const": "oci.network.SecurityListsWhite" }, { "const": "oci.network.SecurityLists" }, { "const": "oci.network.ServiceGatewayWhite" }, { "const": "oci.network.ServiceGateway" }, { "const": "oci.network.VcnWhite" }, { "const": "oci.network.Vcn" }, { "const": "oci.security.CloudGuardWhite" }, { "const": "oci.security.CloudGuard" }, { "const": "oci.security.DDOSWhite" }, { "const": "oci.security.DDOS" }, { "const": "oci.security.EncryptionWhite" }, { "const": "oci.security.Encryption" }, { "const": "oci.security.IDAccessWhite" }, { "const": "oci.security.IDAccess" }, { "const": "oci.security.KeyManagementWhite" }, { "const": "oci.security.KeyManagement" }, { "const": "oci.security.MaxSecurityZoneWhite" }, { "const": "oci.security.MaxSecurityZone" }, { "const": "oci.security.VaultWhite" }, { "const": "oci.security.Vault" }, { "const": "oci.security.WAFWhite" }, { "const": "oci.security.WAF" }, { "const": "oci.storage.BackupRestoreWhite" }, { "const": "oci.storage.BackupRestore" }, { "const": "oci.storage.BlockStorageCloneWhite" }, { "const": "oci.storage.BlockStorageClone" }, { "const": "oci.storage.BlockStorageWhite" }, { "const": "oci.storage.BlockStorage" }, { "const": "oci.storage.BucketsWhite" }, { "const": "oci.storage.Buckets" }, { "const": "oci.storage.DataTransferWhite" }, { "const": "oci.storage.DataTransfer" }, { "const": "oci.storage.ElasticPerformanceWhite" }, { "const": "oci.storage.ElasticPerformance" }, { "const": "oci.storage.FileStorageWhite" }, { "const": "oci.storage.FileStorage" }, { "const": "oci.storage.ObjectStorageWhite" }, { "const": "oci.storage.ObjectStorage" }, { "const": "oci.storage.StorageGatewayWhite" }, { "const": "oci.storage.StorageGateway" }, { "const": "onprem.aggregator.Fluentd" }, { "const": "onprem.aggregator.Vector" }, { "const": "onprem.analytics.Beam" }, { "const": "onprem.analytics.Databricks" }, { "const": "onprem.analytics.Dbt" }, { "const": "onprem.analytics.Dremio" }, { "const": "onprem.analytics.Flink" }, { "const": "onprem.analytics.Hadoop" }, { "const": "onprem.analytics.Hive" }, { "const": "onprem.analytics.Metabase" }, { "const": "onprem.analytics.Norikra" }, { "const": "onprem.analytics.Powerbi" }, { "const": "onprem.analytics.PowerBI" }, { "const": "onprem.analytics.Presto" }, { "const": "onprem.analytics.Singer" }, { "const": "onprem.analytics.Spark" }, { "const": "onprem.analytics.Storm" }, { "const": "onprem.analytics.Superset" }, { "const": "onprem.analytics.Tableau" }, { "const": "onprem.auth.Boundary" }, { "const": "onprem.auth.BuzzfeedSso" }, { "const": "onprem.auth.Oauth2Proxy" }, { "const": "onprem.cd.Spinnaker" }, { "const": "onprem.cd.TektonCli" }, { "const": "onprem.cd.Tekton" }, { "const": "onprem.certificates.CertManager" }, { "const": "onprem.certificates.LetsEncrypt" }, { "const": "onprem.ci.Circleci" }, { "const": "onprem.ci.CircleCI" }, { "const": "onprem.ci.Concourseci" }, { "const": "onprem.ci.ConcourseCI" }, { "const": "onprem.ci.Droneci" }, { "const": "onprem.ci.DroneCI" }, { "const": "onprem.ci.GithubActions" }, { "const": "onprem.ci.Gitlabci" }, { "const": "onprem.ci.GitlabCI" }, { "const": "onprem.ci.Jenkins" }, { "const": "onprem.ci.Teamcity" }, { "const": "onprem.ci.TC" }, { "const": "onprem.ci.Travisci" }, { "const": "onprem.ci.TravisCI" }, { "const": "onprem.ci.Zuulci" }, { "const": "onprem.ci.ZuulCI" }, { "const": "onprem.client.Client" }, { "const": "onprem.client.User" }, { "const": "onprem.client.Users" }, { "const": "onprem.compute.Nomad" }, { "const": "onprem.compute.Server" }, { "const": "onprem.container.Containerd" }, { "const": "onprem.container.Crio" }, { "const": "onprem.container.Docker" }, { "const": "onprem.container.Firecracker" }, { "const": "onprem.container.Gvisor" }, { "const": "onprem.container.K3S" }, { "const": "onprem.container.Lxc" }, { "const": "onprem.container.LXC" }, { "const": "onprem.container.Rkt" }, { "const": "onprem.container.RKT" }, { "const": "onprem.database.Cassandra" }, { "const": "onprem.database.Clickhouse" }, { "const": "onprem.database.ClickHouse" }, { "const": "onprem.database.Cockroachdb" }, { "const": "onprem.database.CockroachDB" }, { "const": "onprem.database.Couchbase" }, { "const": "onprem.database.Couchdb" }, { "const": "onprem.database.CouchDB" }, { "const": "onprem.database.Dgraph" }, { "const": "onprem.database.Druid" }, { "const": "onprem.database.Hbase" }, { "const": "onprem.database.HBase" }, { "const": "onprem.database.Influxdb" }, { "const": "onprem.database.InfluxDB" }, { "const": "onprem.database.Janusgraph" }, { "const": "onprem.database.JanusGraph" }, { "const": "onprem.database.Mariadb" }, { "const": "onprem.database.MariaDB" }, { "const": "onprem.database.Mongodb" }, { "const": "onprem.database.MongoDB" }, { "const": "onprem.database.Mssql" }, { "const": "onprem.database.MSSQL" }, { "const": "onprem.database.Mysql" }, { "const": "onprem.database.MySQL" }, { "const": "onprem.database.Neo4J" }, { "const": "onprem.database.Oracle" }, { "const": "onprem.database.Postgresql" }, { "const": "onprem.database.PostgreSQL" }, { "const": "onprem.database.Scylla" }, { "const": "onprem.dns.Coredns" }, { "const": "onprem.dns.Powerdns" }, { "const": "onprem.etl.Embulk" }, { "const": "onprem.gitops.Argocd" }, { "const": "onprem.gitops.ArgoCD" }, { "const": "onprem.gitops.Flagger" }, { "const": "onprem.gitops.Flux" }, { "const": "onprem.groupware.Nextcloud" }, { "const": "onprem.iac.Ansible" }, { "const": "onprem.iac.Atlantis" }, { "const": "onprem.iac.Awx" }, { "const": "onprem.iac.Puppet" }, { "const": "onprem.iac.Terraform" }, { "const": "onprem.identity.Dex" }, { "const": "onprem.inmemory.Aerospike" }, { "const": "onprem.inmemory.Hazelcast" }, { "const": "onprem.inmemory.Memcached" }, { "const": "onprem.inmemory.Redis" }, { "const": "onprem.logging.Fluentbit" }, { "const": "onprem.logging.FluentBit" }, { "const": "onprem.logging.Graylog" }, { "const": "onprem.logging.Loki" }, { "const": "onprem.logging.Rsyslog" }, { "const": "onprem.logging.RSyslog" }, { "const": "onprem.logging.SyslogNg" }, { "const": "onprem.messaging.Centrifugo" }, { "const": "onprem.mlops.Mlflow" }, { "const": "onprem.mlops.Polyaxon" }, { "const": "onprem.monitoring.Cortex" }, { "const": "onprem.monitoring.Datadog" }, { "const": "onprem.monitoring.Dynatrace" }, { "const": "onprem.monitoring.Grafana" }, { "const": "onprem.monitoring.Humio" }, { "const": "onprem.monitoring.Mimir" }, { "const": "onprem.monitoring.Nagios" }, { "const": "onprem.monitoring.Newrelic" }, { "const": "onprem.monitoring.PrometheusOperator" }, { "const": "onprem.monitoring.Prometheus" }, { "const": "onprem.monitoring.Sentry" }, { "const": "onprem.monitoring.Splunk" }, { "const": "onprem.monitoring.Thanos" }, { "const": "onprem.monitoring.Zabbix" }, { "const": "onprem.network.Ambassador" }, { "const": "onprem.network.Apache" }, { "const": "onprem.network.Bind9" }, { "const": "onprem.network.Caddy" }, { "const": "onprem.network.Consul" }, { "const": "onprem.network.Envoy" }, { "const": "onprem.network.Etcd" }, { "const": "onprem.network.ETCD" }, { "const": "onprem.network.Glassfish" }, { "const": "onprem.network.Gunicorn" }, { "const": "onprem.network.Haproxy" }, { "const": "onprem.network.HAProxy" }, { "const": "onprem.network.Internet" }, { "const": "onprem.network.Istio" }, { "const": "onprem.network.Jbossas" }, { "const": "onprem.network.Jetty" }, { "const": "onprem.network.Kong" }, { "const": "onprem.network.Linkerd" }, { "const": "onprem.network.Nginx" }, { "const": "onprem.network.Ocelot" }, { "const": "onprem.network.OpenServiceMesh" }, { "const": "onprem.network.OSM" }, { "const": "onprem.network.Opnsense" }, { "const": "onprem.network.OPNSense" }, { "const": "onprem.network.Pfsense" }, { "const": "onprem.network.PFSense" }, { "const": "onprem.network.Pomerium" }, { "const": "onprem.network.Powerdns" }, { "const": "onprem.network.Tomcat" }, { "const": "onprem.network.Traefik" }, { "const": "onprem.network.Tyk" }, { "const": "onprem.network.Vyos" }, { "const": "onprem.network.VyOS" }, { "const": "onprem.network.Wildfly" }, { "const": "onprem.network.Yarp" }, { "const": "onprem.network.Zookeeper" }, { "const": "onprem.proxmox.Pve" }, { "const": "onprem.proxmox.ProxmoxVE" }, { "const": "onprem.queue.Activemq" }, { "const": "onprem.queue.ActiveMQ" }, { "const": "onprem.queue.Celery" }, { "const": "onprem.queue.Emqx" }, { "const": "onprem.queue.EMQX" }, { "const": "onprem.queue.Kafka" }, { "const": "onprem.queue.Nats" }, { "const": "onprem.queue.Rabbitmq" }, { "const": "onprem.queue.RabbitMQ" }, { "const": "onprem.queue.Zeromq" }, { "const": "onprem.queue.ZeroMQ" }, { "const": "onprem.registry.Harbor" }, { "const": "onprem.registry.Jfrog" }, { "const": "onprem.search.Solr" }, { "const": "onprem.security.Bitwarden" }, { "const": "onprem.security.Trivy" }, { "const": "onprem.security.Vault" }, { "const": "onprem.storage.CephOsd" }, { "const": "onprem.storage.CEPH_OSD" }, { "const": "onprem.storage.Ceph" }, { "const": "onprem.storage.CEPH" }, { "const": "onprem.storage.Glusterfs" }, { "const": "onprem.storage.Portworx" }, { "const": "onprem.tracing.Jaeger" }, { "const": "onprem.tracing.Tempo" }, { "const": "onprem.vcs.Git" }, { "const": "onprem.vcs.Gitea" }, { "const": "onprem.vcs.Github" }, { "const": "onprem.vcs.Gitlab" }, { "const": "onprem.vcs.Svn" }, { "const": "onprem.workflow.Airflow" }, { "const": "onprem.workflow.Digdag" }, { "const": "onprem.workflow.Kubeflow" }, { "const": "onprem.workflow.KubeFlow" }, { "const": "onprem.workflow.Nifi" }, { "const": "onprem.workflow.NiFi" }, { "const": "openstack.apiproxies.EC2API" }, { "const": "openstack.applicationlifecycle.Freezer" }, { "const": "openstack.applicationlifecycle.Masakari" }, { "const": "openstack.applicationlifecycle.Murano" }, { "const": "openstack.applicationlifecycle.Solum" }, { "const": "openstack.baremetal.Cyborg" }, { "const": "openstack.baremetal.Ironic" }, { "const": "openstack.billing.Cloudkitty" }, { "const": "openstack.billing.CloudKitty" }, { "const": "openstack.compute.Nova" }, { "const": "openstack.compute.Qinling" }, { "const": "openstack.compute.Zun" }, { "const": "openstack.containerservices.Kuryr" }, { "const": "openstack.deployment.Ansible" }, { "const": "openstack.deployment.Charms" }, { "const": "openstack.deployment.Chef" }, { "const": "openstack.deployment.Helm" }, { "const": "openstack.deployment.Kolla" }, { "const": "openstack.deployment.KollaAnsible" }, { "const": "openstack.deployment.Tripleo" }, { "const": "openstack.deployment.TripleO" }, { "const": "openstack.frontend.Horizon" }, { "const": "openstack.monitoring.Monasca" }, { "const": "openstack.monitoring.Telemetry" }, { "const": "openstack.multiregion.Tricircle" }, { "const": "openstack.networking.Designate" }, { "const": "openstack.networking.Neutron" }, { "const": "openstack.networking.Octavia" }, { "const": "openstack.nfv.Tacker" }, { "const": "openstack.optimization.Congress" }, { "const": "openstack.optimization.Rally" }, { "const": "openstack.optimization.Vitrage" }, { "const": "openstack.optimization.Watcher" }, { "const": "openstack.orchestration.Blazar" }, { "const": "openstack.orchestration.Heat" }, { "const": "openstack.orchestration.Mistral" }, { "const": "openstack.orchestration.Senlin" }, { "const": "openstack.orchestration.Zaqar" }, { "const": "openstack.packaging.LOCI" }, { "const": "openstack.packaging.Puppet" }, { "const": "openstack.packaging.RPM" }, { "const": "openstack.sharedservices.Barbican" }, { "const": "openstack.sharedservices.Glance" }, { "const": "openstack.sharedservices.Karbor" }, { "const": "openstack.sharedservices.Keystone" }, { "const": "openstack.sharedservices.Searchlight" }, { "const": "openstack.storage.Cinder" }, { "const": "openstack.storage.Manila" }, { "const": "openstack.storage.Swift" }, { "const": "openstack.user.Openstackclient" }, { "const": "openstack.user.OpenStackClient" }, { "const": "openstack.workloadprovisioning.Magnum" }, { "const": "openstack.workloadprovisioning.Sahara" }, { "const": "openstack.workloadprovisioning.Trove" }, { "const": "outscale.compute.Compute" }, { "const": "outscale.compute.DirectConnect" }, { "const": "outscale.network.ClientVpn" }, { "const": "outscale.network.InternetService" }, { "const": "outscale.network.LoadBalancer" }, { "const": "outscale.network.NatService" }, { "const": "outscale.network.Net" }, { "const": "outscale.network.SiteToSiteVpng" }, { "const": "outscale.security.Firewall" }, { "const": "outscale.security.IdentityAndAccessManagement" }, { "const": "outscale.storage.SimpleStorageService" }, { "const": "outscale.storage.Storage" }, { "const": "programming.flowchart.Action" }, { "const": "programming.flowchart.Collate" }, { "const": "programming.flowchart.Database" }, { "const": "programming.flowchart.Decision" }, { "const": "programming.flowchart.Delay" }, { "const": "programming.flowchart.Display" }, { "const": "programming.flowchart.Document" }, { "const": "programming.flowchart.InputOutput" }, { "const": "programming.flowchart.Inspection" }, { "const": "programming.flowchart.InternalStorage" }, { "const": "programming.flowchart.LoopLimit" }, { "const": "programming.flowchart.ManualInput" }, { "const": "programming.flowchart.ManualLoop" }, { "const": "programming.flowchart.Merge" }, { "const": "programming.flowchart.MultipleDocuments" }, { "const": "programming.flowchart.OffPageConnectorLeft" }, { "const": "programming.flowchart.OffPageConnectorRight" }, { "const": "programming.flowchart.Or" }, { "const": "programming.flowchart.PredefinedProcess" }, { "const": "programming.flowchart.Preparation" }, { "const": "programming.flowchart.Sort" }, { "const": "programming.flowchart.StartEnd" }, { "const": "programming.flowchart.StoredData" }, { "const": "programming.flowchart.SummingJunction" }, { "const": "programming.framework.Angular" }, { "const": "programming.framework.Backbone" }, { "const": "programming.framework.Django" }, { "const": "programming.framework.Ember" }, { "const": "programming.framework.Fastapi" }, { "const": "programming.framework.FastAPI" }, { "const": "programming.framework.Flask" }, { "const": "programming.framework.Flutter" }, { "const": "programming.framework.Graphql" }, { "const": "programming.framework.GraphQL" }, { "const": "programming.framework.Laravel" }, { "const": "programming.framework.Micronaut" }, { "const": "programming.framework.Rails" }, { "const": "programming.framework.React" }, { "const": "programming.framework.Spring" }, { "const": "programming.framework.Starlette" }, { "const": "programming.framework.Svelte" }, { "const": "programming.framework.Vue" }, { "const": "programming.language.Bash" }, { "const": "programming.language.C" }, { "const": "programming.language.Cpp" }, { "const": "programming.language.Csharp" }, { "const": "programming.language.Dart" }, { "const": "programming.language.Elixir" }, { "const": "programming.language.Erlang" }, { "const": "programming.language.Go" }, { "const": "programming.language.Java" }, { "const": "programming.language.Javascript" }, { "const": "programming.language.JavaScript" }, { "const": "programming.language.Kotlin" }, { "const": "programming.language.Latex" }, { "const": "programming.language.Matlab" }, { "const": "programming.language.Nodejs" }, { "const": "programming.language.NodeJS" }, { "const": "programming.language.Php" }, { "const": "programming.language.PHP" }, { "const": "programming.language.Python" }, { "const": "programming.language.R" }, { "const": "programming.language.Ruby" }, { "const": "programming.language.Rust" }, { "const": "programming.language.Scala" }, { "const": "programming.language.Swift" }, { "const": "programming.language.Typescript" }, { "const": "programming.language.TypeScript" }, { "const": "programming.runtime.Dapr" }, { "const": "saas.alerting.Newrelic" }, { "const": "saas.alerting.Opsgenie" }, { "const": "saas.alerting.Pushover" }, { "const": "saas.alerting.Xmatters" }, { "const": "saas.alerting.Pagerduty" }, { "const": "saas.analytics.Dataform" }, { "const": "saas.analytics.Snowflake" }, { "const": "saas.analytics.Stitch" }, { "const": "saas.cdn.Akamai" }, { "const": "saas.cdn.Cloudflare" }, { "const": "saas.cdn.Fastly" }, { "const": "saas.chat.Discord" }, { "const": "saas.chat.Line" }, { "const": "saas.chat.Mattermost" }, { "const": "saas.chat.Messenger" }, { "const": "saas.chat.RocketChat" }, { "const": "saas.chat.Slack" }, { "const": "saas.chat.Teams" }, { "const": "saas.chat.Telegram" }, { "const": "saas.communication.Twilio" }, { "const": "saas.filesharing.Nextcloud" }, { "const": "saas.identity.Auth0" }, { "const": "saas.identity.Okta" }, { "const": "saas.logging.Datadog" }, { "const": "saas.logging.DataDog" }, { "const": "saas.logging.Newrelic" }, { "const": "saas.logging.NewRelic" }, { "const": "saas.logging.Papertrail" }, { "const": "saas.media.Cloudinary" }, { "const": "saas.recommendation.Recombee" }, { "const": "saas.social.Facebook" }, { "const": "saas.social.Twitter" } ] }, "relates": { "type": "array", "description": "Relations of the resource", "items": { "$ref": "#/definitions/Relates" } }, "of": { "type": "array", "description": "Clusters and groups can have a list of resources inside them", "items": { "$ref": "#/definitions/Resource" } } }, "required": [ "id", "name", "type" ], "title": "Resource" }, "Relates": { "type": "object", "additionalProperties": false, "properties": { "to": { "type": "string", "description": "A chain of identifiers to a resource via a dot from root" }, "direction": { "type": "string", "description": "A direction of a relationship", "oneOf": [ { "const": "incoming" }, { "const": "outgoing" }, { "const": "bidirectional" }, { "const": "undirected" } ] }, "label": { "type": "string", "description": "A label of a relationship" }, "color": { "type": "string", "description": "A color of a relationship" }, "style": { "type": "string", "description": "A style of a relationship" } }, "required": [ "to", "direction" ], "title": "Relate" }, "Style": { "type": "object", "additionalProperties": false, "properties": { "graph": { "$ref": "#/definitions/Graph" }, "node": { "$ref": "#/definitions/Node" }, "edge": { "$ref": "#/definitions/Edge" } }, "title": "Style" }, "Node": { "type": "object", "additionalProperties": false, "properties": { "area": { "type": "number", "description": "Indicates the preferred area for a node or empty cluster. For patchwork only" }, "class": { "type": "string", "description": "Classnames to attach to the node, edge, graph, or cluster's SVG element. For svg only" }, "color": { "type": "string", "description": "Basic drawing color for graphics, not text" }, "colorscheme": { "type": "string", "description": "A color scheme namespace: the context for interpreting color names" }, "comment": { "type": "string", "description": "Comments are inserted into output" }, "distortion": { "type": "number", "description": "Distortion factor for shape=polygon" }, "fillcolor": { "type": "string", "description": "Color used to fill the background of a node or cluster" }, "fixedsize": { "type": "boolean", "description": "Whether to use the specified width and height attributes to choose node size (rather than sizing to fit the node contents)" }, "fontcolor": { "type": "string", "description": "Color used for text" }, "fontname": { "type": "string", "description": "Font used for text" }, "fontsize": { "type": "number", "description": "Font size, in points, used for text" }, "gradientangle": { "type": "number", "description": "If a gradient fill is being used, this determines the angle of the fill" }, "group": { "type": "string", "description": "Name for a group of nodes, for bundling edges avoiding crossings. For dot only" }, "height": { "type": "string", "description": "Height of node, in inches" }, "href": { "type": "string", "description": "Synonym for URL. For map, postscript, svg only" }, "id": { "type": "string", "description": "Identifier for graph objects. For map, postscript, svg only" }, "image": { "type": "string", "description": "Gives the name of a file containing an image to be displayed inside a node" }, "imagepos": { "type": "string", "description": "Controls how an image is positioned within its containing node" }, "imagescale": { "type": "boolean", "description": "Controls how an image fills its containing node" }, "label": { "type": "string", "description": "Text label attached to objects" }, "labelloc": { "type": "string", "description": "Vertical placement of labels for nodes, root graphs and clusters" }, "layer": { "type": "string", "description": "Specifies layers in which the node, edge or cluster is present" }, "margin": { "type": "number", "description": "For graphs, this sets x and y margins of canvas, in inches" }, "nojustify": { "type": "boolean", "description": "Whether to justify multiline text vs the previous text line (rather than the side of the container)" }, "ordering": { "type": "string", "description": "Constrains the left-to-right ordering of node edges. For dot only" }, "orientation": { "type": "number", "description": "node shape rotation angle, or graph orientation" }, "penwidth": { "type": "number", "description": "Specifies the width of the pen, in points, used to draw lines and curves" }, "peripheries": { "type": "number", "description": "Set number of peripheries used in polygonal shapes and cluster boundaries" }, "pin": { "type": "boolean", "description": "Keeps the node at the node's given input position. For neato, fdp only" }, "pos": { "type": "string", "description": "Position of node, or spline control points. For neato, fdp only" }, "rects": { "type": "string", "description": "Rectangles for fields of records, in points. For write only" }, "regular": { "type": "boolean", "description": "If true, force polygon to be regular" }, "root": { "type": "string", "description": "Specifies nodes to be used as the center of the layout. For twopi, circo only" }, "samplepoints": { "type": "number", "description": "Gives the number of points used for a circle/ellipse node" }, "shape": { "type": "string", "description": "Sets the shape of a node" }, "shapefile": { "type": "string", "description": "A file containing user-supplied node content" }, "showboxes": { "type": "number", "description": "Print guide boxes for debugging. For dot only" }, "sides": { "type": "number", "description": "Number of sides when shape=polygon" }, "skew": { "type": "number", "description": "Skew factor for shape=polygon" }, "sortv": { "type": "number", "description": "Sort order of graph components for ordering packmode packing" }, "style": { "type": "string", "description": "Set style information for components of the graph" }, "target": { "type": "string", "description": "If the object has a URL, this attribute determines which window of the browser is used for the URL. For map, svg only" }, "tooltip": { "type": "string", "description": "Tooltip (mouse hover text) attached to the node, edge, cluster, or graph. For cmap, svg only" }, "URL": { "type": "string", "description": "Hyperlinks incorporated into device-dependent output. For map, postscript, svg only" }, "vertices": { "type": "array", "description": "Sets the coordinates of the vertices of the node's polygon, in inches. For write only" }, "width": { "type": "number", "description": "Width of node, in inches" }, "xlabel": { "type": "string", "description": "External label for a node or edge" }, "xlp": { "type": "string", "description": "Position of an exterior label, in points. For write only" }, "z": { "type": "number", "description": "Z-coordinate value for 3D layouts and displays" } }, "title": "Node" }, "Graph": { "type": "object", "additionalProperties": false, "properties": { "_background": { "type": "string", "description": "A string in the xdot format specifying an arbitrary background" }, "bb": { "type": "string", "description": "Bounding box of drawing in points. For write only" }, "beautify": { "type": "boolean", "description": "Whether to draw leaf nodes uniformly in a circle around the root node in sfdp. For sfdp only" }, "bgcolor": { "type": "string", "description": "Canvas background color" }, "center": { "type": "boolean", "description": "Whether to center the drawing in the output canvas" }, "charset": { "type": "string", "description": "Character encoding used when interpreting string input as a text label" }, "class": { "type": "string", "description": "Classnames to attach to the node, edge, graph, or cluster's SVG element. For svg only" }, "clusterrank": { "type": "string", "description": "Mode used for handling clusters. For dot only" }, "colorscheme": { "type": "string", "description": "A color scheme namespace: the context for interpreting color names" }, "comment": { "type": "string", "description": "Comments are inserted into output" }, "compound": { "type": "boolean", "description": "If true, allow edges between clusters. For dot only" }, "concentrate": { "type": "boolean", "description": "If true, use edge concentrators" }, "Damping": { "type": "number", "description": "Factor damping force motions. For neato only" }, "defaultdist": { "type": "number", "description": "The distance between nodes in separate connected components. For neato only" }, "dim": { "type": "number", "description": "Set the number of dimensions used for the layout. For neato, fdp, sfdp only" }, "dimen": { "type": "number", "description": "Set the number of dimensions used for rendering. For neato, fdp, sfdp only" }, "diredgeconstraints": { "type": "string", "description": "Whether to constrain most edges to point downwards. For neato only" }, "dpi": { "type": "number", "description": "Specifies the expected number of pixels per inch on a display device. For bitmap output, svg only" }, "epsilon": { "type": "number", "description": "Terminating condition. For neato only" }, "esep": { "type": "number", "description": "Margin used around polygons for purposes of spline edge routing. For neato only" }, "fontcolor": { "type": "string", "description": "Color used for text" }, "fontname": { "type": "string", "description": "Font used for text" }, "fontnames": { "type": "string", "description": "Allows user control of how basic fontnames are represented in SVG output. For svg only" }, "fontpath": { "type": "string", "description": "Directory list used by libgd to search for bitmap fonts" }, "fontsize": { "type": "number", "description": "Font size, in points, used for text" }, "forcelabels": { "type": "boolean", "description": "Whether to force placement of all xlabels, even if overlapping" }, "gradientangle": { "type": "number", "description": "If a gradient fill is being used, this determines the angle of the fill" }, "href": { "type": "string", "description": "Synonym for URL. For map, postscript, svg only" }, "id": { "type": "string", "description": "Identifier for graph objects. For map, postscript, svg only" }, "imagepath": { "type": "string", "description": "A list of directories in which to look for image files" }, "inputscale": { "type": "number", "description": "Scales the input positions to convert between length units. For neato, fdp only" }, "K": { "type": "number", "description": "Spring constant used in virtual physical model. For fdp, sfdp only" }, "label": { "type": "string", "description": "Text label attached to objects" }, "label_scheme": { "type": "number", "description": "Whether to treat a node whose name has the form |edgelabel|* as a special node representing an edge label. For sfdp only" }, "labeljust": { "type": "string", "description": "Justification for graph & cluster labels" }, "labelloc": { "type": "string", "description": "Vertical placement of labels for nodes, root graphs and clusters" }, "landscape": { "type": "boolean", "description": "If true, the graph is rendered in landscape mode" }, "layerlistsep": { "type": "string", "description": "The separator characters used to split attributes of type layerRange into a list of ranges" }, "layers": { "type": "array", "description": "A linearly ordered list of layer names attached to the graph" }, "layerselect": { "type": "string", "description": "Selects a list of layers to be emitted" }, "layersep": { "type": "string", "description": "The separator characters for splitting the layers attribute into a list of layer names" }, "layout": { "type": "string", "description": "Which layout engine to use" }, "levels": { "type": "number", "description": "Number of levels allowed in the multilevel scheme. For sfdp only" }, "levelsgap": { "type": "number", "description": "strictness of neato level constraints. For neato only" }, "lheight": { "type": "number", "description": "Height of graph or cluster label, in inches. For write only" }, "linelength": { "type": "number", "description": "How long strings should get before overflowing to next line, for text output" }, "lp": { "type": "string", "description": "Label center position. For write only" }, "lwidth": { "type": "number", "description": "Width of graph or cluster label, in inches. For write only" }, "margin": { "type": "number", "description": "For graphs, this sets x and y margins of canvas, in inches" }, "maxiter": { "type": "number", "description": "Sets the number of iterations used. For neato, fdp only" }, "mclimit": { "type": "number", "description": "Scale factor for mincross (mc) edge crossing minimiser parameters. For dot only" }, "mindist": { "type": "number", "description": "Specifies the minimum separation between all nodes. For circo only" }, "mode": { "type": "string", "description": "Technique for optimizing the layout. For neato only" }, "model": { "type": "string", "description": "Specifies how the distance matrix is computed for the input graph. For neato only" }, "newrank": { "type": "boolean", "description": "Whether to use a single global ranking, ignoring clusters. For dot only" }, "nodesep": { "type": "number", "description": "In dot, nodesep specifies the minimum space between two adjacent nodes in the same rank, in inches" }, "nojustify": { "type": "boolean", "description": "Whether to justify multiline text vs the previous text line (rather than the side of the container)" }, "normalize": { "type": "number", "description": "normalizes coordinates of final layout. For neato, fdp, sfdp, twopi, circo only" }, "notranslate": { "type": "boolean", "description": "Whether to avoid translating layout to the origin point. For neato only" }, "nslimit": { "type": "number", "description": "Sets number of iterations in network simplex applications. For dot only" }, "nslimit1": { "type": "number", "description": "Sets number of iterations in network simplex applications. For dot only" }, "oneblock": { "type": "boolean", "description": "Whether to draw circo graphs around one circle. For circo only" }, "ordering": { "type": "string", "description": "Constrains the left-to-right ordering of node edges. For dot only" }, "orientation": { "type": "number", "description": "node shape rotation angle, or graph orientation" }, "outputorder": { "type": "string", "description": "Specify order in which nodes and edges are drawn" }, "overlap": { "type": "string", "description": "Determines if and how node overlaps should be removed. For fdp, neato only" }, "overlap_scaling": { "type": "number", "description": "Scale layout by factor, to reduce node overlap. For prism, neato, sfdp, fdp, circo, twopi only" }, "overlap_shrink": { "type": "boolean", "description": "Whether the overlap removal algorithm should perform a compression pass to reduce the size of the layout. For prism only" }, "pack": { "type": "boolean", "description": "Whether each connected component of the graph should be laid out separately, and then the graphs packed together" }, "packmode": { "type": "string", "description": "How connected components should be packed" }, "pad": { "type": "number", "description": "Inches to extend the drawing area around the minimal area needed to draw the graph" }, "page": { "type": "number", "description": "Width and height of output pages, in inches" }, "pagedir": { "type": "string", "description": "The order in which pages are emitted" }, "quadtree": { "type": "string", "description": "Quadtree scheme to use. For sfdp only" }, "quantum": { "type": "number", "description": "If quantum > 0.0, node label dimensions will be rounded to integral multiples of the quantum" }, "rankdir": { "type": "string", "description": "Sets direction of graph layout. For dot only" }, "ranksep": { "type": "number", "description": "Specifies separation between ranks. For dot, twopi only" }, "ratio": { "type": "number", "description": "Sets the aspect ratio (drawing height/drawing width) for the drawing" }, "remincross": { "type": "boolean", "description": "If there are multiple clusters, whether to run edge crossing minimization a second time. For dot only" }, "repulsiveforce": { "type": "number", "description": "The power of the repulsive force used in an extended Fruchterman-Reingold. For sfdp only" }, "resolution": { "type": "number", "description": "Synonym for dpi. For bitmap output, svg only" }, "root": { "type": "string", "description": "Specifies nodes to be used as the center of the layout. For twopi, circo only" }, "rotate": { "type": "number", "description": "If rotate=90, sets drawing orientation to landscape" }, "rotation": { "type": "number", "description": "Rotates the final layout counter-clockwise by the specified number of degrees. For sfdp only" }, "scale": { "type": "number", "description": "Scales layout by the given factor after the initial layout. For neato, twopi only" }, "searchsize": { "type": "number", "description": "During network simplex, the maximum number of edges with negative cut values to search when looking for an edge with minimum cut value. For dot only" }, "sep": { "type": "string", "description": "Margin to leave around nodes when removing node overlap. For fdp, neato only" }, "showboxes": { "type": "number", "description": "Print guide boxes for debugging. For dot only" }, "size": { "type": "number", "description": "Maximum width and height of drawing, in inches" }, "smoothing": { "type": "string", "description": "Specifies a post-processing step used to smooth out an uneven distribution of nodes. For sfdp only" }, "sortv": { "type": "number", "description": "Sort order of graph components for ordering packmode packing" }, "splines": { "type": ["boolean", "string"], "description": "Controls how, and if, edges are represented" }, "start": { "type": "string", "description": "Parameter used to determine the initial layout of nodes. For neato, fdp, sfdp only" }, "style": { "type": "string", "description": "Set style information for components of the graph" }, "stylesheet": { "type": "string", "description": "A URL or pathname specifying an XML style sheet, used in SVG output. For svg only" }, "target": { "type": "string", "description": "If the object has a URL, this attribute determines which window of the browser is used for the URL. For map, svg only" }, "TBbalance": { "type": "string", "description": "Which rank to move floating (loose) nodes to. For dot only" }, "tooltip": { "type": "string", "description": "Tooltip (mouse hover text) attached to the node, edge, cluster, or graph. For cmap, svg only" }, "truecolor": { "type": "boolean", "description": "Whether internal bitmap rendering relies on a truecolor color model or uses. For bitmap output only" }, "URL": { "type": "string", "description": "Hyperlinks incorporated into device-dependent output. For map, postscript, svg only" }, "viewport": { "type": "string", "description": "Clipping window on final drawing" }, "voro_margin": { "type": "number", "description": "Tuning margin of Voronoi technique. For neato, fdp, sfdp, twopi, circo only" }, "xdotversion": { "type": "string", "description": "Determines the version of xdot used in output. For xdot only" } }, "title": "Graph" }, "Edge": { "type": "object", "additionalProperties": false, "properties": { "arrowhead": { "type": "string", "description": "Style of arrowhead on the head node of an edge" }, "arrowsize": { "type": "number", "description": "Multiplicative scale factor for arrowheads" }, "arrowtail": { "type": "string", "description": "Style of arrowhead on the tail node of an edge" }, "class": { "type": "string", "description": "Classnames to attach to the node, edge, graph, or cluster's SVG element. For svg only" }, "color": { "type": "string", "description": "Basic drawing color for graphics, not text" }, "colorscheme":{ "type": "string", "description": "A color scheme namespace: the context for interpreting color names" }, "comment": { "type": "string", "description": "Comments are inserted into output" }, "constraint": { "type": "boolean", "description": "If false, the edge is not used in ranking the nodes. For dot only" }, "decorate": { "type": "boolean", "description": "Whether to connect the edge label to the edge with a line" }, "dir": { "type": "string", "description": "Edge type for drawing arrowheads" }, "edgehref": { "type": "string", "description": "Synonym for edgeURL. For map, svg only" }, "edgetarget": { "type": "string", "description": "Browser window to use for the edgeURL link. For map, svg only" }, "edgetooltip": { "type": "string", "description": "Tooltip annotation attached to the non-label part of an edge. For cmap, svg only" }, "edgeURL": { "type": "string", "description": "The link for the non-label parts of an edge. For map, svg only" }, "fillcolor": { "type": "string", "description": "Color used to fill the background of a node or cluster" }, "fontcolor": { "type": "string", "description": "Color used for text" }, "fontname": { "type": "string", "description": "Font used for text" }, "fontsize": { "type": "number", "description": "Font size, in points, used for text" }, "head_lp": { "type": "string", "description": "Center position of an edge's head label. For write only" }, "headclip": { "type": "boolean", "description": "If true, the head of an edge is clipped to the boundary of the head node" }, "headhref": { "type": "string", "description": "Synonym for headURL. For map, svg only" }, "headlabel": { "type": "string", "description": "Text label to be placed near head of edge" }, "headport": { "type": "string", "description": "Indicates where on the head node to attach the head of the edge" }, "headtarget": { "type": "string", "description": "Browser window to use for the headURL link. For map, svg only" }, "headtooltip": { "type": "string", "description": "Tooltip annotation attached to the head of an edge. For cmap, svg only" }, "headURL": { "type": "string", "description": "If defined, headURL is output as part of the head label of the edge. For map, svg only" }, "href": { "type": "string", "description": "Synonym for URL. For map, postscript, svg only" }, "id": { "type": "string", "description": "Identifier for graph objects. For map, postscript, svg only" }, "label": { "type": "string", "description": "Text label attached to objects" }, "labelangle": { "type": "number", "description": "The angle (in degrees) in polar coordinates of the head & tail edge labels" }, "labeldistance": { "type": "number", "description": "Scaling factor for the distance of headlabel / taillabel from the head / tail nodes" }, "labelfloat": { "type": "boolean", "description": "If true, allows edge labels to be less constrained in position" }, "labelfontcolor": { "type": "string", "description": "Color used for headlabel and taillabel" }, "labelfontname": { "type": "string", "description": "Font for headlabel and taillabel" }, "labelfontsize": { "type": "number", "description": "Font size of headlabel and taillabel" }, "labelhref": { "type": "string", "description": "Synonym for labelURL. For map, svg only" }, "labeltarget": { "type": "string", "description": "Browser window to open labelURL links in. For map, svg only" }, "labeltooltip": { "type": "string", "description": "Tooltip annotation attached to label of an edge. For cmap, svg only" }, "labelURL": { "type": "string", "description": "If defined, labelURL is the link used for the label of an edge. For map, svg only" }, "layer": { "type": "string", "description": "Specifies layers in which the node, edge or cluster is present" }, "len": { "type": "number", "description": "Preferred edge length, in inches. For neato, fdp only" }, "lhead": { "type": "string", "description": "Logical head of an edge. For dot only" }, "lp": { "type": "string", "description": "Label center position. For write only" }, "ltail": { "type": "string", "description": "Logical tail of an edge. For dot only" }, "minlen": { "type": "number", "description": "Minimum edge length (rank difference between head and tail). For dot only" }, "nojustify": { "type": "boolean", "description": "Whether to justify multiline text vs the previous text line (rather than the side of the container)" }, "penwidth": { "type": "number", "description": "Specifies the width of the pen, in points, used to draw lines and curves" }, "pos": { "type": "string", "description": "Position of node, or spline control points. For neato, fdp only" }, "samehead": { "type": "string", "description": "Edges with the same head and the same samehead value are aimed at the same point on the head. For dot only" }, "sametail": { "type": "string", "description": "Edges with the same tail and the same sametail value are aimed at the same point on the tail. For dot only" }, "showboxes": { "type": "number", "description": "Print guide boxes for debugging. For dot only" }, "style": { "type": "string", "description": "Set style information for components of the graph" }, "tail_lp": { "type": "string", "description": "Position of an edge's tail label, in points. For write only" }, "tailclip": { "type": "boolean", "description": "If true, the tail of an edge is clipped to the boundary of the tail node" }, "tailhref": { "type": "string", "description": "Synonym for tailURL. For map, svg only" }, "taillabel": { "type": "string", "description": "Text label to be placed near tail of edge" }, "tailport": { "type": "string", "description": "Indicates where on the tail node to attach the tail of the edge" }, "tailtarget": { "type": "string", "description": "Browser window to use for the tailURL link. For map, svg only" }, "tailtooltip":{ "type": "string", "description": "Tooltip annotation attached to the tail of an edge. For cmap, svg only" }, "tailURL": { "type": "string", "description": "If defined, tailURL is output as part of the tail label of the edge. For map, svg only" }, "target": { "type": "string", "description": "If the object has a URL, this attribute determines which window of the browser is used for the URL. For map, svg only" }, "tooltip": { "type": "string", "description": "Tooltip (mouse hover text) attached to the node, edge, cluster, or graph. For cmap, svg only" }, "URL": { "type": "string", "description": "Hyperlinks incorporated into device-dependent output. For map, postscript, svg only" }, "weight": { "type": "number", "description": "Weight of edge" }, "xlabel": { "type": "string", "description": "External label for a node or edge" }, "xlp": { "type": "string", "description": "Position of an exterior label, in points. For write only" } }, "title": "Edge" } } } ================================================ FILE: pyproject.toml ================================================ [tool.ruff] target-version = "py39" src = ["src"] select = ["ALL"] line-length = 120 ignore = [ "A002", "D", "EM101", "I", "PTH123", "TRY003", "RET504", "S113", "S311", "UP007", "C901", "PTH109", ] [tool.ruff.per-file-ignores] "__init__.py" = [ "D104", "F401", ] "schema.py" = [ "A003", ] [tool.ruff.flake8-quotes] docstring-quotes = "double" inline-quotes = "single" ================================================ FILE: requirements/dev.txt ================================================ isort==5.9.3 darglint==1.8.1 ruff==0.0.278 yamllint==1.26.3 ================================================ FILE: requirements/ops.txt ================================================ project-version==0.7.3 setuptools==59.6.0 twine==3.7.1 wheel==0.37.1 ================================================ FILE: requirements/project.txt ================================================ diagrams==0.23.3 pydantic==2.0.3 pyyaml==6.0.1 ================================================ FILE: setup.cfg ================================================ [isort] known_local_folder=threads line_length=120 multi_line_output=3 include_trailing_comma=True force_grid_wrap=True combine_as_imports=True ================================================ FILE: setup.py ================================================ """ Setup the package. """ from setuptools import ( find_packages, setup, ) with open('README.md', 'r', encoding='utf-8') as read_me: long_description = read_me.read() with open('requirements/project.txt', 'r') as f: requirements = f.read().splitlines() with open('.project-version', 'r') as project_version_file: project_version = project_version_file.read().strip() setup( version=project_version, name='diagrams-as-code', description='Diagrams as code: declarative configurations using YAML for drawing cloud system architectures.', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/dmytrostriletskyi/diagrams-as-code', project_urls={ 'Issue Tracker': 'https://github.com/dmytrostriletskyi/diagrams-as-code/issues', 'Source Code': 'https://github.com/dmytrostriletskyi/diagrams-as-code', 'Download': 'https://github.com/dmytrostriletskyi/diagrams-as-code/tags', }, license='MIT', author='Dmytro Striletskyi', author_email='dmytro.striletskyi@gmail.com', packages=find_packages(), install_requires=requirements, classifiers=[ 'Operating System :: OS Independent', 'Intended Audience :: Developers', 'License :: OSI Approved :: MIT License', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', ], entry_points={ 'console_scripts': [ 'diagrams-as-code = diagrams_as_code.entrypoint:entrypoint', ], }, )