Showing preview only (667K chars total). Download the full file or copy to clipboard to get everything.
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)
[](https://github.com/dmytrostriletskyi/diagrams-as-code/releases)
[](https://pypi.python.org/pypi/diagrams-as-code)
[](https://pepy.tech/project/diagrams-as-code)
[](https://pypi.python.org/pypi/diagrams-as-code/)
[](https://pypi.python.org/pypi/diagrams-as-code/)

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) |
|-----------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
|  |  |  |
| [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) |
|-----------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
|  |  |  |
### 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`:
<details>
<summary>Open Illustration</summary>

</details>
Right after then, open a `YAML` file and click on `No JSON schema` at to bottom-right corner:
<details>
<summary>Open Illustration</summary>

</details>
It will open a panel where you can choose the newly created schema with the name `Diagrams as code`:
<details>
<summary>Open Illustration</summary>

</details>
As a result, you will experience syntax highlighting when typing:
<details>
<summary>Open Illustration</summary>

</details>
#### 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
```
<details>
<summary>Open Illustration</summary>

</details>
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
```
<details>
<summary>Open Illustration</summary>

</details>
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
```
<details>
<summary>Open Illustration</summary>

</details>
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
```
<details>
<summary>Open Illustration</summary>

</details>
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 '<Group: [' + representation[1:-1] + ']>'
================================================
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` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/analytics/analytic-db.png" alt="AnalyticDb"> |
| `alibabacloud.analytics.ClickHouse` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/analytics/click-house.png" alt="ClickHouse"> |
| `alibabacloud.analytics.DataLakeAnalytics` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/analytics/data-lake-analytics.png" alt="DataLakeAnalytics"> |
| `alibabacloud.analytics.ElaticMapReduce` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/analytics/elatic-map-reduce.png" alt="ElaticMapReduce"> |
| `alibabacloud.analytics.OpenSearch` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/analytics/open-search.png" alt="OpenSearch"> |
### Application
| Type | Alias | Image |
|-------------------------------------------------------|--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| `alibabacloud.application.ApiGateway` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/application/api-gateway.png" alt="ApiGateway"> |
| `alibabacloud.application.BeeBot` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/application/bee-bot.png" alt="BeeBot"> |
| `alibabacloud.application.BlockchainAsAService` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/application/blockchain-as-a-service.png" alt="BlockchainAsAService"> |
| `alibabacloud.application.CloudCallCenter` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/application/cloud-call-center.png" alt="CloudCallCenter"> |
| `alibabacloud.application.CodePipeline` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/application/code-pipeline.png" alt="CodePipeline"> |
| `alibabacloud.application.DirectMail` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/application/direct-mail.png" alt="DirectMail"> |
| `alibabacloud.application.LogService` | `alibabacloud.application.SLS` | <img width="90" src="../../docs/images/resources/alibabacloud/application/log-service.png" alt="LogService"> |
| `alibabacloud.application.MessageNotificationService` | `alibabacloud.application.MNS` | <img width="90" src="../../docs/images/resources/alibabacloud/application/message-notification-service.png" alt="MessageNotificationService"> |
| `alibabacloud.application.NodeJsPerformancePlatform` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/application/node-js-performance-platform.png" alt="NodeJsPerformancePlatform"> |
| `alibabacloud.application.OpenSearch` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/application/open-search.png" alt="OpenSearch"> |
| `alibabacloud.application.PerformanceTestingService` | `alibabacloud.application.PTS` | <img width="90" src="../../docs/images/resources/alibabacloud/application/performance-testing-service.png" alt="PerformanceTestingService"> |
| `alibabacloud.application.RdCloud` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/application/rd-cloud.png" alt="RdCloud"> |
| `alibabacloud.application.SmartConversationAnalysis` | `alibabacloud.application.SCA` | <img width="90" src="../../docs/images/resources/alibabacloud/application/smart-conversation-analysis.png" alt="SmartConversationAnalysis"> |
| `alibabacloud.application.Yida` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/application/yida.png" alt="Yida"> |
### Communication
| Type | Alias | Image |
|-----------------------------------------|-------|----------------------------------------------------------------------------------------------------------------|
| `alibabacloud.communication.DirectMail` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/communication/direct-mail.png" alt="DirectMail"> |
| `alibabacloud.communication.MobilePush` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/communication/mobile-push.png" alt="MobilePush"> |
### Compute
| Type | Alias | Image |
|--------------------------------------------------------|-----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|
| `alibabacloud.compute.AutoScaling` | `alibabacloud.compute.ESS` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/auto-scaling.png" alt="AutoScaling"> |
| `alibabacloud.compute.BatchCompute` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/batch-compute.png" alt="BatchCompute"> |
| `alibabacloud.compute.ContainerRegistry` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/container-registry.png" alt="ContainerRegistry"> |
| `alibabacloud.compute.ContainerService` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/container-service.png" alt="ContainerService"> |
| `alibabacloud.compute.ElasticComputeService` | `alibabacloud.compute.ECS` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/elastic-compute-service.png" alt="ElasticComputeService"> |
| `alibabacloud.compute.ElasticContainerInstance` | `alibabacloud.compute.ECI` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/elastic-container-instance.png" alt="ElasticContainerInstance"> |
| `alibabacloud.compute.ElasticHighPerformanceComputing` | `alibabacloud.compute.EHPC` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/elastic-high-performance-computing.png" alt="ElasticHighPerformanceComputing"> |
| `alibabacloud.compute.ElasticSearch` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/elastic-search.png" alt="ElasticSearch"> |
| `alibabacloud.compute.FunctionCompute` | `alibabacloud.compute.FC` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/function-compute.png" alt="FunctionCompute"> |
| `alibabacloud.compute.OperationOrchestrationService` | `alibabacloud.compute.OOS` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/operation-orchestration-service.png" alt="OperationOrchestrationService"> |
| `alibabacloud.compute.ResourceOrchestrationService` | `alibabacloud.compute.ROS` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/resource-orchestration-service.png" alt="ResourceOrchestrationService"> |
| `alibabacloud.compute.ServerLoadBalancer` | `alibabacloud.compute.SLB` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/server-load-balancer.png" alt="ServerLoadBalancer"> |
| `alibabacloud.compute.ServerlessAppEngine` | `alibabacloud.compute.SAE` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/serverless-app-engine.png" alt="ServerlessAppEngine"> |
| `alibabacloud.compute.SimpleApplicationServer` | `alibabacloud.compute.SAS` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/simple-application-server.png" alt="SimpleApplicationServer"> |
| `alibabacloud.compute.WebAppService` | `alibabacloud.compute.WAS` | <img width="90" src="../../docs/images/resources/alibabacloud/compute/web-app-service.png" alt="WebAppService"> |
### Database
| Type | Alias | Image |
|------------------------------------------------------------|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `alibabacloud.database.ApsaradbCassandra` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/database/apsaradb-cassandra.png" alt="ApsaradbCassandra"> |
| `alibabacloud.database.ApsaradbHbase` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/database/apsaradb-hbase.png" alt="ApsaradbHbase"> |
| `alibabacloud.database.ApsaradbMemcache` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/database/apsaradb-memcache.png" alt="ApsaradbMemcache"> |
| `alibabacloud.database.ApsaradbMongodb` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/database/apsaradb-mongodb.png" alt="ApsaradbMongodb"> |
| `alibabacloud.database.ApsaradbOceanbase` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/database/apsaradb-oceanbase.png" alt="ApsaradbOceanbase"> |
| `alibabacloud.database.ApsaradbPolardb` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/database/apsaradb-polardb.png" alt="ApsaradbPolardb"> |
| `alibabacloud.database.ApsaradbPostgresql` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/database/apsaradb-postgresql.png" alt="ApsaradbPostgresql"> |
| `alibabacloud.database.ApsaradbPpas` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/database/apsaradb-ppas.png" alt="ApsaradbPpas"> |
| `alibabacloud.database.ApsaradbRedis` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/database/apsaradb-redis.png" alt="ApsaradbRedis"> |
| `alibabacloud.database.ApsaradbSqlserver` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/database/apsaradb-sqlserver.png" alt="ApsaradbSqlserver"> |
| `alibabacloud.database.DataManagementService` | `alibabacloud.database.DMS` | <img width="90" src="../../docs/images/resources/alibabacloud/database/data-management-service.png" alt="DataManagementService"> |
| `alibabacloud.database.DataTransmissionService` | `alibabacloud.database.DTS` | <img width="90" src="../../docs/images/resources/alibabacloud/database/data-transmission-service.png" alt="DataTransmissionService"> |
| `alibabacloud.database.DatabaseBackupService` | `alibabacloud.database.DBS` | <img width="90" src="../../docs/images/resources/alibabacloud/database/database-backup-service.png" alt="DatabaseBackupService"> |
| `alibabacloud.database.DisributeRelationalDatabaseService` | `alibabacloud.database.DRDS` | <img width="90" src="../../docs/images/resources/alibabacloud/database/disribute-relational-database-service.png" alt="DisributeRelationalDatabaseService"> |
| `alibabacloud.database.GraphDatabaseService` | `alibabacloud.database.GDS` | <img width="90" src="../../docs/images/resources/alibabacloud/database/graph-database-service.png" alt="GraphDatabaseService"> |
| `alibabacloud.database.HybriddbForMysql` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/database/hybriddb-for-mysql.png" alt="HybriddbForMysql"> |
| `alibabacloud.database.RelationalDatabaseService` | `alibabacloud.database.RDS` | <img width="90" src="../../docs/images/resources/alibabacloud/database/relational-database-service.png" alt="RelationalDatabaseService"> |
### Iot
| Type | Alias | Image |
|-----------------------------------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------|
| `alibabacloud.iot.IotInternetDeviceId` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/iot/iot-internet-device-id.png" alt="IotInternetDeviceId"> |
| `alibabacloud.iot.IotLinkWan` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/iot/iot-link-wan.png" alt="IotLinkWan"> |
| `alibabacloud.iot.IotMobileConnectionPackage` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/iot/iot-mobile-connection-package.png" alt="IotMobileConnectionPackage"> |
| `alibabacloud.iot.IotPlatform` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/iot/iot-platform.png" alt="IotPlatform"> |
### Network
| Type | Alias | Image |
|-----------------------------------------------|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
| `alibabacloud.network.Cdn` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/network/cdn.png" alt="Cdn"> |
| `alibabacloud.network.CloudEnterpriseNetwork` | `alibabacloud.network.CEN` | <img width="90" src="../../docs/images/resources/alibabacloud/network/cloud-enterprise-network.png" alt="CloudEnterpriseNetwork"> |
| `alibabacloud.network.ElasticIpAddress` | `alibabacloud.network.EIP` | <img width="90" src="../../docs/images/resources/alibabacloud/network/elastic-ip-address.png" alt="ElasticIpAddress"> |
| `alibabacloud.network.ExpressConnect` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/network/express-connect.png" alt="ExpressConnect"> |
| `alibabacloud.network.NatGateway` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/network/nat-gateway.png" alt="NatGateway"> |
| `alibabacloud.network.ServerLoadBalancer` | `alibabacloud.network.SLB` | <img width="90" src="../../docs/images/resources/alibabacloud/network/server-load-balancer.png" alt="ServerLoadBalancer"> |
| `alibabacloud.network.SmartAccessGateway` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/network/smart-access-gateway.png" alt="SmartAccessGateway"> |
| `alibabacloud.network.VirtualPrivateCloud` | `alibabacloud.network.VPC` | <img width="90" src="../../docs/images/resources/alibabacloud/network/virtual-private-cloud.png" alt="VirtualPrivateCloud"> |
| `alibabacloud.network.VpnGateway` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/network/vpn-gateway.png" alt="VpnGateway"> |
### Security
| Type | Alias | Image |
|-----------------------------------------------------|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|
| `alibabacloud.security.AntiBotService` | `alibabacloud.security.ABS` | <img width="90" src="../../docs/images/resources/alibabacloud/security/anti-bot-service.png" alt="AntiBotService"> |
| `alibabacloud.security.AntiDdosBasic` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/anti-ddos-basic.png" alt="AntiDdosBasic"> |
| `alibabacloud.security.AntiDdosPro` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/anti-ddos-pro.png" alt="AntiDdosPro"> |
| `alibabacloud.security.AntifraudService` | `alibabacloud.security.AS` | <img width="90" src="../../docs/images/resources/alibabacloud/security/antifraud-service.png" alt="AntifraudService"> |
| `alibabacloud.security.BastionHost` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/bastion-host.png" alt="BastionHost"> |
| `alibabacloud.security.CloudFirewall` | `alibabacloud.security.CFW` | <img width="90" src="../../docs/images/resources/alibabacloud/security/cloud-firewall.png" alt="CloudFirewall"> |
| `alibabacloud.security.CloudSecurityScanner` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/cloud-security-scanner.png" alt="CloudSecurityScanner"> |
| `alibabacloud.security.ContentModeration` | `alibabacloud.security.CM` | <img width="90" src="../../docs/images/resources/alibabacloud/security/content-moderation.png" alt="ContentModeration"> |
| `alibabacloud.security.CrowdsourcedSecurityTesting` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/crowdsourced-security-testing.png" alt="CrowdsourcedSecurityTesting"> |
| `alibabacloud.security.DataEncryptionService` | `alibabacloud.security.DES` | <img width="90" src="../../docs/images/resources/alibabacloud/security/data-encryption-service.png" alt="DataEncryptionService"> |
| `alibabacloud.security.DbAudit` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/db-audit.png" alt="DbAudit"> |
| `alibabacloud.security.GameShield` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/game-shield.png" alt="GameShield"> |
| `alibabacloud.security.IdVerification` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/id-verification.png" alt="IdVerification"> |
| `alibabacloud.security.ManagedSecurityService` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/managed-security-service.png" alt="ManagedSecurityService"> |
| `alibabacloud.security.SecurityCenter` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/security-center.png" alt="SecurityCenter"> |
| `alibabacloud.security.ServerGuard` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/server-guard.png" alt="ServerGuard"> |
| `alibabacloud.security.SslCertificates` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/security/ssl-certificates.png" alt="SslCertificates"> |
| `alibabacloud.security.WebApplicationFirewall` | `alibabacloud.security.WAF` | <img width="90" src="../../docs/images/resources/alibabacloud/security/web-application-firewall.png" alt="WebApplicationFirewall"> |
### Storage
| Type | Alias | Image |
|----------------------------------------------------|-----------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|
| `alibabacloud.storage.CloudStorageGateway` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/storage/cloud-storage-gateway.png" alt="CloudStorageGateway"> |
| `alibabacloud.storage.FileStorageHdfs` | `alibabacloud.storage.HDFS` | <img width="90" src="../../docs/images/resources/alibabacloud/storage/file-storage-hdfs.png" alt="FileStorageHdfs"> |
| `alibabacloud.storage.FileStorageNas` | `alibabacloud.storage.NAS` | <img width="90" src="../../docs/images/resources/alibabacloud/storage/file-storage-nas.png" alt="FileStorageNas"> |
| `alibabacloud.storage.HybridBackupRecovery` | `alibabacloud.storage.HBR` | <img width="90" src="../../docs/images/resources/alibabacloud/storage/hybrid-backup-recovery.png" alt="HybridBackupRecovery"> |
| `alibabacloud.storage.HybridCloudDisasterRecovery` | `alibabacloud.storage.HDR` | <img width="90" src="../../docs/images/resources/alibabacloud/storage/hybrid-cloud-disaster-recovery.png" alt="HybridCloudDisasterRecovery"> |
| `alibabacloud.storage.Imm` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/storage/imm.png" alt="Imm"> |
| `alibabacloud.storage.ObjectStorageService` | `alibabacloud.storage.OSS` | <img width="90" src="../../docs/images/resources/alibabacloud/storage/object-storage-service.png" alt="ObjectStorageService"> |
| `alibabacloud.storage.ObjectTableStore` | `alibabacloud.storage.OTS` | <img width="90" src="../../docs/images/resources/alibabacloud/storage/object-table-store.png" alt="ObjectTableStore"> |
### Web
| Type | Alias | Image |
|---------------------------|-------|---------------------------------------------------------------------------------------------|
| `alibabacloud.web.Dns` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/web/dns.png" alt="Dns"> |
| `alibabacloud.web.Domain` | `-` | <img width="90" src="../../docs/images/resources/alibabacloud/web/domain.png" alt="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` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/analytics.png"> |
| `aws.analytics.Athena` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/athena.png"> |
| `aws.analytics.CloudsearchSearchDocuments` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/cloudsearch-search-documents.png"> |
| `aws.analytics.Cloudsearch` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/cloudsearch.png"> |
| `aws.analytics.DataLakeResource` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/data-lake-resource.png"> |
| `aws.analytics.DataPipeline` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/data-pipeline.png"> |
| `diagrams.aws.analytics.ElasticsearchService` | `ES` | <img width="90" src="../../docs/images/resources/aws/analytics/elasticsearch-service.png"> |
| `aws.analytics.EMRCluster` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/emr-cluster.png"> |
| `aws.analytics.EMREngineMaprM3` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/emr-engine-mapr-m3.png"> |
| `aws.analytics.EMREngineMaprM5` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/emr-engine-mapr-m5.png"> |
| `aws.analytics.EMREngineMaprM7` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/emr-engine-mapr-m7.png"> |
| `aws.analytics.EMREngine` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/emr-engine.png"> |
| `aws.analytics.EMRHdfsCluster` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/emr-hdfs-cluster.png"> |
| `aws.analytics.EMR` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/emr.png"> |
| `aws.analytics.GlueCrawlers` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/glue-crawlers.png"> |
| `aws.analytics.GlueDataCatalog` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/glue-data-catalog.png"> |
| `aws.analytics.Glue` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/glue.png"> |
| `aws.analytics.KinesisDataAnalytics` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/kinesis-data-analytics.png"> |
| `aws.analytics.KinesisDataFirehose` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/kinesis-data-firehose.png"> |
| `aws.analytics.KinesisDataStreams` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/kinesis-data-streams.png"> |
| `aws.analytics.KinesisVideoStreams` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/kinesis-video-streams.png"> |
| `aws.analytics.Kinesis` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/kinesis.png"> |
| `aws.analytics.LakeFormation` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/lake-formation.png"> |
| `aws.analytics.ManagedStreamingForKafka` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/managed-streaming-for-kafka.png"> |
| `aws.analytics.Quicksight` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/quicksight.png"> |
| `aws.analytics.RedshiftDenseComputeNode` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/redshift-dense-compute-node.png"> |
| `aws.analytics.RedshiftDenseStorageNode` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/redshift-dense-storage-node.png"> |
| `aws.analytics.Redshift` | `-` | <img width="90" src="../../docs/images/resources/aws/analytics/redshift.png"> |
### Ar
| Type | Alias | Image |
|-------------------|-------|------------------------------------------------------------------------|
| `aws.ar.ArVr` | `-` | <img width="90" src="../../docs/images/resources/aws/ar/ar-vr.png"> |
| `aws.ar.Sumerian` | `-` | <img width="90" src="../../docs/images/resources/aws/ar/sumerian.png"> |
### Blockchain
| Type | Alias | Image |
|--------------------------------------------|--------|----------------------------------------------------------------------------------------------------|
| `aws.blockchain.BlockchainResource` | `-` | <img width="90" src="../../docs/images/resources/aws/blockchain/blockchain-resource.png"> |
| `aws.blockchain.Blockchain` | `-` | <img width="90" src="../../docs/images/resources/aws/blockchain/blockchain.png"> |
| `aws.blockchain.ManagedBlockchain` | `-` | <img width="90" src="../../docs/images/resources/aws/blockchain/managed-blockchain.png"> |
| `aws.blockchain.QuantumLedgerDatabaseQldb` | `QLDB` | <img width="90" src="../../docs/images/resources/aws/blockchain/quantum-ledger-database-qldb.png"> |
### Business
| Type | Alias | Image |
|-------------------------------------|-------|-------------------------------------------------------------------------------------------|
| `aws.business.AlexaForBusiness` | `A4B` | <img width="90" src="../../docs/images/resources/aws/business/alexa-for-business.png"> |
| `aws.business.BusinessApplications` | `-` | <img width="90" src="../../docs/images/resources/aws/business/business-applications.png"> |
| `aws.business.Chime` | `-` | <img width="90" src="../../docs/images/resources/aws/business/chime.png"> |
| `aws.business.Workmail` | `-` | <img width="90" src="../../docs/images/resources/aws/business/workmail.png"> |
### Compute
| Type | Alias | Image |
|------------------------------------------------|---------------|--------------------------------------------------------------------------------------------------------|
| `aws.compute.AppRunner` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/app-runner.png"> |
| `aws.compute.ApplicationAutoScaling` | `AutoScaling` | <img width="90" src="../../docs/images/resources/aws/compute/application-auto-scaling.png"> |
| `aws.compute.Batch` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/batch.png"> |
| `aws.compute.ComputeOptimizer` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/compute-optimizer.png"> |
| `aws.compute.Compute` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/compute.png"> |
| `aws.compute.EC2Ami` | `AMI` | <img width="90" src="../../docs/images/resources/aws/compute/ec2-ami.png"> |
| `aws.compute.EC2AutoScaling` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/ec2-auto-scaling.png"> |
| `aws.compute.EC2ContainerRegistryImage` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/ec2-container-registry-image.png"> |
| `aws.compute.EC2ContainerRegistryRegistry` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/ec2-container-registry-registry.png"> |
| `aws.compute.EC2ContainerRegistry` | `ECR` | <img width="90" src="../../docs/images/resources/aws/compute/ec2-container-registry.png"> |
| `aws.compute.EC2ElasticIpAddress` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/ec2-elastic-ip-address.png"> |
| `aws.compute.EC2ImageBuilder` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/ec2-image-builder.png"> |
| `aws.compute.EC2Instance` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/ec2-instance.png"> |
| `aws.compute.EC2Instances` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/ec2-instances.png"> |
| `aws.compute.EC2Rescue` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/ec2-rescue.png"> |
| `aws.compute.EC2SpotInstance` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/ec2-spot-instance.png"> |
| `aws.compute.EC2` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/ec2.png"> |
| `aws.compute.ElasticBeanstalkApplication` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/elastic-beanstalk-application.png"> |
| `aws.compute.ElasticBeanstalkDeployment` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/elastic-beanstalk-deployment.png"> |
| `aws.compute.ElasticBeanstalk` | `EB` | <img width="90" src="../../docs/images/resources/aws/compute/elastic-beanstalk.png"> |
| `aws.compute.ElasticContainerServiceContainer` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/elastic-container-service-container.png"> |
| `aws.compute.ElasticContainerServiceService` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/elastic-container-service-service.png"> |
| `aws.compute.ElasticContainerService, ECS` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/elastic-container-service.png"> |
| `aws.compute.ElasticKubernetesService, EKS` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/elastic-kubernetes-service.png"> |
| `aws.compute.Fargate` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/fargate.png"> |
| `aws.compute.LambdaFunction` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/lambda-function.png"> |
| `aws.compute.Lambda` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/lambda.png"> |
| `aws.compute.Lightsail` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/lightsail.png"> |
| `aws.compute.LocalZones` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/local-zones.png"> |
| `aws.compute.Outposts` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/outposts.png"> |
| `aws.compute.ServerlessApplicationRepository` | `SAR` | <img width="90" src="../../docs/images/resources/aws/compute/serverless-application-repository.png"> |
| `aws.compute.ThinkboxDeadline` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/thinkbox-deadline.png"> |
| `aws.compute.ThinkboxDraft` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/thinkbox-draft.png"> |
| `aws.compute.ThinkboxFrost` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/thinkbox-frost.png"> |
| `aws.compute.ThinkboxKrakatoa` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/thinkbox-krakatoa.png"> |
| `aws.compute.ThinkboxSequoia` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/thinkbox-sequoia.png"> |
| `aws.compute.ThinkboxStoke` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/thinkbox-stoke.png"> |
| `aws.compute.ThinkboxXmesh` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/thinkbox-xmesh.png"> |
| `aws.compute.VmwareCloudOnAWS` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/vmware-cloud-on-aws.png"> |
| `aws.compute.Wavelength` | `-` | <img width="90" src="../../docs/images/resources/aws/compute/wavelength.png"> |
### Cost
| Type | Alias | Image |
|--------------------------------------|-------|---------------------------------------------------------------------------------------------|
| `aws.cost.Budgets` | `-` | <img width="90" src="../../docs/images/resources/aws/cost/budgets.png"> |
| `aws.cost.CostAndUsageReport` | `-` | <img width="90" src="../../docs/images/resources/aws/cost/cost-and-usage-report.png"> |
| `aws.cost.CostExplorer` | `-` | <img width="90" src="../../docs/images/resources/aws/cost/cost-explorer.png"> |
| `aws.cost.CostManagement` | `-` | <img width="90" src="../../docs/images/resources/aws/cost/cost-management.png"> |
| `aws.cost.ReservedInstanceReporting` | `-` | <img width="90" src="../../docs/images/resources/aws/cost/reserved-instance-reporting.png"> |
| `aws.cost.SavingsPlans` | `-` | <img width="90" src="../../docs/images/resources/aws/cost/savings-plans.png"> |
### Database
| Type | Alias | Image |
|------------------------------------------------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------|
| `aws.database.AuroraInstance` | `-` | <img width="90" src="../../docs/images/resources/aws/database/aurora-instance.png"> |
| `aws.database.Aurora` | `-` | <img width="90" src="../../docs/images/resources/aws/database/aurora.png"> |
| `aws.database.DatabaseMigrationServiceDatabaseMigrationWorkflow` | `-` | <img width="90" src="../../docs/images/resources/aws/database/database-migration-service-database-migration-workflow.png"> |
| `aws.database.DatabaseMigrationService` | `DMS` | <img width="90" src="../../docs/images/resources/aws/database/database-migration-service.png"> |
| `aws.database.Database` | `DB` | <img width="90" src="../../docs/images/resources/aws/database/database.png"> |
| `aws.database.DocumentdbMongodbCompatibility` | `DocumentDB` | <img width="90" src="../../docs/images/resources/aws/database/documentdb-mongodb-compatibility.png"> |
| `aws.database.DynamodbAttribute` | `-` | <img width="90" src="../../docs/images/resources/aws/database/dynamodb-attribute.png"> |
| `aws.database.DynamodbAttributes` | `-` | <img width="90" src="../../docs/images/resources/aws/database/dynamodb-attributes.png"> |
| `aws.database.DynamodbDax` | `DAX` | <img width="90" src="../../docs/images/resources/aws/database/dynamodb-dax.png"> |
| `aws.database.DynamodbGlobalSecondaryIndex` | `DynamodbGSI` | <img width="90" src="../../docs/images/resources/aws/database/dynamodb-global-secondary-index.png"> |
| `aws.database.DynamodbItem` | `-` | <img width="90" src="../../docs/images/resources/aws/database/dynamodb-item.png"> |
| `aws.database.DynamodbItems` | `-` | <img width="90" src="../../docs/images/resources/aws/database/dynamodb-items.png"> |
| `aws.database.DynamodbTable` | `-` | <img width="90" src="../../docs/images/resources/aws/database/dynamodb-table.png"> |
| `aws.database.Dynamodb` | `DDB` | <img width="90" src="../../docs/images/resources/aws/database/dynamodb.png"> |
| `aws.database.ElasticacheCacheNode` | `-` | <img width="90" src="../../docs/images/resources/aws/database/elasticache-cache-node.png"> |
| `aws.database.ElasticacheForMemcached` | `-` | <img width="90" src="../../docs/images/resources/aws/database/elasticache-for-memcached.png"> |
| `aws.database.ElasticacheForRedis` | `-` | <img width="90" src="../../docs/images/resources/aws/database/elasticache-for-redis.png"> |
| `aws.database.Elasticache` | `ElastiCache` | <img width="90" src="../../docs/images/resources/aws/database/elasticache.png"> |
| `aws.database.KeyspacesManagedApacheCassandraService` | `-` | <img width="90" src="../../docs/images/resources/aws/database/keyspaces-managed-apache-cassandra-service.png"> |
| `aws.database.Neptune` | `-` | <img width="90" src="../../docs/images/resources/aws/database/neptune.png"> |
| `aws.database.QuantumLedgerDatabaseQldb` | `QLDB` | <img width="90" src="../../docs/images/resources/aws/database/quantum-ledger-database-qldb.png"> |
| `aws.database.RDSInstance` | `-` | <img width="90" src="../../docs/images/resources/aws/database/rds-instance.png"> |
| `aws.database.RDSMariadbInstance` | `-` | <img width="90" src="../../docs/images/resources/aws/database/rds-mariadb-instance.png"> |
| `aws.database.RDSMysqlInstance` | `-` | <img width="90" src="../../docs/images/resources/aws/database/rds-mysql-instance.png"> |
| `aws.database.RDSOnVmware` | `-` | <img width="90" src="../../docs/images/resources/aws/database/rds-on-vmware.png"> |
| `aws.database.RDSOracleInstance` | `-` | <img width="90" src="../../docs/images/resources/aws/database/rds-oracle-instance.png"> |
| `aws.database.RDSPostgresqlInstance` | `-` | <img width="90" src="../../docs/images/resources/aws/database/rds-postgresql-instance.png"> |
| `aws.database.RDSSqlServerInstance` | `-` | <img width="90" src="../../docs/images/resources/aws/database/rds-sql-server-instance.png"> |
| `aws.database.RDS` | `-` | <img width="90" src="../../docs/images/resources/aws/database/rds.png"> |
| `aws.database.RedshiftDenseComputeNode` | `-` | <img width="90" src="../../docs/images/resources/aws/database/redshift-dense-compute-node.png"> |
| `aws.database.RedshiftDenseStorageNode` | `-` | <img width="90" src="../../docs/images/resources/aws/database/redshift-dense-storage-node.png"> |
| `aws.database.Redshift` | `-` | <img width="90" src="../../docs/images/resources/aws/database/redshift.png"> |
| `aws.database.Timestream` | `-` | <img width="90" src="../../docs/images/resources/aws/database/timestream.png"> |
### Devtools
| Type | Alias | Image |
|-------------------------------------|------------|--------------------------------------------------------------------------------------------|
| `aws.devtools.CloudDevelopmentKit` | `-` | <img width="90" src="../../docs/images/resources/aws/devtools/cloud-development-kit.png"> |
| `aws.devtools.Cloud9Resource` | `-` | <img width="90" src="../../docs/images/resources/aws/devtools/cloud9-resource.png"> |
| `aws.devtools.Cloud9` | `-` | <img width="90" src="../../docs/images/resources/aws/devtools/cloud9.png"> |
| `aws.devtools.Codebuild` | `-` | <img width="90" src="../../docs/images/resources/aws/devtools/codebuild.png"> |
| `aws.devtools.Codecommit` | `-` | <img width="90" src="../../docs/images/resources/aws/devtools/codecommit.png"> |
| `aws.devtools.Codedeploy` | `-` | <img width="90" src="../../docs/images/resources/aws/devtools/codedeploy.png"> |
| `aws.devtools.Codepipeline` | `-` | <img width="90" src="../../docs/images/resources/aws/devtools/codepipeline.png"> |
| `aws.devtools.Codestar` | `-` | <img width="90" src="../../docs/images/resources/aws/devtools/codestar.png"> |
| `aws.devtools.CommandLineInterface` | `CLI` | <img width="90" src="../../docs/images/resources/aws/devtools/command-line-interface.png"> |
| `aws.devtools.DeveloperTools` | `DevTools` | <img width="90" src="../../docs/images/resources/aws/devtools/developer-tools.png"> |
| `aws.devtools.ToolsAndSdks` | `-` | <img width="90" src="../../docs/images/resources/aws/devtools/tools-and-sdks.png"> |
| `aws.devtools.XRay` | `-` | <img width="90" src="../../docs/images/resources/aws/devtools/x-ray.png"> |
### Enablement
| Type | Alias | Image |
|---------------------------------------|-------|---------------------------------------------------------------------------------------------|
| `aws.enablement.CustomerEnablement` | `-` | <img width="90" src="../../docs/images/resources/aws/enablement/customer-enablement.png"> |
| `aws.enablement.Iq` | `-` | <img width="90" src="../../docs/images/resources/aws/enablement/iq.png"> |
| `aws.enablement.ManagedServices` | `-` | <img width="90" src="../../docs/images/resources/aws/enablement/managed-services.png"> |
| `aws.enablement.ProfessionalServices` | `-` | <img width="90" src="../../docs/images/resources/aws/enablement/professional-services.png"> |
| `aws.enablement.Support` | `-` | <img width="90" src="../../docs/images/resources/aws/enablement/support.png"> |
### End User
| Type | Alias | Image |
|--------------------------------------|--------|----------------------------------------------------------------------------------------------|
| `aws.enduser.Appstream20` | `-` | <img width="90" src="../../docs/images/resources/aws/enduser/appstream-2-0.png"> |
| `aws.enduser.DesktopAndAppStreaming` | `-` | <img width="90" src="../../docs/images/resources/aws/enduser/desktop-and-app-streaming.png"> |
| `aws.enduser.Workdocs` | `-` | <img width="90" src="../../docs/images/resources/aws/enduser/workdocs.png"> |
| `aws.enduser.Worklink` | `-` | <img width="90" src="../../docs/images/resources/aws/enduser/worklink.png"> |
| `aws.enduser.Workspaces` | `-` | <img width="90" src="../../docs/images/resources/aws/enduser/workspaces.png"> |
### Engagement
| Type | Alias | Image |
|---------------------------------------------|-------|------------------------------------------------------------------------------------------------------|
| `aws.engagement.Connect` | `-` | <img width="90" src="../../docs/images/resources/aws/engagement/connect.png"> |
| `aws.engagement.CustomerEngagement` | `-` | <img width="90" src="../../docs/images/resources/aws/engagement/customer-engagement.png"> |
| `aws.engagement.Pinpoint` | `-` | <img width="90" src="../../docs/images/resources/aws/engagement/pinpoint.png"> |
| `aws.engagement.SimpleEmailServiceSesEmail` | `-` | <img width="90" src="../../docs/images/resources/aws/engagement/simple-email-service-ses-email.png"> |
| `aws.engagement.SimpleEmailServiceSes` | `SES` | <img width="90" src="../../docs/images/resources/aws/engagement/simple-email-service-ses.png"> |
### Game
| Type | Alias | Image |
|----------------------|-------|-----------------------------------------------------------------------------|
| `aws.game.GameTech` | `-` | <img width="90" src="../../docs/images/resources/aws/game/game-tech.png"> |
| `aws.game.Gamelift` | `-` | <img width="90" src="../../docs/images/resources/aws/game/gamelift.png"> |
### General
| Type | Alias | Image |
|-------------------------------------|------------------|--------------------------------------------------------------------------------------------|
| `aws.general.Client` | `-` | <img width="90" src="../../docs/images/resources/aws/general/client.png"> |
| `aws.general.Disk` | `-` | <img width="90" src="../../docs/images/resources/aws/general/disk.png"> |
| `aws.general.Forums` | `-` | <img width="90" src="../../docs/images/resources/aws/general/forums.png"> |
| `aws.general.General` | `-` | <img width="90" src="../../docs/images/resources/aws/general/general.png"> |
| `aws.general.GenericDatabase` | `-` | <img width="90" src="../../docs/images/resources/aws/general/generic-database.png"> |
| `aws.general.GenericFirewall` | `-` | <img width="90" src="../../docs/images/resources/aws/general/generic-firewall.png"> |
| `aws.general.GenericOfficeBuilding` | `OfficeBuilding` | <img width="90" src="../../docs/images/resources/aws/general/generic-office-building.png"> |
| `aws.general.GenericSamlToken` | `-` | <img width="90" src="../../docs/images/resources/aws/general/generic-saml-token.png"> |
| `aws.general.GenericSDK` | `-` | <img width="90" src="../../docs/images/resources/aws/general/generic-sdk.png"> |
| `aws.general.InternetAlt1` | `-` | <img width="90" src="../../docs/images/resources/aws/general/internet-alt1.png"> |
| `aws.general.InternetAlt2` | `-` | <img width="90" src="../../docs/images/resources/aws/general/internet-alt2.png"> |
| `aws.general.InternetGateway` | `-` | <img width="90" src="../../docs/images/resources/aws/general/internet-gateway.png"> |
| `aws.general.Marketplace` | `-` | <img width="90" src="../../docs/images/resources/aws/general/marketplace.png"> |
| `aws.general.MobileClient` | `-` | <img width="90" src="../../docs/images/resources/aws/general/mobile-client.png"> |
| `aws.general.Multimedia` | `-` | <img width="90" src="../../docs/images/resources/aws/general/multimedia.png"> |
| `aws.general.OfficeBuilding` | `-` | <img width="90" src="../../docs/images/resources/aws/general/office-building.png"> |
| `aws.general.SamlToken` | `-` | <img width="90" src="../../docs/images/resources/aws/general/saml-token.png"> |
| `aws.general.SDK` | `-` | <img width="90" src="../../docs/images/resources/aws/general/sdk.png"> |
| `aws.general.SslPadlock` | `-` | <img width="90" src="../../docs/images/resources/aws/general/ssl-padlock.png"> |
| `aws.general.TapeStorage` | `-` | <img width="90" src="../../docs/images/resources/aws/general/tape-storage.png"> |
| `aws.general.Toolkit` | `-` | <img width="90" src="../../docs/images/resources/aws/general/toolkit.png"> |
| `aws.general.TraditionalServer` | `-` | <img width="90" src="../../docs/images/resources/aws/general/traditional-server.png"> |
| `aws.general.User` | `-` | <img width="90" src="../../docs/images/resources/aws/general/user.png"> |
| `aws.general.Users` | `-` | <img width="90" src="../../docs/images/resources/aws/general/users.png"> |
### Integration
| Type | Alias | Image |
|-----------------------------------------------------------------|---------|---------------------------------------------------------------------------------------------------------------------------|
| `aws.integration.ApplicationIntegration` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/application-integration.png"> |
| `aws.integration.Appsync` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/appsync.png"> |
| `aws.integration.ConsoleMobileApplication` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/console-mobile-application.png"> |
| `aws.integration.EventResource` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/event-resource.png"> |
| `aws.integration.EventbridgeCustomEventBusResource` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/eventbridge-custom-event-bus-resource.png"> |
| `aws.integration.EventbridgeDefaultEventBusResource` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/eventbridge-default-event-bus-resource.png"> |
| `aws.integration.EventbridgeSaasPartnerEventBusResource` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/eventbridge-saas-partner-event-bus-resource.png"> |
| `aws.integration.Eventbridge` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/eventbridge.png"> |
| `aws.integration.ExpressWorkflows` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/express-workflows.png"> |
| `aws.integration.MQ` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/mq.png"> |
| `aws.integration.SimpleNotificationServiceSnsEmailNotification` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/simple-notification-service-sns-email-notification.png"> |
| `aws.integration.SimpleNotificationServiceSnsHttpNotification` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/simple-notification-service-sns-http-notification.png"> |
| `aws.integration.SimpleNotificationServiceSnsTopic` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/simple-notification-service-sns-topic.png"> |
| `aws.integration.SimpleNotificationServiceSns` | `SNS` | <img width="90" src="../../docs/images/resources/aws/integration/simple-notification-service-sns.png"> |
| `aws.integration.SimpleQueueServiceSqsMessage` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/simple-queue-service-sqs-message.png"> |
| `aws.integration.SimpleQueueServiceSqsQueue` | `-` | <img width="90" src="../../docs/images/resources/aws/integration/simple-queue-service-sqs-queue.png"> |
| `aws.integration.SimpleQueueServiceSqs` | `SQS` | <img width="90" src="../../docs/images/resources/aws/integration/simple-queue-service-sqs.png"> |
| `aws.integration.StepFunctions` | `SF` | <img width="90" src="../../docs/images/resources/aws/integration/step-functions.png"> |
### Iot
| Type | Alias | Image |
|----------------------------------|------------|-------------------------------------------------------------------------------------------|
| `aws.iot.Freertos` | `FreeRTOS` | <img width="90" src="../../docs/images/resources/aws/iot/freertos.png"> |
| `aws.iot.InternetOfThings` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/internet-of-things.png"> |
| `aws.iot.Iot1Click` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-1-click.png"> |
| `aws.iot.IotAction` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-action.png"> |
| `aws.iot.IotActuator` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-actuator.png"> |
| `aws.iot.IotAlexaEcho` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-alexa-echo.png"> |
| `aws.iot.IotAlexaEnabledDevice` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-alexa-enabled-device.png"> |
| `aws.iot.IotAlexaSkill` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-alexa-skill.png"> |
| `aws.iot.IotAlexaVoiceService` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-alexa-voice-service.png"> |
| `aws.iot.IotAnalyticsChannel` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-analytics-channel.png"> |
| `aws.iot.IotAnalyticsDataSet` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-analytics-data-set.png"> |
| `aws.iot.IotAnalyticsDataStore` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-analytics-data-store.png"> |
| `aws.iot.IotAnalyticsNotebook` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-analytics-notebook.png"> |
| `aws.iot.IotAnalyticsPipeline` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-analytics-pipeline.png"> |
| `aws.iot.IotAnalytics` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-analytics.png"> |
| `aws.iot.IotBank` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-bank.png"> |
| `aws.iot.IotBicycle` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-bicycle.png"> |
| `aws.iot.IotButton` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-button.png"> |
| `aws.iot.IotCamera` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-camera.png"> |
| `aws.iot.IotCar` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-car.png"> |
| `aws.iot.IotCart` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-cart.png"> |
| `aws.iot.IotCertificate` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-certificate.png"> |
| `aws.iot.IotCoffeePot` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-coffee-pot.png"> |
| `aws.iot.IotCore` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-core.png"> |
| `aws.iot.IotDesiredState` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-desired-state.png"> |
| `aws.iot.IotDeviceDefender` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-device-defender.png"> |
| `aws.iot.IotDeviceGateway` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-device-gateway.png"> |
| `aws.iot.IotDeviceManagement` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-device-management.png"> |
| `aws.iot.IotDoorLock` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-door-lock.png"> |
| `aws.iot.IotEvents` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-events.png"> |
| `aws.iot.IotFactory` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-factory.png"> |
| `aws.iot.IotFireTvStick` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-fire-tv-stick.png"> |
| `aws.iot.IotFireTv` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-fire-tv.png"> |
| `aws.iot.IotGeneric` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-generic.png"> |
| `aws.iot.IotGreengrassConnector` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-greengrass-connector.png"> |
| `aws.iot.IotGreengrass` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-greengrass.png"> |
| `aws.iot.IotHardwareBoard` | `IotBoard` | <img width="90" src="../../docs/images/resources/aws/iot/iot-hardware-board.png"> |
| `aws.iot.IotHouse` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-house.png"> |
| `aws.iot.IotHttp` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-http.png"> |
| `aws.iot.IotHttp2` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-http2.png"> |
| `aws.iot.IotJobs` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-jobs.png"> |
| `aws.iot.IotLambda` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-lambda.png"> |
| `aws.iot.IotLightbulb` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-lightbulb.png"> |
| `aws.iot.IotMedicalEmergency` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-medical-emergency.png"> |
| `aws.iot.IotMqtt` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-mqtt.png"> |
| `aws.iot.IotOverTheAirUpdate` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-over-the-air-update.png"> |
| `aws.iot.IotPolicyEmergency` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-policy-emergency.png"> |
| `aws.iot.IotPolicy` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-policy.png"> |
| `aws.iot.IotReportedState` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-reported-state.png"> |
| `aws.iot.IotRule` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-rule.png"> |
| `aws.iot.IotSensor` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-sensor.png"> |
| `aws.iot.IotServo` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-servo.png"> |
| `aws.iot.IotShadow` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-shadow.png"> |
| `aws.iot.IotSimulator` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-simulator.png"> |
| `aws.iot.IotSitewise` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-sitewise.png"> |
| `aws.iot.IotThermostat` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-thermostat.png"> |
| `aws.iot.IotThingsGraph` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-things-graph.png"> |
| `aws.iot.IotTopic` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-topic.png"> |
| `aws.iot.IotTravel` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-travel.png"> |
| `aws.iot.IotUtility` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-utility.png"> |
| `aws.iot.IotWindfarm` | `-` | <img width="90" src="../../docs/images/resources/aws/iot/iot-windfarm.png"> |
### Management
| Type | Alias | Image |
|-------------------------------------------------------|------------------|----------------------------------------------------------------------------------------------------------------|
| `aws.management.AutoScaling` | `-` | <img width="90" src="../../docs/images/resources/aws/management/auto-scaling.png"> |
| `aws.management.Chatbot` | `-` | <img width="90" src="../../docs/images/resources/aws/management/chatbot.png"> |
| `aws.management.CloudformationChangeSet` | `-` | <img width="90" src="../../docs/images/resources/aws/management/cloudformation-change-set.png"> |
| `aws.management.CloudformationStack` | `-` | <img width="90" src="../../docs/images/resources/aws/management/cloudformation-stack.png"> |
| `aws.management.CloudformationTemplate` | `-` | <img width="90" src="../../docs/images/resources/aws/management/cloudformation-template.png"> |
| `aws.management.Cloudformation` | `-` | <img width="90" src="../../docs/images/resources/aws/management/cloudformation.png"> |
| `aws.management.Cloudtrail` | `-` | <img width="90" src="../../docs/images/resources/aws/management/cloudtrail.png"> |
| `aws.management.CloudwatchAlarm` | `-` | <img width="90" src="../../docs/images/resources/aws/management/cloudwatch-alarm.png"> |
| `aws.management.CloudwatchEventEventBased` | `-` | <img width="90" src="../../docs/images/resources/aws/management/cloudwatch-event-event-based.png"> |
| `aws.management.CloudwatchEventTimeBased` | `-` | <img width="90" src="../../docs/images/resources/aws/management/cloudwatch-event-time-based.png"> |
| `aws.management.CloudwatchRule` | `-` | <img width="90" src="../../docs/images/resources/aws/management/cloudwatch-rule.png"> |
| `aws.management.Cloudwatch` | `-` | <img width="90" src="../../docs/images/resources/aws/management/cloudwatch.png"> |
| `aws.management.Codeguru` | `-` | <img width="90" src="../../docs/images/resources/aws/management/codeguru.png"> |
| `aws.management.CommandLineInterface` | `-` | <img width="90" src="../../docs/images/resources/aws/management/command-line-interface.png"> |
| `aws.management.Config` | `-` | <img width="90" src="../../docs/images/resources/aws/management/config.png"> |
| `aws.management.ControlTower` | `-` | <img width="90" src="../../docs/images/resources/aws/management/control-tower.png"> |
| `aws.management.LicenseManager` | `-` | <img width="90" src="../../docs/images/resources/aws/management/license-manager.png"> |
| `aws.management.ManagedServices` | `-` | <img width="90" src="../../docs/images/resources/aws/management/managed-services.png"> |
| `aws.management.ManagementAndGovernance` | `-` | <img width="90" src="../../docs/images/resources/aws/management/management-and-governance.png"> |
| `aws.management.ManagementConsole` | `-` | <img width="90" src="../../docs/images/resources/aws/management/management-console.png"> |
| `aws.management.OpsworksApps` | `-` | <img width="90" src="../../docs/images/resources/aws/management/opsworks-apps.png"> |
| `aws.management.OpsworksDeployments` | `-` | <img width="90" src="../../docs/images/resources/aws/management/opsworks-deployments.png"> |
| `aws.management.OpsworksInstances` | `-` | <img width="90" src="../../docs/images/resources/aws/management/opsworks-instances.png"> |
| `aws.management.OpsworksLayers` | `-` | <img width="90" src="../../docs/images/resources/aws/management/opsworks-layers.png"> |
| `aws.management.OpsworksMonitoring` | `-` | <img width="90" src="../../docs/images/resources/aws/management/opsworks-monitoring.png"> |
| `aws.management.OpsworksPermissions` | `-` | <img width="90" src="../../docs/images/resources/aws/management/opsworks-permissions.png"> |
| `aws.management.OpsworksResources` | `-` | <img width="90" src="../../docs/images/resources/aws/management/opsworks-resources.png"> |
| `aws.management.OpsworksStack` | `-` | <img width="90" src="../../docs/images/resources/aws/management/opsworks-stack.png"> |
| `aws.management.Opsworks` | `-` | <img width="90" src="../../docs/images/resources/aws/management/opsworks.png"> |
| `aws.management.OrganizationsAccount` | `-` | <img width="90" src="../../docs/images/resources/aws/management/organizations-account.png"> |
| `aws.management.OrganizationsOrganizationalUnit` | `-` | <img width="90" src="../../docs/images/resources/aws/management/organizations-organizational-unit.png"> |
| `aws.management.Organizations` | `-` | <img width="90" src="../../docs/images/resources/aws/management/organizations.png"> |
| `aws.management.PersonalHealthDashboard` | `-` | <img width="90" src="../../docs/images/resources/aws/management/personal-health-dashboard.png"> |
| `aws.management.ServiceCatalog` | `-` | <img width="90" src="../../docs/images/resources/aws/management/service-catalog.png"> |
| `aws.management.SystemsManagerAutomation` | `-` | <img width="90" src="../../docs/images/resources/aws/management/systems-manager-automation.png"> |
| `aws.management.SystemsManagerDocuments` | `-` | <img width="90" src="../../docs/images/resources/aws/management/systems-manager-documents.png"> |
| `aws.management.SystemsManagerInventory` | `-` | <img width="90" src="../../docs/images/resources/aws/management/systems-manager-inventory.png"> |
| `aws.management.SystemsManagerMaintenanceWindows` | `-` | <img width="90" src="../../docs/images/resources/aws/management/systems-manager-maintenance-windows.png"> |
| `aws.management.SystemsManagerOpscenter` | `-` | <img width="90" src="../../docs/images/resources/aws/management/systems-manager-opscenter.png"> |
| `aws.management.SystemsManagerParameterStore` | `ParameterStore` | <img width="90" src="../../docs/images/resources/aws/management/systems-manager-parameter-store.png"> |
| `aws.management.SystemsManagerPatchManager` | `-` | <img width="90" src="../../docs/images/resources/aws/management/systems-manager-patch-manager.png"> |
| `aws.management.SystemsManagerRunCommand` | `-` | <img width="90" src="../../docs/images/resources/aws/management/systems-manager-run-command.png"> |
| `aws.management.SystemsManagerStateManager` | `-` | <img width="90" src="../../docs/images/resources/aws/management/systems-manager-state-manager.png"> |
| `aws.management.SystemsManager` | `SSM` | <img width="90" src="../../docs/images/resources/aws/management/systems-manager.png"> |
| `aws.management.TrustedAdvisorChecklistCost` | `-` | <img width="90" src="../../docs/images/resources/aws/management/trusted-advisor-checklist-cost.png"> |
| `aws.management.TrustedAdvisorChecklistFaultTolerant` | `-` | <img width="90" src="../../docs/images/resources/aws/management/trusted-advisor-checklist-fault-tolerant.png"> |
| `aws.management.TrustedAdvisorChecklistPerformance` | `-` | <img width="90" src="../../docs/images/resources/aws/management/trusted-advisor-checklist-performance.png"> |
| `aws.management.TrustedAdvisorChecklistSecurity` | `-` | <img width="90" src="../../docs/images/resources/aws/management/trusted-advisor-checklist-security.png"> |
| `aws.management.TrustedAdvisorChecklist` | `-` | <img width="90" src="../../docs/images/resources/aws/management/trusted-advisor-checklist.png"> |
| `aws.management.TrustedAdvisor` | `-` | <img width="90" src="../../docs/images/resources/aws/management/trusted-advisor.png"> |
| `aws.management.WellArchitectedTool` | `-` | <img width="90" src="../../docs/images/resources/aws/management/well-architected-tool.png"> |
### Media
| Type | Alias | Image |
|-----------------------------------|--------|------------------------------------------------------------------------------------------|
| `aws.media.ElasticTranscoder` | `-` | <img width="90" src="../../docs/images/resources/aws/media/elastic-transcoder.png"> |
| `aws.media.ElementalConductor` | `-` | <img width="90" src="../../docs/images/resources/aws/media/elemental-conductor.png"> |
| `aws.media.ElementalDelta` | `-` | <img width="90" src="../../docs/images/resources/aws/media/elemental-delta.png"> |
| `aws.media.ElementalLive` | `-` | <img width="90" src="../../docs/images/resources/aws/media/elemental-live.png"> |
| `aws.media.ElementalMediaconnect` | `-` | <img width="90" src="../../docs/images/resources/aws/media/elemental-mediaconnect.png"> |
| `aws.media.ElementalMediaconvert` | `-` | <img width="90" src="../../docs/images/resources/aws/media/elemental-mediaconvert.png"> |
| `aws.media.ElementalMedialive` | `-` | <img width="90" src="../../docs/images/resources/aws/media/elemental-medialive.png"> |
| `aws.media.ElementalMediapackage` | `-` | <img width="90" src="../../docs/images/resources/aws/media/elemental-mediapackage.png"> |
| `aws.media.ElementalMediastore` | `-` | <img width="90" src="../../docs/images/resources/aws/media/elemental-mediastore.png"> |
| `aws.media.ElementalMediatailor` | `-` | <img width="90" src="../../docs/images/resources/aws/media/elemental-mediatailor.png"> |
| `aws.media.ElementalServer` | `-` | <img width="90" src="../../docs/images/resources/aws/media/elemental-server.png"> |
| `aws.media.KinesisVideoStreams` | `-` | <img width="90" src="../../docs/images/resources/aws/media/kinesis-video-streams.png"> |
| `aws.media.MediaServices` | `-` | <img width="90" src="../../docs/images/resources/aws/media/media-services.png"> |
### Migration
| Type | Alias | Image |
|---------------------------------------------|-------|----------------------------------------------------------------------------------------------------|
| `aws.migration.ApplicationDiscoveryService` | `ADS` | <img width="90" src="../../docs/images/resources/aws/migration/application-discovery-service.png"> |
| `aws.migration.CloudendureMigration` | `CEM` | <img width="90" src="../../docs/images/resources/aws/migration/cloudendure-migration.png"> |
| `aws.migration.DatabaseMigrationService` | `DMS` | <img width="90" src="../../docs/images/resources/aws/migration/database-migration-service.png"> |
| `aws.migration.DatasyncAgent` | `-` | <img width="90" src="../../docs/images/resources/aws/migration/datasync-agent.png"> |
| `aws.migration.Datasync` | `-` | <img width="90" src="../../docs/images/resources/aws/migration/datasync.png"> |
| `aws.migration.MigrationAndTransfer` | `MAT` | <img width="90" src="../../docs/images/resources/aws/migration/migration-and-transfer.png"> |
| `aws.migration.MigrationHub` | `-` | <img width="90" src="../../docs/images/resources/aws/migration/migration-hub.png"> |
| `aws.migration.ServerMigrationService` | `SMS` | <img width="90" src="../../docs/images/resources/aws/migration/server-migration-service.png"> |
| `aws.migration.SnowballEdge` | `-` | <img width="90" src="../../docs/images/resources/aws/migration/snowball-edge.png"> |
| `aws.migration.Snowball` | `-` | <img width="90" src="../../docs/images/resources/aws/migration/snowball.png"> |
| `aws.migration.Snowmobile` | `-` | <img width="90" src="../../docs/images/resources/aws/migration/snowmobile.png"> |
| `aws.migration.TransferForSftp` | `-` | <img width="90" src="../../docs/images/resources/aws/migration/transfer-for-sftp.png"> |
### Ml
| Type | Alias | Image |
|---------------------------------|-------|----------------------------------------------------------------------------------------|
| `aws.ml.ApacheMxnetOnAWS` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/apache-mxnet-on-aws.png"> |
| `aws.ml.AugmentedAi` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/augmented-ai.png"> |
| `aws.ml.Comprehend` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/comprehend.png"> |
| `aws.ml.DeepLearningAmis` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/deep-learning-amis.png"> |
| `aws.ml.DeepLearningContainers` | `DLC` | <img width="90" src="../../docs/images/resources/aws/ml/deep-learning-containers.png"> |
| `aws.ml.Deepcomposer` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/deepcomposer.png"> |
| `aws.ml.Deeplens` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/deeplens.png"> |
| `aws.ml.Deepracer` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/deepracer.png"> |
| `aws.ml.ElasticInference` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/elastic-inference.png"> |
| `aws.ml.Forecast` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/forecast.png"> |
| `aws.ml.FraudDetector` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/fraud-detector.png"> |
| `aws.ml.Kendra` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/kendra.png"> |
| `aws.ml.Lex` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/lex.png"> |
| `aws.ml.MachineLearning` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/machine-learning.png"> |
| `aws.ml.Personalize` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/personalize.png"> |
| `aws.ml.Polly` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/polly.png"> |
| `aws.ml.RekognitionImage` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/rekognition-image.png"> |
| `aws.ml.RekognitionVideo` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/rekognition-video.png"> |
| `aws.ml.Rekognition` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/rekognition.png"> |
| `aws.ml.SagemakerGroundTruth` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/sagemaker-ground-truth.png"> |
| `aws.ml.SagemakerModel` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/sagemaker-model.png"> |
| `aws.ml.SagemakerNotebook` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/sagemaker-notebook.png"> |
| `aws.ml.SagemakerTrainingJob` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/sagemaker-training-job.png"> |
| `aws.ml.Sagemaker` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/sagemaker.png"> |
| `aws.ml.TensorflowOnAWS` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/tensorflow-on-aws.png"> |
| `aws.ml.Textract` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/textract.png"> |
| `aws.ml.Transcribe` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/transcribe.png"> |
| `aws.ml.Translate` | `-` | <img width="90" src="../../docs/images/resources/aws/ml/translate.png"> |
### Mobile
| Type | Alias | Image |
|---------------------------------|-------|----------------------------------------------------------------------------------------|
| `aws.mobile.Amplify` | `-` | <img width="90" src="../../docs/images/resources/aws/mobile/amplify.png"> |
| `aws.mobile.APIGatewayEndpoint` | `-` | <img width="90" src="../../docs/images/resources/aws/mobile/api-gateway-endpoint.png"> |
| `aws.mobile.APIGateway` | `-` | <img width="90" src="../../docs/images/resources/aws/mobile/api-gateway.png"> |
| `aws.mobile.Appsync` | `-` | <img width="90" src="../../docs/images/resources/aws/mobile/appsync.png"> |
| `aws.mobile.DeviceFarm` | `-` | <img width="90" src="../../docs/images/resources/aws/mobile/device-farm.png"> |
| `aws.mobile.Mobile` | `-` | <img width="90" src="../../docs/images/resources/aws/mobile/mobile.png"> |
| `aws.mobile.Pinpoint` | `-` | <img width="90" src="../../docs/images/resources/aws/mobile/pinpoint.png"> |
### Network
| Type | Alias | Image |
|-----------------------------------------------|-------|------------------------------------------------------------------------------------------------------|
| `aws.network.APIGatewayEndpoint` | `-` | <img width="90" src="../../docs/images/resources/aws/network/api-gateway-endpoint.png"> |
| `aws.network.APIGateway` | `-` | <img width="90" src="../../docs/images/resources/aws/network/api-gateway.png"> |
| `aws.network.AppMesh` | `-` | <img width="90" src="../../docs/images/resources/aws/network/app-mesh.png"> |
| `aws.network.ClientVpn` | `-` | <img width="90" src="../../docs/images/resources/aws/network/client-vpn.png"> |
| `aws.network.CloudMap` | `-` | <img width="90" src="../../docs/images/resources/aws/network/cloud-map.png"> |
| `aws.network.CloudFrontDownloadDistribution` | `-` | <img width="90" src="../../docs/images/resources/aws/network/cloudfront-download-distribution.png"> |
| `aws.network.CloudFrontEdgeLocation` | `-` | <img width="90" src="../../docs/images/resources/aws/network/cloudfront-edge-location.png"> |
| `aws.network.CloudFrontStreamingDistribution` | `-` | <img width="90" src="../../docs/images/resources/aws/network/cloudfront-streaming-distribution.png"> |
| `aws.network.CloudFront` | `CF` | <img width="90" src="../../docs/images/resources/aws/network/cloudfront.png"> |
| `aws.network.DirectConnect` | `-` | <img width="90" src="../../docs/images/resources/aws/network/direct-connect.png"> |
| `aws.network.ElasticLoadBalancing` | `ELB` | <img width="90" src="../../docs/images/resources/aws/network/elastic-load-balancing.png"> |
| `aws.network.ElbApplicationLoadBalancer` | `ALB` | <img width="90" src="../../docs/images/resources/aws/network/elb-application-load-balancer.png"> |
| `aws.network.ElbClassicLoadBalancer` | `CLB` | <img width="90" src="../../docs/images/resources/aws/network/elb-classic-load-balancer.png"> |
| `aws.network.ElbNetworkLoadBalancer` | `NLB` | <img width="90" src="../../docs/images/resources/aws/network/elb-network-load-balancer.png"> |
| `aws.network.Endpoint` | `-` | <img width="90" src="../../docs/images/resources/aws/network/endpoint.png"> |
| `aws.network.GlobalAccelerator` | `GAX` | <img width="90" src="../../docs/images/resources/aws/network/global-accelerator.png"> |
| `aws.network.InternetGateway` | `-` | <img width="90" src="../../docs/images/resources/aws/network/internet-gateway.png"> |
| `aws.network.Nacl` | `-` | <img width="90" src="../../docs/images/resources/aws/network/nacl.png"> |
| `aws.network.NATGateway` | `-` | <img width="90" src="../../docs/images/resources/aws/network/nat-gateway.png"> |
| `aws.network.NetworkingAndContentDelivery` | `-` | <img width="90" src="../../docs/images/resources/aws/network/networking-and-content-delivery.png"> |
| `aws.network.PrivateSubnet` | `-` | <img width="90" src="../../docs/images/resources/aws/network/private-subnet.png"> |
| `aws.network.Privatelink` | `-` | <img width="90" src="../../docs/images/resources/aws/network/privatelink.png"> |
| `aws.network.PublicSubnet` | `-` | <img width="90" src="../../docs/images/resources/aws/network/public-subnet.png"> |
| `aws.network.Route53HostedZone` | `-` | <img width="90" src="../../docs/images/resources/aws/network/route-53-hosted-zone.png"> |
| `aws.network.Route53` | `-` | <img width="90" src="../../docs/images/resources/aws/network/route-53.png"> |
| `aws.network.RouteTable` | `-` | <img width="90" src="../../docs/images/resources/aws/network/route-table.png"> |
| `aws.network.SiteToSiteVpn` | `-` | <img width="90" src="../../docs/images/resources/aws/network/site-to-site-vpn.png"> |
| `aws.network.TransitGateway` | `-` | <img width="90" src="../../docs/images/resources/aws/network/transit-gateway.png"> |
| `aws.network.VPCCustomerGateway` | `-` | <img width="90" src="../../docs/images/resources/aws/network/vpc-customer-gateway.png"> |
| `aws.network.VPCElasticNetworkAdapter` | `-` | <img width="90" src="../../docs/images/resources/aws/network/vpc-elastic-network-adapter.png"> |
| `aws.network.VPCElasticNetworkInterface` | `-` | <img width="90" src="../../docs/images/resources/aws/network/vpc-elastic-network-interface.png"> |
| `aws.network.VPCFlowLogs` | `-` | <img width="90" src="../../docs/images/resources/aws/network/vpc-flow-logs.png"> |
| `aws.network.VPCPeering` | `-` | <img width="90" src="../../docs/images/resources/aws/network/vpc-peering.png"> |
| `aws.network.VPCRouter` | `-` | <img width="90" src="../../docs/images/resources/aws/network/vpc-router.png"> |
| `aws.network.VPCTrafficMirroring` | `-` | <img width="90" src="../../docs/images/resources/aws/network/vpc-traffic-mirroring.png"> |
| `aws.network.VPC` | `-` | <img width="90" src="../../docs/images/resources/aws/network/vpc.png"> |
| `aws.network.VpnConnection` | `-` | <img width="90" src="../../docs/images/resources/aws/network/vpn-connection.png"> |
| `aws.network.VpnGateway` | `-` | <img width="90" src="../../docs/images/resources/aws/network/vpn-gateway.png"> |
### Quantum
| Type | Alias | Image |
|-----------------------------------|-------|-----------------------------------------------------------------------------------------|
| `aws.quantum.Braket` | `-` | <img width="90" src="../../docs/images/resources/aws/quantum/braket.png"> |
| `aws.quantum.QuantumTechnologies` | `-` | <img width="90" src="../../docs/images/resources/aws/quantum/quantum-technologies.png"> |
### Robotics
| Type | Alias | Image |
|------------------------------------------------|-------|-------------------------------------------------------------------------------------------------------|
| `aws.robotics.RobomakerCloudExtensionRos` | `-` | <img width="90" src="../../docs/images/resources/aws/robotics/robomaker-cloud-extension-ros.png"> |
| `aws.robotics.RobomakerDevelopmentEnvironment` | `-` | <img width="90" src="../../docs/images/resources/aws/robotics/robomaker-development-environment.png"> |
| `aws.robotics.RobomakerFleetManagement` | `-` | <img width="90" src="../../docs/images/resources/aws/robotics/robomaker-fleet-management.png"> |
| `aws.robotics.RobomakerSimulator` | `-` | <img width="90" src="../../docs/images/resources/aws/robotics/robomaker-simulator.png"> |
| `aws.robotics.Robomaker` | `-` | <img width="90" src="../../docs/images/resources/aws/robotics/robomaker.png"> |
| `aws.robotics.Robotics` | `-` | <img width="90" src="../../docs/images/resources/aws/robotics/robotics.png"> |
### Satellite
| Type | Alias | Image |
|-------------------------------|-------|-------------------------------------------------------------------------------------|
| `aws.satellite.GroundStation` | `-` | <img width="90" src="../../docs/images/resources/aws/satellite/ground-station.png"> |
| `aws.satellite.Satellite` | `-` | <img width="90" src="../../docs/images/resources/aws/satellite/satellite.png"> |
### Security
| Type | Alias | Image |
|--------------------------------------------------------------------------|---------------------|--------------------------------------------------------------------------------------------------------------------------------------|
| `aws.security.AdConnector` | `-` | <img width="90" src="../../docs/images/resources/aws/security/ad-connector.png"> |
| `aws.security.Artifact` | `-` | <img width="90" src="../../docs/images/resources/aws/security/artifact.png"> |
| `aws.security.CertificateAuthority` | `-` | <img width="90" src="../../docs/images/resources/aws/security/certificate-authority.png"> |
| `aws.security.CertificateManager` | `ACM` | <img width="90" src="../../docs/images/resources/aws/security/certificate-manager.png"> |
| `aws.security.CloudDirectory` | `-` | <img width="90" src="../../docs/images/resources/aws/security/cloud-directory.png"> |
| `aws.security.Cloudhsm` | `CloudHSM` | <img width="90" src="../../docs/images/resources/aws/security/cloudhsm.png"> |
| `aws.security.Cognito` | `-` | <img width="90" src="../../docs/images/resources/aws/security/cognito.png"> |
| `aws.security.Detective` | `-` | <img width="90" src="../../docs/images/resources/aws/security/detective.png"> |
| `aws.security.DirectoryService` | `DS` | <img width="90" src="../../docs/images/resources/aws/security/directory-service.png"> |
| `aws.security.FirewallManager` | `FMS` | <img width="90" src="../../docs/images/resources/aws/security/firewall-manager.png"> |
| `aws.security.Guardduty` | `-` | <img width="90" src="../../docs/images/resources/aws/security/guardduty.png"> |
| `aws.security.IdentityAndAccessManagementIamAccessAnalyzer` | `IAMAccessAnalyzer` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam-access-analyzer.png"> |
| `aws.security.IdentityAndAccessManagementIamAddOn` | `-` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam-add-on.png"> |
| `aws.security.IdentityAndAccessManagementIamAWSStsAlternate` | `-` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam-aws-sts-alternate.png"> |
| `aws.security.IdentityAndAccessManagementIamAWSSts` | `IAMAWSSts` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam-aws-sts.png"> |
| `aws.security.IdentityAndAccessManagementIamDataEncryptionKey` | `-` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam-data-encryption-key.png"> |
| `aws.security.IdentityAndAccessManagementIamEncryptedData` | `-` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam-encrypted-data.png"> |
| `aws.security.IdentityAndAccessManagementIamLongTermSecurityCredential` | `-` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam-long-term-security-credential.png"> |
| `aws.security.IdentityAndAccessManagementIamMfaToken` | `-` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam-mfa-token.png"> |
| `aws.security.IdentityAndAccessManagementIamPermissions` | `IAMPermissions` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam-permissions.png"> |
| `aws.security.IdentityAndAccessManagementIamRole` | `IAMRole` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam-role.png"> |
| `aws.security.IdentityAndAccessManagementIamTemporarySecurityCredential` | `-` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam-temporary-security-credential.png"> |
| `aws.security.IdentityAndAccessManagementIam` | `IAM` | <img width="90" src="../../docs/images/resources/aws/security/identity-and-access-management-iam.png"> |
| `aws.security.InspectorAgent` | `-` | <img width="90" src="../../docs/images/resources/aws/security/inspector-agent.png"> |
| `aws.security.Inspector` | `-` | <img width="90" src="../../docs/images/resources/aws/security/inspector.png"> |
| `aws.security.KeyManagementService` | `KMS` | <img width="90" src="../../docs/images/resources/aws/security/key-management-service.png"> |
| `aws.security.Macie` | `-` | <img width="90" src="../../docs/images/resources/aws/security/macie.png"> |
| `aws.security.ManagedMicrosoftAd` | `-` | <img width="90" src="../../docs/images/resources/aws/security/managed-microsoft-ad.png"> |
| `aws.security.ResourceAccessManager` | `RAM` | <img width="90" src="../../docs/images/resources/aws/security/resource-access-manager.png"> |
| `aws.security.SecretsManager` | `-` | <img width="90" src="../../docs/images/resources/aws/security/secrets-manager.png"> |
| `aws.security.SecurityHubFinding` | `-` | <img width="90" src="../../docs/images/resources/aws/security/security-hub-finding.png"> |
| `aws.security.SecurityHub` | `-` | <img width="90" src="../../docs/images/resources/aws/security/security-hub.png"> |
| `aws.security.SecurityIdentityAndCompliance` | `-` | <img width="90" src="../../docs/images/resources/aws/security/security-identity-and-compliance.png"> |
| `aws.security.ShieldAdvanced` | `-` | <img width="90" src="../../docs/images/resources/aws/security/shield-advanced.png"> |
| `aws.security.Shield` | `-` | <img width="90" src="../../docs/images/resources/aws/security/shield.png"> |
| `aws.security.SimpleAd` | `-` | <img width="90" src="../../docs/images/resources/aws/security/simple-ad.png"> |
| `aws.security.SingleSignOn` | `-` | <img width="90" src="../../docs/images/resources/aws/security/single-sign-on.png"> |
| `aws.security.WAFFilteringRule` | `-` | <img width="90" src="../../docs/images/resources/aws/security/waf-filtering-rule.png"> |
| `aws.security.WAF` | `-` | <img width="90" src="../../docs/images/resources/aws/security/waf.png"> |
### Storage
| Type | Alias | Image |
|-------------------------------------------------------|--------|------------------------------------------------------------------------------------------------------------------|
| `aws.storage.Backup` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/backup.png"> |
| `aws.storage.CloudendureDisasterRecovery` | `CDR` | <img width="90" src="../../docs/images/resources/aws/storage/cloudendure-disaster-recovery.png"> |
| `aws.storage.EFSInfrequentaccessPrimaryBg` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/efs-infrequentaccess-primary-bg.png"> |
| `aws.storage.EFSStandardPrimaryBg` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/efs-standard-primary-bg.png"> |
| `aws.storage.ElasticBlockStoreEBSSnapshot` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/elastic-block-store-ebs-snapshot.png"> |
| `aws.storage.ElasticBlockStoreEBSVolume` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/elastic-block-store-ebs-volume.png"> |
| `aws.storage.ElasticBlockStoreEBS` | `EBS` | <img width="90" src="../../docs/images/resources/aws/storage/elastic-block-store-ebs.png"> |
| `aws.storage.ElasticFileSystemEFSFileSystem` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/elastic-file-system-efs-file-system.png"> |
| `aws.storage.ElasticFileSystemEFS` | `EFS` | <img width="90" src="../../docs/images/resources/aws/storage/elastic-file-system-efs.png"> |
| `aws.storage.FsxForLustre` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/fsx-for-lustre.png"> |
| `aws.storage.FsxForWindowsFileServer` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/fsx-for-windows-file-server.png"> |
| `aws.storage.Fsx` | `FSx` | <img width="90" src="../../docs/images/resources/aws/storage/fsx.png"> |
| `aws.storage.MultipleVolumesResource` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/multiple-volumes-resource.png"> |
| `aws.storage.S3GlacierArchive` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/s3-glacier-archive.png"> |
| `aws.storage.S3GlacierVault` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/s3-glacier-vault.png"> |
| `aws.storage.S3Glacier` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/s3-glacier.png"> |
| `aws.storage.SimpleStorageServiceS3BucketWithObjects` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/simple-storage-service-s3-bucket-with-objects.png"> |
| `aws.storage.SimpleStorageServiceS3Bucket` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/simple-storage-service-s3-bucket.png"> |
| `aws.storage.SimpleStorageServiceS3Object` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/simple-storage-service-s3-object.png"> |
| `aws.storage.SimpleStorageServiceS3` | `S3` | <img width="90" src="../../docs/images/resources/aws/storage/simple-storage-service-s3.png"> |
| `aws.storage.SnowFamilySnowballImportExport` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/snow-family-snowball-import-export.png"> |
| `aws.storage.SnowballEdge` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/snowball-edge.png"> |
| `aws.storage.Snowball` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/snowball.png"> |
| `aws.storage.Snowmobile` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/snowmobile.png"> |
| `aws.storage.StorageGatewayCachedVolume` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/storage-gateway-cached-volume.png"> |
| `aws.storage.StorageGatewayNonCachedVolume` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/storage-gateway-non-cached-volume.png"> |
| `aws.storage.StorageGatewayVirtualTapeLibrary` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/storage-gateway-virtual-tape-library.png"> |
| `aws.storage.StorageGateway` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/storage-gateway.png"> |
| `aws.storage.Storage` | `-` | <img width="90" src="../../docs/images/resources/aws/storage/storage.png"> |
================================================
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` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/analysis-services.png"> |
| `azure.analytics.DataExplorerClusters` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/data-explorer-clusters.png"> |
| `azure.analytics.DataFactories` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/data-factories.png"> |
| `azure.analytics.DataLakeAnalytics` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/data-lake-analytics.png"> |
| `azure.analytics.DataLakeStoreGen1` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/data-lake-store-gen1.png"> |
| `azure.analytics.Databricks` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/databricks.png"> |
| `azure.analytics.EventHubClusters` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/event-hub-clusters.png"> |
| `azure.analytics.EventHubs` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/event-hubs.png"> |
| `azure.analytics.Hdinsightclusters` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/hdinsightclusters.png"> |
| `azure.analytics.LogAnalyticsWorkspaces` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/log-analytics-workspaces.png"> |
| `azure.analytics.StreamAnalyticsJobs` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/stream-analytics-jobs.png"> |
| `azure.analytics.SynapseAnalytics` | `-` | <img width="90" src="../../docs/images/resources/azure/analytics/synapse-analytics.png"> |
### Compute
| Type | Alias | Image |
|-------------------------------------------------|--------|---------------------------------------------------------------------------------------------------------|
| `azure.compute.AppServices` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/app-services.png"> |
| `azure.compute.AutomanagedVM` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/automanaged-vm.png"> |
| `azure.compute.AvailabilitySets` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/availability-sets.png"> |
| `azure.compute.BatchAccounts` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/batch-accounts.png"> |
| `azure.compute.CitrixVirtualDesktopsEssentials` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/citrix-virtual-desktops-essentials.png"> |
| `azure.compute.CloudServicesClassic` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/cloud-services-classic.png"> |
| `azure.compute.CloudServices` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/cloud-services.png"> |
| `azure.compute.CloudsimpleVirtualMachines` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/cloudsimple-virtual-machines.png"> |
| `azure.compute.ContainerInstances` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/container-instances.png"> |
| `azure.compute.ContainerRegistries` | `ACR` | <img width="90" src="../../docs/images/resources/azure/compute/container-registries.png"> |
| `azure.compute.DiskEncryptionSets` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/disk-encryption-sets.png"> |
| `azure.compute.DiskSnapshots` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/disk-snapshots.png"> |
| `azure.compute.Disks` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/disks.png"> |
| `azure.compute.FunctionApps` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/function-apps.png"> |
| `azure.compute.ImageDefinitions` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/image-definitions.png"> |
| `azure.compute.ImageVersions` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/image-versions.png"> |
| `azure.compute.KubernetesServices` | `AKS` | <img width="90" src="../../docs/images/resources/azure/compute/kubernetes-services.png"> |
| `azure.compute.MeshApplications` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/mesh-applications.png"> |
| `azure.compute.OsImages` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/os-images.png"> |
| `azure.compute.SAPHANAOnAzure` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/sap-hana-on-azure.png"> |
| `azure.compute.ServiceFabricClusters` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/service-fabric-clusters.png"> |
| `azure.compute.SharedImageGalleries` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/shared-image-galleries.png"> |
| `azure.compute.SpringCloud` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/spring-cloud.png"> |
| `azure.compute.VMClassic` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/vm-classic.png"> |
| `azure.compute.VMImages` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/vm-images.png"> |
| `azure.compute.VMLinux` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/vm-linux.png"> |
| `azure.compute.VMScaleSet` | `VMSS` | <img width="90" src="../../docs/images/resources/azure/compute/vm-scale-set.png"> |
| `azure.compute.VMWindows` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/vm-windows.png"> |
| `azure.compute.VM` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/vm.png"> |
| `azure.compute.Workspaces` | `-` | <img width="90" src="../../docs/images/resources/azure/compute/workspaces.png"> |
### Database
| Type | Alias | Image |
|-----------------------------------------------|-------|-------------------------------------------------------------------------------------------------------|
| `azure.database.BlobStorage` | `-` | <img width="90" src="../../docs/images/resources/azure/database/blob-storage.png"> |
| `azure.database.CacheForRedis` | `-` | <img width="90" src="../../docs/images/resources/azure/database/cache-for-redis.png"> |
| `azure.database.CosmosDb` | `-` | <img width="90" src="../../docs/images/resources/azure/database/cosmos-db.png"> |
| `azure.database.DataExplorerClusters` | `-` | <img width="90" src="../../docs/images/resources/azure/database/data-explorer-clusters.png"> |
| `azure.database.DataFactory` | `-` | <img width="90" src="../../docs/images/resources/azure/database/data-factory.png"> |
| `azure.database.DataLake` | `-` | <img width="90" src="../../docs/images/resources/azure/database/data-lake.png"> |
| `azure.database.DatabaseForMariadbServers` | `-` | <img width="90" src="../../docs/images/resources/azure/database/database-for-mariadb-servers.png"> |
| `azure.database.DatabaseForMysqlServers` | `-` | <img width="90" src="../../docs/images/resources/azure/database/database-for-mysql-servers.png"> |
| `azure.database.DatabaseForPostgresqlServers` | `-` | <img width="90" src="../../docs/images/resources/azure/database/database-for-postgresql-servers.png"> |
| `azure.database.ElasticDatabasePools` | `-` | <img width="90" src="../../docs/images/resources/azure/database/elastic-database-pools.png"> |
| `azure.database.ElasticJobAgents` | `-` | <img width="90" src="../../docs/images/resources/azure/database/elastic-job-agents.png"> |
| `azure.database.InstancePools` | `-` | <img width="90" src="../../docs/images/resources/azure/database/instance-pools.png"> |
| `azure.database.ManagedDatabases` | `-` | <img width="90" src="../../docs/images/resources/azure/database/managed-databases.png"> |
| `azure.database.SQLDatabases` | `-` | <img width="90" src="../../docs/images/resources/azure/database/sql-databases.png"> |
| `azure.database.SQLDatawarehouse` | `-` | <img width="90" src="../../docs/images/resources/azure/database/sql-datawarehouse.png"> |
| `azure.database.SQLManagedInstances` | `-` | <img width="90" src="../../docs/images/resources/azure/database/sql-managed-instances.png"> |
| `azure.database.SQLServerStretchDatabases` | `-` | <img width="90" src="../../docs/images/resources/azure/database/sql-server-stretch-databases.png"> |
| `azure.database.SQLServers` | `-` | <img width="90" src="../../docs/images/resources/azure/database/sql-servers.png"> |
| `azure.database.SQLVM` | `-` | <img width="90" src="../../docs/images/resources/azure/database/sql-vm.png"> |
| `azure.database.SQL` | `-` | <img width="90" src="../../docs/images/resources/azure/database/sql.png"> |
| `azure.database.SsisLiftAndShiftIr` | `-` | <img width="90" src="../../docs/images/resources/azure/database/ssis-lift-and-shift-ir.png"> |
| `azure.database.SynapseAnalytics` | `-` | <img width="90" src="../../docs/images/resources/azure/database/synapse-analytics.png"> |
| `azure.database.VirtualClusters` | `-` | <img width="90" src="../../docs/images/resources/azure/database/virtual-clusters.png"> |
| `azure.database.VirtualDatacenter` | `-` | <img width="90" src="../../docs/images/resources/azure/database/virtual-datacenter.png"> |
### DevOps
| Type | Alias | Image |
|------------------------------------|-------|------------------------------------------------------------------------------------------|
| `azure.devops.ApplicationInsights` | `-` | <img width="90" src="../../docs/images/resources/azure/devops/application-insights.png"> |
| `azure.devops.Artifacts` | `-` | <img width="90" src="../../docs/images/resources/azure/devops/artifacts.png"> |
| `azure.devops.Boards` | `-` | <img width="90" src="../../docs/images/resources/azure/devops/boards.png"> |
| `azure.devops.Devops` | `-` | <img width="90" src="../../docs/images/resources/azure/devops/devops.png"> |
| `azure.devops.DevtestLabs` | `-` | <img width="90" src="../../docs/images/resources/azure/devops/devtest-labs.png"> |
| `azure.devops.LabServices` | `-` | <img width="90" src="../../docs/images/resources/azure/devops/lab-services.png"> |
| `azure.devops.Pipelines` | `-` | <img width="90" src="../../docs/images/resources/azure/devops/pipelines.png"> |
| `azure.devops.Repos` | `-` | <img width="90" src="../../docs/images/resources/azure/devops/repos.png"> |
| `azure.devops.TestPlans` | `-` | <img width="90" src="../../docs/images/resources/azure/devops/test-plans.png"> |
### General
| Type | Alias | Image |
|----------------------------------|-------|---------------------------------------------------------------------------------------|
| `azure.general.Allresources` | `-` | <img width="90" src="../../docs/images/resources/azure/general/allresources.png"> |
| `azure.general.Azurehome` | `-` | <img width="90" src="../../docs/images/resources/azure/general/azurehome.png"> |
| `azure.general.Developertools` | `-` | <img width="90" src="../../docs/images/resources/azure/general/developertools.png"> |
| `azure.general.Helpsupport` | `-` | <img width="90" src="../../docs/images/resources/azure/general/helpsupport.png"> |
| `azure.general.Information` | `-` | <img width="90" src="../../docs/images/resources/azure/general/information.png"> |
| `azure.general.Managementgroups` | `-` | <img width="90" src="../../docs/images/resources/azure/general/managementgroups.png"> |
| `azure.general.Marketplace` | `-` | <img width="90" src="../../docs/images/resources/azure/general/marketplace.png"> |
| `azure.general.Quickstartcenter` | `-` | <img width="90" src="../../docs/images/resources/azure/general/quickstartcenter.png"> |
| `azure.general.Recent` | `-` | <img width="90" src="../../docs/images/resources/azure/general/recent.png"> |
| `azure.general.Reservations` | `-` | <img width="90" src="../../docs/images/resources/azure/general/reservations.png"> |
| `azure.general.Resource` | `-` | <img width="90" src="../../docs/images/resources/azure/general/resource.png"> |
| `azure.general.Resourcegroups` | `-` | <img width="90" src="../../docs/images/resources/azure/general/resourcegroups.png"> |
| `azure.general.Servicehealth` | `-` | <img width="90" src="../../docs/images/resources/azure/general/servicehealth.png"> |
| `azure.general.Shareddashboard` | `-` | <img width="90" src="../../docs/images/resources/azure/general/shareddashboard.png"> |
| `azure.general.Subscriptions` | `-` | <img width="90" src="../../docs/images/resources/azure/general/subscriptions.png"> |
| `azure.general.Support` | `-` | <img width="90" src="../../docs/images/resources/azure/general/support.png"> |
| `azure.general.Supportrequests` | `-` | <img width="90" src="../../docs/images/resources/azure/general/supportrequests.png"> |
| `azure.general.Tag` | `-` | <img width="90" src="../../docs/images/resources/azure/general/tag.png"> |
| `azure.general.Tags` | `-` | <img width="90" src="../../docs/images/resources/azure/general/tags.png"> |
| `azure.general.Templates` | `-` | <img width="90" src="../../docs/images/resources/azure/general/templates.png"> |
| `azure.general.Twousericon` | `-` | <img width="90" src="../../docs/images/resources/azure/general/twousericon.png"> |
| `azure.general.Userhealthicon` | `-` | <img width="90" src="../../docs/images/resources/azure/general/userhealthicon.png"> |
| `azure.general.Usericon` | `-` | <img width="90" src="../../docs/images/resources/azure/general/usericon.png"> |
| `azure.general.Userprivacy` | `-` | <img width="90" src="../../docs/images/resources/azure/general/userprivacy.png"> |
| `azure.general.Userresource` | `-` | <img width="90" src="../../docs/images/resources/azure/general/userresource.png"> |
| `azure.general.Whatsnew` | `-` | <img width="90" src="../../docs/images/resources/azure/general/whatsnew.png"> |
### Identity
| Type | Alias | Image |
|-------------------------------------------------|-------|---------------------------------------------------------------------------------------------------------|
| `azure.identity.AccessReview` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/access-review.png"> |
| `azure.identity.ActiveDirectoryConnectHealth` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/active-directory-connect-health.png"> |
| `azure.identity.ActiveDirectory` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/active-directory.png"> |
| `azure.identity.ADB2C` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/ad-b2c.png"> |
| `azure.identity.ADDomainServices` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/ad-domain-services.png"> |
| `azure.identity.ADIdentityProtection` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/ad-identity-protection.png"> |
| `azure.identity.ADPrivilegedIdentityManagement` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/ad-privileged-identity-management.png"> |
| `azure.identity.AppRegistrations` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/app-registrations.png"> |
| `azure.identity.ConditionalAccess` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/conditional-access.png"> |
| `azure.identity.EnterpriseApplications` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/enterprise-applications.png"> |
| `azure.identity.Groups` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/groups.png"> |
| `azure.identity.IdentityGovernance` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/identity-governance.png"> |
| `azure.identity.InformationProtection` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/information-protection.png"> |
| `azure.identity.ManagedIdentities` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/managed-identities.png"> |
| `azure.identity.Users` | `-` | <img width="90" src="../../docs/images/resources/azure/identity/users.png"> |
### Integration
| Type | Alias | Image |
|-----------------------------------------------------------------|-------|--------------------------------------------------------------------------------------------------------------------------|
| `azure.integration.APIForFhir` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/api-for-fhir.png"> |
| `azure.integration.APIManagement` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/api-management.png"> |
| `azure.integration.AppConfiguration` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/app-configuration.png"> |
| `azure.integration.DataCatalog` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/data-catalog.png"> |
| `azure.integration.EventGridDomains` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/event-grid-domains.png"> |
| `azure.integration.EventGridSubscriptions` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/event-grid-subscriptions.png"> |
| `azure.integration.EventGridTopics` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/event-grid-topics.png"> |
| `azure.integration.IntegrationAccounts` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/integration-accounts.png"> |
| `azure.integration.IntegrationServiceEnvironments` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/integration-service-environments.png"> |
| `azure.integration.LogicAppsCustomConnector` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/logic-apps-custom-connector.png"> |
| `azure.integration.LogicApps` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/logic-apps.png"> |
| `azure.integration.PartnerTopic` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/partner-topic.png"> |
| `azure.integration.SendgridAccounts` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/sendgrid-accounts.png"> |
| `azure.integration.ServiceBusRelays` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/service-bus-relays.png"> |
| `azure.integration.ServiceBus` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/service-bus.png"> |
| `azure.integration.ServiceCatalogManagedApplicationDefinitions` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/service-catalog-managed-application-definitions.png"> |
| `azure.integration.SoftwareAsAService` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/software-as-a-service.png"> |
| `azure.integration.StorsimpleDeviceManagers` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/storsimple-device-managers.png"> |
| `azure.integration.SystemTopic` | `-` | <img width="90" src="../../docs/images/resources/azure/integration/system-topic.png"> |
### Iot
| Type | Alias | Image |
|---------------------------------------------|-------|------------------------------------------------------------------------------------------------------|
| `azure.iot.DeviceProvisioningServices` | `-` | <img width="90" src="../../docs/images/resources/azure/iot/device-provisioning-services.png"> |
| `azure.iot.DigitalTwins` | `-` | <img width="90" src="../../docs/images/resources/azure/iot/digital-twins.png"> |
| `azure.iot.IotCentralApplications` | `-` | <img width="90" src="../../docs/images/resources/azure/iot/iot-central-applications.png"> |
| `azure.iot.IotHubSecurity` | `-` | <img width="90" src="../../docs/images/resources/azure/iot/iot-hub-security.png"> |
| `azure.iot.IotHub` | `-` | <img width="90" src="../../docs/images/resources/azure/iot/iot-hub.png"> |
| `azure.iot.Maps` | `-` | <img width="90" src="../../docs/images/resources/azure/iot/maps.png"> |
| `azure.iot.Sphere` | `-` | <img width="90" src="../../docs/images/resources/azure/iot/sphere.png"> |
| `azure.iot.TimeSeriesInsightsEnvironments` | `-` | <img width="90" src="../../docs/images/resources/azure/iot/time-series-insights-environments.png"> |
| `azure.iot.TimeSeriesInsightsEventsSources` | `-` | <img width="90" src="../../docs/images/resources/azure/iot/time-series-insights-events-sources.png"> |
| `azure.iot.Windows10IotCoreServices` | `-` | <img width="90" src="../../docs/images/resources/azure/iot/windows-10-iot-core-services.png"> |
### Migration
| Type | Alias | Image |
|---------------------------------------------|-------|----------------------------------------------------------------------------------------------------|
| `azure.migration.DataBoxEdge` | `-` | <img width="90" src="../../docs/images/resources/azure/migration/data-box-edge.png"> |
| `azure.migration.DataBox` | `-` | <img width="90" src="../../docs/images/resources/azure/migration/data-box.png"> |
| `azure.migration.DatabaseMigrationServices` | `-` | <img width="90" src="../../docs/images/resources/azure/migration/database-migration-services.png"> |
| `azure.migration.MigrationProjects` | `-` | <img width="90" src="../../docs/images/resources/azure/migration/migration-projects.png"> |
| `azure.migration.RecoveryServicesVaults` | `-` | <img width="90" src="../../docs/images/resources/azure/migration/recovery-services-vaults.png"> |
### Ml
| Type | Alias | Image |
|-------------------------------------------------|-------|-----------------------------------------------------------------------------------------------------------|
| `azure.ml.BatchAI` | `-` | <img width="90" src="../../docs/images/resources/azure/ml/batch-ai.png"> |
| `azure.ml.BotServices` | `-` | <img width="90" src="../../docs/images/resources/azure/ml/bot-services.png"> |
| `azure.ml.CognitiveServices` | `-` | <img width="90" src="../../docs/images/resources/azure/ml/cognitive-services.png"> |
| `azure.ml.GenomicsAccounts` | `-` | <img width="90" src="../../docs/images/resources/azure/ml/genomics-accounts.png"> |
| `azure.ml.MachineLearningServiceWorkspaces` | `-` | <img width="90" src="../../docs/images/resources/azure/ml/machine-learning-service-workspaces.png"> |
| `azure.ml.MachineLearningStudioWebServicePlans` | `-` | <img width="90" src="../../docs/images/resources/azure/ml/machine-learning-studio-web-service-plans.png"> |
| `azure.ml.MachineLearningStudioWebServices` | `-` | <img width="90" src="../../docs/images/resources/azure/ml/machine-learning-studio-web-services.png"> |
| `azure.ml.MachineLearningStudioWorkspaces` | `-` | <img width="90" src="../../docs/images/resources/azure/ml/machine-learning-studio-workspaces.png"> |
### Mobile
| Type | Alias | Image |
|---------------------------------|-------|----------------------------------------------------------------------------------------|
| `azure.mobile.AppServiceMobile` | `-` | <img width="90" src="../../docs/images/resources/azure/mobile/app-service-mobile.png"> |
| `azure.mobile.MobileEngagement` | `-` | <img width="90" src="../../docs/images/resources/azure/mobile/mobile-engagement.png"> |
| `azure.mobile.NotificationHubs` | `-` | <img width="90" src="../../docs/images/resources/azure/mobile/notification-hubs.png"> |
### Network
| Type | Alias | Image |
|----------------------------------------------|-------|------------------------------------------------------------------------------------------------------|
| `azure.network.ApplicationGateway` | `-` | <img width="90" src="../../docs/images/resources/azure/network/application-gateway.png"> |
| `azure.network.ApplicationSecurityGroups` | `-` | <img width="90" src="../../docs/images/resources/azure/network/application-security-groups.png"> |
| `azure.network.CDNProfiles` | `-` | <img width="90" src="../../docs/images/resources/azure/network/cdn-profiles.png"> |
| `azure.network.Connections` | `-` | <img width="90" src="../../docs/images/resources/azure/network/connections.png"> |
| `azure.network.DDOSProtectionPlans` | `-` | <img width="90" src="../../docs/images/resources/azure/network/ddos-protection-plans.png"> |
| `azure.network.DNSPrivateZones` | `-` | <img width="90" src="../../docs/images/resources/azure/network/dns-private-zones.png"> |
| `azure.network.DNSZones` | `-` | <img width="90" src="../../docs/images/resources/azure/network/dns-zones.png"> |
| `azure.network.ExpressrouteCircuits` | `-` | <img width="90" src="../../docs/images/resources/azure/network/expressroute-circuits.png"> |
| `azure.network.Firewall` | `-` | <img width="90" src="../../docs/images/resources/azure/network/firewall.png"> |
| `azure.network.FrontDoors` | `-` | <img width="90" src="../../docs/images/resources/azure/network/front-doors.png"> |
| `azure.network.LoadBalancers` | `-` | <img width="90" src="../../docs/images/resources/azure/network/load-balancers.png"> |
| `azure.network.LocalNetworkGateways` | `-` | <img width="90" src="../../docs/images/resources/azure/network/local-network-gateways.png"> |
| `azure.network.NetworkInterfaces` | `-` | <img width="90" src="../../docs/images/resources/azure/network/network-interfaces.png"> |
| `azure.network.NetworkSecurityGroupsClassic` | `-` | <img width="90" src="../../docs/images/resources/azure/network/network-security-groups-classic.png"> |
| `azure.network.NetworkWatcher` | `-` | <img width="90" src="../../docs/images/resources/azure/network/network-watcher.png"> |
| `azure.network.OnPremisesDataGateways` | `-` | <img width="90" src="../../docs/images/resources/azure/network/on-premises-data-gateways.png"> |
| `azure.network.PublicIpAddresses` | `-` | <img width="90" src="../../docs/images/resources/azure/network/public-ip-addresses.png"> |
| `azure.network.ReservedIpAddressesClassic` | `-` | <img width="90" src="../../docs/images/resources/azure/network/reserved-ip-addresses-classic.png"> |
| `azure.network.RouteFilters` | `-` | <img width="90" src="../../docs/images/resources/azure/network/route-filters.png"> |
| `azure.network.RouteTables` | `-` | <img width="90" src="../../docs/images/resources/azure/network/route-tables.png"> |
| `azure.network.ServiceEndpointPolicies` | `-` | <img width="90" src="../../docs/images/resources/azure/network/service-endpoint-policies.png"> |
| `azure.network.Subnets` | `-` | <img width="90" src="../../docs/images/resources/azure/network/subnets.png"> |
| `azure.network.TrafficManagerProfiles` | `-` | <img width="90" src="../../docs/images/resources/azure/network/traffic-manager-profiles.png"> |
| `azure.network.VirtualNetworkClassic` | `-` | <img width="90" src="../../docs/images/resources/azure/network/virtual-network-classic.png"> |
| `azure.network.VirtualNetworkGateways` | `-` | <img width="90" src="../../docs/images/resources/azure/network/virtual-network-gateways.png"> |
| `azure.network.VirtualNetworks` | `-` | <img width="90" src="../../docs/images/resources/azure/network/virtual-networks.png"> |
| `azure.network.VirtualWans` | `-` | <img width="90" src="../../docs/images/resources/azure/network/virtual-wans.png"> |
### Security
| Type | Alias | Image |
|--------------------------------------------|-------|---------------------------------------------------------------------------------------------------|
| `azure.security.ApplicationSecurityGroups` | `-` | <img width="90" src="../../docs/images/resources/azure/security/application-security-groups.png"> |
| `azure.security.ConditionalAccess` | `-` | <img width="90" src="../../docs/images/resources/azure/security/conditional-access.png"> |
| `azure.security.Defender` | `-` | <img width="90" src="../../docs/images/resources/azure/security/defender.png"> |
| `azure.security.ExtendedSecurityUpdates` | `-` | <img width="90" src="../../docs/images/resources/azure/security/extended-security-updates.png"> |
| `azure.security.KeyVaults` | `-` | <img width="90" src="../../docs/images/resources/azure/security/key-vaults.png"> |
| `azure.security.SecurityCenter` | `-` | <img width="90" src="../../docs/images/resources/azure/security/security-center.png"> |
| `azure.security.Sentinel` | `-` | <img width="90" src="../../docs/images/resources/azure/security/sentinel.png"> |
### Storage
| Type | Alias | Image |
|-------------------------------------------|-------|-----------------------------------------------------------------------------------------------------|
| `azure.storage.ArchiveStorage` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/archive-storage.png"> |
| `azure.storage.Azurefxtedgefiler` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/azurefxtedgefiler.png"> |
| `azure.storage.BlobStorage` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/blob-storage.png"> |
| `azure.storage.DataBoxEdgeDataBoxGateway` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/data-box-edge-data-box-gateway.png"> |
| `azure.storage.DataBox` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/data-box.png"> |
| `azure.storage.DataLakeStorage` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/data-lake-storage.png"> |
| `azure.storage.GeneralStorage` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/general-storage.png"> |
| `azure.storage.NetappFiles` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/netapp-files.png"> |
| `azure.storage.QueuesStorage` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/queues-storage.png"> |
| `azure.storage.StorageAccountsClassic` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/storage-accounts-classic.png"> |
| `azure.storage.StorageAccounts` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/storage-accounts.png"> |
| `azure.storage.StorageExplorer` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/storage-explorer.png"> |
| `azure.storage.StorageSyncServices` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/storage-sync-services.png"> |
| `azure.storage.StorsimpleDataManagers` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/storsimple-data-managers.png"> |
| `azure.storage.StorsimpleDeviceManagers` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/storsimple-device-managers.png"> |
| `azure.storage.TableStorage` | `-` | <img width="90" src="../../docs/images/resources/azure/storage/table-storage.png"> |
### Web
| Type | Alias | Image |
|---------------------------------------|-------|----------------------------------------------------------------------------------------------|
| `azure.web.APIConnections` | `-` | <img width="90" src="../../docs/images/resources/azure/web/api-connections.png"> |
| `azure.web.AppServiceCertificates` | `-` | <img width="90" src="../../docs/images/resources/azure/web/app-service-certificates.png"> |
| `azure.web.AppServiceDomains` | `-` | <img width="90" src="../../docs/images/resources/azure/web/app-service-domains.png"> |
| `azure.web.AppServiceEnvironments` | `-` | <img width="90" src="../../docs/images/resources/azure/web/app-service-environments.png"> |
| `azure.web.AppServicePlans` | `-` | <img width="90" src="../../docs/images/resources/azure/web/app-service-plans.png"> |
| `azure.web.AppServices` | `-` | <img width="90" src="../../docs/images/resources/azure/web/app-services.png"> |
| `azure.web.MediaServices` | `-` | <img width="90" src="../../docs/images/resources/azure/web/media-services.png"> |
| `azure.web.NotificationHubNamespaces` | `-` | <img width="90" src="../../docs/images/resources/azure/web/notification-hub-namespaces.png"> |
| `azure.web.Search` | `-` | <img width="90" src="../../docs/images/resources/azure/web/search.png"> |
| `azure.web.Signalr` | `-` | <img width="90" src="../../docs/images/resources/azure/web/signalr.png"> |
================================================
FILE: docs/resources/digital_ocean.md
================================================
## DigitalOcean
Table of Content:
* [Compute](#compute)
* [Database](#database)
* [Network](#network)
* [Storage](#storage)
### Compute
| Type | Alias | I
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
SYMBOL INDEX (18 symbols across 4 files)
FILE: diagrams_as_code/entrypoint.py
function get_diagram_node_class (line 31) | def get_diagram_node_class(path: str) -> Node:
function process_resource (line 58) | def process_resource(resource: YamlDiagramResource, parent_id: str, grou...
function entrypoint (line 133) | def entrypoint() -> None:
FILE: diagrams_as_code/enums.py
class ServiceResourceType (line 7) | class ServiceResourceType(Enum):
class RelationDirection (line 16) | class RelationDirection(str, Enum):
class DiagramDirection (line 27) | class DiagramDirection(str, Enum):
method mapped (line 38) | def mapped(self):
class DiagramFormat (line 55) | class DiagramFormat(str, Enum):
FILE: diagrams_as_code/resources.py
class DiagramGroup (line 7) | class DiagramGroup:
method __init__ (line 14) | def __init__(self: 'DiagramGroup') -> None:
method add_node (line 20) | def add_node(self: 'DiagramGroup', node: Node) -> None:
method get_nodes (line 29) | def get_nodes(self: 'DiagramGroup') -> list[Node]:
method __repr__ (line 38) | def __repr__(self: 'DiagramGroup') -> str:
FILE: diagrams_as_code/schema.py
class YamlDiagramStyle (line 15) | class YamlDiagramStyle(BaseModel):
class YamlDiagram (line 25) | class YamlDiagram(BaseModel):
class YamlDiagramResource (line 43) | class YamlDiagramResource(BaseModel):
class YamlDiagramResourceRelationship (line 55) | class YamlDiagramResourceRelationship(BaseModel):
class Relationship (line 67) | class Relationship(BaseModel):
Condensed preview — 46 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (691K chars).
[
{
"path": ".github/workflows/main.yaml",
"chars": 1908,
"preview": "---\nname: Main branch workflow\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n runs-on: [ubuntu-latest]\n "
},
{
"path": ".github/workflows/pull_request.yaml",
"chars": 2105,
"preview": "---\nname: Pull request workflow\n\non:\n pull_request_target:\n branches:\n - main\n\njobs:\n check-project-version:\n "
},
{
"path": ".gitignore",
"chars": 1221,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
},
{
"path": ".project-version",
"chars": 6,
"preview": "0.0.4\n"
},
{
"path": ".yamllint.yml",
"chars": 287,
"preview": "---\nextends: default\nrules:\n indentation:\n spaces: 2\n indent-sequences: true\n document-start:\n present: true\n"
},
{
"path": "LICENSE",
"chars": 1075,
"preview": "MIT License\n\nCopyright (c) 2023 Dmytro Striletskyi\n\nPermission is hereby granted, free of charge, to any person obtainin"
},
{
"path": "MANIFEST.in",
"chars": 87,
"preview": "include *.md\ninclude LICENSE\ninclude requirements/project.txt\ninclude .project-version\n"
},
{
"path": "Makefile",
"chars": 416,
"preview": "SOURCE_FOLDER=./diagrams_yaml\n\nget-project-version:\n\t@cat .project-version\n\ninstall-requirements:\n\tpip3 install \\\n\t -"
},
{
"path": "README.md",
"chars": 21164,
"preview": "`Diagrams as code`: declarative configurations using `YAML` for drawing cloud system architectures.\n\n[:\n \"\"\"\n Service re"
},
{
"path": "diagrams_as_code/resources.py",
"chars": 1109,
"preview": "\"\"\"\nProvide implementation of resources.\n\"\"\"\nfrom diagrams import Node\n\n\nclass DiagramGroup:\n \"\"\"\n Diagram group r"
},
{
"path": "diagrams_as_code/schema.py",
"chars": 1712,
"preview": "\"\"\"\nProvide implementation of schemas.\n\"\"\"\nfrom __future__ import annotations\n\nfrom pydantic import BaseModel\n\nfrom diag"
},
{
"path": "docs/resources/alibaba_cloud.md",
"chars": 25835,
"preview": "## Alibaba Cloud\n\nTable of Content:\n\n* [Analytics](#analytics)\n* [Application](#application)\n* [Communication](#communic"
},
{
"path": "docs/resources/aws.md",
"chars": 89754,
"preview": "## AWS\n\nTable of Content:\n\n* [Analytics](#analytics)\n* [Ar](#ar)\n* [Blockchain](#blockchain)\n* [Business](#business)\n* ["
},
{
"path": "docs/resources/azure.md",
"chars": 40405,
"preview": "## Azure\n\nTable of Content:\n\n* [Analytics](#analytics)\n* [Compute](#compute)\n* [Database](#database)\n* [DevOps](#devops)"
},
{
"path": "docs/resources/digital_ocean.md",
"chars": 5175,
"preview": "## DigitalOcean\n\nTable of Content:\n\n* [Compute](#compute)\n* [Database](#database)\n* [Network](#network)\n* [Storage](#sto"
},
{
"path": "docs/resources/elastic.md",
"chars": 8816,
"preview": "## Elastic\n\nTable of Content:\n\n* [Agent](#agent)\n* [Beats](#beats)\n* [Elasticsearch](#elasticsearch)\n* [Enterprise Searc"
},
{
"path": "docs/resources/firebase.md",
"chars": 4573,
"preview": "## Firebase\n\nTable of Content:\n\n* [Base](#base)\n* [Develop](#develop)\n* [Extentions](#extentions)\n* [Grow](#grow)\n* [Qua"
},
{
"path": "docs/resources/flowchart.md",
"chars": 3914,
"preview": "## Flowchart\n\n| Type | Alias | Image "
},
{
"path": "docs/resources/gcp.md",
"chars": 17400,
"preview": "## GCP\n\nTable of Content:\n\n* [Analytics](#analytics)\n* [Api](#api)\n* [Compute](#compute)\n* [Database](#database)\n* [Devt"
},
{
"path": "docs/resources/generic.md",
"chars": 5522,
"preview": "## Generic\n\nTable of Content:\n\n* [Blank](#blank)\n* [Compute](#compute)\n* [Database](#database)\n* [Device](#device)\n* [Ne"
},
{
"path": "docs/resources/ibm.md",
"chars": 32202,
"preview": "## IBM\n\nTable of Content:\n\n* [Analytics](#analytics)\n* [Applications](#applications)\n* [Blockchain](#blockchain)\n* [Comp"
},
{
"path": "docs/resources/kubernetes.md",
"chars": 9400,
"preview": "## Kubernetes\n\nTable of Content:\n\n* [Chaos](#chaos)\n* [ClusterConfig](#clusterconfig)\n* [Compute](#compute)\n* [Control P"
},
{
"path": "docs/resources/oci.md",
"chars": 23793,
"preview": "## OCI\n\nTable of Content:\n\n* [Compute](#compute)\n* [Connectivity](#connectivity)\n* [Database](#database)\n* [Devops](#dev"
},
{
"path": "docs/resources/on_premise.md",
"chars": 31697,
"preview": "## On-Premise\n\nTable of Content:\n\n* [Aggregator](#aggregator)\n* [Analytics](#analytics)\n* [Auth](#auth)\n* [Cd](#cd)\n* [C"
},
{
"path": "docs/resources/open_stack.md",
"chars": 13029,
"preview": "## OpenStack\n\nTable of Content:\n\n* [API Proxies](#api-proxies)\n* [Application Life Cycle](#application-life-cycle)\n* [Ba"
},
{
"path": "docs/resources/outscale.md",
"chars": 3107,
"preview": "## Outscale\n\nTable of Content:\n\n* [Compute](#compute)\n* [Network](#network)\n* [Security](#security)\n* [Storage](#storage"
},
{
"path": "docs/resources/programming.md",
"chars": 7325,
"preview": "## Programming\n\nTable of Content:\n\n* [Framework](#framework)\n* [Language](#language)\n* [Runtime](#runtime)\n\n### Framewor"
},
{
"path": "docs/resources/saas.md",
"chars": 6647,
"preview": "## SaaS\n\nTable of Content:\n\n* [Alerting](#alerting)\n* [Analytics](#analytics)\n* [Cdn](#cdn)\n* [Chat](#chat)\n* [Communica"
},
{
"path": "examples/all-fields.yaml",
"chars": 1501,
"preview": "diagram:\n name: Web Services Architecture on AWS\n file_name: web-services-architecture-aws\n format: jpg\n direction: "
},
{
"path": "examples/events-processing-aws.yaml",
"chars": 1969,
"preview": "diagram:\n name: Events Processing Architecture on AWS\n open: true\n resources:\n - id: web-service\n name: Web S"
},
{
"path": "examples/exposed-pods-kubernetes.yaml",
"chars": 1080,
"preview": "diagram:\n name: Exposed Pods Architecture on Kubernetes\n open: true\n resources:\n - id: ingress\n name: Ingress"
},
{
"path": "examples/message-collecting-gcp.yaml",
"chars": 2786,
"preview": "diagram:\n name: Message Collecting Architecture on GCP\n open: true\n resources:\n - id: pubsub\n name: Pubsub\n "
},
{
"path": "examples/picture-in-readme.yaml",
"chars": 1155,
"preview": "diagram:\n name: Web Services Architecture on AWS\n open: true\n direction: top-to-bottom\n resources:\n - id: dns\n "
},
{
"path": "examples/web-services-aws.yaml",
"chars": 1587,
"preview": "diagram:\n name: Web Services Architecture on AWS\n open: true\n resources:\n - id: dns\n name: DNS\n type: aw"
},
{
"path": "examples/web-services-on-premise.yaml",
"chars": 2775,
"preview": "diagram:\n name: Web Services Architecture On-Premise\n open: true\n resources:\n - id: ingress\n name: Ingress\n "
},
{
"path": "examples/workers-aws.yaml",
"chars": 936,
"preview": "diagram:\n name: Workers Architecture on AWS\n direction: top-to-bottom\n open: true\n resources:\n - id: elb\n na"
},
{
"path": "json-schemas/0.0.1.json",
"chars": 273160,
"preview": "{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"Diagrams as code\",\n \"description\": \"Diagram"
},
{
"path": "pyproject.toml",
"chars": 430,
"preview": "[tool.ruff]\ntarget-version = \"py39\"\nsrc = [\"src\"]\nselect = [\"ALL\"]\nline-length = 120\nignore = [\n \"A002\",\n \"D\",\n "
},
{
"path": "requirements/dev.txt",
"chars": 60,
"preview": "isort==5.9.3\ndarglint==1.8.1\nruff==0.0.278\nyamllint==1.26.3\n"
},
{
"path": "requirements/ops.txt",
"chars": 69,
"preview": "project-version==0.7.3\nsetuptools==59.6.0\ntwine==3.7.1\nwheel==0.37.1\n"
},
{
"path": "requirements/project.txt",
"chars": 47,
"preview": "diagrams==0.23.3\npydantic==2.0.3\npyyaml==6.0.1\n"
},
{
"path": "setup.cfg",
"chars": 144,
"preview": "[isort]\nknown_local_folder=threads\nline_length=120\nmulti_line_output=3\ninclude_trailing_comma=True\nforce_grid_wrap=True\n"
},
{
"path": "setup.py",
"chars": 1575,
"preview": "\"\"\"\nSetup the package.\n\"\"\"\nfrom setuptools import (\n find_packages,\n setup,\n)\n\nwith open('README.md', 'r', encodin"
}
]
About this extraction
This page contains the full source code of the dmytrostriletskyi/diagrams-as-code GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 46 files (643.9 KB), approximately 123.2k tokens, and a symbol index with 18 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.