Repository: mingrammer/diagrams Branch: master Commit: 366f5d2850a3 Files: 318 Total size: 799.1 KB Directory structure: gitextract_neutf5we/ ├── .devcontainer/ │ ├── Dockerfile │ └── devcontainer.json ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── codeql-analysis.yml │ ├── pre-commit.yml │ └── test.yml ├── .gitignore ├── .isort.cfg ├── .pre-commit-config.yaml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── DEVELOPMENT.md ├── LICENSE ├── README.md ├── autogen.sh ├── config.py ├── diagrams/ │ ├── __init__.py │ ├── alibabacloud/ │ │ ├── __init__.py │ │ ├── analytics.py │ │ ├── application.py │ │ ├── communication.py │ │ ├── compute.py │ │ ├── database.py │ │ ├── iot.py │ │ ├── network.py │ │ ├── security.py │ │ ├── storage.py │ │ └── web.py │ ├── aws/ │ │ ├── __init__.py │ │ ├── analytics.py │ │ ├── ar.py │ │ ├── blockchain.py │ │ ├── business.py │ │ ├── compute.py │ │ ├── cost.py │ │ ├── database.py │ │ ├── devtools.py │ │ ├── enablement.py │ │ ├── enduser.py │ │ ├── engagement.py │ │ ├── game.py │ │ ├── general.py │ │ ├── integration.py │ │ ├── iot.py │ │ ├── management.py │ │ ├── media.py │ │ ├── migration.py │ │ ├── ml.py │ │ ├── mobile.py │ │ ├── network.py │ │ ├── quantum.py │ │ ├── robotics.py │ │ ├── satellite.py │ │ ├── security.py │ │ └── storage.py │ ├── azure/ │ │ ├── __init__.py │ │ ├── aimachinelearning.py │ │ ├── analytics.py │ │ ├── appservices.py │ │ ├── azureecosystem.py │ │ ├── azurestack.py │ │ ├── blockchain.py │ │ ├── compute.py │ │ ├── containers.py │ │ ├── database.py │ │ ├── databases.py │ │ ├── devops.py │ │ ├── general.py │ │ ├── hybridmulticloud.py │ │ ├── identity.py │ │ ├── integration.py │ │ ├── intune.py │ │ ├── iot.py │ │ ├── managementgovernance.py │ │ ├── menu.py │ │ ├── migrate.py │ │ ├── migration.py │ │ ├── mixedreality.py │ │ ├── ml.py │ │ ├── mobile.py │ │ ├── monitor.py │ │ ├── network.py │ │ ├── networking.py │ │ ├── newicons.py │ │ ├── other.py │ │ ├── security.py │ │ ├── storage.py │ │ └── web.py │ ├── base/ │ │ └── __init__.py │ ├── c4/ │ │ └── __init__.py │ ├── cli.py │ ├── custom/ │ │ └── __init__.py │ ├── digitalocean/ │ │ ├── __init__.py │ │ ├── compute.py │ │ ├── database.py │ │ ├── network.py │ │ └── storage.py │ ├── elastic/ │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── beats.py │ │ ├── elasticsearch.py │ │ ├── enterprisesearch.py │ │ ├── observability.py │ │ ├── orchestration.py │ │ ├── saas.py │ │ └── security.py │ ├── firebase/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── develop.py │ │ ├── extentions.py │ │ ├── grow.py │ │ └── quality.py │ ├── gcp/ │ │ ├── __init__.py │ │ ├── analytics.py │ │ ├── api.py │ │ ├── compute.py │ │ ├── database.py │ │ ├── devtools.py │ │ ├── iot.py │ │ ├── management.py │ │ ├── migration.py │ │ ├── ml.py │ │ ├── network.py │ │ ├── operations.py │ │ ├── security.py │ │ └── storage.py │ ├── generic/ │ │ ├── __init__.py │ │ ├── blank.py │ │ ├── compute.py │ │ ├── database.py │ │ ├── device.py │ │ ├── network.py │ │ ├── os.py │ │ ├── place.py │ │ ├── storage.py │ │ └── virtualization.py │ ├── gis/ │ │ ├── __init__.py │ │ ├── cli.py │ │ ├── cplusplus.py │ │ ├── data.py │ │ ├── database.py │ │ ├── desktop.py │ │ ├── format.py │ │ ├── geocoding.py │ │ ├── georchestra.py │ │ ├── java.py │ │ ├── javascript.py │ │ ├── mobile.py │ │ ├── ogc.py │ │ ├── organization.py │ │ ├── python.py │ │ ├── routing.py │ │ ├── server.py │ │ └── toolkit.py │ ├── ibm/ │ │ ├── __init__.py │ │ ├── analytics.py │ │ ├── applications.py │ │ ├── blockchain.py │ │ ├── compute.py │ │ ├── data.py │ │ ├── devops.py │ │ ├── general.py │ │ ├── infrastructure.py │ │ ├── management.py │ │ ├── network.py │ │ ├── security.py │ │ ├── social.py │ │ ├── storage.py │ │ └── user.py │ ├── k8s/ │ │ ├── __init__.py │ │ ├── chaos.py │ │ ├── clusterconfig.py │ │ ├── compute.py │ │ ├── controlplane.py │ │ ├── ecosystem.py │ │ ├── group.py │ │ ├── infra.py │ │ ├── network.py │ │ ├── others.py │ │ ├── podconfig.py │ │ ├── rbac.py │ │ └── storage.py │ ├── oci/ │ │ ├── __init__.py │ │ ├── compute.py │ │ ├── connectivity.py │ │ ├── database.py │ │ ├── devops.py │ │ ├── governance.py │ │ ├── monitoring.py │ │ ├── network.py │ │ ├── security.py │ │ └── storage.py │ ├── onprem/ │ │ ├── __init__.py │ │ ├── aggregator.py │ │ ├── analytics.py │ │ ├── auth.py │ │ ├── cd.py │ │ ├── certificates.py │ │ ├── ci.py │ │ ├── client.py │ │ ├── compute.py │ │ ├── container.py │ │ ├── database.py │ │ ├── dns.py │ │ ├── etl.py │ │ ├── gitops.py │ │ ├── groupware.py │ │ ├── iac.py │ │ ├── identity.py │ │ ├── inmemory.py │ │ ├── logging.py │ │ ├── messaging.py │ │ ├── mlops.py │ │ ├── monitoring.py │ │ ├── network.py │ │ ├── proxmox.py │ │ ├── queue.py │ │ ├── registry.py │ │ ├── search.py │ │ ├── security.py │ │ ├── storage.py │ │ ├── tracing.py │ │ ├── vcs.py │ │ └── workflow.py │ ├── openstack/ │ │ ├── __init__.py │ │ ├── adjacentenablers.py │ │ ├── apiproxies.py │ │ ├── applicationlifecycle.py │ │ ├── baremetal.py │ │ ├── billing.py │ │ ├── compute.py │ │ ├── containerservices.py │ │ ├── deployment.py │ │ ├── frontend.py │ │ ├── lifecyclemanagement.py │ │ ├── monitoring.py │ │ ├── multiregion.py │ │ ├── networking.py │ │ ├── nfv.py │ │ ├── operations.py │ │ ├── optimization.py │ │ ├── orchestration.py │ │ ├── packaging.py │ │ ├── sharedservices.py │ │ ├── storage.py │ │ ├── user.py │ │ └── workloadprovisioning.py │ ├── outscale/ │ │ ├── __init__.py │ │ ├── compute.py │ │ ├── network.py │ │ ├── security.py │ │ └── storage.py │ ├── programming/ │ │ ├── __init__.py │ │ ├── flowchart.py │ │ ├── framework.py │ │ ├── language.py │ │ └── runtime.py │ └── saas/ │ ├── __init__.py │ ├── alerting.py │ ├── analytics.py │ ├── automation.py │ ├── cdn.py │ ├── chat.py │ ├── communication.py │ ├── crm.py │ ├── filesharing.py │ ├── identity.py │ ├── logging.py │ ├── media.py │ ├── payment.py │ ├── recommendation.py │ ├── security.py │ └── social.py ├── docker/ │ └── dev/ │ └── Dockerfile ├── docs/ │ ├── getting-started/ │ │ ├── examples.md │ │ └── installation.md │ ├── guides/ │ │ ├── cluster.md │ │ ├── diagram.md │ │ ├── edge.md │ │ └── node.md │ └── nodes/ │ ├── alibabacloud.md │ ├── aws.md │ ├── azure.md │ ├── c4.md │ ├── custom.md │ ├── digitalocean.md │ ├── elastic.md │ ├── firebase.md │ ├── gcp.md │ ├── generic.md │ ├── gis.md │ ├── ibm.md │ ├── k8s.md │ ├── oci.md │ ├── onprem.md │ ├── openstack.md │ ├── outscale.md │ ├── programming.md │ └── saas.md ├── pyproject.toml ├── scripts/ │ ├── __init__.py │ ├── generate.py │ └── resource.py ├── templates/ │ ├── apidoc.tmpl │ ├── apidoc_custom.tmpl │ └── module.tmpl ├── tests/ │ ├── __init__.py │ ├── test_c4.py │ ├── test_cli.py │ └── test_diagram.py └── website/ ├── core/ │ └── Footer.js ├── i18n/ │ └── en.json ├── package.json ├── pages/ │ └── en/ │ └── index.js ├── publish.sh ├── sidebars.json ├── siteConfig.js └── static/ └── css/ └── custom.css ================================================ FILE CONTENTS ================================================ ================================================ FILE: .devcontainer/Dockerfile ================================================ # use latest python 3 alpine image. FROM python:3-alpine # install system dependencies. RUN apk update && apk add --no-cache \ gcc libc-dev g++ graphviz git bash go imagemagick inkscape ttf-opensans curl fontconfig xdg-utils \ nodejs npm # install go package. RUN go install github.com/mingrammer/round@latest # install fonts RUN curl -O https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip \ && mkdir -p /usr/share/fonts/NotoSansCJKjp \ && unzip NotoSansCJKjp-hinted.zip -d /usr/share/fonts/NotoSansCJKjp/ \ && rm NotoSansCJKjp-hinted.zip \ && fc-cache -fv # add go bin to path. ENV PATH "$PATH:/root/go/bin" # project directory. WORKDIR /usr/src/diagrams # Copy the rest of your app's source code from your host to your image filesystem. COPY . . # install python requirements. RUN pip install black graphviz jinja2 ================================================ FILE: .devcontainer/devcontainer.json ================================================ // For format details, see https://aka.ms/devcontainer.json. For config options, see the // README at: https://github.com/devcontainers/templates/tree/main/src/docker-outside-of-docker { "name": "Diagrams", // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile // "image": "mcr.microsoft.com/devcontainers/base:bullseye", "build":{ "dockerfile": "../docker/dev/Dockerfile" }, // Use this environment variable if you need to bind mount your local source code into a new container. // "remoteEnv": { // "LOCAL_WORKSPACE_FOLDER": "${localWorkspaceFolder}" // } // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], // Use 'postCreateCommand' to run commands after the container is created. // "postCreateCommand": "docker --version", // Configure tool-specific properties. "customizations": { "vscode": { "extensions": [ "ms-python.python", "ms-python.debugpy", "mhutchie.git-graph", "mutantdino.resourcemonitor", "tehpeng.diagramspreviewer" ] } } "workspaceMount": "source=${localWorkspaceFolder},target=/usr/src/diagrams,type=bind", "workspaceFolder": "/usr/src/diagrams" // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. // "remoteUser": "root" } ================================================ FILE: .github/dependabot.yml ================================================ version: 2 updates: - package-ecosystem: pip directory: "/" schedule: interval: daily time: "08:00" open-pull-requests-limit: 10 - package-ecosystem: npm directory: "/website" schedule: interval: daily time: "08:00" open-pull-requests-limit: 10 - package-ecosystem: docker directory: "/docker/dev" schedule: interval: daily time: "08:00" open-pull-requests-limit: 10 ================================================ FILE: .github/workflows/codeql-analysis.yml ================================================ name: "CodeQL" on: push: branches: [master] pull_request: # The branches below must be a subset of the branches above branches: [master] schedule: - cron: '0 16 * * 2' jobs: analyse: name: Analyse runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: # We must fetch at least the immediate parents so that if this is # a pull request then we can check out the head. fetch-depth: 2 # If this run was triggered by a pull request event, then checkout # the head of the pull request instead of the merge commit. - run: git checkout HEAD^2 if: ${{ github.event_name == 'pull_request' }} # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v3 # Override language selection by uncommenting this and choosing your languages with: languages: python - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 ================================================ FILE: .github/workflows/pre-commit.yml ================================================ name: pre-commit on: pull_request: push: branches: [main] jobs: pre-commit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v3 - uses: pre-commit/action@v3.0.1 ================================================ FILE: .github/workflows/test.yml ================================================ name: Run tests on: push: branches: - master paths: - ".github/workflows/test.yml" - "pyproject.toml" - "poetry.lock" - "**.py" pull_request: branches: - master paths: - ".github/workflows/test.yml" - "pyproject.toml" - "poetry.lock" - "**.py" jobs: test: strategy: matrix: python: ["3.9", "3.10", "3.11", "3.12", "3.13"] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} - name: Setup Graphviz uses: ts-graphviz/setup-graphviz@v2 - name: Install poetry run: curl -sSL https://install.python-poetry.org | python3 - - name: Run all tests run: | poetry install poetry run python -m unittest -v tests/*.py ================================================ FILE: .gitignore ================================================ # ide & editor .idea/ .vscode/ # compiled & binary *.egg-info/ __pycache__/ *.pyc *.egg-info # graphviz *.gv* # dist dist website/build # node modules node_modules # testing main.py # trash .DS_Store # Website uses yarn; ignore npm package-lock.json website/package-lock.json # Ignore .swp files .swp *.whl dist/ ================================================ FILE: .isort.cfg ================================================ [settings] line_length = 120 multi_line_output = 3 include_trailing_comma = True known_third_party = graphviz,jinja2 ================================================ FILE: .pre-commit-config.yaml ================================================ repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: check-yaml - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/asottile/seed-isort-config rev: v2.2.0 hooks: - id: seed-isort-config - repo: https://github.com/pre-commit/mirrors-isort rev: v5.10.1 hooks: - id: isort - repo: https://github.com/hhatto/autopep8 rev: v2.3.1 hooks: - id: autopep8 args: [--in-place, --aggressive, --aggressive, --max-line-length=120] ================================================ FILE: CHANGELOG.md ================================================ # Changelogs ## 0.17.0 ### Added - Support GCP Endpoints: [#259](https://github.com/mingrammer/diagrams/pull/259) - Support DroneCI and Atlantis (Terraform): [#255](https://github.com/mingrammer/diagrams/pull/255) - Support Okta: [#254](https://github.com/mingrammer/diagrams/pull/254) - Support OutScale provider: [#251](https://github.com/mingrammer/diagrams/pull/251) - Support Prometheus Operator: [#253](https://github.com/mingrammer/diagrams/pull/253) - Support Snowflake: [#245](https://github.com/mingrammer/diagrams/pull/245) - Support for CJK fonts + Replace ms-fonts with opensans: [#242](https://github.com/mingrammer/diagrams/pull/242) - Support Pushover: [#241](https://github.com/mingrammer/diagrams/pull/241) ### Fixed - Update bm, vm cases for OCI - Set a dummy filename to prevent raise error when both name and filename are not provided: [#240](https://github.com/mingrammer/diagrams/pull/240) ## 0.16.0 ### Breaking Changes The following import changes: #### Elastic | Old import path | New import path | | -------------------------------------------------------------------| --------------------------------------------------------------| | `from diagrams.onprem.logging import Logstash` | `from diagrams.elastic.elasticsearch import Logstash` | | `from diagrams.onprem.monitoring import Kibana` | `from diagrams.elastic.elasticsearch import Kibana` | | `from diagrams.onprem.search import Elasticsearch` | `from diagrams.elastic.elasticsearch import Elasticsearch` | > About `from diagrams.onprem.search import Elasticsearch` the previous icon was the company icon, not the elasticsearch product. > > For the company icon use: `from diagrams.elastic.saas import Elastic` #### OCI | Old import path | New import path | | -------------------------------------------------------------------| --------------------------------------------------------------| | `from diagrams.oci.compute import AutoScale` | `from diagrams.oci.compute import Autoscale` | | `from diagrams.oci.compute import AutoScaleWhite` | `from diagrams.oci.compute import AutoscaleWhite` | | `from diagrams.oci.compute import Bm` | `from diagrams.oci.compute import BM` | | `from diagrams.oci.compute import BmWhite` | `from diagrams.oci.compute import BMWhite` | | `from diagrams.oci.compute import Vm` | `from diagrams.oci.compute import VM` | | `from diagrams.oci.compute import VmWhite` | `from diagrams.oci.compute import VMWhite` | | `from diagrams.oci.connectivity import Customerdatacenter` | `from diagrams.oci.connectivity import CustomerDatacenter` | | `from diagrams.oci.connectivity import CustomerdatacenterWhite` | `from diagrams.oci.connectivity import CustomerDatacntrWhite` | | `from diagrams.oci.connectivity import Customerpremisesequip` | `from diagrams.oci.connectivity import CustomerPremise` | | `from diagrams.oci.connectivity import CustomerpremisesequipWhite` | `from diagrams.oci.connectivity import CustomerPremiseWhite` | | `from diagrams.oci.connectivity import Fastconnect` | `from diagrams.oci.connectivity import FastConnect` | | `from diagrams.oci.connectivity import FastconnectWhite` | `from diagrams.oci.connectivity import FastConnectWhite` | | `from diagrams.oci.connectivity import Vpn` | `from diagrams.oci.connectivity import VPN` | | `from diagrams.oci.connectivity import VpnWhite` | `from diagrams.oci.connectivity import VPNWhite` | | `from diagrams.oci.database import AutonomousDatabase` | `from diagrams.oci.database import Autonomous` | | `from diagrams.oci.database import AutonomousDatabaseWhite` | `from diagrams.oci.database import AutonomousWhite` | | `from diagrams.oci.database import Databaseservice` | `from diagrams.oci.database import DatabaseService` | | `from diagrams.oci.database import DatabaseserviceWhite` | `from diagrams.oci.database import DatabaseServiceWhite` | | `from diagrams.oci.devops import Apigateway` | `from diagrams.oci.devops import APIGateway` | | `from diagrams.oci.devops import ApigatewayWhite` | `from diagrams.oci.devops import APIGatewayWhite` | | `from diagrams.oci.devops import Apiservice` | `from diagrams.oci.devops import APIService` | | `from diagrams.oci.devops import ApiserviceWhite` | `from diagrams.oci.devops import APIServiceWhite` | | `from diagrams.oci.devops import Resourcemgmt` | `from diagrams.oci.devops import ResourceMgmt` | | `from diagrams.oci.devops import ResourcemgmtWhite` | `from diagrams.oci.devops import ResourceMgmtWhite` | | `from diagrams.oci.edge import Cdn` | `from diagrams.oci.connectivity import CDN` | | `from diagrams.oci.edge import CdnWhite` | `from diagrams.oci.connectivity import CDNWhite` | | `from diagrams.oci.edge import Dns` | `from diagrams.oci.connectivity import DNS` | | `from diagrams.oci.edge import DnsWhite` | `from diagrams.oci.connectivity import DNSWhite` | | `from diagrams.oci.edge import Emaildelivery` | `from diagrams.oci.monitoring import Email` | | `from diagrams.oci.edge import EmaildeliveryWhite` | `from diagrams.oci.monitoring import EmailWhite` | | `from diagrams.oci.edge import Waf` | `from diagrams.oci.security import WAF` | | `from diagrams.oci.edge import WafWhite` | `from diagrams.oci.security import WAFWhite` | | `from diagrams.oci.monitoring import Event` | `from diagrams.oci.monitoring import Events` | | `from diagrams.oci.monitoring import EventWhite` | `from diagrams.oci.monitoring import EventsWhite` | | `from diagrams.oci.monitoring import Healthcheck` | `from diagrams.oci.monitoring import HealthCheck` | | `from diagrams.oci.monitoring import HealthcheckWhite` | `from diagrams.oci.monitoring import HealthCheckWhite` | | `from diagrams.oci.monitoring import Logging` | `from diagrams.oci.governance import Logging` | | `from diagrams.oci.monitoring import LoggingWhite` | `from diagrams.oci.governance import LoggingWhite` | | `from diagrams.oci.monitoring import Queuing` | `from diagrams.oci.monitoring import Queue` | | `from diagrams.oci.monitoring import QueuingWhite` | `from diagrams.oci.monitoring import QueueWhite` | | `from diagrams.oci.network import Internetgateway` | `from diagrams.oci.network import InternetGateway` | | `from diagrams.oci.network import InternetgatewayWhite` | `from diagrams.oci.network import InternetGatewayWhite` | | `from diagrams.oci.network import Loadbalance` | `from diagrams.oci.network import LoadBalancer` | | `from diagrams.oci.network import LoadbalanceWhite` | `from diagrams.oci.network import LoadBalancerWhite` | | `from diagrams.oci.network import NATgateway` | `from diagrams.oci.connectivity import NATGateway` | | `from diagrams.oci.network import NATgatewayWhite` | `from diagrams.oci.connectivity import NATGatewayWhite` | | `from diagrams.oci.network import Routetable` | `from diagrams.oci.network import RouteTable` | | `from diagrams.oci.network import RoutetableWhite` | `from diagrams.oci.network import RouteTableWhite` | | `from diagrams.oci.network import Securitylists` | `from diagrams.oci.network import SecurityLists` | | `from diagrams.oci.network import SecuritylistsWhite` | `from diagrams.oci.network import SecurityListsWhite` | | `from diagrams.oci.network import Vcloudnetwork` | `from diagrams.oci.network import Vcn` | | `from diagrams.oci.network import VcloudnetworkWhite` | `from diagrams.oci.network import VcnWhite` | | `from diagrams.oci.security import Audit` | `from diagrams.oci.governance import Audit` | | `from diagrams.oci.security import AuditWhite` | `from diagrams.oci.governance import AuditWhite` | | `from diagrams.oci.security import Compartments` | `from diagrams.oci.governance import Compartments` | | `from diagrams.oci.security import CompartmentsWhite` | `from diagrams.oci.governance import CompartmentsWhite` | | `from diagrams.oci.security import Ddos` | `from diagrams.oci.security import DDOS` | | `from diagrams.oci.security import DdosWhite` | `from diagrams.oci.security import DDOSWhite` | | `from diagrams.oci.security import Groups` | `from diagrams.oci.governance import Groups` | | `from diagrams.oci.security import GroupsWhite` | `from diagrams.oci.governance import GroupsWhite` | | `from diagrams.oci.security import IdAccess` | `from diagrams.oci.security import IDAccess` | | `from diagrams.oci.security import IdAccessWhite` | `from diagrams.oci.security import IDAccessWhite` | | `from diagrams.oci.security import Keymgmt` | `from diagrams.oci.security import KeyManagement` | | `from diagrams.oci.security import KeymgmtWhite` | `from diagrams.oci.security import KeyManagementWhite` | | `from diagrams.oci.security import Ocid` | `from diagrams.oci.governance import OCID` | | `from diagrams.oci.security import OcidWhite` | `from diagrams.oci.governance import OCIDWhite` | | `from diagrams.oci.security import Policies` | `from diagrams.oci.governance import Policies` | | `from diagrams.oci.security import PoliciesWhite` | `from diagrams.oci.governance import PoliciesWhite` | | `from diagrams.oci.security import Tagging` | `from diagrams.oci.governance import Tagging` | | `from diagrams.oci.security import TaggingWhite` | `from diagrams.oci.governance import TaggingWhite` | | `from diagrams.oci.storage import Backuprestore` | `from diagrams.oci.storage import BackupRestore` | | `from diagrams.oci.storage import BackuprestoreWhite` | `from diagrams.oci.storage import BackupRestoreWhite` | | `from diagrams.oci.storage import Blockstorage` | `from diagrams.oci.storage import BlockStorage` | | `from diagrams.oci.storage import BlockstorageWhite` | `from diagrams.oci.storage import BlockStorageWhite` | | `from diagrams.oci.storage import Datatransfer` | `from diagrams.oci.storage import DataTransfer` | | `from diagrams.oci.storage import DatatransferWhite` | `from diagrams.oci.storage import DataTransferWhite` | | `from diagrams.oci.storage import Filestorage` | `from diagrams.oci.storage import FileStorage` | | `from diagrams.oci.storage import FilestorageWhite` | `from diagrams.oci.storage import FileStorageWhite` | | `from diagrams.oci.storage import Objectstorage` | `from diagrams.oci.storage import ObjectStorage` | | `from diagrams.oci.storage import ObjectstorageWhite` | `from diagrams.oci.storage import ObjectStorageWhite` | | `from diagrams.oci.storage import Storagegateway` | `from diagrams.oci.storage import StorageGateway` | | `from diagrams.oci.storage import StoragegatewayWhite` | `from diagrams.oci.storage import StorageGatewayWhite` | ### Added - Docker local development setup: [#210](https://github.com/mingrammer/diagrams/pull/210) - Support OpenStack [#211](https://github.com/mingrammer/diagrams/pull/211) - Support SQL, Druid and Databricks - Support Cloudinary: [#218](https://github.com/mingrammer/diagrams/pull/218) ### Fixed - Clean GCP resources: [#228](https://github.com/mingrammer/diagrams/pull/228) - Support DataDog, PaperTrail, Syslog, Rsyslog and Graylog: [#222](https://github.com/mingrammer/diagrams/pull/222) - Update all OCI icon set (bark and white): [#205](https://github.com/mingrammer/diagrams/pull/205) ## 0.15.0 ### Added - Support curvestyle option (ortho or curved) - Support Auth0, Cloudflare and Recombee: [#209](https://github.com/mingrammer/diagrams/pull/209) ### Fixed - Fix typo for PersistentVolume: [#207](https://github.com/mingrammer/diagrams/pull/207) - Fix misaligned label text position ## 0.14.0 ### Added - Support sagemaker for AWS provider: [#204](https://github.com/mingrammer/diagrams/pull/204) - Support ConcourseCI: [#198](https://github.com/mingrammer/diagrams/pull/198) - Support Tekton CLI: [#199](https://github.com/mingrammer/diagrams/pull/199) - Support more analytics tools for Onprem provider: [#195](https://github.com/mingrammer/diagrams/pull/195) - Support more resources for AWS provider: [#192](https://github.com/mingrammer/diagrams/pull/192) - Support kubernetes ecosystem: [#188](https://github.com/mingrammer/diagrams/pull/188) - Support Beats for ElasticStack provider: [#153](https://github.com/mingrammer/diagrams/pull/153) - Support more icons for Generic provider: [#186](https://github.com/mingrammer/diagrams/pull/186) - Support Opsgenie: [#187](https://github.com/mingrammer/diagrams/pull/187) - Support Tekton: [#150](https://github.com/mingrammer/diagrams/pull/150) - Support Generic provider: [#171](https://github.com/mingrammer/diagrams/pull/171) ## 0.13.1 ### Fixed - Add missing firebase base class: [3f400a7](https://github.com/mingrammer/diagrams/commit/3f400a7bc3c91ae9db1f2e69c290bc004c6fa4c6) ## 0.13.0 ### Added - Support more DynamoDB and IAM nodes for AWS: [#180](https://github.com/mingrammer/diagrams/pull/180) - New provider elastic: [#174](https://github.com/mingrammer/diagrams/pull/174) - Support Rust: [#179](https://github.com/mingrammer/diagrams/pull/179) - Support Flux and Flagger: [#147](https://github.com/mingrammer/diagrams/pull/147) - New provider saas: [#173](https://github.com/mingrammer/diagrams/pull/173) - New provider firebase: [#167](https://github.com/mingrammer/diagrams/pull/167) - Support ZuulCI: [#145](https://github.com/mingrammer/diagrams/pull/145) ## 0.12.0 ### Added - Support GitlabCI: [#166](https://github.com/mingrammer/diagrams/pull/166) - Support Sentry: [#165](https://github.com/mingrammer/diagrams/pull/165) - Support Couchbase: [#164](https://github.com/mingrammer/diagrams/pull/164) - Support new IoT icons, and new Game, General and Robotics categories for AWS: [#161](https://github.com/mingrammer/diagrams/pull/161) - Support general icon set for Azure: [#155](https://github.com/mingrammer/diagrams/pull/155) - Support Fluent Bit: [#154](https://github.com/mingrammer/diagrams/pull/154) - Support integration services for Azure: [#152](https://github.com/mingrammer/diagrams/pull/152) - Support custom attribute options for Nodes: [#151](https://github.com/mingrammer/diagrams/pull/151) ## 0.11.0 ### Added - Support programming provider (programming languages and frameworks): [#112](https://github.com/mingrammer/diagrams/pull/112) - Support NACL, Subnets, Route Table and VPC peering for AWS provider: [#135](https://github.com/mingrammer/diagrams/pull/135) - Support Loki: [#139](https://github.com/mingrammer/diagrams/pull/139) - Support Tableau and Metabase: [#142](https://github.com/mingrammer/diagrams/pull/142) - Support AWS Elemental Services: [#149](https://github.com/mingrammer/diagrams/pull/149) ### Fixed - Rename Cloudfront to CloudFront: [#129](https://github.com/mingrammer/diagrams/pull/129) ## 0.10.0 ### Added - Support red-colored OCI nodes: [#121](https://github.com/mingrammer/diagrams/pull/121) - Support custom graph attributes for the Cluster: [6741ed9](https://github.com/mingrammer/diagrams/commit/6741ed9e2bcca297a1044ca5c8f2cf9eb3f8b5b3) ## v0.9.0 ### Added - Support Thanos: [#99](https://github.com/mingrammer/diagrams/pull/99) - Support AWS VPC Endpoint: [#101](https://github.com/mingrammer/diagrams/pull/101) - Support AWS VPC Router: [#102](https://github.com/mingrammer/diagrams/pull/102) - Support Teamcity: [#103](https://github.com/mingrammer/diagrams/pull/103) - Support Pomerium: [#104](https://github.com/mingrammer/diagrams/pull/104) - Support Ansible and AWX: [#110](https://github.com/mingrammer/diagrams/pull/110) ### Fixed - Replace MD5 Hash with UUID: [#94](https://github.com/mingrammer/diagrams/pull/94) - Verify Edge attributes exist before setting: [#96](https://github.com/mingrammer/diagrams/pull/96) ## v0.8.2 ### Added - Support Diadag: [#88](https://github.com/mingrammer/diagrams/pull/88) - Support Norika and Embulk: [#87](https://github.com/mingrammer/diagrams/pull/87) ## v0.8.1 ### Added - Support Celery: [#68](https://github.com/mingrammer/diagrams/pull/68) - Support Terraform: [#79](https://github.com/mingrammer/diagrams/pull/79) - Support Clickhouse: [#85](https://github.com/mingrammer/diagrams/pull/85) ## v0.8.0 ### Added - Support Apache Beam: [#66](https://github.com/mingrammer/diagrams/pull/66) - Support PFSense and VyOS: [#67](https://github.com/mingrammer/diagrams/pull/67) - Support Polyaxon: [#74](https://github.com/mingrammer/diagrams/pull/74) - Support Spinnaker: [#77](https://github.com/mingrammer/diagrams/pull/77) - Support Git, GitLab and GitHub of onprem.vcs: [#80](https://github.com/mingrammer/diagrams/pull/80) - Support Dgraph, JanusGraph and Scylla of onprem.database: [#84](https://github.com/mingrammer/diagrams/pull/84) ## v0.7.4 ### Added - Trivy of onprem.security: [#61](https://github.com/mingrammer/diagrams/pull/61) - Cloud IAP (Identity-Aware Proxy) for GCP provider: [#56](https://github.com/mingrammer/diagrams/pull/56), [#43](https://github.com/mingrammer/diagrams/pull/43) ## v0.7.3 ### Fixed - Use dynamic keyword attributes for edge init to fix missing attribute ## v0.7.2 ### Fixed - Prevent the edge attrs from overwriting by empty string - Only use the label for edge ## v0.7.0 ### Added - Customer engagement services for AWS: [#57](https://github.com/mingrammer/diagrams/pull/57) - Edge attributes support: [#48](https://github.com/mingrammer/diagrams/pull/48) ## v0.6.5 ### Added - More on-prem/aws icons: [#55](https://github.com/mingrammer/diagrams/pull/55) - Aliases for etcd and haproxy ## v0.6.4 ### Added - AWS management resources ### Fixed - Update OCI icon set: [#46](https://github.com/mingrammer/diagrams/pull/46) ## v0.6.3 ### Added - Support inline rendering for jupyter notebook ## v0.6.2 ### Fixed - Support multi-line labels ## v0.6.1 ### Added - Aliases for activemq (ActiveMQ) / rabbitmq (RabbitMQ) ## v0.6.0 ### Added - Support custom nodes: [#25](https://github.com/mingrammer/diagrams/pull/25) - Allow an output filename to be passed to Diagram explicitly: [#28](https://github.com/mingrammer/diagrams/pull/28) - Support on-premise nodes: [#35](https://github.com/mingrammer/diagrams/pull/35) ## v0.5.0 ### Added - Oracle Cloud provider support: [#20](https://github.com/mingrammer/diagrams/pull/20) ## v0.4.0 ### Added - Alibaba Cloud provider support: [#19](https://github.com/mingrammer/diagrams/pull/19) ## v0.3.0 ### Added - Allow custom dot attributes: [#11](https://github.com/mingrammer/diagrams/pull/11) ### Fixed - Support Python 3.6: [#13](https://github.com/mingrammer/diagrams/pull/13) ## v0.2.3 ### Fixed - Fix misaligned node labels by removing backward-incompatible 'imagepos' attribute: [#7](https://github.com/mingrammer/diagrams/pull/7) ## v0.2.1 ### Added - Add more AWS analytics services: [870b387](https://github.com/mingrammer/diagrams/commit/870b387ded41cb6591b8bdfd3994e5719d8b9969) ## v0.2.0 ### Added - Support kubernetes diagrams: [3eda1cb](https://github.com/mingrammer/diagrams/commit/3eda1cb6bca8be8a55773d90b93483a8fab3e0f1) ## v0.23.5 ### Breaking Changes The following import changes: #### OCI | Old import path | New import path | | -------------------------------------------------------------------| --------------------------------------------------------------| | `from diagrams.oci.connectivity import CustomerPremiseWhite` | `from diagrams.oci.connectivity import CustomerPremisesWhite` | | `from diagrams.oci.connectivity import CustomerPremises` | `from diagrams.oci.connectivity import CustomerPremises` | ================================================ FILE: CONTRIBUTING.md ================================================ # Contribution Guide You shouldn't edit the node class files (all files under `diagrams/` directory) by yourself. ## Set up your environment - See [DEVELOPMENT][DEVELOPMENT.md] ## Resources ### Update nodes All node classes are auto-generated from image resource files. For example, the `diagram.aws.compute.EC2` class is auto-generated based on the `resources/aws/compute/ec2.png` image resource file. So, if you want to add new node resources or update existing node resources, you can just add or update the image files in `resources///`. Images should be resized to fit a maximum of 256 pixels wide or high. ```shell # You can do that easily with ImageMagick convert -resize 256 my_big_image.jpg my_image.jpg # Or FFmpeg ffmpeg -i my_big_image.jpg -vf scale=w=256:h=256:force_original_aspect_ratio=decrease my_image.png ``` Then just run the `./autogen.sh` to generate the added or updated node classes. (cf. [DEVELOPMENT][DEVELOPMENT.md]) > IMPORTANT NOTE: To run `autogen.sh`, you need the [round][round], [black][black] and > [inkscape][inkscape] command line tools that are used for cleaning the image > resource filenames and formatting the generated python code. > > macOS users can download inkscape via Homebrew. > > Or you can use the docker image. [DEVELOPMENT.md]: ./DEVELOPMENT.md [round]: https://github.com/mingrammer/round [black]: https://pypi.org/project/black [inkscape]: https://inkscape.org/ko/release #### Update Specific Instructions for Azure Icons Download and unzip [Azure Icons](https://learn.microsoft.com/en-us/azure/architecture/icons/) Execute inside Azure_Public_Service_Icons/Icons/ ```bash # Rename some diretories mv ai\ +\ machine\ learning/ aimachinelearning/ mv app\ services/ appservices mv azure\ stack/ azurestack mv azure\ ecosystem/ azureecosystem mv management\ +\ governance/ managementgovernance mv mixed\ reality mixedreality mv new\ icons/ newicons # Convert Name to name rename -f 'y/A-Z/a-z/' ./*/* # Create png files and eliminate ?????-icon-service from namefile find . -type f -name "*.svg" -exec bash -c 'inkscape -h 256 --export-filename="${0%.svg}.png" "$0";mv "${0%.svg}.png" "$(echo "${0%.svg}.png" | sed -r 's/[0-9]{5}-icon-service-//')"' {} \; # Delete svg files find . -type f -name "*.svg" -exec bash -c 'rm "$0"' {} \; ``` If you get any errors with autogen, it will probably be a '+' in filename ### Add new provider To add a new provider to Diagrams, please follow the steps below in addition to the image intructions above: - in `autogen.sh` add in the `providers` variable the new provider code - in `config.py`: - in the `providers` variable, add the new provider code - in the `FILE_PREFIXES` variable, add a new entry with your new provider code. And eventually a file prefix - Optionnaly, update the `UPPER_WORDS` variable to a new entry with your new provider code. - in the `ALIASES` variable, add a new entry with your new provider code. See below on how to add new aliases. - in `scripts/resource.py`: - add a function `cleaner_XXX` (replace XXX by your provider name). For the implementation look at the existing functions - in the `cleaners` variable, add an entry with your new provider code and the function defined above - in `sidebars.json`, update the `Nodes` array to add the reference of the new provider - in the `diagrams` folder, add a new file `__init__.py` for the new provider. For the content look at the existing providers ### Update Aliases Some node classes have alias. For example, `aws.compute.ECS` class is an alias of `aws.compute.ElasticContainerService` class. Aliases also were auto-generated from `ALIASES` map in [config.py](config.py). So, if you want to add new aliases or update existing aliases, you can just add or update the `ALIASES` map in [config.py](config.py). Then just run the `./autogen.sh` to generate the added or updated aliases. (cf. [DEVELOPMENT][DEVELOPMENT.md]) > IMPORTANT NOTE: To run `autogen.sh`, you need the [round][round] and > [inkscape][inkscape] command line tools that are used for cleaning the image > resource filenames. > > macOS users can download inkscape via Homebrew. > > Or you can use the docker image. ## Run Tests ```shell python -m unittest tests/*.py -v ``` ## Testing changes to the website The [Docusaurus](https://docusaurus.io/)-based documentation website can be run by installing dependencies, then simply running `npm run start`. ```bash cd website/ npm i npm run start ``` The website will be available on [http://localhost:3000](http://localhost:3000). Edit files in `website/` and `docs/` respectively to edit documentation. ================================================ FILE: DEVELOPMENT.md ================================================ # Development Guide ## Docker local development setup You should have docker installed in your system, if not click [here](https://docs.docker.com/get-docker/). 1. Go to diagrams root directory. 2. Build the docker image. ```shell docker build --tag diagrams:1.0 -f ./docker/dev/Dockerfile . ``` 3. Create the container, run in background and mount the project source code. ```shell docker run -d \ -it \ --name diagrams \ --mount type=bind,source="$(pwd)",target=/usr/src/diagrams \ diagrams:1.0 ``` 4. Run unit tests in the host using the container to confirm that it's working. ```shell docker exec diagrams python -m unittest tests/*.py -v ``` 5. Run the bash script `autogen.sh` to test. ```shell docker exec diagrams ./autogen.sh ``` 6. If the unit tests and the bash script `autogen.sh` is working correctly, then your system is now ready for development. ## Mac local development setup To be able to develop and run diagrams locally on you Mac device, you should have [Python](https://www.python.org/downloads/), [Go](https://golang.org/doc/install), and [brew](https://brew.sh/) installed on your system. 1. Go to diagrams root directory. 2. Install poetry, the Python project management package used by diagrams. ```shell pip install poetry ``` 3. Install the project's Python dependencies. ```shell poetry install ``` 4. Install diagrams binary dependencies. ```shell brew install imagemagick inkscape black go install github.com/mingrammer/round@latest # ln -sf ~/go/bin/round ~/.local/bin/round ``` 5. Run unit tests to confirm that it's working. ```shell python -m unittest tests/*.py -v ``` 6. Run the bash script `autogen.sh` to test. ```shell ./autogen.sh ``` 7. If the unit tests and the bash script `autogen.sh` is working correctly, then your system is now ready for development. ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2020 MinJae Kwon 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: README.md ================================================ ![diagrams logo](assets/img/diagrams.png) # Diagrams [![license](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE) [![pypi version](https://badge.fury.io/py/diagrams.svg)](https://badge.fury.io/py/diagrams) ![python version](https://img.shields.io/badge/python-%3E%3D%203.9-blue?logo=python) ![Run tests](https://github.com/mingrammer/diagrams/workflows/Run%20tests/badge.svg?branch=master) [![todos](https://badgen.net/https/api.tickgit.com/badgen/github.com/mingrammer/diagrams?label=todos)](https://www.tickgit.com/browse?repo=github.com/mingrammer/diagrams) ![contributors](https://img.shields.io/github/contributors/mingrammer/diagrams) Buy Me A Coffee **Diagram as Code**. 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. You can also describe or visualize the existing system architecture as well. Diagrams currently supports main major providers including: `AWS`, `Azure`, `GCP`, `Kubernetes`, `Alibaba Cloud`, `Oracle Cloud` etc... It also supports `On-Premises` nodes, `SaaS` and major `Programming` frameworks and languages. **Diagram as Code** also allows you to **track** the architecture diagram changes in any **version control** system. > NOTE: It does not control any actual cloud resources nor does it generate cloud formation or terraform code. It is just for drawing the cloud system architecture diagrams. ## Providers ![aws provider](https://img.shields.io/badge/AWS-orange?logo=amazon-aws&color=ff9900) ![azure provider](https://img.shields.io/badge/Azure-orange?logo=microsoft-azure&color=0089d6) ![gcp provider](https://img.shields.io/badge/GCP-orange?logo=google-cloud&color=4285f4) ![ibm provider](https://img.shields.io/badge/IBM-orange?logo=ibm&color=052FAD) ![kubernetes provider](https://img.shields.io/badge/Kubernetes-orange?logo=kubernetes&color=326ce5) ![alibaba cloud provider](https://img.shields.io/badge/AlibabaCloud-orange?logo=alibaba-cloud&color=ff6a00) ![oracle cloud provider](https://img.shields.io/badge/OracleCloud-orange?logo=oracle&color=f80000) ![openstack provider](https://img.shields.io/badge/OpenStack-orange?logo=openstack&color=da1a32) ![firebase provider](https://img.shields.io/badge/Firebase-orange?logo=firebase&color=FFCA28) ![digital ocean provider](https://img.shields.io/badge/DigitalOcean-0080ff?logo=digitalocean&color=0080ff) ![elastic provider](https://img.shields.io/badge/Elastic-orange?logo=elastic&color=005571) ![outscale provider](https://img.shields.io/badge/OutScale-orange?color=5f87bf) ![on premises provider](https://img.shields.io/badge/OnPremises-orange?color=5f87bf) ![generic provider](https://img.shields.io/badge/Generic-orange?color=5f87bf) ![programming provider](https://img.shields.io/badge/Programming-orange?color=5f87bf) ![saas provider](https://img.shields.io/badge/SaaS-orange?color=5f87bf) ![c4 provider](https://img.shields.io/badge/C4-orange?color=5f87bf) ## Getting Started It requires **Python 3.9** or higher, check your Python version first. It uses [Graphviz](https://www.graphviz.org/) to render the diagram, so you need to [install Graphviz](https://graphviz.gitlab.io/download/) to use **diagrams**. After installing graphviz (or already have it), install the **diagrams**. > macOS users can download the Graphviz via `brew install graphviz` if you're using [Homebrew](https://brew.sh). ```shell # using pip (pip3) $ pip install diagrams # using pipenv $ pipenv install diagrams # using poetry $ poetry add diagrams ``` You can start with [quick start](https://diagrams.mingrammer.com/docs/getting-started/installation#quick-start). Check out [guides](https://diagrams.mingrammer.com/docs/guides/diagram) for more details, and you can find all available nodes list in [here](https://diagrams.mingrammer.com/docs/nodes/aws). ## Examples | Event Processing | Stateful Architecture | Advanced Web Service | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | ![event processing](https://diagrams.mingrammer.com/img/event_processing_diagram.png) | ![stateful architecture](https://diagrams.mingrammer.com/img/stateful_architecture_diagram.png) | ![advanced web service with on-premises](https://diagrams.mingrammer.com/img/advanced_web_service_with_on-premises.png) | You can find all the examples on the [examples](https://diagrams.mingrammer.com/docs/getting-started/examples) page. ## Contributing To contribute to diagram, check out [contribution guidelines](CONTRIBUTING.md). > Let me know if you are using diagrams! I'll add you in showcase page. (I'm working on it!) :) ## Who uses it? [Apache Airflow](https://github.com/apache/airflow) is the most popular data workflow Orchestrator. Airflow uses Diagrams to generate architecture diagrams in their documentation. [Cloudiscovery](https://github.com/Cloud-Architects/cloudiscovery) helps you to analyze resources in your cloud (AWS/GCP/Azure/Alibaba/IBM) account. It allows you to create a diagram of analyzed cloud resource map based on this Diagrams library, so you can draw your existing cloud infrastructure with Cloudiscovery. [Airflow Diagrams](https://github.com/feluelle/airflow-diagrams) is an Airflow plugin that aims to easily visualise your Airflow DAGs on service level from providers like AWS, GCP, Azure, etc. via diagrams. [KubeDiagrams](https://github.com/philippemerle/KubeDiagrams) is a tool to generate Kubernetes architecture diagrams from Kubernetes manifest files, kustomization files, Helm charts, and actual cluster state. [KubeDiagrams](https://github.com/philippemerle/KubeDiagrams) supports all Kubernetes built-in resources, any custom resources, and label-based resource clustering. [AWS CloudFormation Diagrams](https://github.com/philippemerle/AWS-CloudFormation-Diagrams) is a simple CLI script to generate AWS architecture diagrams from AWS CloudFormation templates. ## Other languages - If you are familiar with Go, you can use [go-diagrams](https://github.com/blushft/go-diagrams) as well. ## License [MIT](LICENSE) ================================================ FILE: autogen.sh ================================================ #!/bin/bash echo "starting" app_root_dir="diagrams" # NOTE: azure icon set is not latest version providers=( "onprem" "aws" "azure" "digitalocean" "gcp" "ibm" "firebase" "k8s" "alibabacloud" "oci" "programming" "saas" "elastic" "generic" "openstack" "outscale" "gis" ) if ! [ -x "$(command -v round)" ]; then echo 'round is not installed' exit 1 fi if ! [ -x "$(command -v inkscape)" ]; then echo 'inkscape is not installed' exit 1 fi if ! [ -x "$(command -v convert)" ]; then echo 'image magick is not installed' exit 1 fi if ! [ -x "$(command -v black)" ]; then echo 'black is not installed' exit 1 fi # preprocess the resources for pvd in "${providers[@]}"; do # convert the svg to png for azure provider if [ "$pvd" = "onprem" ] || [ "$pvd" = "azure" ]; then echo "converting the svg to png using inkscape for provider '$pvd'" python -m scripts.resource svg2png "$pvd" fi if [ "$pvd" == "oci" ] || [ "$pvd" = "ibm" ]; then echo "converting the svg to png using image magick for provider '$pvd'" python -m scripts.resource svg2png2 "$pvd" fi echo "cleaning the resource names for provider '$pvd'" python -m scripts.resource clean "$pvd" # round the all png images for aws provider if [ "$pvd" = "aws" ]; then echo "rounding the resources for provider '$pvd'" python -m scripts.resource round "$pvd" fi done # generate the module classes and docs for pvd in "${providers[@]}"; do echo "generating the modules & docs for provider '$pvd'" python -m scripts.generate "$pvd" done # Generate doc for custom module echo "generating the docs for custom" python -m scripts.generate "custom" # copy icons across to website echo "copying icons to website static folder" cp -r resources website/static/img/ # run black echo "linting the all the diagram modules" black "$app_root_dir"/**/*.py ================================================ FILE: config.py ================================================ # fmt: off ######################### # Application # ######################### APP_NAME = "diagrams" DIR_DOC_ROOT = "docs/nodes" DIR_APP_ROOT = "diagrams" DIR_RESOURCE = "resources" DIR_TEMPLATE = "templates" PROVIDERS = ( "base", "onprem", "aws", "azure", "digitalocean", "gcp", "ibm", "firebase", "k8s", "alibabacloud", "oci", "programming", "saas", "elastic", "generic", "openstack", "outscale", "gis" ) ######################### # Resource Processing # ######################### CMD_ROUND = "round" CMD_ROUND_OPTS = ("-w",) CMD_SVG2PNG = "inkscape" CMD_SVG2PNG_OPTS = ("-w", "256", "-h", "256", "--export-type", "png") CMD_SVG2PNG_IM = "convert" CMD_SVG2PNG_IM_OPTS = ("-shave", "25%x25%", "-resize", "256x256!") FILE_PREFIXES = { "onprem": (), "aws": ("Amazon-", "AWS-"), "azure": ("Azure-",), "digitalocean": (), "gcp": ("Cloud-",), "firebase": ("Cloud-",), "ibm": (), "k8s": (), "alibabacloud": (), "oci": ("OCI-icon-",), "programming": (), "saas": (), "elastic": (), "outscale": (), "generic": (), "openstack": (), "gis": (), } ######################### # Doc Auto Generation # ######################### TMPL_APIDOC = "apidoc.tmpl" ######################### # Class Auto Generation # ######################### TMPL_MODULE = "module.tmpl" UPPER_WORDS = { "aws": ("aws", "api", "ebs", "ec2", "efs", "emr", "rds", "ml", "mq", "nat", "vpc", "waf", "sdk"), "azure": ("ad", "b2c", "ai", "api", "cdn", "ddos", "dns", "fxt", "hana", "hd", "id", "sap", "sql", "vm", "vpn", "vpc"), "gcp": ("gcp", "ai", "api", "cdn", "dns", "gke", "gpu", "iap", "ids", "ml", "nat", "os", "sdk", "sql", "ssd", "tpu", "vpn"), "firebase": ("ab", "fcm", "ml"), "k8s": ( "api", "cm", "ccm", "crb", "crd", "ds", "etcd", "hpa", "k8s", "ns", "psp", "pv", "pvc", "rb", "rs", "sa", "sc", "sts", "svc", ), "oci": ("oci", "ocid", "oke", "ocir", "ddos", "waf", "bm", "vm", "cdn", "vpn", "dns", "nat", "dms", "api", "id"), "elastic": ("apm", "siem", "ece", "eck", "sql"), "generic": ("vpn", "ios", "xen", "sql", "lxc"), "outscale": ("osc",), "openstack": ("rpm", "loci", "nfv", "ec2api"), "pve": ("pve",), "ibm": ("ibm",), "gis": ("gis","ban","ign","ogc","qgis","wfs","wms"), } TITLE_WORDS = { "onprem": { "onprem": "OnPrem", }, "alibabacloud": { "alibabacloud": "AlibabaCloud" }, "aws": { "cloudfront": "CloudFront" }, "digitalocean": { "digitalocean": "DigitalOcean" }, "openstack": { "openstack": "OpenStack" }, "ibm": { "ibm": "IBMCloud" }, } # TODO: check if the classname exists ALIASES = { "onprem": { "analytics": { "Powerbi": "PowerBI" }, "ci": { "Circleci": "CircleCI", "Concourseci": "ConcourseCI", "Droneci": "DroneCI", "Gitlabci": "GitlabCI", "Travisci": "TravisCI", "Teamcity": "TC", "Zuulci": "ZuulCI", }, "container": { "Lxc": "LXC", "Rkt": "RKT", }, "database": { "Clickhouse": "ClickHouse", "Cockroachdb": "CockroachDB", "Couchdb": "CouchDB", "Hbase": "HBase", "Influxdb": "InfluxDB", "Janusgraph": "JanusGraph", "Mariadb": "MariaDB", "Mongodb": "MongoDB", "Mssql": "MSSQL", "Mysql": "MySQL", "Postgresql": "PostgreSQL", "Qdrant": "Qdrant", }, "gitops": { "Argocd": "ArgoCD", }, "logging": { "Fluentbit": "FluentBit", "Rsyslog": "RSyslog", }, "network": { "Etcd": "ETCD", "Haproxy": "HAProxy", "OpenServiceMesh": "OSM", "Opnsense": "OPNSense", "Pfsense": "PFSense", "Vyos": "VyOS" }, "proxmox": { "Pve": "ProxmoxVE", }, "queue": { "Activemq": "ActiveMQ", "Emqx": "EMQX", "Rabbitmq": "RabbitMQ", "Zeromq": "ZeroMQ", }, "storage": { "Ceph": "CEPH", "CephOsd": "CEPH_OSD", }, "workflow": { "Kubeflow": "KubeFlow", "Nifi": "NiFi", } }, "aws": { "analytics": { "ElasticsearchService": "ES", }, "business": { "AlexaForBusiness": "A4B" }, "blockchain": { "QuantumLedgerDatabaseQldb": "QLDB" }, "compute": { "ApplicationAutoScaling": "AutoScaling", "EC2Ami": "AMI", "EC2ContainerRegistry": "ECR", "ElasticBeanstalk": "EB", "ElasticContainerService": "ECS", "ElasticKubernetesService": "EKS", "ServerlessApplicationRepository": "SAR", }, "database": { "DatabaseMigrationService": "DMS", "DocumentdbMongodbCompatibility": "DocumentDB", "DynamodbDax": "DAX", "DynamodbGlobalSecondaryIndex": "DynamodbGSI", "Database": "DB", "Dynamodb": "DDB", "Elasticache": "ElastiCache", "QuantumLedgerDatabaseQldb": "QLDB", }, "devtools": { "CommandLineInterface": "CLI", "DeveloperTools": "DevTools", }, "engagement": { "SimpleEmailServiceSes": "SES", }, "general": { "GenericOfficeBuilding": "OfficeBuilding", }, "integration": { "SimpleNotificationServiceSns": "SNS", "SimpleQueueServiceSqs": "SQS", "StepFunctions": "SF", }, "iot": { "Freertos": "FreeRTOS", "IotHardwareBoard": "IotBoard", }, "management": { "SystemsManager": "SSM", "SystemsManagerParameterStore": "ParameterStore", }, "migration": { "ApplicationDiscoveryService": "ADS", "CloudendureMigration": "CEM", "DatabaseMigrationService": "DMS", "MigrationAndTransfer": "MAT", "ServerMigrationService": "SMS", }, "ml": { "DeepLearningContainers": "DLC", }, "network": { "CloudFront": "CF", "ElasticLoadBalancing": "ELB", "ElbApplicationLoadBalancer": "ALB", "ElbClassicLoadBalancer": "CLB", "ElbNetworkLoadBalancer": "NLB", "GlobalAccelerator": "GAX", "InternetGateway": "IGW", "TransitGateway": "TGW", "TransitGatewayAttachment": "TGWAttach", }, "security": { "CertificateManager": "ACM", "Cloudhsm": "CloudHSM", "DirectoryService": "DS", "FirewallManager": "FMS", "IdentityAndAccessManagementIamAccessAnalyzer": "IAMAccessAnalyzer", "IdentityAndAccessManagementIamAWSSts": "IAMAWSSts", "IdentityAndAccessManagementIamPermissions": "IAMPermissions", "IdentityAndAccessManagementIamRole": "IAMRole", "IdentityAndAccessManagementIam": "IAM", "KeyManagementService": "KMS", "ResourceAccessManager": "RAM", }, "storage": { "CloudendureDisasterRecovery": "CDR", "ElasticBlockStoreEBS": "EBS", "ElasticFileSystemEFS": "EFS", "Fsx": "FSx", "SimpleStorageServiceS3": "S3", }, }, "azure": { "compute": { "ContainerRegistries": "ACR", "KubernetesServices": "AKS", "VMScaleSet": "VMSS" }, }, "gcp": { "analytics": { "Bigquery": "BigQuery", "Pubsub": "PubSub", }, "compute": { "AppEngine": "GAE", "ComputeEngine": "GCE", "Functions": "GCF", "KubernetesEngine": "GKE", "Run": "CloudRun", }, "database": { "Bigtable": "BigTable", }, "devtools": { "ContainerRegistry": "GCR", }, "migration": { "MigrateComputeEngine": "CE", }, "ml": { "Automl": "AutoML", "NaturalLanguageAPI": "NLAPI", "SpeechToText": "STT", "TextToSpeech": "TTS", }, "network": { "CloudIDS": "IDS", "PrivateServiceConnect": "PSC", "VirtualPrivateCloud": "VPC", }, "security": { "AccessContextManager": "ACM", "KeyManagementService": "KMS", "SecurityCommandCenter": "SCC", }, "storage": { "LocalSSD": "SSD", "Storage": "GCS", }, }, "firebase": { "grow": { "Messaging": "FCM" } }, "k8s": { "clusterconfig": { "Limits": "LimitRange", "HPA": "HorizontalPodAutoscaler", }, "compute": { "Deploy": "Deployment", "DS": "DaemonSet", "RS": "ReplicaSet", "STS": "StatefulSet" }, "controlplane": { "API": "APIServer", "CM": "ControllerManager", "KProxy": "KubeProxy", "Sched": "Scheduler", }, "group": { "NS": "Namespace", }, "network": { "Ep": "Endpoint", "Ing": "Ingress", "Netpol": "NetworkPolicy", "SVC": "Service", }, "podconfig": { "CM": "ConfigMap", }, "rbac": { "CRole": "ClusterRole", "CRB": "ClusterRoleBinding", "RB": "RoleBinding", "SA": "ServiceAccount", }, "storage": { "PV": "PersistentVolume", "PVC": "PersistentVolumeClaim", "SC": "StorageClass", "Vol": "Volume", }, }, "alibabacloud": { "application": { "LogService": "SLS", "MessageNotificationService": "MNS", "PerformanceTestingService": "PTS", "SmartConversationAnalysis": "SCA", }, "compute": { "AutoScaling": "ESS", "ElasticComputeService": "ECS", "ElasticContainerInstance": "ECI", "ElasticHighPerformanceComputing": "EHPC", "FunctionCompute": "FC", "OperationOrchestrationService": "OOS", "ResourceOrchestrationService": "ROS", "ServerLoadBalancer": "SLB", "ServerlessAppEngine": "SAE", "SimpleApplicationServer": "SAS", "WebAppService": "WAS", }, "database": { "DataManagementService": "DMS", "DataTransmissionService": "DTS", "DatabaseBackupService": "DBS", "DisributeRelationalDatabaseService": "DRDS", "GraphDatabaseService": "GDS", "RelationalDatabaseService": "RDS", }, "network": { "CloudEnterpriseNetwork": "CEN", "ElasticIpAddress": "EIP", "ServerLoadBalancer": "SLB", "VirtualPrivateCloud": "VPC", }, "security": { "AntiBotService": "ABS", "AntifraudService": "AS", "CloudFirewall": "CFW", "ContentModeration": "CM", "DataEncryptionService": "DES", "WebApplicationFirewall": "WAF", }, "storage": { "FileStorageHdfs": "HDFS", "FileStorageNas": "NAS", "HybridBackupRecovery": "HBR", "HybridCloudDisasterRecovery": "HDR", "ObjectStorageService": "OSS", "ObjectTableStore": "OTS", } }, "digitalocean": {}, "gis": {}, "oci": { "compute": { "VM": "VirtualMachine", "VMWhite": "VirtualMachineWhite", "BM": "BareMetal", "BMWhite": "BareMetalWhite", "OCIR": "OCIRegistry", "OCIRWhite": "OCIRegistryWhite", "OKE": "ContainerEngine", "OKEWhite": "ContainerEngineWhite", }, "database": { "Autonomous": "ADB", "AutonomousWhite": "ADBWhite", "DatabaseService": "DBService", "DatabaseServiceWhite": "DBServiceWhite", } }, "programming": { "framework": { "Fastapi": "FastAPI", "Graphql": "GraphQL", "Dotnet": "DotNet", "Nextjs": "NextJs" }, "language": { "Javascript": "JavaScript", "Nodejs": "NodeJS", "Php": "PHP", "Typescript": "TypeScript" }, }, "saas": { "logging": { "Datadog": "DataDog", "Newrelic": "NewRelic" } }, "elastic": { "elasticsearch": { "Elasticsearch": "ElasticSearch", "Logstash": "LogStash", "MachineLearning": "ML", } }, "outscale": { "Osc": "OSC", }, "ibm": {}, "generic": {}, "openstack": { "user": { "Openstackclient": "OpenStackClient", }, "billing": { "Cloudkitty": "CloudKitty", }, "deployment": { "Kolla": "KollaAnsible", "Tripleo": "TripleO", } }, } ================================================ FILE: diagrams/__init__.py ================================================ import contextvars import os import uuid from pathlib import Path from typing import Dict, List, Optional, Union from graphviz import Digraph # Theme definitions for diagram styling # Each theme defines: cluster background colors (by depth), border color, edge color THEMES = { "neutral": { "bgcolor": ("#F8F9FA", "#F1F3F5", "#E9ECEF", "#DEE2E6"), "pencolor": "#ADB5BD", "edgecolor": "#495057", }, "pastel": { "bgcolor": ("#E5F5FD", "#EBF3E7", "#ECE8F6", "#FDF7E3"), "pencolor": "#AEB6BE", "edgecolor": "#7B8894", }, "blues": { "bgcolor": ("#E7F5FF", "#D0EBFF", "#A5D8FF", "#74C0FC"), "pencolor": "#339AF0", "edgecolor": "#1971C2", }, "greens": { "bgcolor": ("#EBFBEE", "#D3F9D8", "#B2F2BB", "#8CE99A"), "pencolor": "#40C057", "edgecolor": "#2F9E44", }, "orange": { "bgcolor": ("#FFF4E6", "#FFE8CC", "#FFD8A8", "#FFC078"), "pencolor": "#FD7E14", "edgecolor": "#E8590C", }, } # Global contexts for a diagrams and a cluster. # # These global contexts are for letting the clusters and nodes know # where context they are belong to. So the all clusters and nodes does # not need to specify the current diagrams or cluster via parameters. __diagram = contextvars.ContextVar("diagrams") __cluster = contextvars.ContextVar("cluster") def getdiagram() -> "Diagram": try: return __diagram.get() except LookupError: return None def setdiagram(diagram: "Diagram"): __diagram.set(diagram) def getcluster() -> "Cluster": try: return __cluster.get() except LookupError: return None def setcluster(cluster: "Cluster"): __cluster.set(cluster) class Diagram: __directions = ("TB", "BT", "LR", "RL") __curvestyles = ("ortho", "curved", "spline", "polyline") __outformats = ("png", "jpg", "svg", "pdf", "dot") # fmt: off _default_graph_attrs = { "pad": "2.0", "splines": "spline", "nodesep": "0.70", "ranksep": "0.90", "fontname": "Sans-Serif", "fontsize": "15", "fontcolor": "#2D3436", } _default_node_attrs = { "shape": "box", "style": "rounded", "fixedsize": "true", "width": "1.4", "height": "1.4", "labelloc": "b", # imagepos attribute is not backward compatible # TODO: check graphviz version to see if "imagepos" is available >= 2.40 # https://github.com/xflr6/graphviz/blob/master/graphviz/backend.py#L248 # "imagepos": "tc", "imagescale": "true", "fontname": "Sans-Serif", "fontsize": "13", "fontcolor": "#2D3436", } _default_edge_attrs = { "color": "#495057", "arrowsize": "0.8", } # fmt: on # TODO: Label position option # TODO: Save directory option (filename + directory?) def __init__( self, name: str = "", filename: str = "", direction: str = "LR", curvestyle: str = "spline", outformat: Union[str, list[str]] = "png", autolabel: bool = False, show: bool = True, strict: bool = False, theme: str = "neutral", graph_attr: Optional[dict] = None, node_attr: Optional[dict] = None, edge_attr: Optional[dict] = None, ): """Diagram represents a global diagrams context. :param name: Diagram name. It will be used for output filename if the filename isn't given. :param filename: The output filename, without the extension (.png). If not given, it will be generated from the name. :param direction: Data flow direction. Default is 'left to right'. :param curvestyle: Edge routing style. One of "ortho", "curved", "spline", or "polyline". :param outformat: Output file format. Default is 'png'. :param show: Open generated image after save if true, just only save otherwise. :param theme: Color theme. One of "neutral", "pastel", "blues", "greens", "orange". :param graph_attr: Provide graph_attr dot config attributes. :param node_attr: Provide node_attr dot config attributes. :param edge_attr: Provide edge_attr dot config attributes. :param strict: Rendering should merge multi-edges. """ if graph_attr is None: graph_attr = {} if node_attr is None: node_attr = {} if edge_attr is None: edge_attr = {} # Validate and set theme if theme not in THEMES: raise ValueError(f'"{theme}" is not a valid theme. Choose from: {", ".join(THEMES.keys())}') self.theme = theme self._theme_config = THEMES[theme] self.name = name if not name and not filename: filename = "diagrams_image" elif not filename: filename = "_".join(self.name.split()).lower() self.filename = filename self.dot = Digraph(self.name, filename=self.filename, strict=strict) # Set attributes. for k, v in self._default_graph_attrs.items(): self.dot.graph_attr[k] = v self.dot.graph_attr["label"] = self.name for k, v in self._default_node_attrs.items(): self.dot.node_attr[k] = v for k, v in self._default_edge_attrs.items(): self.dot.edge_attr[k] = v # Apply theme edge color self.dot.edge_attr["color"] = self._theme_config["edgecolor"] if not self._validate_direction(direction): raise ValueError(f'"{direction}" is not a valid direction') self.dot.graph_attr["rankdir"] = direction if not self._validate_curvestyle(curvestyle): raise ValueError(f'"{curvestyle}" is not a valid curvestyle') self.dot.graph_attr["splines"] = curvestyle if isinstance(outformat, list): for one_format in outformat: if not self._validate_outformat(one_format): raise ValueError( f'"{one_format}" is not a valid output format') else: if not self._validate_outformat(outformat): raise ValueError(f'"{outformat}" is not a valid output format') self.outformat = outformat # Merge passed in attributes self.dot.graph_attr.update(graph_attr) self.dot.node_attr.update(node_attr) self.dot.edge_attr.update(edge_attr) self.show = show self.autolabel = autolabel def __str__(self) -> str: return str(self.dot) def __enter__(self): setdiagram(self) return self def __exit__(self, exc_type, exc_value, traceback): self.render() # Remove the graphviz file leaving only the image. os.remove(self.filename) setdiagram(None) def _repr_png_(self): return self.dot.pipe(format="png") def _validate_direction(self, direction: str) -> bool: return direction.upper() in self.__directions def _validate_curvestyle(self, curvestyle: str) -> bool: return curvestyle.lower() in self.__curvestyles def _validate_outformat(self, outformat: str) -> bool: return outformat.lower() in self.__outformats def node(self, nodeid: str, label: str, **attrs) -> None: """Create a new node.""" self.dot.node(nodeid, label=label, **attrs) def connect(self, node: "Node", node2: "Node", edge: "Edge") -> None: """Connect the two Nodes.""" self.dot.edge(node.nodeid, node2.nodeid, **edge.attrs) def subgraph(self, dot: Digraph) -> None: """Create a subgraph for clustering""" self.dot.subgraph(dot) def render(self) -> None: if isinstance(self.outformat, list): for one_format in self.outformat: self.dot.render(format=one_format, view=self.show, quiet=True) else: self.dot.render(format=self.outformat, view=self.show, quiet=True) class Cluster: __directions = ("TB", "BT", "LR", "RL") # fmt: off _default_graph_attrs = { "shape": "box", "style": "rounded", "labeljust": "l", "fontname": "Sans-Serif", "fontsize": "12", } # fmt: on # FIXME: # Cluster direction does not work now. Graphviz couldn't render # correctly for a subgraph that has a different rank direction. def __init__( self, label: str = "cluster", direction: str = "LR", graph_attr: Optional[dict] = None, ): """Cluster represents a cluster context. :param label: Cluster label. :param direction: Data flow direction. Default is 'left to right'. :param graph_attr: Provide graph_attr dot config attributes. """ if graph_attr is None: graph_attr = {} self.label = label self.name = "cluster_" + self.label # Node must belong to a diagram. self._diagram = getdiagram() if self._diagram is None: raise EnvironmentError("Global diagrams context not set up") self._parent = getcluster() # Get theme configuration from the diagram theme_config = self._diagram._theme_config self.dot = Digraph(self.name) # Set attributes. for k, v in self._default_graph_attrs.items(): self.dot.graph_attr[k] = v self.dot.graph_attr["label"] = self.label # Apply theme colors self.dot.graph_attr["pencolor"] = theme_config["pencolor"] if not self._validate_direction(direction): raise ValueError(f'"{direction}" is not a valid direction') self.dot.graph_attr["rankdir"] = direction # Set cluster depth for distinguishing the background color self.depth = self._parent.depth + 1 if self._parent else 0 bgcolors = theme_config["bgcolor"] coloridx = self.depth % len(bgcolors) self.dot.graph_attr["bgcolor"] = bgcolors[coloridx] # Merge passed in attributes self.dot.graph_attr.update(graph_attr) def __enter__(self): setcluster(self) return self def __exit__(self, exc_type, exc_value, traceback): if self._parent: self._parent.subgraph(self.dot) else: self._diagram.subgraph(self.dot) setcluster(self._parent) def _validate_direction(self, direction: str) -> bool: return direction.upper() in self.__directions def node(self, nodeid: str, label: str, **attrs) -> None: """Create a new node in the cluster.""" self.dot.node(nodeid, label=label, **attrs) def subgraph(self, dot: Digraph) -> None: self.dot.subgraph(dot) class Node: """Node represents a node for a specific backend service.""" _provider = None _type = None _icon_dir = None _icon = None _height = 1.9 def __init__(self, label: str = "", *, nodeid: str = None, **attrs: Dict): """Node represents a system component. :param label: Node label. """ # Generates an ID for identifying a node, unless specified self._id = nodeid or self._rand_id() self.label = label # Node must belong to a diagram. self._diagram = getdiagram() if self._diagram is None: raise EnvironmentError("Global diagrams context not set up") if self._diagram.autolabel: prefix = self.__class__.__name__ if self.label: self.label = prefix + "\n" + self.label else: self.label = prefix # fmt: off # If a node has an icon, increase the height slightly to avoid # that label being spanned between icon image and white space. # Increase the height by the number of new lines included in the label. padding = 0.4 * (self.label.count('\n')) self._attrs = { "shape": "none", "height": str(self._height + padding), "image": self._load_icon(), } if self._icon else {} # fmt: on self._attrs.update(attrs) self._cluster = getcluster() # If a node is in the cluster context, add it to cluster. if self._cluster: self._cluster.node(self._id, self.label, **self._attrs) else: self._diagram.node(self._id, self.label, **self._attrs) def __repr__(self): _name = self.__class__.__name__ return f"<{self._provider}.{self._type}.{_name}>" def __sub__(self, other: Union["Node", List["Node"], "Edge"]): """Implement Self - Node, Self - [Nodes] and Self - Edge.""" if isinstance(other, list): for node in other: self.connect(node, Edge(self)) return other elif isinstance(other, Node): return self.connect(other, Edge(self)) else: other.node = self return other def __rsub__(self, other: Union[List["Node"], List["Edge"]]): """Called for [Nodes] and [Edges] - Self because list don't have __sub__ operators.""" for o in other: if isinstance(o, Edge): o.connect(self) else: o.connect(self, Edge(self)) return self def __rshift__(self, other: Union["Node", List["Node"], "Edge"]): """Implements Self >> Node, Self >> [Nodes] and Self Edge.""" if isinstance(other, list): for node in other: self.connect(node, Edge(self, forward=True)) return other elif isinstance(other, Node): return self.connect(other, Edge(self, forward=True)) else: other.forward = True other.node = self return other def __lshift__(self, other: Union["Node", List["Node"], "Edge"]): """Implements Self << Node, Self << [Nodes] and Self << Edge.""" if isinstance(other, list): for node in other: self.connect(node, Edge(self, reverse=True)) return other elif isinstance(other, Node): return self.connect(other, Edge(self, reverse=True)) else: other.reverse = True return other.connect(self) def __rrshift__(self, other: Union[List["Node"], List["Edge"]]): """Called for [Nodes] and [Edges] >> Self because list don't have __rshift__ operators.""" for o in other: if isinstance(o, Edge): o.forward = True o.connect(self) else: o.connect(self, Edge(self, forward=True)) return self def __rlshift__(self, other: Union[List["Node"], List["Edge"]]): """Called for [Nodes] << Self because list of Nodes don't have __lshift__ operators.""" for o in other: if isinstance(o, Edge): o.reverse = True o.connect(self) else: o.connect(self, Edge(self, reverse=True)) return self @property def nodeid(self): return self._id # TODO: option for adding flow description to the connection edge def connect(self, node: "Node", edge: "Edge"): """Connect to other node. :param node: Other node instance. :param edge: Type of the edge. :return: Connected node. """ if not isinstance(node, Node): ValueError(f"{node} is not a valid Node") if not isinstance(edge, Edge): ValueError(f"{edge} is not a valid Edge") # An edge must be added on the global diagrams, not a cluster. self._diagram.connect(self, node, edge) return node @staticmethod def _rand_id(): return uuid.uuid4().hex def _load_icon(self): basedir = Path(os.path.abspath(os.path.dirname(__file__))) return os.path.join(basedir.parent, self._icon_dir, self._icon) class Edge: """Edge represents an edge between two nodes.""" _default_edge_attrs = { "fontcolor": "#2D3436", "fontname": "Sans-Serif", "fontsize": "13", } def __init__( self, node: "Node" = None, forward: bool = False, reverse: bool = False, label: str = "", color: str = "", style: str = "", **attrs: Dict, ): """Edge represents an edge between two nodes. :param node: Parent node. :param forward: Points forward. :param reverse: Points backward. :param label: Edge label. :param color: Edge color. :param style: Edge style. :param attrs: Other edge attributes """ if node is not None: assert isinstance(node, Node) self.node = node self.forward = forward self.reverse = reverse self._attrs = {} # Set attributes. for k, v in self._default_edge_attrs.items(): self._attrs[k] = v if label: # Graphviz complaining about using label for edges, so replace it with xlabel. # Update: xlabel option causes the misaligned label position: # https://github.com/mingrammer/diagrams/issues/83 self._attrs["label"] = label if color: self._attrs["color"] = color if style: self._attrs["style"] = style self._attrs.update(attrs) def __sub__(self, other: Union["Node", "Edge", List["Node"]]): """Implement Self - Node or Edge and Self - [Nodes]""" return self.connect(other) def __rsub__(self, other: Union[List["Node"], List["Edge"]]) -> List["Edge"]: """Called for [Nodes] or [Edges] - Self because list don't have __sub__ operators.""" return self.append(other) def __rshift__(self, other: Union["Node", "Edge", List["Node"]]): """Implements Self >> Node or Edge and Self >> [Nodes].""" self.forward = True return self.connect(other) def __lshift__(self, other: Union["Node", "Edge", List["Node"]]): """Implements Self << Node or Edge and Self << [Nodes].""" self.reverse = True return self.connect(other) def __rrshift__(self, other: Union[List["Node"], List["Edge"]]) -> List["Edge"]: """Called for [Nodes] or [Edges] >> Self because list of Edges don't have __rshift__ operators.""" return self.append(other, forward=True) def __rlshift__(self, other: Union[List["Node"], List["Edge"]]) -> List["Edge"]: """Called for [Nodes] or [Edges] << Self because list of Edges don't have __lshift__ operators.""" return self.append(other, reverse=True) def append(self, other: Union[List["Node"], List["Edge"]], forward=None, reverse=None) -> List["Edge"]: result = [] for o in other: if isinstance(o, Edge): o.forward = forward if forward else o.forward o.reverse = reverse if reverse else o.reverse self._attrs = o.attrs.copy() result.append(o) else: result.append( Edge( o, forward=forward, reverse=reverse, **self._attrs)) return result def connect(self, other: Union["Node", "Edge", List["Node"]]): if isinstance(other, list): for node in other: self.node.connect(node, self) return other elif isinstance(other, Edge): self._attrs = other._attrs.copy() return self else: if self.node is not None: return self.node.connect(other, self) else: self.node = other return self @property def attrs(self) -> Dict: if self.forward and self.reverse: direction = "both" elif self.forward: direction = "forward" elif self.reverse: direction = "back" else: direction = "none" return {**self._attrs, "dir": direction} Group = Cluster ================================================ FILE: diagrams/alibabacloud/__init__.py ================================================ """ AlibabaCloud provides a set of services for Alibaba Cloud provider. """ from diagrams import Node class _AlibabaCloud(Node): _provider = "alibabacloud" _icon_dir = "resources/alibabacloud" fontcolor = "#ffffff" class AlibabaCloud(_AlibabaCloud): _icon = "alibabacloud.png" ================================================ FILE: diagrams/alibabacloud/analytics.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AlibabaCloud class _Analytics(_AlibabaCloud): _type = "analytics" _icon_dir = "resources/alibabacloud/analytics" class AnalyticDb(_Analytics): _icon = "analytic-db.png" class ClickHouse(_Analytics): _icon = "click-house.png" class DataLakeAnalytics(_Analytics): _icon = "data-lake-analytics.png" class ElaticMapReduce(_Analytics): _icon = "elatic-map-reduce.png" class OpenSearch(_Analytics): _icon = "open-search.png" # Aliases ================================================ FILE: diagrams/alibabacloud/application.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AlibabaCloud class _Application(_AlibabaCloud): _type = "application" _icon_dir = "resources/alibabacloud/application" class ApiGateway(_Application): _icon = "api-gateway.png" class BeeBot(_Application): _icon = "bee-bot.png" class BlockchainAsAService(_Application): _icon = "blockchain-as-a-service.png" class CloudCallCenter(_Application): _icon = "cloud-call-center.png" class CodePipeline(_Application): _icon = "code-pipeline.png" class DirectMail(_Application): _icon = "direct-mail.png" class LogService(_Application): _icon = "log-service.png" class MessageNotificationService(_Application): _icon = "message-notification-service.png" class NodeJsPerformancePlatform(_Application): _icon = "node-js-performance-platform.png" class OpenSearch(_Application): _icon = "open-search.png" class PerformanceTestingService(_Application): _icon = "performance-testing-service.png" class RdCloud(_Application): _icon = "rd-cloud.png" class SmartConversationAnalysis(_Application): _icon = "smart-conversation-analysis.png" class Yida(_Application): _icon = "yida.png" # Aliases SLS = LogService MNS = MessageNotificationService PTS = PerformanceTestingService SCA = SmartConversationAnalysis ================================================ FILE: diagrams/alibabacloud/communication.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AlibabaCloud class _Communication(_AlibabaCloud): _type = "communication" _icon_dir = "resources/alibabacloud/communication" class DirectMail(_Communication): _icon = "direct-mail.png" class MobilePush(_Communication): _icon = "mobile-push.png" # Aliases ================================================ FILE: diagrams/alibabacloud/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AlibabaCloud class _Compute(_AlibabaCloud): _type = "compute" _icon_dir = "resources/alibabacloud/compute" class AutoScaling(_Compute): _icon = "auto-scaling.png" class BatchCompute(_Compute): _icon = "batch-compute.png" class ContainerRegistry(_Compute): _icon = "container-registry.png" class ContainerService(_Compute): _icon = "container-service.png" class ElasticComputeService(_Compute): _icon = "elastic-compute-service.png" class ElasticContainerInstance(_Compute): _icon = "elastic-container-instance.png" class ElasticHighPerformanceComputing(_Compute): _icon = "elastic-high-performance-computing.png" class ElasticSearch(_Compute): _icon = "elastic-search.png" class FunctionCompute(_Compute): _icon = "function-compute.png" class OperationOrchestrationService(_Compute): _icon = "operation-orchestration-service.png" class ResourceOrchestrationService(_Compute): _icon = "resource-orchestration-service.png" class ServerLoadBalancer(_Compute): _icon = "server-load-balancer.png" class ServerlessAppEngine(_Compute): _icon = "serverless-app-engine.png" class SimpleApplicationServer(_Compute): _icon = "simple-application-server.png" class WebAppService(_Compute): _icon = "web-app-service.png" # Aliases ESS = AutoScaling ECS = ElasticComputeService ECI = ElasticContainerInstance EHPC = ElasticHighPerformanceComputing FC = FunctionCompute OOS = OperationOrchestrationService ROS = ResourceOrchestrationService SLB = ServerLoadBalancer SAE = ServerlessAppEngine SAS = SimpleApplicationServer WAS = WebAppService ================================================ FILE: diagrams/alibabacloud/database.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AlibabaCloud class _Database(_AlibabaCloud): _type = "database" _icon_dir = "resources/alibabacloud/database" class ApsaradbCassandra(_Database): _icon = "apsaradb-cassandra.png" class ApsaradbHbase(_Database): _icon = "apsaradb-hbase.png" class ApsaradbMemcache(_Database): _icon = "apsaradb-memcache.png" class ApsaradbMongodb(_Database): _icon = "apsaradb-mongodb.png" class ApsaradbOceanbase(_Database): _icon = "apsaradb-oceanbase.png" class ApsaradbPolardb(_Database): _icon = "apsaradb-polardb.png" class ApsaradbPostgresql(_Database): _icon = "apsaradb-postgresql.png" class ApsaradbPpas(_Database): _icon = "apsaradb-ppas.png" class ApsaradbRedis(_Database): _icon = "apsaradb-redis.png" class ApsaradbSqlserver(_Database): _icon = "apsaradb-sqlserver.png" class DataManagementService(_Database): _icon = "data-management-service.png" class DataTransmissionService(_Database): _icon = "data-transmission-service.png" class DatabaseBackupService(_Database): _icon = "database-backup-service.png" class DisributeRelationalDatabaseService(_Database): _icon = "disribute-relational-database-service.png" class GraphDatabaseService(_Database): _icon = "graph-database-service.png" class HybriddbForMysql(_Database): _icon = "hybriddb-for-mysql.png" class RelationalDatabaseService(_Database): _icon = "relational-database-service.png" # Aliases DMS = DataManagementService DTS = DataTransmissionService DBS = DatabaseBackupService DRDS = DisributeRelationalDatabaseService GDS = GraphDatabaseService RDS = RelationalDatabaseService ================================================ FILE: diagrams/alibabacloud/iot.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AlibabaCloud class _Iot(_AlibabaCloud): _type = "iot" _icon_dir = "resources/alibabacloud/iot" class IotInternetDeviceId(_Iot): _icon = "iot-internet-device-id.png" class IotLinkWan(_Iot): _icon = "iot-link-wan.png" class IotMobileConnectionPackage(_Iot): _icon = "iot-mobile-connection-package.png" class IotPlatform(_Iot): _icon = "iot-platform.png" # Aliases ================================================ FILE: diagrams/alibabacloud/network.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AlibabaCloud class _Network(_AlibabaCloud): _type = "network" _icon_dir = "resources/alibabacloud/network" class Cdn(_Network): _icon = "cdn.png" class CloudEnterpriseNetwork(_Network): _icon = "cloud-enterprise-network.png" class ElasticIpAddress(_Network): _icon = "elastic-ip-address.png" class ExpressConnect(_Network): _icon = "express-connect.png" class NatGateway(_Network): _icon = "nat-gateway.png" class ServerLoadBalancer(_Network): _icon = "server-load-balancer.png" class SmartAccessGateway(_Network): _icon = "smart-access-gateway.png" class VirtualPrivateCloud(_Network): _icon = "virtual-private-cloud.png" class VpnGateway(_Network): _icon = "vpn-gateway.png" # Aliases CEN = CloudEnterpriseNetwork EIP = ElasticIpAddress SLB = ServerLoadBalancer VPC = VirtualPrivateCloud ================================================ FILE: diagrams/alibabacloud/security.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AlibabaCloud class _Security(_AlibabaCloud): _type = "security" _icon_dir = "resources/alibabacloud/security" class AntiBotService(_Security): _icon = "anti-bot-service.png" class AntiDdosBasic(_Security): _icon = "anti-ddos-basic.png" class AntiDdosPro(_Security): _icon = "anti-ddos-pro.png" class AntifraudService(_Security): _icon = "antifraud-service.png" class BastionHost(_Security): _icon = "bastion-host.png" class CloudFirewall(_Security): _icon = "cloud-firewall.png" class CloudSecurityScanner(_Security): _icon = "cloud-security-scanner.png" class ContentModeration(_Security): _icon = "content-moderation.png" class CrowdsourcedSecurityTesting(_Security): _icon = "crowdsourced-security-testing.png" class DataEncryptionService(_Security): _icon = "data-encryption-service.png" class DbAudit(_Security): _icon = "db-audit.png" class GameShield(_Security): _icon = "game-shield.png" class IdVerification(_Security): _icon = "id-verification.png" class ManagedSecurityService(_Security): _icon = "managed-security-service.png" class SecurityCenter(_Security): _icon = "security-center.png" class ServerGuard(_Security): _icon = "server-guard.png" class SslCertificates(_Security): _icon = "ssl-certificates.png" class WebApplicationFirewall(_Security): _icon = "web-application-firewall.png" # Aliases ABS = AntiBotService AS = AntifraudService CFW = CloudFirewall CM = ContentModeration DES = DataEncryptionService WAF = WebApplicationFirewall ================================================ FILE: diagrams/alibabacloud/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AlibabaCloud class _Storage(_AlibabaCloud): _type = "storage" _icon_dir = "resources/alibabacloud/storage" class CloudStorageGateway(_Storage): _icon = "cloud-storage-gateway.png" class FileStorageHdfs(_Storage): _icon = "file-storage-hdfs.png" class FileStorageNas(_Storage): _icon = "file-storage-nas.png" class HybridBackupRecovery(_Storage): _icon = "hybrid-backup-recovery.png" class HybridCloudDisasterRecovery(_Storage): _icon = "hybrid-cloud-disaster-recovery.png" class Imm(_Storage): _icon = "imm.png" class ObjectStorageService(_Storage): _icon = "object-storage-service.png" class ObjectTableStore(_Storage): _icon = "object-table-store.png" # Aliases HDFS = FileStorageHdfs NAS = FileStorageNas HBR = HybridBackupRecovery HDR = HybridCloudDisasterRecovery OSS = ObjectStorageService OTS = ObjectTableStore ================================================ FILE: diagrams/alibabacloud/web.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AlibabaCloud class _Web(_AlibabaCloud): _type = "web" _icon_dir = "resources/alibabacloud/web" class Dns(_Web): _icon = "dns.png" class Domain(_Web): _icon = "domain.png" # Aliases ================================================ FILE: diagrams/aws/__init__.py ================================================ """ AWS provides a set of services for Amazon Web Service provider. """ from diagrams import Node class _AWS(Node): _provider = "aws" _icon_dir = "resources/aws" fontcolor = "#ffffff" class AWS(_AWS): _icon = "aws.png" ================================================ FILE: diagrams/aws/analytics.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Analytics(_AWS): _type = "analytics" _icon_dir = "resources/aws/analytics" class AmazonOpensearchService(_Analytics): _icon = "amazon-opensearch-service.png" class Analytics(_Analytics): _icon = "analytics.png" class Athena(_Analytics): _icon = "athena.png" class CloudsearchSearchDocuments(_Analytics): _icon = "cloudsearch-search-documents.png" class Cloudsearch(_Analytics): _icon = "cloudsearch.png" class DataLakeResource(_Analytics): _icon = "data-lake-resource.png" class DataPipeline(_Analytics): _icon = "data-pipeline.png" class ElasticsearchService(_Analytics): _icon = "elasticsearch-service.png" class EMRCluster(_Analytics): _icon = "emr-cluster.png" class EMREngineMaprM3(_Analytics): _icon = "emr-engine-mapr-m3.png" class EMREngineMaprM5(_Analytics): _icon = "emr-engine-mapr-m5.png" class EMREngineMaprM7(_Analytics): _icon = "emr-engine-mapr-m7.png" class EMREngine(_Analytics): _icon = "emr-engine.png" class EMRHdfsCluster(_Analytics): _icon = "emr-hdfs-cluster.png" class EMR(_Analytics): _icon = "emr.png" class GlueCrawlers(_Analytics): _icon = "glue-crawlers.png" class GlueDataCatalog(_Analytics): _icon = "glue-data-catalog.png" class Glue(_Analytics): _icon = "glue.png" class KinesisDataAnalytics(_Analytics): _icon = "kinesis-data-analytics.png" class KinesisDataFirehose(_Analytics): _icon = "kinesis-data-firehose.png" class KinesisDataStreams(_Analytics): _icon = "kinesis-data-streams.png" class KinesisVideoStreams(_Analytics): _icon = "kinesis-video-streams.png" class Kinesis(_Analytics): _icon = "kinesis.png" class LakeFormation(_Analytics): _icon = "lake-formation.png" class ManagedStreamingForKafka(_Analytics): _icon = "managed-streaming-for-kafka.png" class Quicksight(_Analytics): _icon = "quicksight.png" class RedshiftDenseComputeNode(_Analytics): _icon = "redshift-dense-compute-node.png" class RedshiftDenseStorageNode(_Analytics): _icon = "redshift-dense-storage-node.png" class Redshift(_Analytics): _icon = "redshift.png" # Aliases ES = ElasticsearchService ================================================ FILE: diagrams/aws/ar.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Ar(_AWS): _type = "ar" _icon_dir = "resources/aws/ar" class ArVr(_Ar): _icon = "ar-vr.png" class Sumerian(_Ar): _icon = "sumerian.png" # Aliases ================================================ FILE: diagrams/aws/blockchain.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Blockchain(_AWS): _type = "blockchain" _icon_dir = "resources/aws/blockchain" class BlockchainResource(_Blockchain): _icon = "blockchain-resource.png" class Blockchain(_Blockchain): _icon = "blockchain.png" class ManagedBlockchain(_Blockchain): _icon = "managed-blockchain.png" class QuantumLedgerDatabaseQldb(_Blockchain): _icon = "quantum-ledger-database-qldb.png" # Aliases QLDB = QuantumLedgerDatabaseQldb ================================================ FILE: diagrams/aws/business.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Business(_AWS): _type = "business" _icon_dir = "resources/aws/business" class AlexaForBusiness(_Business): _icon = "alexa-for-business.png" class BusinessApplications(_Business): _icon = "business-applications.png" class Chime(_Business): _icon = "chime.png" class Workmail(_Business): _icon = "workmail.png" # Aliases A4B = AlexaForBusiness ================================================ FILE: diagrams/aws/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Compute(_AWS): _type = "compute" _icon_dir = "resources/aws/compute" class AppRunner(_Compute): _icon = "app-runner.png" class ApplicationAutoScaling(_Compute): _icon = "application-auto-scaling.png" class Batch(_Compute): _icon = "batch.png" class ComputeOptimizer(_Compute): _icon = "compute-optimizer.png" class Compute(_Compute): _icon = "compute.png" class EC2Ami(_Compute): _icon = "ec2-ami.png" class EC2AutoScaling(_Compute): _icon = "ec2-auto-scaling.png" class EC2ContainerRegistryImage(_Compute): _icon = "ec2-container-registry-image.png" class EC2ContainerRegistryRegistry(_Compute): _icon = "ec2-container-registry-registry.png" class EC2ContainerRegistry(_Compute): _icon = "ec2-container-registry.png" class EC2ElasticIpAddress(_Compute): _icon = "ec2-elastic-ip-address.png" class EC2ImageBuilder(_Compute): _icon = "ec2-image-builder.png" class EC2Instance(_Compute): _icon = "ec2-instance.png" class EC2Instances(_Compute): _icon = "ec2-instances.png" class EC2Rescue(_Compute): _icon = "ec2-rescue.png" class EC2SpotInstance(_Compute): _icon = "ec2-spot-instance.png" class EC2(_Compute): _icon = "ec2.png" class ElasticBeanstalkApplication(_Compute): _icon = "elastic-beanstalk-application.png" class ElasticBeanstalkDeployment(_Compute): _icon = "elastic-beanstalk-deployment.png" class ElasticBeanstalk(_Compute): _icon = "elastic-beanstalk.png" class ElasticContainerServiceContainer(_Compute): _icon = "elastic-container-service-container.png" class ElasticContainerServiceServiceConnect(_Compute): _icon = "elastic-container-service-service-connect.png" class ElasticContainerServiceService(_Compute): _icon = "elastic-container-service-service.png" class ElasticContainerServiceTask(_Compute): _icon = "elastic-container-service-task.png" class ElasticContainerService(_Compute): _icon = "elastic-container-service.png" class ElasticKubernetesService(_Compute): _icon = "elastic-kubernetes-service.png" class Fargate(_Compute): _icon = "fargate.png" class LambdaFunction(_Compute): _icon = "lambda-function.png" class Lambda(_Compute): _icon = "lambda.png" class Lightsail(_Compute): _icon = "lightsail.png" class LocalZones(_Compute): _icon = "local-zones.png" class Outposts(_Compute): _icon = "outposts.png" class ServerlessApplicationRepository(_Compute): _icon = "serverless-application-repository.png" class ThinkboxDeadline(_Compute): _icon = "thinkbox-deadline.png" class ThinkboxDraft(_Compute): _icon = "thinkbox-draft.png" class ThinkboxFrost(_Compute): _icon = "thinkbox-frost.png" class ThinkboxKrakatoa(_Compute): _icon = "thinkbox-krakatoa.png" class ThinkboxSequoia(_Compute): _icon = "thinkbox-sequoia.png" class ThinkboxStoke(_Compute): _icon = "thinkbox-stoke.png" class ThinkboxXmesh(_Compute): _icon = "thinkbox-xmesh.png" class VmwareCloudOnAWS(_Compute): _icon = "vmware-cloud-on-aws.png" class Wavelength(_Compute): _icon = "wavelength.png" # Aliases AutoScaling = ApplicationAutoScaling AMI = EC2Ami ECR = EC2ContainerRegistry EB = ElasticBeanstalk ECS = ElasticContainerService EKS = ElasticKubernetesService SAR = ServerlessApplicationRepository ================================================ FILE: diagrams/aws/cost.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Cost(_AWS): _type = "cost" _icon_dir = "resources/aws/cost" class Budgets(_Cost): _icon = "budgets.png" class CostAndUsageReport(_Cost): _icon = "cost-and-usage-report.png" class CostExplorer(_Cost): _icon = "cost-explorer.png" class CostManagement(_Cost): _icon = "cost-management.png" class ReservedInstanceReporting(_Cost): _icon = "reserved-instance-reporting.png" class SavingsPlans(_Cost): _icon = "savings-plans.png" # Aliases ================================================ FILE: diagrams/aws/database.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Database(_AWS): _type = "database" _icon_dir = "resources/aws/database" class AuroraInstance(_Database): _icon = "aurora-instance.png" class Aurora(_Database): _icon = "aurora.png" class DatabaseMigrationServiceDatabaseMigrationWorkflow(_Database): _icon = "database-migration-service-database-migration-workflow.png" class DatabaseMigrationService(_Database): _icon = "database-migration-service.png" class Database(_Database): _icon = "database.png" class DocumentdbMongodbCompatibility(_Database): _icon = "documentdb-mongodb-compatibility.png" class DynamodbAttribute(_Database): _icon = "dynamodb-attribute.png" class DynamodbAttributes(_Database): _icon = "dynamodb-attributes.png" class DynamodbDax(_Database): _icon = "dynamodb-dax.png" class DynamodbGlobalSecondaryIndex(_Database): _icon = "dynamodb-global-secondary-index.png" class DynamodbItem(_Database): _icon = "dynamodb-item.png" class DynamodbItems(_Database): _icon = "dynamodb-items.png" class DynamodbStreams(_Database): _icon = "dynamodb-streams.png" class DynamodbTable(_Database): _icon = "dynamodb-table.png" class Dynamodb(_Database): _icon = "dynamodb.png" class ElasticacheCacheNode(_Database): _icon = "elasticache-cache-node.png" class ElasticacheForMemcached(_Database): _icon = "elasticache-for-memcached.png" class ElasticacheForRedis(_Database): _icon = "elasticache-for-redis.png" class Elasticache(_Database): _icon = "elasticache.png" class KeyspacesManagedApacheCassandraService(_Database): _icon = "keyspaces-managed-apache-cassandra-service.png" class Neptune(_Database): _icon = "neptune.png" class QuantumLedgerDatabaseQldb(_Database): _icon = "quantum-ledger-database-qldb.png" class RDSInstance(_Database): _icon = "rds-instance.png" class RDSMariadbInstance(_Database): _icon = "rds-mariadb-instance.png" class RDSMysqlInstance(_Database): _icon = "rds-mysql-instance.png" class RDSOnVmware(_Database): _icon = "rds-on-vmware.png" class RDSOracleInstance(_Database): _icon = "rds-oracle-instance.png" class RDSPostgresqlInstance(_Database): _icon = "rds-postgresql-instance.png" class RDSSqlServerInstance(_Database): _icon = "rds-sql-server-instance.png" class RDS(_Database): _icon = "rds.png" class RedshiftDenseComputeNode(_Database): _icon = "redshift-dense-compute-node.png" class RedshiftDenseStorageNode(_Database): _icon = "redshift-dense-storage-node.png" class Redshift(_Database): _icon = "redshift.png" class Timestream(_Database): _icon = "timestream.png" # Aliases DMS = DatabaseMigrationService DocumentDB = DocumentdbMongodbCompatibility DAX = DynamodbDax DynamodbGSI = DynamodbGlobalSecondaryIndex DB = Database DDB = Dynamodb ElastiCache = Elasticache QLDB = QuantumLedgerDatabaseQldb ================================================ FILE: diagrams/aws/devtools.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Devtools(_AWS): _type = "devtools" _icon_dir = "resources/aws/devtools" class CloudDevelopmentKit(_Devtools): _icon = "cloud-development-kit.png" class Cloud9Resource(_Devtools): _icon = "cloud9-resource.png" class Cloud9(_Devtools): _icon = "cloud9.png" class Cloudshell(_Devtools): _icon = "cloudshell.png" class Codeartifact(_Devtools): _icon = "codeartifact.png" class Codebuild(_Devtools): _icon = "codebuild.png" class Codecommit(_Devtools): _icon = "codecommit.png" class Codedeploy(_Devtools): _icon = "codedeploy.png" class Codepipeline(_Devtools): _icon = "codepipeline.png" class Codestar(_Devtools): _icon = "codestar.png" class CommandLineInterface(_Devtools): _icon = "command-line-interface.png" class DeveloperTools(_Devtools): _icon = "developer-tools.png" class ToolsAndSdks(_Devtools): _icon = "tools-and-sdks.png" class XRay(_Devtools): _icon = "x-ray.png" # Aliases CLI = CommandLineInterface DevTools = DeveloperTools ================================================ FILE: diagrams/aws/enablement.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Enablement(_AWS): _type = "enablement" _icon_dir = "resources/aws/enablement" class CustomerEnablement(_Enablement): _icon = "customer-enablement.png" class Iq(_Enablement): _icon = "iq.png" class ManagedServices(_Enablement): _icon = "managed-services.png" class ProfessionalServices(_Enablement): _icon = "professional-services.png" class Support(_Enablement): _icon = "support.png" # Aliases ================================================ FILE: diagrams/aws/enduser.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Enduser(_AWS): _type = "enduser" _icon_dir = "resources/aws/enduser" class Appstream20(_Enduser): _icon = "appstream-2-0.png" class DesktopAndAppStreaming(_Enduser): _icon = "desktop-and-app-streaming.png" class Workdocs(_Enduser): _icon = "workdocs.png" class Worklink(_Enduser): _icon = "worklink.png" class Workspaces(_Enduser): _icon = "workspaces.png" # Aliases ================================================ FILE: diagrams/aws/engagement.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Engagement(_AWS): _type = "engagement" _icon_dir = "resources/aws/engagement" class Connect(_Engagement): _icon = "connect.png" class CustomerEngagement(_Engagement): _icon = "customer-engagement.png" class Pinpoint(_Engagement): _icon = "pinpoint.png" class SimpleEmailServiceSesEmail(_Engagement): _icon = "simple-email-service-ses-email.png" class SimpleEmailServiceSes(_Engagement): _icon = "simple-email-service-ses.png" # Aliases SES = SimpleEmailServiceSes ================================================ FILE: diagrams/aws/game.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Game(_AWS): _type = "game" _icon_dir = "resources/aws/game" class GameTech(_Game): _icon = "game-tech.png" class Gamelift(_Game): _icon = "gamelift.png" # Aliases ================================================ FILE: diagrams/aws/general.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _General(_AWS): _type = "general" _icon_dir = "resources/aws/general" class Client(_General): _icon = "client.png" class Disk(_General): _icon = "disk.png" class Forums(_General): _icon = "forums.png" class General(_General): _icon = "general.png" class GenericDatabase(_General): _icon = "generic-database.png" class GenericFirewall(_General): _icon = "generic-firewall.png" class GenericOfficeBuilding(_General): _icon = "generic-office-building.png" class GenericSamlToken(_General): _icon = "generic-saml-token.png" class GenericSDK(_General): _icon = "generic-sdk.png" class InternetAlt1(_General): _icon = "internet-alt1.png" class InternetAlt2(_General): _icon = "internet-alt2.png" class InternetGateway(_General): _icon = "internet-gateway.png" class Marketplace(_General): _icon = "marketplace.png" class MobileClient(_General): _icon = "mobile-client.png" class Multimedia(_General): _icon = "multimedia.png" class OfficeBuilding(_General): _icon = "office-building.png" class SamlToken(_General): _icon = "saml-token.png" class SDK(_General): _icon = "sdk.png" class SslPadlock(_General): _icon = "ssl-padlock.png" class TapeStorage(_General): _icon = "tape-storage.png" class Toolkit(_General): _icon = "toolkit.png" class TraditionalServer(_General): _icon = "traditional-server.png" class User(_General): _icon = "user.png" class Users(_General): _icon = "users.png" # Aliases OfficeBuilding = GenericOfficeBuilding ================================================ FILE: diagrams/aws/integration.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Integration(_AWS): _type = "integration" _icon_dir = "resources/aws/integration" class ApplicationIntegration(_Integration): _icon = "application-integration.png" class Appsync(_Integration): _icon = "appsync.png" class ConsoleMobileApplication(_Integration): _icon = "console-mobile-application.png" class EventResource(_Integration): _icon = "event-resource.png" class EventbridgeCustomEventBusResource(_Integration): _icon = "eventbridge-custom-event-bus-resource.png" class EventbridgeDefaultEventBusResource(_Integration): _icon = "eventbridge-default-event-bus-resource.png" class EventbridgeEvent(_Integration): _icon = "eventbridge-event.png" class EventbridgePipes(_Integration): _icon = "eventbridge-pipes.png" class EventbridgeRule(_Integration): _icon = "eventbridge-rule.png" class EventbridgeSaasPartnerEventBusResource(_Integration): _icon = "eventbridge-saas-partner-event-bus-resource.png" class EventbridgeScheduler(_Integration): _icon = "eventbridge-scheduler.png" class EventbridgeSchema(_Integration): _icon = "eventbridge-schema.png" class Eventbridge(_Integration): _icon = "eventbridge.png" class ExpressWorkflows(_Integration): _icon = "express-workflows.png" class MQ(_Integration): _icon = "mq.png" class SimpleNotificationServiceSnsEmailNotification(_Integration): _icon = "simple-notification-service-sns-email-notification.png" class SimpleNotificationServiceSnsHttpNotification(_Integration): _icon = "simple-notification-service-sns-http-notification.png" class SimpleNotificationServiceSnsTopic(_Integration): _icon = "simple-notification-service-sns-topic.png" class SimpleNotificationServiceSns(_Integration): _icon = "simple-notification-service-sns.png" class SimpleQueueServiceSqsMessage(_Integration): _icon = "simple-queue-service-sqs-message.png" class SimpleQueueServiceSqsQueue(_Integration): _icon = "simple-queue-service-sqs-queue.png" class SimpleQueueServiceSqs(_Integration): _icon = "simple-queue-service-sqs.png" class StepFunctions(_Integration): _icon = "step-functions.png" # Aliases SNS = SimpleNotificationServiceSns SQS = SimpleQueueServiceSqs SF = StepFunctions ================================================ FILE: diagrams/aws/iot.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Iot(_AWS): _type = "iot" _icon_dir = "resources/aws/iot" class Freertos(_Iot): _icon = "freertos.png" class InternetOfThings(_Iot): _icon = "internet-of-things.png" class Iot1Click(_Iot): _icon = "iot-1-click.png" class IotAction(_Iot): _icon = "iot-action.png" class IotActuator(_Iot): _icon = "iot-actuator.png" class IotAlexaEcho(_Iot): _icon = "iot-alexa-echo.png" class IotAlexaEnabledDevice(_Iot): _icon = "iot-alexa-enabled-device.png" class IotAlexaSkill(_Iot): _icon = "iot-alexa-skill.png" class IotAlexaVoiceService(_Iot): _icon = "iot-alexa-voice-service.png" class IotAnalyticsChannel(_Iot): _icon = "iot-analytics-channel.png" class IotAnalyticsDataSet(_Iot): _icon = "iot-analytics-data-set.png" class IotAnalyticsDataStore(_Iot): _icon = "iot-analytics-data-store.png" class IotAnalyticsNotebook(_Iot): _icon = "iot-analytics-notebook.png" class IotAnalyticsPipeline(_Iot): _icon = "iot-analytics-pipeline.png" class IotAnalytics(_Iot): _icon = "iot-analytics.png" class IotBank(_Iot): _icon = "iot-bank.png" class IotBicycle(_Iot): _icon = "iot-bicycle.png" class IotButton(_Iot): _icon = "iot-button.png" class IotCamera(_Iot): _icon = "iot-camera.png" class IotCar(_Iot): _icon = "iot-car.png" class IotCart(_Iot): _icon = "iot-cart.png" class IotCertificate(_Iot): _icon = "iot-certificate.png" class IotCoffeePot(_Iot): _icon = "iot-coffee-pot.png" class IotCore(_Iot): _icon = "iot-core.png" class IotDesiredState(_Iot): _icon = "iot-desired-state.png" class IotDeviceDefender(_Iot): _icon = "iot-device-defender.png" class IotDeviceGateway(_Iot): _icon = "iot-device-gateway.png" class IotDeviceManagement(_Iot): _icon = "iot-device-management.png" class IotDoorLock(_Iot): _icon = "iot-door-lock.png" class IotEvents(_Iot): _icon = "iot-events.png" class IotFactory(_Iot): _icon = "iot-factory.png" class IotFireTvStick(_Iot): _icon = "iot-fire-tv-stick.png" class IotFireTv(_Iot): _icon = "iot-fire-tv.png" class IotGeneric(_Iot): _icon = "iot-generic.png" class IotGreengrassConnector(_Iot): _icon = "iot-greengrass-connector.png" class IotGreengrass(_Iot): _icon = "iot-greengrass.png" class IotHardwareBoard(_Iot): _icon = "iot-hardware-board.png" class IotHouse(_Iot): _icon = "iot-house.png" class IotHttp(_Iot): _icon = "iot-http.png" class IotHttp2(_Iot): _icon = "iot-http2.png" class IotJobs(_Iot): _icon = "iot-jobs.png" class IotLambda(_Iot): _icon = "iot-lambda.png" class IotLightbulb(_Iot): _icon = "iot-lightbulb.png" class IotMedicalEmergency(_Iot): _icon = "iot-medical-emergency.png" class IotMqtt(_Iot): _icon = "iot-mqtt.png" class IotOverTheAirUpdate(_Iot): _icon = "iot-over-the-air-update.png" class IotPolicyEmergency(_Iot): _icon = "iot-policy-emergency.png" class IotPolicy(_Iot): _icon = "iot-policy.png" class IotReportedState(_Iot): _icon = "iot-reported-state.png" class IotRule(_Iot): _icon = "iot-rule.png" class IotSensor(_Iot): _icon = "iot-sensor.png" class IotServo(_Iot): _icon = "iot-servo.png" class IotShadow(_Iot): _icon = "iot-shadow.png" class IotSimulator(_Iot): _icon = "iot-simulator.png" class IotSitewise(_Iot): _icon = "iot-sitewise.png" class IotThermostat(_Iot): _icon = "iot-thermostat.png" class IotThingsGraph(_Iot): _icon = "iot-things-graph.png" class IotTopic(_Iot): _icon = "iot-topic.png" class IotTravel(_Iot): _icon = "iot-travel.png" class IotUtility(_Iot): _icon = "iot-utility.png" class IotWindfarm(_Iot): _icon = "iot-windfarm.png" # Aliases FreeRTOS = Freertos IotBoard = IotHardwareBoard ================================================ FILE: diagrams/aws/management.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Management(_AWS): _type = "management" _icon_dir = "resources/aws/management" class AmazonDevopsGuru(_Management): _icon = "amazon-devops-guru.png" class AmazonManagedGrafana(_Management): _icon = "amazon-managed-grafana.png" class AmazonManagedPrometheus(_Management): _icon = "amazon-managed-prometheus.png" class AmazonManagedWorkflowsApacheAirflow(_Management): _icon = "amazon-managed-workflows-apache-airflow.png" class AutoScaling(_Management): _icon = "auto-scaling.png" class Chatbot(_Management): _icon = "chatbot.png" class CloudformationChangeSet(_Management): _icon = "cloudformation-change-set.png" class CloudformationStack(_Management): _icon = "cloudformation-stack.png" class CloudformationTemplate(_Management): _icon = "cloudformation-template.png" class Cloudformation(_Management): _icon = "cloudformation.png" class Cloudtrail(_Management): _icon = "cloudtrail.png" class CloudwatchAlarm(_Management): _icon = "cloudwatch-alarm.png" class CloudwatchEventEventBased(_Management): _icon = "cloudwatch-event-event-based.png" class CloudwatchEventTimeBased(_Management): _icon = "cloudwatch-event-time-based.png" class CloudwatchLogs(_Management): _icon = "cloudwatch-logs.png" class CloudwatchRule(_Management): _icon = "cloudwatch-rule.png" class Cloudwatch(_Management): _icon = "cloudwatch.png" class Codeguru(_Management): _icon = "codeguru.png" class CommandLineInterface(_Management): _icon = "command-line-interface.png" class Config(_Management): _icon = "config.png" class ControlTower(_Management): _icon = "control-tower.png" class LicenseManager(_Management): _icon = "license-manager.png" class ManagedServices(_Management): _icon = "managed-services.png" class ManagementAndGovernance(_Management): _icon = "management-and-governance.png" class ManagementConsole(_Management): _icon = "management-console.png" class OpsworksApps(_Management): _icon = "opsworks-apps.png" class OpsworksDeployments(_Management): _icon = "opsworks-deployments.png" class OpsworksInstances(_Management): _icon = "opsworks-instances.png" class OpsworksLayers(_Management): _icon = "opsworks-layers.png" class OpsworksMonitoring(_Management): _icon = "opsworks-monitoring.png" class OpsworksPermissions(_Management): _icon = "opsworks-permissions.png" class OpsworksResources(_Management): _icon = "opsworks-resources.png" class OpsworksStack(_Management): _icon = "opsworks-stack.png" class Opsworks(_Management): _icon = "opsworks.png" class OrganizationsAccount(_Management): _icon = "organizations-account.png" class OrganizationsOrganizationalUnit(_Management): _icon = "organizations-organizational-unit.png" class Organizations(_Management): _icon = "organizations.png" class PersonalHealthDashboard(_Management): _icon = "personal-health-dashboard.png" class Proton(_Management): _icon = "proton.png" class ServiceCatalog(_Management): _icon = "service-catalog.png" class SystemsManagerAppConfig(_Management): _icon = "systems-manager-app-config.png" class SystemsManagerAutomation(_Management): _icon = "systems-manager-automation.png" class SystemsManagerDocuments(_Management): _icon = "systems-manager-documents.png" class SystemsManagerInventory(_Management): _icon = "systems-manager-inventory.png" class SystemsManagerMaintenanceWindows(_Management): _icon = "systems-manager-maintenance-windows.png" class SystemsManagerOpscenter(_Management): _icon = "systems-manager-opscenter.png" class SystemsManagerParameterStore(_Management): _icon = "systems-manager-parameter-store.png" class SystemsManagerPatchManager(_Management): _icon = "systems-manager-patch-manager.png" class SystemsManagerRunCommand(_Management): _icon = "systems-manager-run-command.png" class SystemsManagerStateManager(_Management): _icon = "systems-manager-state-manager.png" class SystemsManager(_Management): _icon = "systems-manager.png" class TrustedAdvisorChecklistCost(_Management): _icon = "trusted-advisor-checklist-cost.png" class TrustedAdvisorChecklistFaultTolerant(_Management): _icon = "trusted-advisor-checklist-fault-tolerant.png" class TrustedAdvisorChecklistPerformance(_Management): _icon = "trusted-advisor-checklist-performance.png" class TrustedAdvisorChecklistSecurity(_Management): _icon = "trusted-advisor-checklist-security.png" class TrustedAdvisorChecklist(_Management): _icon = "trusted-advisor-checklist.png" class TrustedAdvisor(_Management): _icon = "trusted-advisor.png" class UserNotifications(_Management): _icon = "user-notifications.png" class WellArchitectedTool(_Management): _icon = "well-architected-tool.png" # Aliases SSM = SystemsManager ParameterStore = SystemsManagerParameterStore ================================================ FILE: diagrams/aws/media.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Media(_AWS): _type = "media" _icon_dir = "resources/aws/media" class ElasticTranscoder(_Media): _icon = "elastic-transcoder.png" class ElementalConductor(_Media): _icon = "elemental-conductor.png" class ElementalDelta(_Media): _icon = "elemental-delta.png" class ElementalLive(_Media): _icon = "elemental-live.png" class ElementalMediaconnect(_Media): _icon = "elemental-mediaconnect.png" class ElementalMediaconvert(_Media): _icon = "elemental-mediaconvert.png" class ElementalMedialive(_Media): _icon = "elemental-medialive.png" class ElementalMediapackage(_Media): _icon = "elemental-mediapackage.png" class ElementalMediastore(_Media): _icon = "elemental-mediastore.png" class ElementalMediatailor(_Media): _icon = "elemental-mediatailor.png" class ElementalServer(_Media): _icon = "elemental-server.png" class KinesisVideoStreams(_Media): _icon = "kinesis-video-streams.png" class MediaServices(_Media): _icon = "media-services.png" # Aliases ================================================ FILE: diagrams/aws/migration.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Migration(_AWS): _type = "migration" _icon_dir = "resources/aws/migration" class ApplicationDiscoveryService(_Migration): _icon = "application-discovery-service.png" class CloudendureMigration(_Migration): _icon = "cloudendure-migration.png" class DatabaseMigrationService(_Migration): _icon = "database-migration-service.png" class DatasyncAgent(_Migration): _icon = "datasync-agent.png" class Datasync(_Migration): _icon = "datasync.png" class MigrationAndTransfer(_Migration): _icon = "migration-and-transfer.png" class MigrationHub(_Migration): _icon = "migration-hub.png" class ServerMigrationService(_Migration): _icon = "server-migration-service.png" class SnowballEdge(_Migration): _icon = "snowball-edge.png" class Snowball(_Migration): _icon = "snowball.png" class Snowmobile(_Migration): _icon = "snowmobile.png" class TransferForSftp(_Migration): _icon = "transfer-for-sftp.png" # Aliases ADS = ApplicationDiscoveryService CEM = CloudendureMigration DMS = DatabaseMigrationService MAT = MigrationAndTransfer SMS = ServerMigrationService ================================================ FILE: diagrams/aws/ml.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _ML(_AWS): _type = "ml" _icon_dir = "resources/aws/ml" class ApacheMxnetOnAWS(_ML): _icon = "apache-mxnet-on-aws.png" class AugmentedAi(_ML): _icon = "augmented-ai.png" class Bedrock(_ML): _icon = "bedrock.png" class Comprehend(_ML): _icon = "comprehend.png" class DeepLearningAmis(_ML): _icon = "deep-learning-amis.png" class DeepLearningContainers(_ML): _icon = "deep-learning-containers.png" class Deepcomposer(_ML): _icon = "deepcomposer.png" class Deeplens(_ML): _icon = "deeplens.png" class Deepracer(_ML): _icon = "deepracer.png" class ElasticInference(_ML): _icon = "elastic-inference.png" class Forecast(_ML): _icon = "forecast.png" class FraudDetector(_ML): _icon = "fraud-detector.png" class Kendra(_ML): _icon = "kendra.png" class Lex(_ML): _icon = "lex.png" class MachineLearning(_ML): _icon = "machine-learning.png" class Personalize(_ML): _icon = "personalize.png" class Polly(_ML): _icon = "polly.png" class Q(_ML): _icon = "q.png" class RekognitionImage(_ML): _icon = "rekognition-image.png" class RekognitionVideo(_ML): _icon = "rekognition-video.png" class Rekognition(_ML): _icon = "rekognition.png" class SagemakerGroundTruth(_ML): _icon = "sagemaker-ground-truth.png" class SagemakerModel(_ML): _icon = "sagemaker-model.png" class SagemakerNotebook(_ML): _icon = "sagemaker-notebook.png" class SagemakerTrainingJob(_ML): _icon = "sagemaker-training-job.png" class Sagemaker(_ML): _icon = "sagemaker.png" class TensorflowOnAWS(_ML): _icon = "tensorflow-on-aws.png" class Textract(_ML): _icon = "textract.png" class Transcribe(_ML): _icon = "transcribe.png" class Transform(_ML): _icon = "transform.png" class Translate(_ML): _icon = "translate.png" # Aliases DLC = DeepLearningContainers ================================================ FILE: diagrams/aws/mobile.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Mobile(_AWS): _type = "mobile" _icon_dir = "resources/aws/mobile" class Amplify(_Mobile): _icon = "amplify.png" class APIGatewayEndpoint(_Mobile): _icon = "api-gateway-endpoint.png" class APIGateway(_Mobile): _icon = "api-gateway.png" class Appsync(_Mobile): _icon = "appsync.png" class DeviceFarm(_Mobile): _icon = "device-farm.png" class Mobile(_Mobile): _icon = "mobile.png" class Pinpoint(_Mobile): _icon = "pinpoint.png" # Aliases ================================================ FILE: diagrams/aws/network.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Network(_AWS): _type = "network" _icon_dir = "resources/aws/network" class APIGatewayEndpoint(_Network): _icon = "api-gateway-endpoint.png" class APIGateway(_Network): _icon = "api-gateway.png" class AppMesh(_Network): _icon = "app-mesh.png" class ClientVpn(_Network): _icon = "client-vpn.png" class CloudMap(_Network): _icon = "cloud-map.png" class CloudFrontDownloadDistribution(_Network): _icon = "cloudfront-download-distribution.png" class CloudFrontEdgeLocation(_Network): _icon = "cloudfront-edge-location.png" class CloudFrontStreamingDistribution(_Network): _icon = "cloudfront-streaming-distribution.png" class CloudFront(_Network): _icon = "cloudfront.png" class DirectConnect(_Network): _icon = "direct-connect.png" class ElasticLoadBalancing(_Network): _icon = "elastic-load-balancing.png" class ElbApplicationLoadBalancer(_Network): _icon = "elb-application-load-balancer.png" class ElbClassicLoadBalancer(_Network): _icon = "elb-classic-load-balancer.png" class ElbNetworkLoadBalancer(_Network): _icon = "elb-network-load-balancer.png" class Endpoint(_Network): _icon = "endpoint.png" class GlobalAccelerator(_Network): _icon = "global-accelerator.png" class InternetGateway(_Network): _icon = "internet-gateway.png" class Nacl(_Network): _icon = "nacl.png" class NATGateway(_Network): _icon = "nat-gateway.png" class NetworkFirewall(_Network): _icon = "network-firewall.png" class NetworkingAndContentDelivery(_Network): _icon = "networking-and-content-delivery.png" class PrivateSubnet(_Network): _icon = "private-subnet.png" class Privatelink(_Network): _icon = "privatelink.png" class PublicSubnet(_Network): _icon = "public-subnet.png" class Route53HostedZone(_Network): _icon = "route-53-hosted-zone.png" class Route53(_Network): _icon = "route-53.png" class RouteTable(_Network): _icon = "route-table.png" class SiteToSiteVpn(_Network): _icon = "site-to-site-vpn.png" class TransitGatewayAttachment(_Network): _icon = "transit-gateway-attachment.png" class TransitGateway(_Network): _icon = "transit-gateway.png" class VPCCustomerGateway(_Network): _icon = "vpc-customer-gateway.png" class VPCElasticNetworkAdapter(_Network): _icon = "vpc-elastic-network-adapter.png" class VPCElasticNetworkInterface(_Network): _icon = "vpc-elastic-network-interface.png" class VPCFlowLogs(_Network): _icon = "vpc-flow-logs.png" class VPCPeering(_Network): _icon = "vpc-peering.png" class VPCRouter(_Network): _icon = "vpc-router.png" class VPCTrafficMirroring(_Network): _icon = "vpc-traffic-mirroring.png" class VPC(_Network): _icon = "vpc.png" class VpnConnection(_Network): _icon = "vpn-connection.png" class VpnGateway(_Network): _icon = "vpn-gateway.png" # Aliases CF = CloudFront ELB = ElasticLoadBalancing ALB = ElbApplicationLoadBalancer CLB = ElbClassicLoadBalancer NLB = ElbNetworkLoadBalancer GAX = GlobalAccelerator IGW = InternetGateway TGW = TransitGateway TGWAttach = TransitGatewayAttachment ================================================ FILE: diagrams/aws/quantum.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Quantum(_AWS): _type = "quantum" _icon_dir = "resources/aws/quantum" class Braket(_Quantum): _icon = "braket.png" class QuantumTechnologies(_Quantum): _icon = "quantum-technologies.png" # Aliases ================================================ FILE: diagrams/aws/robotics.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Robotics(_AWS): _type = "robotics" _icon_dir = "resources/aws/robotics" class RobomakerCloudExtensionRos(_Robotics): _icon = "robomaker-cloud-extension-ros.png" class RobomakerDevelopmentEnvironment(_Robotics): _icon = "robomaker-development-environment.png" class RobomakerFleetManagement(_Robotics): _icon = "robomaker-fleet-management.png" class RobomakerSimulator(_Robotics): _icon = "robomaker-simulator.png" class Robomaker(_Robotics): _icon = "robomaker.png" class Robotics(_Robotics): _icon = "robotics.png" # Aliases ================================================ FILE: diagrams/aws/satellite.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Satellite(_AWS): _type = "satellite" _icon_dir = "resources/aws/satellite" class GroundStation(_Satellite): _icon = "ground-station.png" class Satellite(_Satellite): _icon = "satellite.png" # Aliases ================================================ FILE: diagrams/aws/security.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Security(_AWS): _type = "security" _icon_dir = "resources/aws/security" class AdConnector(_Security): _icon = "ad-connector.png" class Artifact(_Security): _icon = "artifact.png" class CertificateAuthority(_Security): _icon = "certificate-authority.png" class CertificateManager(_Security): _icon = "certificate-manager.png" class CloudDirectory(_Security): _icon = "cloud-directory.png" class Cloudhsm(_Security): _icon = "cloudhsm.png" class Cognito(_Security): _icon = "cognito.png" class Detective(_Security): _icon = "detective.png" class DirectoryService(_Security): _icon = "directory-service.png" class FirewallManager(_Security): _icon = "firewall-manager.png" class Guardduty(_Security): _icon = "guardduty.png" class IdentityAndAccessManagementIamAccessAnalyzer(_Security): _icon = "identity-and-access-management-iam-access-analyzer.png" class IdentityAndAccessManagementIamAddOn(_Security): _icon = "identity-and-access-management-iam-add-on.png" class IdentityAndAccessManagementIamAWSStsAlternate(_Security): _icon = "identity-and-access-management-iam-aws-sts-alternate.png" class IdentityAndAccessManagementIamAWSSts(_Security): _icon = "identity-and-access-management-iam-aws-sts.png" class IdentityAndAccessManagementIamDataEncryptionKey(_Security): _icon = "identity-and-access-management-iam-data-encryption-key.png" class IdentityAndAccessManagementIamEncryptedData(_Security): _icon = "identity-and-access-management-iam-encrypted-data.png" class IdentityAndAccessManagementIamLongTermSecurityCredential(_Security): _icon = "identity-and-access-management-iam-long-term-security-credential.png" class IdentityAndAccessManagementIamMfaToken(_Security): _icon = "identity-and-access-management-iam-mfa-token.png" class IdentityAndAccessManagementIamPermissions(_Security): _icon = "identity-and-access-management-iam-permissions.png" class IdentityAndAccessManagementIamRole(_Security): _icon = "identity-and-access-management-iam-role.png" class IdentityAndAccessManagementIamTemporarySecurityCredential(_Security): _icon = "identity-and-access-management-iam-temporary-security-credential.png" class IdentityAndAccessManagementIam(_Security): _icon = "identity-and-access-management-iam.png" class InspectorAgent(_Security): _icon = "inspector-agent.png" class Inspector(_Security): _icon = "inspector.png" class KeyManagementService(_Security): _icon = "key-management-service.png" class Macie(_Security): _icon = "macie.png" class ManagedMicrosoftAd(_Security): _icon = "managed-microsoft-ad.png" class ResourceAccessManager(_Security): _icon = "resource-access-manager.png" class SecretsManager(_Security): _icon = "secrets-manager.png" class SecurityHubFinding(_Security): _icon = "security-hub-finding.png" class SecurityHub(_Security): _icon = "security-hub.png" class SecurityIdentityAndCompliance(_Security): _icon = "security-identity-and-compliance.png" class SecurityLake(_Security): _icon = "security-lake.png" class ShieldAdvanced(_Security): _icon = "shield-advanced.png" class Shield(_Security): _icon = "shield.png" class SimpleAd(_Security): _icon = "simple-ad.png" class SingleSignOn(_Security): _icon = "single-sign-on.png" class WAFFilteringRule(_Security): _icon = "waf-filtering-rule.png" class WAF(_Security): _icon = "waf.png" # Aliases ACM = CertificateManager CloudHSM = Cloudhsm DS = DirectoryService FMS = FirewallManager IAMAccessAnalyzer = IdentityAndAccessManagementIamAccessAnalyzer IAMAWSSts = IdentityAndAccessManagementIamAWSSts IAMPermissions = IdentityAndAccessManagementIamPermissions IAMRole = IdentityAndAccessManagementIamRole IAM = IdentityAndAccessManagementIam KMS = KeyManagementService RAM = ResourceAccessManager ================================================ FILE: diagrams/aws/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _AWS class _Storage(_AWS): _type = "storage" _icon_dir = "resources/aws/storage" class Backup(_Storage): _icon = "backup.png" class CloudendureDisasterRecovery(_Storage): _icon = "cloudendure-disaster-recovery.png" class EFSInfrequentaccessPrimaryBg(_Storage): _icon = "efs-infrequentaccess-primary-bg.png" class EFSStandardPrimaryBg(_Storage): _icon = "efs-standard-primary-bg.png" class ElasticBlockStoreEBSSnapshot(_Storage): _icon = "elastic-block-store-ebs-snapshot.png" class ElasticBlockStoreEBSVolume(_Storage): _icon = "elastic-block-store-ebs-volume.png" class ElasticBlockStoreEBS(_Storage): _icon = "elastic-block-store-ebs.png" class ElasticFileSystemEFSFileSystem(_Storage): _icon = "elastic-file-system-efs-file-system.png" class ElasticFileSystemEFS(_Storage): _icon = "elastic-file-system-efs.png" class FsxForLustre(_Storage): _icon = "fsx-for-lustre.png" class FsxForWindowsFileServer(_Storage): _icon = "fsx-for-windows-file-server.png" class Fsx(_Storage): _icon = "fsx.png" class MultipleVolumesResource(_Storage): _icon = "multiple-volumes-resource.png" class S3AccessPoints(_Storage): _icon = "s3-access-points.png" class S3GlacierArchive(_Storage): _icon = "s3-glacier-archive.png" class S3GlacierVault(_Storage): _icon = "s3-glacier-vault.png" class S3Glacier(_Storage): _icon = "s3-glacier.png" class S3ObjectLambdaAccessPoints(_Storage): _icon = "s3-object-lambda-access-points.png" class SimpleStorageServiceS3BucketWithObjects(_Storage): _icon = "simple-storage-service-s3-bucket-with-objects.png" class SimpleStorageServiceS3Bucket(_Storage): _icon = "simple-storage-service-s3-bucket.png" class SimpleStorageServiceS3Object(_Storage): _icon = "simple-storage-service-s3-object.png" class SimpleStorageServiceS3(_Storage): _icon = "simple-storage-service-s3.png" class SnowFamilySnowballImportExport(_Storage): _icon = "snow-family-snowball-import-export.png" class SnowballEdge(_Storage): _icon = "snowball-edge.png" class Snowball(_Storage): _icon = "snowball.png" class Snowmobile(_Storage): _icon = "snowmobile.png" class StorageGatewayCachedVolume(_Storage): _icon = "storage-gateway-cached-volume.png" class StorageGatewayNonCachedVolume(_Storage): _icon = "storage-gateway-non-cached-volume.png" class StorageGatewayVirtualTapeLibrary(_Storage): _icon = "storage-gateway-virtual-tape-library.png" class StorageGateway(_Storage): _icon = "storage-gateway.png" class Storage(_Storage): _icon = "storage.png" # Aliases CDR = CloudendureDisasterRecovery EBS = ElasticBlockStoreEBS EFS = ElasticFileSystemEFS FSx = Fsx S3 = SimpleStorageServiceS3 ================================================ FILE: diagrams/azure/__init__.py ================================================ """ Azure provides a set of services for Microsoft Azure provider. """ from diagrams import Node class _Azure(Node): _provider = "azure" _icon_dir = "resources/azure" fontcolor = "#ffffff" class Azure(_Azure): _icon = "azure.png" ================================================ FILE: diagrams/azure/aimachinelearning.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Aimachinelearning(_Azure): _type = "aimachinelearning" _icon_dir = "resources/azure/aimachinelearning" class AIStudio(_Aimachinelearning): _icon = "ai-studio.png" class AnomalyDetector(_Aimachinelearning): _icon = "anomaly-detector.png" class AzureAppliedAIServices(_Aimachinelearning): _icon = "azure-applied-ai-services.png" class AzureExperimentationStudio(_Aimachinelearning): _icon = "azure-experimentation-studio.png" class AzureObjectUnderstanding(_Aimachinelearning): _icon = "azure-object-understanding.png" class AzureOpenai(_Aimachinelearning): _icon = "azure-openai.png" class BatchAI(_Aimachinelearning): _icon = "batch-ai.png" class Bonsai(_Aimachinelearning): _icon = "bonsai.png" class BotServices(_Aimachinelearning): _icon = "bot-services.png" class CognitiveSearch(_Aimachinelearning): _icon = "cognitive-search.png" class CognitiveServicesDecisions(_Aimachinelearning): _icon = "cognitive-services-decisions.png" class CognitiveServices(_Aimachinelearning): _icon = "cognitive-services.png" class ComputerVision(_Aimachinelearning): _icon = "computer-vision.png" class ContentModerators(_Aimachinelearning): _icon = "content-moderators.png" class CustomVision(_Aimachinelearning): _icon = "custom-vision.png" class FaceApis(_Aimachinelearning): _icon = "face-apis.png" class FormRecognizers(_Aimachinelearning): _icon = "form-recognizers.png" class GenomicsAccounts(_Aimachinelearning): _icon = "genomics-accounts.png" class Genomics(_Aimachinelearning): _icon = "genomics.png" class ImmersiveReaders(_Aimachinelearning): _icon = "immersive-readers.png" class LanguageUnderstanding(_Aimachinelearning): _icon = "language-understanding.png" class Language(_Aimachinelearning): _icon = "language.png" class MachineLearningStudioClassicWebServices(_Aimachinelearning): _icon = "machine-learning-studio-classic-web-services.png" class MachineLearningStudioWebServicePlans(_Aimachinelearning): _icon = "machine-learning-studio-web-service-plans.png" class MachineLearningStudioWorkspaces(_Aimachinelearning): _icon = "machine-learning-studio-workspaces.png" class MachineLearning(_Aimachinelearning): _icon = "machine-learning.png" class MetricsAdvisor(_Aimachinelearning): _icon = "metrics-advisor.png" class Personalizers(_Aimachinelearning): _icon = "personalizers.png" class QnaMakers(_Aimachinelearning): _icon = "qna-makers.png" class ServerlessSearch(_Aimachinelearning): _icon = "serverless-search.png" class SpeechServices(_Aimachinelearning): _icon = "speech-services.png" class TranslatorText(_Aimachinelearning): _icon = "translator-text.png" # Aliases ================================================ FILE: diagrams/azure/analytics.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Analytics(_Azure): _type = "analytics" _icon_dir = "resources/azure/analytics" class AnalysisServices(_Analytics): _icon = "analysis-services.png" class AzureDataExplorerClusters(_Analytics): _icon = "azure-data-explorer-clusters.png" class AzureDatabricks(_Analytics): _icon = "azure-databricks.png" class AzureSynapseAnalytics(_Analytics): _icon = "azure-synapse-analytics.png" class AzureWorkbooks(_Analytics): _icon = "azure-workbooks.png" class DataExplorerClusters(_Analytics): _icon = "data-explorer-clusters.png" class DataFactories(_Analytics): _icon = "data-factories.png" class DataLakeAnalytics(_Analytics): _icon = "data-lake-analytics.png" class DataLakeStoreGen1(_Analytics): _icon = "data-lake-store-gen1.png" class Databricks(_Analytics): _icon = "databricks.png" class EndpointAnalytics(_Analytics): _icon = "endpoint-analytics.png" class EventHubClusters(_Analytics): _icon = "event-hub-clusters.png" class EventHubs(_Analytics): _icon = "event-hubs.png" class HDInsightClusters(_Analytics): _icon = "hd-insight-clusters.png" class LogAnalyticsWorkspaces(_Analytics): _icon = "log-analytics-workspaces.png" class PowerBiEmbedded(_Analytics): _icon = "power-bi-embedded.png" class PowerPlatform(_Analytics): _icon = "power-platform.png" class PrivateLinkServices(_Analytics): _icon = "private-link-services.png" class StreamAnalyticsJobs(_Analytics): _icon = "stream-analytics-jobs.png" class SynapseAnalytics(_Analytics): _icon = "synapse-analytics.png" # Aliases ================================================ FILE: diagrams/azure/appservices.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Appservices(_Azure): _type = "appservices" _icon_dir = "resources/azure/appservices" class AppServiceCertificates(_Appservices): _icon = "app-service-certificates.png" class AppServiceDomains(_Appservices): _icon = "app-service-domains.png" class AppServiceEnvironments(_Appservices): _icon = "app-service-environments.png" class AppServicePlans(_Appservices): _icon = "app-service-plans.png" class AppServices(_Appservices): _icon = "app-services.png" class CDNProfiles(_Appservices): _icon = "cdn-profiles.png" class CognitiveSearch(_Appservices): _icon = "cognitive-search.png" class NotificationHubs(_Appservices): _icon = "notification-hubs.png" # Aliases ================================================ FILE: diagrams/azure/azureecosystem.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Azureecosystem(_Azure): _type = "azureecosystem" _icon_dir = "resources/azure/azureecosystem" class Applens(_Azureecosystem): _icon = "applens.png" class AzureHybridCenter(_Azureecosystem): _icon = "azure-hybrid-center.png" class CollaborativeService(_Azureecosystem): _icon = "collaborative-service.png" # Aliases ================================================ FILE: diagrams/azure/azurestack.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Azurestack(_Azure): _type = "azurestack" _icon_dir = "resources/azure/azurestack" class Capacity(_Azurestack): _icon = "capacity.png" class InfrastructureBackup(_Azurestack): _icon = "infrastructure-backup.png" class MultiTenancy(_Azurestack): _icon = "multi-tenancy.png" class Offers(_Azurestack): _icon = "offers.png" class Plans(_Azurestack): _icon = "plans.png" class Updates(_Azurestack): _icon = "updates.png" class UserSubscriptions(_Azurestack): _icon = "user-subscriptions.png" # Aliases ================================================ FILE: diagrams/azure/blockchain.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Blockchain(_Azure): _type = "blockchain" _icon_dir = "resources/azure/blockchain" class AbsMember(_Blockchain): _icon = "abs-member.png" class AzureBlockchainService(_Blockchain): _icon = "azure-blockchain-service.png" class AzureTokenService(_Blockchain): _icon = "azure-token-service.png" class BlockchainApplications(_Blockchain): _icon = "blockchain-applications.png" class Consortium(_Blockchain): _icon = "consortium.png" class OutboundConnection(_Blockchain): _icon = "outbound-connection.png" # Aliases ================================================ FILE: diagrams/azure/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Compute(_Azure): _type = "compute" _icon_dir = "resources/azure/compute" class AppServices(_Compute): _icon = "app-services.png" class ApplicationGroup(_Compute): _icon = "application-group.png" class AutomanagedVM(_Compute): _icon = "automanaged-vm.png" class AvailabilitySets(_Compute): _icon = "availability-sets.png" class AzureComputeGalleries(_Compute): _icon = "azure-compute-galleries.png" class AzureSpringApps(_Compute): _icon = "azure-spring-apps.png" class BatchAccounts(_Compute): _icon = "batch-accounts.png" class CitrixVirtualDesktopsEssentials(_Compute): _icon = "citrix-virtual-desktops-essentials.png" class CloudServicesClassic(_Compute): _icon = "cloud-services-classic.png" class CloudServices(_Compute): _icon = "cloud-services.png" class CloudsimpleVirtualMachines(_Compute): _icon = "cloudsimple-virtual-machines.png" class ContainerApps(_Compute): _icon = "container-apps.png" class ContainerInstances(_Compute): _icon = "container-instances.png" class ContainerRegistries(_Compute): _icon = "container-registries.png" class ContainerServicesDeprecated(_Compute): _icon = "container-services-deprecated.png" class DiskEncryptionSets(_Compute): _icon = "disk-encryption-sets.png" class DiskSnapshots(_Compute): _icon = "disk-snapshots.png" class DisksClassic(_Compute): _icon = "disks-classic.png" class DisksSnapshots(_Compute): _icon = "disks-snapshots.png" class Disks(_Compute): _icon = "disks.png" class FunctionApps(_Compute): _icon = "function-apps.png" class HostGroups(_Compute): _icon = "host-groups.png" class HostPools(_Compute): _icon = "host-pools.png" class Hosts(_Compute): _icon = "hosts.png" class ImageDefinitions(_Compute): _icon = "image-definitions.png" class ImageTemplates(_Compute): _icon = "image-templates.png" class ImageVersions(_Compute): _icon = "image-versions.png" class Images(_Compute): _icon = "images.png" class KubernetesServices(_Compute): _icon = "kubernetes-services.png" class MaintenanceConfiguration(_Compute): _icon = "maintenance-configuration.png" class ManagedServiceFabric(_Compute): _icon = "managed-service-fabric.png" class MeshApplications(_Compute): _icon = "mesh-applications.png" class MetricsAdvisor(_Compute): _icon = "metrics-advisor.png" class OsImagesClassic(_Compute): _icon = "os-images-classic.png" class OsImages(_Compute): _icon = "os-images.png" class RestorePointsCollections(_Compute): _icon = "restore-points-collections.png" class RestorePoints(_Compute): _icon = "restore-points.png" class SAPHANAOnAzure(_Compute): _icon = "sap-hana-on-azure.png" class ServiceFabricClusters(_Compute): _icon = "service-fabric-clusters.png" class SharedImageGalleries(_Compute): _icon = "shared-image-galleries.png" class SpringCloud(_Compute): _icon = "spring-cloud.png" class VirtualMachine(_Compute): _icon = "virtual-machine.png" class VirtualMachinesClassic(_Compute): _icon = "virtual-machines-classic.png" class VMClassic(_Compute): _icon = "vm-classic.png" class VMImagesClassic(_Compute): _icon = "vm-images-classic.png" class VMImages(_Compute): _icon = "vm-images.png" class VMLinux(_Compute): _icon = "vm-linux.png" class VMScaleSet(_Compute): _icon = "vm-scale-set.png" class VMScaleSets(_Compute): _icon = "vm-scale-sets.png" class VMWindows(_Compute): _icon = "vm-windows.png" class VM(_Compute): _icon = "vm.png" class Workspaces2(_Compute): _icon = "workspaces-2.png" class Workspaces(_Compute): _icon = "workspaces.png" # Aliases ACR = ContainerRegistries AKS = KubernetesServices VMSS = VMScaleSet ================================================ FILE: diagrams/azure/containers.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Containers(_Azure): _type = "containers" _icon_dir = "resources/azure/containers" class AppServices(_Containers): _icon = "app-services.png" class AzureRedHatOpenshift(_Containers): _icon = "azure-red-hat-openshift.png" class BatchAccounts(_Containers): _icon = "batch-accounts.png" class ContainerInstances(_Containers): _icon = "container-instances.png" class ContainerRegistries(_Containers): _icon = "container-registries.png" class KubernetesServices(_Containers): _icon = "kubernetes-services.png" class ServiceFabricClusters(_Containers): _icon = "service-fabric-clusters.png" # Aliases ================================================ FILE: diagrams/azure/database.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Database(_Azure): _type = "database" _icon_dir = "resources/azure/database" class BlobStorage(_Database): _icon = "blob-storage.png" class CacheForRedis(_Database): _icon = "cache-for-redis.png" class CosmosDb(_Database): _icon = "cosmos-db.png" class DataExplorerClusters(_Database): _icon = "data-explorer-clusters.png" class DataFactory(_Database): _icon = "data-factory.png" class DataLake(_Database): _icon = "data-lake.png" class DatabaseForMariadbServers(_Database): _icon = "database-for-mariadb-servers.png" class DatabaseForMysqlServers(_Database): _icon = "database-for-mysql-servers.png" class DatabaseForPostgresqlServers(_Database): _icon = "database-for-postgresql-servers.png" class ElasticDatabasePools(_Database): _icon = "elastic-database-pools.png" class ElasticJobAgents(_Database): _icon = "elastic-job-agents.png" class InstancePools(_Database): _icon = "instance-pools.png" class ManagedDatabases(_Database): _icon = "managed-databases.png" class SQLDatabases(_Database): _icon = "sql-databases.png" class SQLDatawarehouse(_Database): _icon = "sql-datawarehouse.png" class SQLManagedInstances(_Database): _icon = "sql-managed-instances.png" class SQLServerStretchDatabases(_Database): _icon = "sql-server-stretch-databases.png" class SQLServers(_Database): _icon = "sql-servers.png" class SQLVM(_Database): _icon = "sql-vm.png" class SQL(_Database): _icon = "sql.png" class SsisLiftAndShiftIr(_Database): _icon = "ssis-lift-and-shift-ir.png" class SynapseAnalytics(_Database): _icon = "synapse-analytics.png" class VirtualClusters(_Database): _icon = "virtual-clusters.png" class VirtualDatacenter(_Database): _icon = "virtual-datacenter.png" # Aliases ================================================ FILE: diagrams/azure/databases.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Databases(_Azure): _type = "databases" _icon_dir = "resources/azure/databases" class AzureCosmosDb(_Databases): _icon = "azure-cosmos-db.png" class AzureDataExplorerClusters(_Databases): _icon = "azure-data-explorer-clusters.png" class AzureDatabaseMariadbServer(_Databases): _icon = "azure-database-mariadb-server.png" class AzureDatabaseMigrationServices(_Databases): _icon = "azure-database-migration-services.png" class AzureDatabaseMysqlServer(_Databases): _icon = "azure-database-mysql-server.png" class AzureDatabasePostgresqlServerGroup(_Databases): _icon = "azure-database-postgresql-server-group.png" class AzureDatabasePostgresqlServer(_Databases): _icon = "azure-database-postgresql-server.png" class AzurePurviewAccounts(_Databases): _icon = "azure-purview-accounts.png" class AzureSQLEdge(_Databases): _icon = "azure-sql-edge.png" class AzureSQLServerStretchDatabases(_Databases): _icon = "azure-sql-server-stretch-databases.png" class AzureSQLVM(_Databases): _icon = "azure-sql-vm.png" class AzureSQL(_Databases): _icon = "azure-sql.png" class AzureSynapseAnalytics(_Databases): _icon = "azure-synapse-analytics.png" class CacheRedis(_Databases): _icon = "cache-redis.png" class DataFactories(_Databases): _icon = "data-factories.png" class ElasticJobAgents(_Databases): _icon = "elastic-job-agents.png" class InstancePools(_Databases): _icon = "instance-pools.png" class ManagedDatabase(_Databases): _icon = "managed-database.png" class OracleDatabase(_Databases): _icon = "oracle-database.png" class SQLDataWarehouses(_Databases): _icon = "sql-data-warehouses.png" class SQLDatabase(_Databases): _icon = "sql-database.png" class SQLElasticPools(_Databases): _icon = "sql-elastic-pools.png" class SQLManagedInstance(_Databases): _icon = "sql-managed-instance.png" class SQLServerRegistries(_Databases): _icon = "sql-server-registries.png" class SQLServer(_Databases): _icon = "sql-server.png" class SsisLiftAndShiftIr(_Databases): _icon = "ssis-lift-and-shift-ir.png" class VirtualClusters(_Databases): _icon = "virtual-clusters.png" # Aliases ================================================ FILE: diagrams/azure/devops.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Devops(_Azure): _type = "devops" _icon_dir = "resources/azure/devops" class APIConnections(_Devops): _icon = "api-connections.png" class APIManagementServices(_Devops): _icon = "api-management-services.png" class ApplicationInsights(_Devops): _icon = "application-insights.png" class Artifacts(_Devops): _icon = "artifacts.png" class AzureDevops(_Devops): _icon = "azure-devops.png" class Boards(_Devops): _icon = "boards.png" class ChangeAnalysis(_Devops): _icon = "change-analysis.png" class Cloudtest(_Devops): _icon = "cloudtest.png" class CodeOptimization(_Devops): _icon = "code-optimization.png" class DevopsStarter(_Devops): _icon = "devops-starter.png" class Devops(_Devops): _icon = "devops.png" class DevtestLabs(_Devops): _icon = "devtest-labs.png" class LabAccounts(_Devops): _icon = "lab-accounts.png" class LabServices(_Devops): _icon = "lab-services.png" class LoadTesting(_Devops): _icon = "load-testing.png" class Pipelines(_Devops): _icon = "pipelines.png" class Repos(_Devops): _icon = "repos.png" class TestPlans(_Devops): _icon = "test-plans.png" # Aliases ================================================ FILE: diagrams/azure/general.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _General(_Azure): _type = "general" _icon_dir = "resources/azure/general" class AllResources(_General): _icon = "all-resources.png" class Allresources(_General): _icon = "allresources.png" class Azurehome(_General): _icon = "azurehome.png" class Backlog(_General): _icon = "backlog.png" class BizTalk(_General): _icon = "biz-talk.png" class BlobBlock(_General): _icon = "blob-block.png" class BlobPage(_General): _icon = "blob-page.png" class Branch(_General): _icon = "branch.png" class Browser(_General): _icon = "browser.png" class Bug(_General): _icon = "bug.png" class Builds(_General): _icon = "builds.png" class Cache(_General): _icon = "cache.png" class Code(_General): _icon = "code.png" class Commit(_General): _icon = "commit.png" class ControlsHorizontal(_General): _icon = "controls-horizontal.png" class Controls(_General): _icon = "controls.png" class CostAlerts(_General): _icon = "cost-alerts.png" class CostAnalysis(_General): _icon = "cost-analysis.png" class CostBudgets(_General): _icon = "cost-budgets.png" class CostManagementAndBilling(_General): _icon = "cost-management-and-billing.png" class CostManagement(_General): _icon = "cost-management.png" class Counter(_General): _icon = "counter.png" class Cubes(_General): _icon = "cubes.png" class Dashboard(_General): _icon = "dashboard.png" class DevConsole(_General): _icon = "dev-console.png" class Developertools(_General): _icon = "developertools.png" class Download(_General): _icon = "download.png" class Error(_General): _icon = "error.png" class Extensions(_General): _icon = "extensions.png" class FeaturePreviews(_General): _icon = "feature-previews.png" class File(_General): _icon = "file.png" class Files(_General): _icon = "files.png" class FolderBlank(_General): _icon = "folder-blank.png" class FolderWebsite(_General): _icon = "folder-website.png" class FreeServices(_General): _icon = "free-services.png" class Ftp(_General): _icon = "ftp.png" class Gear(_General): _icon = "gear.png" class GlobeError(_General): _icon = "globe-error.png" class GlobeSuccess(_General): _icon = "globe-success.png" class GlobeWarning(_General): _icon = "globe-warning.png" class Guide(_General): _icon = "guide.png" class Heart(_General): _icon = "heart.png" class HelpAndSupport(_General): _icon = "help-and-support.png" class Helpsupport(_General): _icon = "helpsupport.png" class Image(_General): _icon = "image.png" class Information(_General): _icon = "information.png" class InputOutput(_General): _icon = "input-output.png" class JourneyHub(_General): _icon = "journey-hub.png" class LaunchPortal(_General): _icon = "launch-portal.png" class Learn(_General): _icon = "learn.png" class LoadTest(_General): _icon = "load-test.png" class Location(_General): _icon = "location.png" class LogStreaming(_General): _icon = "log-streaming.png" class ManagementGroups(_General): _icon = "management-groups.png" class ManagementPortal(_General): _icon = "management-portal.png" class Managementgroups(_General): _icon = "managementgroups.png" class MarketplaceManagement(_General): _icon = "marketplace-management.png" class Marketplace(_General): _icon = "marketplace.png" class MediaFile(_General): _icon = "media-file.png" class Media(_General): _icon = "media.png" class MobileEngagement(_General): _icon = "mobile-engagement.png" class Mobile(_General): _icon = "mobile.png" class Module(_General): _icon = "module.png" class PowerUp(_General): _icon = "power-up.png" class Power(_General): _icon = "power.png" class Powershell(_General): _icon = "powershell.png" class PreviewFeatures(_General): _icon = "preview-features.png" class ProcessExplorer(_General): _icon = "process-explorer.png" class ProductionReadyDatabase(_General): _icon = "production-ready-database.png" class QuickstartCenter(_General): _icon = "quickstart-center.png" class Quickstartcenter(_General): _icon = "quickstartcenter.png" class Recent(_General): _icon = "recent.png" class RegionManagement(_General): _icon = "region-management.png" class Reservations(_General): _icon = "reservations.png" class ResourceExplorer(_General): _icon = "resource-explorer.png" class ResourceGroupList(_General): _icon = "resource-group-list.png" class ResourceGroups(_General): _icon = "resource-groups.png" class ResourceLinked(_General): _icon = "resource-linked.png" class Resource(_General): _icon = "resource.png" class Resourcegroups(_General): _icon = "resourcegroups.png" class Scheduler(_General): _icon = "scheduler.png" class SearchGrid(_General): _icon = "search-grid.png" class Search(_General): _icon = "search.png" class ServerFarm(_General): _icon = "server-farm.png" class ServiceHealth(_General): _icon = "service-health.png" class Servicehealth(_General): _icon = "servicehealth.png" class Shareddashboard(_General): _icon = "shareddashboard.png" class Ssd(_General): _icon = "ssd.png" class StorageAzureFiles(_General): _icon = "storage-azure-files.png" class StorageContainer(_General): _icon = "storage-container.png" class StorageQueue(_General): _icon = "storage-queue.png" class Subscriptions(_General): _icon = "subscriptions.png" class Support(_General): _icon = "support.png" class Supportrequests(_General): _icon = "supportrequests.png" class Table(_General): _icon = "table.png" class Tag(_General): _icon = "tag.png" class Tags(_General): _icon = "tags.png" class Templates(_General): _icon = "templates.png" class TfsVcRepository(_General): _icon = "tfs-vc-repository.png" class Toolbox(_General): _icon = "toolbox.png" class Troubleshoot(_General): _icon = "troubleshoot.png" class Twousericon(_General): _icon = "twousericon.png" class Userhealthicon(_General): _icon = "userhealthicon.png" class Usericon(_General): _icon = "usericon.png" class Userprivacy(_General): _icon = "userprivacy.png" class Userresource(_General): _icon = "userresource.png" class Versions(_General): _icon = "versions.png" class WebSlots(_General): _icon = "web-slots.png" class WebTest(_General): _icon = "web-test.png" class WebsitePower(_General): _icon = "website-power.png" class WebsiteStaging(_General): _icon = "website-staging.png" class Whatsnew(_General): _icon = "whatsnew.png" class Workbooks(_General): _icon = "workbooks.png" class Workflow(_General): _icon = "workflow.png" # Aliases ================================================ FILE: diagrams/azure/hybridmulticloud.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Hybridmulticloud(_Azure): _type = "hybridmulticloud" _icon_dir = "resources/azure/hybridmulticloud" class AzureOperator5GCore(_Hybridmulticloud): _icon = "azure-operator-5g-core.png" class AzureOperatorInsights(_Hybridmulticloud): _icon = "azure-operator-insights.png" class AzureOperatorNexus(_Hybridmulticloud): _icon = "azure-operator-nexus.png" class AzureOperatorServiceManager(_Hybridmulticloud): _icon = "azure-operator-service-manager.png" class AzureProgrammableConnectivity(_Hybridmulticloud): _icon = "azure-programmable-connectivity.png" # Aliases ================================================ FILE: diagrams/azure/identity.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Identity(_Azure): _type = "identity" _icon_dir = "resources/azure/identity" class AadLicenses(_Identity): _icon = "aad-licenses.png" class AccessReview(_Identity): _icon = "access-review.png" class ActiveDirectoryConnectHealth(_Identity): _icon = "active-directory-connect-health.png" class ActiveDirectory(_Identity): _icon = "active-directory.png" class ADB2C(_Identity): _icon = "ad-b2c.png" class ADDomainServices(_Identity): _icon = "ad-domain-services.png" class ADIdentityProtection(_Identity): _icon = "ad-identity-protection.png" class ADPrivilegedIdentityManagement(_Identity): _icon = "ad-privileged-identity-management.png" class AdministrativeUnits(_Identity): _icon = "administrative-units.png" class APIProxy(_Identity): _icon = "api-proxy.png" class AppRegistrations(_Identity): _icon = "app-registrations.png" class AzureActiveDirectory(_Identity): _icon = "azure-active-directory.png" class AzureADB2C(_Identity): _icon = "azure-ad-b2c.png" class AzureADDomainServices(_Identity): _icon = "azure-ad-domain-services.png" class AzureADIdentityProtection(_Identity): _icon = "azure-ad-identity-protection.png" class AzureADPrivilegeIdentityManagement(_Identity): _icon = "azure-ad-privilege-identity-management.png" class AzureADPrivlegedIdentityManagement(_Identity): _icon = "azure-ad-privleged-identity-management.png" class AzureADRolesAndAdministrators(_Identity): _icon = "azure-ad-roles-and-administrators.png" class AzureInformationProtection(_Identity): _icon = "azure-information-protection.png" class ConditionalAccess(_Identity): _icon = "conditional-access.png" class CustomAzureADRoles(_Identity): _icon = "custom-azure-ad-roles.png" class EnterpriseApplications(_Identity): _icon = "enterprise-applications.png" class EntraConnect(_Identity): _icon = "entra-connect.png" class EntraDomainServices(_Identity): _icon = "entra-domain-services.png" class EntraIDProtection(_Identity): _icon = "entra-id-protection.png" class EntraManagedIdentities(_Identity): _icon = "entra-managed-identities.png" class EntraPrivlegedIdentityManagement(_Identity): _icon = "entra-privleged-identity-management.png" class EntraVerifiedID(_Identity): _icon = "entra-verified-id.png" class ExternalIdentities(_Identity): _icon = "external-identities.png" class GlobalSecureAccess(_Identity): _icon = "global-secure-access.png" class Groups(_Identity): _icon = "groups.png" class IdentityGovernance(_Identity): _icon = "identity-governance.png" class InformationProtection(_Identity): _icon = "information-protection.png" class InternetAccess(_Identity): _icon = "internet-access.png" class ManagedIdentities(_Identity): _icon = "managed-identities.png" class PrivateAccess(_Identity): _icon = "private-access.png" class Security(_Identity): _icon = "security.png" class TenantProperties(_Identity): _icon = "tenant-properties.png" class UserSettings(_Identity): _icon = "user-settings.png" class Users(_Identity): _icon = "users.png" class VerifiableCredentials(_Identity): _icon = "verifiable-credentials.png" # Aliases ================================================ FILE: diagrams/azure/integration.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Integration(_Azure): _type = "integration" _icon_dir = "resources/azure/integration" class APIConnections(_Integration): _icon = "api-connections.png" class APIForFhir(_Integration): _icon = "api-for-fhir.png" class APIManagementServices(_Integration): _icon = "api-management-services.png" class APIManagement(_Integration): _icon = "api-management.png" class AppConfiguration(_Integration): _icon = "app-configuration.png" class AzureAPIForFhir(_Integration): _icon = "azure-api-for-fhir.png" class AzureDataCatalog(_Integration): _icon = "azure-data-catalog.png" class AzureDataboxGateway(_Integration): _icon = "azure-databox-gateway.png" class AzureServiceBus(_Integration): _icon = "azure-service-bus.png" class AzureSQLServerStretchDatabases(_Integration): _icon = "azure-sql-server-stretch-databases.png" class AzureStackEdge(_Integration): _icon = "azure-stack-edge.png" class DataCatalog(_Integration): _icon = "data-catalog.png" class DataFactories(_Integration): _icon = "data-factories.png" class EventGridDomains(_Integration): _icon = "event-grid-domains.png" class EventGridSubscriptions(_Integration): _icon = "event-grid-subscriptions.png" class EventGridTopics(_Integration): _icon = "event-grid-topics.png" class IntegrationAccounts(_Integration): _icon = "integration-accounts.png" class IntegrationEnvironments(_Integration): _icon = "integration-environments.png" class IntegrationServiceEnvironments(_Integration): _icon = "integration-service-environments.png" class LogicAppsCustomConnector(_Integration): _icon = "logic-apps-custom-connector.png" class LogicApps(_Integration): _icon = "logic-apps.png" class PartnerNamespace(_Integration): _icon = "partner-namespace.png" class PartnerRegistration(_Integration): _icon = "partner-registration.png" class PartnerTopic(_Integration): _icon = "partner-topic.png" class PowerPlatform(_Integration): _icon = "power-platform.png" class Relays(_Integration): _icon = "relays.png" class SendgridAccounts(_Integration): _icon = "sendgrid-accounts.png" class ServiceBusRelays(_Integration): _icon = "service-bus-relays.png" class ServiceBus(_Integration): _icon = "service-bus.png" class ServiceCatalogManagedApplicationDefinitions(_Integration): _icon = "service-catalog-managed-application-definitions.png" class SoftwareAsAService(_Integration): _icon = "software-as-a-service.png" class SQLDataWarehouses(_Integration): _icon = "sql-data-warehouses.png" class StorsimpleDeviceManagers(_Integration): _icon = "storsimple-device-managers.png" class SystemTopic(_Integration): _icon = "system-topic.png" # Aliases ================================================ FILE: diagrams/azure/intune.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Intune(_Azure): _type = "intune" _icon_dir = "resources/azure/intune" class AzureADRolesAndAdministrators(_Intune): _icon = "azure-ad-roles-and-administrators.png" class ClientApps(_Intune): _icon = "client-apps.png" class DeviceCompliance(_Intune): _icon = "device-compliance.png" class DeviceConfiguration(_Intune): _icon = "device-configuration.png" class DeviceEnrollment(_Intune): _icon = "device-enrollment.png" class DeviceSecurityApple(_Intune): _icon = "device-security-apple.png" class DeviceSecurityGoogle(_Intune): _icon = "device-security-google.png" class DeviceSecurityWindows(_Intune): _icon = "device-security-windows.png" class Devices(_Intune): _icon = "devices.png" class Ebooks(_Intune): _icon = "ebooks.png" class ExchangeAccess(_Intune): _icon = "exchange-access.png" class IntuneAppProtection(_Intune): _icon = "intune-app-protection.png" class IntuneForEducation(_Intune): _icon = "intune-for-education.png" class Intune(_Intune): _icon = "intune.png" class Mindaro(_Intune): _icon = "mindaro.png" class SecurityBaselines(_Intune): _icon = "security-baselines.png" class SoftwareUpdates(_Intune): _icon = "software-updates.png" class TenantStatus(_Intune): _icon = "tenant-status.png" # Aliases ================================================ FILE: diagrams/azure/iot.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Iot(_Azure): _type = "iot" _icon_dir = "resources/azure/iot" class AzureCosmosDb(_Iot): _icon = "azure-cosmos-db.png" class AzureDataboxGateway(_Iot): _icon = "azure-databox-gateway.png" class AzureIotOperations(_Iot): _icon = "azure-iot-operations.png" class AzureMapsAccounts(_Iot): _icon = "azure-maps-accounts.png" class AzureStack(_Iot): _icon = "azure-stack.png" class DeviceProvisioningServices(_Iot): _icon = "device-provisioning-services.png" class DigitalTwins(_Iot): _icon = "digital-twins.png" class EventGridSubscriptions(_Iot): _icon = "event-grid-subscriptions.png" class EventHubClusters(_Iot): _icon = "event-hub-clusters.png" class EventHubs(_Iot): _icon = "event-hubs.png" class FunctionApps(_Iot): _icon = "function-apps.png" class IndustrialIot(_Iot): _icon = "industrial-iot.png" class IotCentralApplications(_Iot): _icon = "iot-central-applications.png" class IotEdge(_Iot): _icon = "iot-edge.png" class IotHubSecurity(_Iot): _icon = "iot-hub-security.png" class IotHub(_Iot): _icon = "iot-hub.png" class LogicApps(_Iot): _icon = "logic-apps.png" class MachineLearningStudioClassicWebServices(_Iot): _icon = "machine-learning-studio-classic-web-services.png" class MachineLearningStudioWebServicePlans(_Iot): _icon = "machine-learning-studio-web-service-plans.png" class MachineLearningStudioWorkspaces(_Iot): _icon = "machine-learning-studio-workspaces.png" class Maps(_Iot): _icon = "maps.png" class NotificationHubNamespaces(_Iot): _icon = "notification-hub-namespaces.png" class NotificationHubs(_Iot): _icon = "notification-hubs.png" class Sphere(_Iot): _icon = "sphere.png" class StackHciPremium(_Iot): _icon = "stack-hci-premium.png" class StreamAnalyticsJobs(_Iot): _icon = "stream-analytics-jobs.png" class TimeSeriesDataSets(_Iot): _icon = "time-series-data-sets.png" class TimeSeriesInsightsAccessPolicies(_Iot): _icon = "time-series-insights-access-policies.png" class TimeSeriesInsightsEnvironments(_Iot): _icon = "time-series-insights-environments.png" class TimeSeriesInsightsEventSources(_Iot): _icon = "time-series-insights-event-sources.png" class TimeSeriesInsightsEventsSources(_Iot): _icon = "time-series-insights-events-sources.png" class Windows10IotCoreServices(_Iot): _icon = "windows-10-iot-core-services.png" class Windows10CoreServices(_Iot): _icon = "windows10-core-services.png" # Aliases ================================================ FILE: diagrams/azure/managementgovernance.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Managementgovernance(_Azure): _type = "managementgovernance" _icon_dir = "resources/azure/managementgovernance" class ActivityLog(_Managementgovernance): _icon = "activity-log.png" class Advisor(_Managementgovernance): _icon = "advisor.png" class Alerts(_Managementgovernance): _icon = "alerts.png" class ApplicationInsights(_Managementgovernance): _icon = "application-insights.png" class ArcMachines(_Managementgovernance): _icon = "arc-machines.png" class AutomationAccounts(_Managementgovernance): _icon = "automation-accounts.png" class AzureArc(_Managementgovernance): _icon = "azure-arc.png" class AzureLighthouse(_Managementgovernance): _icon = "azure-lighthouse.png" class Blueprints(_Managementgovernance): _icon = "blueprints.png" class Compliance(_Managementgovernance): _icon = "compliance.png" class CostManagementAndBilling(_Managementgovernance): _icon = "cost-management-and-billing.png" class CustomerLockboxForMicrosoftAzure(_Managementgovernance): _icon = "customer-lockbox-for-microsoft-azure.png" class DiagnosticsSettings(_Managementgovernance): _icon = "diagnostics-settings.png" class Education(_Managementgovernance): _icon = "education.png" class IntuneTrends(_Managementgovernance): _icon = "intune-trends.png" class LogAnalyticsWorkspaces(_Managementgovernance): _icon = "log-analytics-workspaces.png" class Machinesazurearc(_Managementgovernance): _icon = "machinesazurearc.png" class ManagedApplicationsCenter(_Managementgovernance): _icon = "managed-applications-center.png" class ManagedDesktop(_Managementgovernance): _icon = "managed-desktop.png" class Metrics(_Managementgovernance): _icon = "metrics.png" class Monitor(_Managementgovernance): _icon = "monitor.png" class MyCustomers(_Managementgovernance): _icon = "my-customers.png" class OperationLogClassic(_Managementgovernance): _icon = "operation-log-classic.png" class Policy(_Managementgovernance): _icon = "policy.png" class RecoveryServicesVaults(_Managementgovernance): _icon = "recovery-services-vaults.png" class ResourceGraphExplorer(_Managementgovernance): _icon = "resource-graph-explorer.png" class ResourcesProvider(_Managementgovernance): _icon = "resources-provider.png" class SchedulerJobCollections(_Managementgovernance): _icon = "scheduler-job-collections.png" class ServiceCatalogMad(_Managementgovernance): _icon = "service-catalog-mad.png" class ServiceProviders(_Managementgovernance): _icon = "service-providers.png" class Solutions(_Managementgovernance): _icon = "solutions.png" class UniversalPrint(_Managementgovernance): _icon = "universal-print.png" class UserPrivacy(_Managementgovernance): _icon = "user-privacy.png" # Aliases ================================================ FILE: diagrams/azure/menu.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Menu(_Azure): _type = "menu" _icon_dir = "resources/azure/menu" class Keys(_Menu): _icon = "keys.png" # Aliases ================================================ FILE: diagrams/azure/migrate.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Migrate(_Azure): _type = "migrate" _icon_dir = "resources/azure/migrate" class AzureDataboxGateway(_Migrate): _icon = "azure-databox-gateway.png" class AzureMigrate(_Migrate): _icon = "azure-migrate.png" class AzureStackEdge(_Migrate): _icon = "azure-stack-edge.png" class CostManagementAndBilling(_Migrate): _icon = "cost-management-and-billing.png" class DataBox(_Migrate): _icon = "data-box.png" class RecoveryServicesVaults(_Migrate): _icon = "recovery-services-vaults.png" # Aliases ================================================ FILE: diagrams/azure/migration.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Migration(_Azure): _type = "migration" _icon_dir = "resources/azure/migration" class AzureDatabaseMigrationServices(_Migration): _icon = "azure-database-migration-services.png" class DataBoxEdge(_Migration): _icon = "data-box-edge.png" class DataBox(_Migration): _icon = "data-box.png" class DatabaseMigrationServices(_Migration): _icon = "database-migration-services.png" class MigrationProjects(_Migration): _icon = "migration-projects.png" class RecoveryServicesVaults(_Migration): _icon = "recovery-services-vaults.png" # Aliases ================================================ FILE: diagrams/azure/mixedreality.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Mixedreality(_Azure): _type = "mixedreality" _icon_dir = "resources/azure/mixedreality" class RemoteRendering(_Mixedreality): _icon = "remote-rendering.png" class SpatialAnchorAccounts(_Mixedreality): _icon = "spatial-anchor-accounts.png" # Aliases ================================================ FILE: diagrams/azure/ml.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Ml(_Azure): _type = "ml" _icon_dir = "resources/azure/ml" class AzureOpenAI(_Ml): _icon = "azure-open-ai.png" class AzureSpeechService(_Ml): _icon = "azure-speech-service.png" class BatchAI(_Ml): _icon = "batch-ai.png" class BotServices(_Ml): _icon = "bot-services.png" class CognitiveServices(_Ml): _icon = "cognitive-services.png" class GenomicsAccounts(_Ml): _icon = "genomics-accounts.png" class MachineLearningServiceWorkspaces(_Ml): _icon = "machine-learning-service-workspaces.png" class MachineLearningStudioWebServicePlans(_Ml): _icon = "machine-learning-studio-web-service-plans.png" class MachineLearningStudioWebServices(_Ml): _icon = "machine-learning-studio-web-services.png" class MachineLearningStudioWorkspaces(_Ml): _icon = "machine-learning-studio-workspaces.png" # Aliases ================================================ FILE: diagrams/azure/mobile.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Mobile(_Azure): _type = "mobile" _icon_dir = "resources/azure/mobile" class AppServiceMobile(_Mobile): _icon = "app-service-mobile.png" class AppServices(_Mobile): _icon = "app-services.png" class MobileEngagement(_Mobile): _icon = "mobile-engagement.png" class NotificationHubs(_Mobile): _icon = "notification-hubs.png" class PowerPlatform(_Mobile): _icon = "power-platform.png" # Aliases ================================================ FILE: diagrams/azure/monitor.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Monitor(_Azure): _type = "monitor" _icon_dir = "resources/azure/monitor" class ActivityLog(_Monitor): _icon = "activity-log.png" class ApplicationInsights(_Monitor): _icon = "application-insights.png" class AutoScale(_Monitor): _icon = "auto-scale.png" class AzureMonitorsForSAPSolutions(_Monitor): _icon = "azure-monitors-for-sap-solutions.png" class AzureWorkbooks(_Monitor): _icon = "azure-workbooks.png" class ChangeAnalysis(_Monitor): _icon = "change-analysis.png" class DiagnosticsSettings(_Monitor): _icon = "diagnostics-settings.png" class LogAnalyticsWorkspaces(_Monitor): _icon = "log-analytics-workspaces.png" class Logs(_Monitor): _icon = "logs.png" class Metrics(_Monitor): _icon = "metrics.png" class Monitor(_Monitor): _icon = "monitor.png" class NetworkWatcher(_Monitor): _icon = "network-watcher.png" # Aliases ================================================ FILE: diagrams/azure/network.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Network(_Azure): _type = "network" _icon_dir = "resources/azure/network" class ApplicationGateway(_Network): _icon = "application-gateway.png" class ApplicationSecurityGroups(_Network): _icon = "application-security-groups.png" class CDNProfiles(_Network): _icon = "cdn-profiles.png" class Connections(_Network): _icon = "connections.png" class DDOSProtectionPlans(_Network): _icon = "ddos-protection-plans.png" class DNSPrivateZones(_Network): _icon = "dns-private-zones.png" class DNSZones(_Network): _icon = "dns-zones.png" class ExpressrouteCircuits(_Network): _icon = "expressroute-circuits.png" class Firewall(_Network): _icon = "firewall.png" class FrontDoors(_Network): _icon = "front-doors.png" class LoadBalancers(_Network): _icon = "load-balancers.png" class LocalNetworkGateways(_Network): _icon = "local-network-gateways.png" class NetworkInterfaces(_Network): _icon = "network-interfaces.png" class NetworkSecurityGroupsClassic(_Network): _icon = "network-security-groups-classic.png" class NetworkWatcher(_Network): _icon = "network-watcher.png" class OnPremisesDataGateways(_Network): _icon = "on-premises-data-gateways.png" class PrivateEndpoint(_Network): _icon = "private-endpoint.png" class PublicIpAddresses(_Network): _icon = "public-ip-addresses.png" class ReservedIpAddressesClassic(_Network): _icon = "reserved-ip-addresses-classic.png" class RouteFilters(_Network): _icon = "route-filters.png" class RouteTables(_Network): _icon = "route-tables.png" class ServiceEndpointPolicies(_Network): _icon = "service-endpoint-policies.png" class Subnets(_Network): _icon = "subnets.png" class TrafficManagerProfiles(_Network): _icon = "traffic-manager-profiles.png" class VirtualNetworkClassic(_Network): _icon = "virtual-network-classic.png" class VirtualNetworkGateways(_Network): _icon = "virtual-network-gateways.png" class VirtualNetworks(_Network): _icon = "virtual-networks.png" class VirtualWans(_Network): _icon = "virtual-wans.png" # Aliases ================================================ FILE: diagrams/azure/networking.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Networking(_Azure): _type = "networking" _icon_dir = "resources/azure/networking" class ApplicationGateways(_Networking): _icon = "application-gateways.png" class AtmMultistack(_Networking): _icon = "atm-multistack.png" class AzureCommunicationsGateway(_Networking): _icon = "azure-communications-gateway.png" class AzureFirewallManager(_Networking): _icon = "azure-firewall-manager.png" class AzureFirewallPolicy(_Networking): _icon = "azure-firewall-policy.png" class Bastions(_Networking): _icon = "bastions.png" class CDNProfiles(_Networking): _icon = "cdn-profiles.png" class ConnectedCache(_Networking): _icon = "connected-cache.png" class Connections(_Networking): _icon = "connections.png" class DDOSProtectionPlans(_Networking): _icon = "ddos-protection-plans.png" class DNSMultistack(_Networking): _icon = "dns-multistack.png" class DNSPrivateResolver(_Networking): _icon = "dns-private-resolver.png" class DNSSecurityPolicy(_Networking): _icon = "dns-security-policy.png" class DNSZones(_Networking): _icon = "dns-zones.png" class ExpressrouteCircuits(_Networking): _icon = "expressroute-circuits.png" class Firewalls(_Networking): _icon = "firewalls.png" class FrontDoorAndCDNProfiles(_Networking): _icon = "front-door-and-cdn-profiles.png" class IpAddressManager(_Networking): _icon = "ip-address-manager.png" class IpGroups(_Networking): _icon = "ip-groups.png" class LoadBalancerHub(_Networking): _icon = "load-balancer-hub.png" class LoadBalancers(_Networking): _icon = "load-balancers.png" class LocalNetworkGateways(_Networking): _icon = "local-network-gateways.png" class Nat(_Networking): _icon = "nat.png" class NetworkInterfaces(_Networking): _icon = "network-interfaces.png" class NetworkSecurityGroups(_Networking): _icon = "network-security-groups.png" class NetworkWatcher(_Networking): _icon = "network-watcher.png" class OnPremisesDataGateways(_Networking): _icon = "on-premises-data-gateways.png" class PrivateLinkService(_Networking): _icon = "private-link-service.png" class PrivateLinkServices(_Networking): _icon = "private-link-services.png" class PrivateLink(_Networking): _icon = "private-link.png" class ProximityPlacementGroups(_Networking): _icon = "proximity-placement-groups.png" class PublicIpAddressesClassic(_Networking): _icon = "public-ip-addresses-classic.png" class PublicIpAddresses(_Networking): _icon = "public-ip-addresses.png" class PublicIpPrefixes(_Networking): _icon = "public-ip-prefixes.png" class ReservedIpAddressesClassic(_Networking): _icon = "reserved-ip-addresses-classic.png" class ResourceManagementPrivateLink(_Networking): _icon = "resource-management-private-link.png" class RouteFilters(_Networking): _icon = "route-filters.png" class RouteTables(_Networking): _icon = "route-tables.png" class ServiceEndpointPolicies(_Networking): _icon = "service-endpoint-policies.png" class SpotVM(_Networking): _icon = "spot-vm.png" class SpotVmss(_Networking): _icon = "spot-vmss.png" class Subnet(_Networking): _icon = "subnet.png" class TrafficController(_Networking): _icon = "traffic-controller.png" class TrafficManagerProfiles(_Networking): _icon = "traffic-manager-profiles.png" class VirtualNetworkGateways(_Networking): _icon = "virtual-network-gateways.png" class VirtualNetworksClassic(_Networking): _icon = "virtual-networks-classic.png" class VirtualNetworks(_Networking): _icon = "virtual-networks.png" class VirtualRouter(_Networking): _icon = "virtual-router.png" class VirtualWanHub(_Networking): _icon = "virtual-wan-hub.png" class VirtualWans(_Networking): _icon = "virtual-wans.png" class WebApplicationFirewallPolicieswaf(_Networking): _icon = "web-application-firewall-policieswaf.png" # Aliases ================================================ FILE: diagrams/azure/newicons.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Newicons(_Azure): _type = "newicons" _icon_dir = "resources/azure/newicons" class AzureSustainability(_Newicons): _icon = "azure-sustainability.png" class ConnectedVehiclePlatform(_Newicons): _icon = "connected-vehicle-platform.png" class EntraConnectHealth(_Newicons): _icon = "entra-connect-health.png" class EntraConnectSync(_Newicons): _icon = "entra-connect-sync.png" class IcmTroubleshooting(_Newicons): _icon = "icm-troubleshooting.png" class Osconfig(_Newicons): _icon = "osconfig.png" class StorageActions(_Newicons): _icon = "storage-actions.png" # Aliases ================================================ FILE: diagrams/azure/other.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Other(_Azure): _type = "other" _icon_dir = "resources/azure/other" class AadLicenses(_Other): _icon = "aad-licenses.png" class AksIstio(_Other): _icon = "aks-istio.png" class AppComplianceAutomation(_Other): _icon = "app-compliance-automation.png" class AppRegistrations(_Other): _icon = "app-registrations.png" class Aquila(_Other): _icon = "aquila.png" class ArcDataServices(_Other): _icon = "arc-data-services.png" class ArcKubernetes(_Other): _icon = "arc-kubernetes.png" class ArcPostgresql(_Other): _icon = "arc-postgresql-.png" class ArcSQLManagedInstance(_Other): _icon = "arc-sql-managed-instance.png" class ArcSQLServer(_Other): _icon = "arc-sql-server.png" class AvsVM(_Other): _icon = "avs-vm.png" class AzureA(_Other): _icon = "azure-a.png" class AzureBackupCenter(_Other): _icon = "azure-backup-center.png" class AzureCenterForSAP(_Other): _icon = "azure-center-for-sap.png" class AzureChaosStudio(_Other): _icon = "azure-chaos-studio.png" class AzureCloudShell(_Other): _icon = "azure-cloud-shell.png" class AzureCommunicationServices(_Other): _icon = "azure-communication-services.png" class AzureComputeGalleries(_Other): _icon = "azure-compute-galleries.png" class AzureDeploymentEnvironments(_Other): _icon = "azure-deployment-environments.png" class AzureDevTunnels(_Other): _icon = "azure-dev-tunnels.png" class AzureEdgeHardwareCenter(_Other): _icon = "azure-edge-hardware-center.png" class AzureHpcWorkbenches(_Other): _icon = "azure-hpc-workbenches.png" class AzureLoadTesting(_Other): _icon = "azure-load-testing.png" class AzureManagedGrafana(_Other): _icon = "azure-managed-grafana.png" class AzureMonitorDashboard(_Other): _icon = "azure-monitor-dashboard.png" class AzureNetworkFunctionManagerFunctions(_Other): _icon = "azure-network-function-manager-functions.png" class AzureNetworkFunctionManager(_Other): _icon = "azure-network-function-manager.png" class AzureOrbital(_Other): _icon = "azure-orbital.png" class AzureQuotas(_Other): _icon = "azure-quotas.png" class AzureSphere(_Other): _icon = "azure-sphere.png" class AzureStorageMover(_Other): _icon = "azure-storage-mover.png" class AzureSupportCenterBlue(_Other): _icon = "azure-support-center-blue.png" class AzureVideoIndexer(_Other): _icon = "azure-video-indexer.png" class AzureVirtualDesktop(_Other): _icon = "azure-virtual-desktop.png" class AzureVmwareSolution(_Other): _icon = "azure-vmware-solution.png" class Azureattestation(_Other): _icon = "azureattestation.png" class Azurite(_Other): _icon = "azurite.png" class BackupVault(_Other): _icon = "backup-vault.png" class BareMetalInfrastructure(_Other): _icon = "bare-metal-infrastructure.png" class CapacityReservationGroups(_Other): _icon = "capacity-reservation-groups.png" class CentralServiceInstanceForSAP(_Other): _icon = "central-service-instance-for-sap.png" class Ceres(_Other): _icon = "ceres.png" class CloudServicesExtendedSupport(_Other): _icon = "cloud-services-extended-support.png" class CommunityImages(_Other): _icon = "community-images.png" class ComplianceCenter(_Other): _icon = "compliance-center.png" class ConfidentialLedgers(_Other): _icon = "confidential-ledgers.png" class ContainerAppsEnvironments(_Other): _icon = "container-apps-environments.png" class CostExport(_Other): _icon = "cost-export.png" class CustomIpPrefix(_Other): _icon = "custom-ip-prefix.png" class DashboardHub(_Other): _icon = "dashboard-hub.png" class DataCollectionRules(_Other): _icon = "data-collection-rules.png" class DatabaseInstanceForSAP(_Other): _icon = "database-instance-for-sap.png" class DedicatedHsm(_Other): _icon = "dedicated-hsm.png" class DefenderCmLocalManager(_Other): _icon = "defender-cm-local-manager.png" class DefenderDcsController(_Other): _icon = "defender-dcs-controller.png" class DefenderDistributerControlSystem(_Other): _icon = "defender-distributer-control-system.png" class DefenderEngineeringStation(_Other): _icon = "defender-engineering-station.png" class DefenderExternalManagement(_Other): _icon = "defender-external-management.png" class DefenderFreezerMonitor(_Other): _icon = "defender-freezer-monitor.png" class DefenderHistorian(_Other): _icon = "defender-historian.png" class DefenderHmi(_Other): _icon = "defender-hmi.png" class DefenderIndustrialPackagingSystem(_Other): _icon = "defender-industrial-packaging-system.png" class DefenderIndustrialPrinter(_Other): _icon = "defender-industrial-printer.png" class DefenderIndustrialRobot(_Other): _icon = "defender-industrial-robot.png" class DefenderIndustrialScaleSystem(_Other): _icon = "defender-industrial-scale-system.png" class DefenderMarquee(_Other): _icon = "defender-marquee.png" class DefenderMeter(_Other): _icon = "defender-meter.png" class DefenderPlc(_Other): _icon = "defender-plc.png" class DefenderPneumaticDevice(_Other): _icon = "defender-pneumatic-device.png" class DefenderProgramableBoard(_Other): _icon = "defender-programable-board.png" class DefenderRelay(_Other): _icon = "defender-relay.png" class DefenderRobotController(_Other): _icon = "defender-robot-controller.png" class DefenderRtu(_Other): _icon = "defender-rtu.png" class DefenderSensor(_Other): _icon = "defender-sensor.png" class DefenderSlot(_Other): _icon = "defender-slot.png" class DefenderWebGuidingSystem(_Other): _icon = "defender-web-guiding-system.png" class DeviceUpdateIotHub(_Other): _icon = "device-update-iot-hub.png" class DiskPool(_Other): _icon = "disk-pool.png" class EdgeManagement(_Other): _icon = "edge-management.png" class ElasticSan(_Other): _icon = "elastic-san.png" class ExchangeOnPremisesAccess(_Other): _icon = "exchange-on-premises-access.png" class ExpressRouteTrafficCollector(_Other): _icon = "express-route-traffic-collector.png" class ExpressrouteDirect(_Other): _icon = "expressroute-direct.png" class FhirService(_Other): _icon = "fhir-service.png" class Fiji(_Other): _icon = "fiji.png" class HdiAksCluster(_Other): _icon = "hdi-aks-cluster.png" class InstancePools(_Other): _icon = "instance-pools.png" class InternetAnalyzerProfiles(_Other): _icon = "internet-analyzer-profiles.png" class KubernetesFleetManager(_Other): _icon = "kubernetes-fleet-manager.png" class LocalNetworkGateways(_Other): _icon = "local-network-gateways.png" class LogAnalyticsQueryPack(_Other): _icon = "log-analytics-query-pack.png" class ManagedInstanceApacheCassandra(_Other): _icon = "managed-instance-apache-cassandra.png" class MedtechService(_Other): _icon = "medtech-service.png" class MicrosoftDevBox(_Other): _icon = "microsoft-dev-box.png" class MissionLandingZone(_Other): _icon = "mission-landing-zone.png" class MobileNetworks(_Other): _icon = "mobile-networks.png" class ModularDataCenter(_Other): _icon = "modular-data-center.png" class NetworkManagers(_Other): _icon = "network-managers.png" class NetworkSecurityPerimeters(_Other): _icon = "network-security-perimeters.png" class OpenSupplyChainPlatform(_Other): _icon = "open-supply-chain-platform.png" class PeeringService(_Other): _icon = "peering-service.png" class Peerings(_Other): _icon = "peerings.png" class PrivateEndpoints(_Other): _icon = "private-endpoints.png" class ReservedCapacity(_Other): _icon = "reserved-capacity.png" class ResourceGuard(_Other): _icon = "resource-guard.png" class ResourceMover(_Other): _icon = "resource-mover.png" class Rtos(_Other): _icon = "rtos.png" class SavingsPlans(_Other): _icon = "savings-plans.png" class ScvmmManagementServers(_Other): _icon = "scvmm-management-servers.png" class SonicDash(_Other): _icon = "sonic-dash.png" class SshKeys(_Other): _icon = "ssh-keys.png" class StorageFunctions(_Other): _icon = "storage-functions.png" class TargetsManagement(_Other): _icon = "targets-management.png" class TemplateSpecs(_Other): _icon = "template-specs.png" class TestBase(_Other): _icon = "test-base.png" class UpdateManagementCenter(_Other): _icon = "update-management-center.png" class VideoAnalyzers(_Other): _icon = "video-analyzers.png" class VirtualEnclaves(_Other): _icon = "virtual-enclaves.png" class VirtualInstanceForSAP(_Other): _icon = "virtual-instance-for-sap.png" class VirtualVisitsBuilder(_Other): _icon = "virtual-visits-builder.png" class VMAppDefinitions(_Other): _icon = "vm-app-definitions.png" class VMAppVersions(_Other): _icon = "vm-app-versions.png" class VMImageVersion(_Other): _icon = "vm-image-version.png" class Wac(_Other): _icon = "wac.png" class WebAppDatabase(_Other): _icon = "web-app-database.png" class WebJobs(_Other): _icon = "web-jobs.png" class WindowsNotificationServices(_Other): _icon = "windows-notification-services.png" class WorkerContainerApp(_Other): _icon = "worker-container-app.png" # Aliases ================================================ FILE: diagrams/azure/security.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Security(_Azure): _type = "security" _icon_dir = "resources/azure/security" class ApplicationSecurityGroups(_Security): _icon = "application-security-groups.png" class AzureADAuthenticationMethods(_Security): _icon = "azure-ad-authentication-methods.png" class AzureADIdentityProtection(_Security): _icon = "azure-ad-identity-protection.png" class AzureADPrivlegedIdentityManagement(_Security): _icon = "azure-ad-privleged-identity-management.png" class AzureADRiskySignins(_Security): _icon = "azure-ad-risky-signins.png" class AzureADRiskyUsers(_Security): _icon = "azure-ad-risky-users.png" class AzureInformationProtection(_Security): _icon = "azure-information-protection.png" class AzureSentinel(_Security): _icon = "azure-sentinel.png" class ConditionalAccess(_Security): _icon = "conditional-access.png" class Defender(_Security): _icon = "defender.png" class Detonation(_Security): _icon = "detonation.png" class ExtendedSecurityUpdates(_Security): _icon = "extended-security-updates.png" class Extendedsecurityupdates(_Security): _icon = "extendedsecurityupdates.png" class IdentitySecureScore(_Security): _icon = "identity-secure-score.png" class KeyVaults(_Security): _icon = "key-vaults.png" class MicrosoftDefenderEasm(_Security): _icon = "microsoft-defender-easm.png" class MicrosoftDefenderForCloud(_Security): _icon = "microsoft-defender-for-cloud.png" class MicrosoftDefenderForIot(_Security): _icon = "microsoft-defender-for-iot.png" class MultifactorAuthentication(_Security): _icon = "multifactor-authentication.png" class SecurityCenter(_Security): _icon = "security-center.png" class Sentinel(_Security): _icon = "sentinel.png" class UserSettings(_Security): _icon = "user-settings.png" # Aliases ================================================ FILE: diagrams/azure/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Storage(_Azure): _type = "storage" _icon_dir = "resources/azure/storage" class ArchiveStorage(_Storage): _icon = "archive-storage.png" class AzureDataboxGateway(_Storage): _icon = "azure-databox-gateway.png" class AzureFileshares(_Storage): _icon = "azure-fileshares.png" class AzureHcpCache(_Storage): _icon = "azure-hcp-cache.png" class AzureNetappFiles(_Storage): _icon = "azure-netapp-files.png" class AzureStackEdge(_Storage): _icon = "azure-stack-edge.png" class Azurefxtedgefiler(_Storage): _icon = "azurefxtedgefiler.png" class BlobStorage(_Storage): _icon = "blob-storage.png" class DataBoxEdgeDataBoxGateway(_Storage): _icon = "data-box-edge-data-box-gateway.png" class DataBox(_Storage): _icon = "data-box.png" class DataLakeStorageGen1(_Storage): _icon = "data-lake-storage-gen1.png" class DataLakeStorage(_Storage): _icon = "data-lake-storage.png" class DataShareInvitations(_Storage): _icon = "data-share-invitations.png" class DataShares(_Storage): _icon = "data-shares.png" class GeneralStorage(_Storage): _icon = "general-storage.png" class ImportExportJobs(_Storage): _icon = "import-export-jobs.png" class NetappFiles(_Storage): _icon = "netapp-files.png" class QueuesStorage(_Storage): _icon = "queues-storage.png" class RecoveryServicesVaults(_Storage): _icon = "recovery-services-vaults.png" class StorageAccountsClassic(_Storage): _icon = "storage-accounts-classic.png" class StorageAccounts(_Storage): _icon = "storage-accounts.png" class StorageExplorer(_Storage): _icon = "storage-explorer.png" class StorageSyncServices(_Storage): _icon = "storage-sync-services.png" class StorsimpleDataManagers(_Storage): _icon = "storsimple-data-managers.png" class StorsimpleDeviceManagers(_Storage): _icon = "storsimple-device-managers.png" class TableStorage(_Storage): _icon = "table-storage.png" # Aliases ================================================ FILE: diagrams/azure/web.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Azure class _Web(_Azure): _type = "web" _icon_dir = "resources/azure/web" class APICenter(_Web): _icon = "api-center.png" class APIConnections(_Web): _icon = "api-connections.png" class APIManagementServices(_Web): _icon = "api-management-services.png" class AppServiceCertificates(_Web): _icon = "app-service-certificates.png" class AppServiceDomains(_Web): _icon = "app-service-domains.png" class AppServiceEnvironments(_Web): _icon = "app-service-environments.png" class AppServicePlans(_Web): _icon = "app-service-plans.png" class AppServices(_Web): _icon = "app-services.png" class AppSpace(_Web): _icon = "app-space.png" class AzureMediaService(_Web): _icon = "azure-media-service.png" class AzureSpringApps(_Web): _icon = "azure-spring-apps.png" class CognitiveSearch(_Web): _icon = "cognitive-search.png" class CognitiveServices(_Web): _icon = "cognitive-services.png" class FrontDoorAndCDNProfiles(_Web): _icon = "front-door-and-cdn-profiles.png" class MediaServices(_Web): _icon = "media-services.png" class NotificationHubNamespaces(_Web): _icon = "notification-hub-namespaces.png" class PowerPlatform(_Web): _icon = "power-platform.png" class Search(_Web): _icon = "search.png" class Signalr(_Web): _icon = "signalr.png" class StaticApps(_Web): _icon = "static-apps.png" # Aliases ================================================ FILE: diagrams/base/__init__.py ================================================ """ Base provides a set of general services for backend infrastructure. """ from diagrams import Node class _Base(Node): _provider = "base" _icon_dir = "resources/base" fontcolor = "#ffffff" ================================================ FILE: diagrams/c4/__init__.py ================================================ """ A set of nodes and edges to visualize software architecture using the C4 model. """ import html import textwrap from diagrams import Cluster, Edge, Node def _format_node_label(name, key, description): """Create a graphviz label string for a C4 node""" title = f'{html.escape(name)}
' subtitle = f'[{html.escape(key)}]
' if key else "" text = f'
{_format_description(description)}' if description else "" return f"<{title}{subtitle}{text}>" def _format_description(description): """ Formats the description string so it fits into the C4 nodes. It line-breaks the description so it fits onto exactly three lines. If there are more than three lines, all further lines are discarded and "..." inserted on the last line to indicate that it was shortened. This will also html-escape the description so it can safely be included in a HTML label. """ wrapper = textwrap.TextWrapper(width=40, max_lines=3) lines = [html.escape(line) for line in wrapper.wrap(description)] # fill up with empty lines so it is always three lines += [""] * (3 - len(lines)) return "
".join(lines) def _format_edge_label(description): """Create a graphviz label string for a C4 edge""" wrapper = textwrap.TextWrapper(width=24, max_lines=3) lines = [html.escape(line) for line in wrapper.wrap(description)] text = "
".join(lines) return f'<{text}>' def C4Node(name, technology="", description="", type="Container", **kwargs): key = f"{type}: {technology}" if technology else type node_attributes = { "label": _format_node_label(name, key, description), "labelloc": "c", "shape": "rect", "width": "2.6", "height": "1.6", "fixedsize": "true", "style": "filled", "fillcolor": "dodgerblue3", "fontcolor": "white", } # collapse boxes to a smaller form if they don't have a description if not description: node_attributes.update({"width": "2", "height": "1"}) node_attributes.update(kwargs) return Node(**node_attributes) def Container(name, technology="", description="", **kwargs): container_attributes = { "name": name, "technology": technology, "description": description, "type": "Container", } container_attributes.update(kwargs) return C4Node(**container_attributes) def Database(name, technology="", description="", **kwargs): database_attributes = { "name": name, "technology": technology, "description": description, "type": "Database", "shape": "cylinder", "labelloc": "b", } database_attributes.update(kwargs) return C4Node(**database_attributes) def System(name, description="", external=False, **kwargs): system_attributes = { "name": name, "description": description, "type": "External System" if external else "System", "fillcolor": "gray60" if external else "dodgerblue4", } system_attributes.update(kwargs) return C4Node(**system_attributes) def Person(name, description="", external=False, **kwargs): person_attributes = { "name": name, "description": description, "type": "External Person" if external else "Person", "fillcolor": "gray60" if external else "dodgerblue4", "style": "rounded,filled", } person_attributes.update(kwargs) return C4Node(**person_attributes) def SystemBoundary(name, **kwargs): graph_attributes = { "label": html.escape(name), "bgcolor": "white", "margin": "16", "style": "dashed", } graph_attributes.update(kwargs) return Cluster(name, graph_attr=graph_attributes) def Relationship(label="", **kwargs): edge_attributes = { "style": "dashed", "color": "gray60", "label": _format_edge_label(label) if label else "", } edge_attributes.update(kwargs) return Edge(**edge_attributes) ================================================ FILE: diagrams/cli.py ================================================ import argparse import sys def run() -> int: """ Run diagrams code files in a diagrams environment. Args: paths: A list of paths to Python files containing diagrams code. Returns: The exit code. """ parser = argparse.ArgumentParser( description="Run diagrams code files in a diagrams environment.", ) parser.add_argument( "paths", metavar="path", type=str, nargs="+", help="a Python file containing diagrams code", ) args = parser.parse_args() for path in args.paths: with open(path, encoding='utf-8') as f: exec(f.read()) return 0 def main(): sys.exit(run()) if __name__ == "__main__": main() ================================================ FILE: diagrams/custom/__init__.py ================================================ """ Custom provides the possibility of load an image to be presented as a node. """ from diagrams import Node class Custom(Node): _provider = "custom" _type = "custom" _icon_dir = None fontcolor = "#ffffff" def _load_icon(self): return self._icon def __init__(self, label, icon_path, *args, **kwargs): self._icon = icon_path super().__init__(label, *args, **kwargs) ================================================ FILE: diagrams/digitalocean/__init__.py ================================================ """ DigitalOcean provides a set of services for DigitalOcean provider. """ from diagrams import Node class _DigitalOcean(Node): _provider = "digitalocean" _icon_dir = "resources/digitalocean" fontcolor = "#ffffff" class DigitalOcean(_DigitalOcean): _icon = "digitalocean.png" ================================================ FILE: diagrams/digitalocean/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _DigitalOcean class _Compute(_DigitalOcean): _type = "compute" _icon_dir = "resources/digitalocean/compute" class Containers(_Compute): _icon = "containers.png" class Docker(_Compute): _icon = "docker.png" class DropletConnect(_Compute): _icon = "droplet-connect.png" class DropletSnapshot(_Compute): _icon = "droplet-snapshot.png" class Droplet(_Compute): _icon = "droplet.png" class K8SCluster(_Compute): _icon = "k8s-cluster.png" class K8SNodePool(_Compute): _icon = "k8s-node-pool.png" class K8SNode(_Compute): _icon = "k8s-node.png" # Aliases ================================================ FILE: diagrams/digitalocean/database.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _DigitalOcean class _Database(_DigitalOcean): _type = "database" _icon_dir = "resources/digitalocean/database" class DbaasPrimaryStandbyMore(_Database): _icon = "dbaas-primary-standby-more.png" class DbaasPrimary(_Database): _icon = "dbaas-primary.png" class DbaasReadOnly(_Database): _icon = "dbaas-read-only.png" class DbaasStandby(_Database): _icon = "dbaas-standby.png" # Aliases ================================================ FILE: diagrams/digitalocean/network.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _DigitalOcean class _Network(_DigitalOcean): _type = "network" _icon_dir = "resources/digitalocean/network" class Certificate(_Network): _icon = "certificate.png" class DomainRegistration(_Network): _icon = "domain-registration.png" class Domain(_Network): _icon = "domain.png" class Firewall(_Network): _icon = "firewall.png" class FloatingIp(_Network): _icon = "floating-ip.png" class InternetGateway(_Network): _icon = "internet-gateway.png" class LoadBalancer(_Network): _icon = "load-balancer.png" class ManagedVpn(_Network): _icon = "managed-vpn.png" class Vpc(_Network): _icon = "vpc.png" # Aliases ================================================ FILE: diagrams/digitalocean/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _DigitalOcean class _Storage(_DigitalOcean): _type = "storage" _icon_dir = "resources/digitalocean/storage" class Folder(_Storage): _icon = "folder.png" class Space(_Storage): _icon = "space.png" class VolumeSnapshot(_Storage): _icon = "volume-snapshot.png" class Volume(_Storage): _icon = "volume.png" # Aliases ================================================ FILE: diagrams/elastic/__init__.py ================================================ """ Elastic provides a set of general elastic services. """ from diagrams import Node class _Elastic(Node): _provider = "elastic" _icon_dir = "resources/elastic" fontcolor = "#ffffff" class Elastic(_Elastic): _icon = "elastic.png" ================================================ FILE: diagrams/elastic/agent.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Elastic class _Agent(_Elastic): _type = "agent" _icon_dir = "resources/elastic/agent" class Agent(_Agent): _icon = "agent.png" class Endpoint(_Agent): _icon = "endpoint.png" class Fleet(_Agent): _icon = "fleet.png" class Integrations(_Agent): _icon = "integrations.png" # Aliases ================================================ FILE: diagrams/elastic/beats.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Elastic class _Beats(_Elastic): _type = "beats" _icon_dir = "resources/elastic/beats" class APM(_Beats): _icon = "apm.png" class Auditbeat(_Beats): _icon = "auditbeat.png" class Filebeat(_Beats): _icon = "filebeat.png" class Functionbeat(_Beats): _icon = "functionbeat.png" class Heartbeat(_Beats): _icon = "heartbeat.png" class Metricbeat(_Beats): _icon = "metricbeat.png" class Packetbeat(_Beats): _icon = "packetbeat.png" class Winlogbeat(_Beats): _icon = "winlogbeat.png" # Aliases ================================================ FILE: diagrams/elastic/elasticsearch.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Elastic class _Elasticsearch(_Elastic): _type = "elasticsearch" _icon_dir = "resources/elastic/elasticsearch" class Alerting(_Elasticsearch): _icon = "alerting.png" class Beats(_Elasticsearch): _icon = "beats.png" class Elasticsearch(_Elasticsearch): _icon = "elasticsearch.png" class Kibana(_Elasticsearch): _icon = "kibana.png" class LogstashPipeline(_Elasticsearch): _icon = "logstash-pipeline.png" class Logstash(_Elasticsearch): _icon = "logstash.png" class MachineLearning(_Elasticsearch): _icon = "machine-learning.png" class MapServices(_Elasticsearch): _icon = "map-services.png" class Maps(_Elasticsearch): _icon = "maps.png" class Monitoring(_Elasticsearch): _icon = "monitoring.png" class SearchableSnapshots(_Elasticsearch): _icon = "searchable-snapshots.png" class SecuritySettings(_Elasticsearch): _icon = "security-settings.png" class SQL(_Elasticsearch): _icon = "sql.png" class Stack(_Elasticsearch): _icon = "stack.png" # Aliases ElasticSearch = Elasticsearch LogStash = Logstash ML = MachineLearning ================================================ FILE: diagrams/elastic/enterprisesearch.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Elastic class _Enterprisesearch(_Elastic): _type = "enterprisesearch" _icon_dir = "resources/elastic/enterprisesearch" class AppSearch(_Enterprisesearch): _icon = "app-search.png" class Crawler(_Enterprisesearch): _icon = "crawler.png" class EnterpriseSearch(_Enterprisesearch): _icon = "enterprise-search.png" class SiteSearch(_Enterprisesearch): _icon = "site-search.png" class WorkplaceSearch(_Enterprisesearch): _icon = "workplace-search.png" # Aliases ================================================ FILE: diagrams/elastic/observability.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Elastic class _Observability(_Elastic): _type = "observability" _icon_dir = "resources/elastic/observability" class APM(_Observability): _icon = "apm.png" class Logs(_Observability): _icon = "logs.png" class Metrics(_Observability): _icon = "metrics.png" class Observability(_Observability): _icon = "observability.png" class Uptime(_Observability): _icon = "uptime.png" # Aliases ================================================ FILE: diagrams/elastic/orchestration.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Elastic class _Orchestration(_Elastic): _type = "orchestration" _icon_dir = "resources/elastic/orchestration" class ECE(_Orchestration): _icon = "ece.png" class ECK(_Orchestration): _icon = "eck.png" # Aliases ================================================ FILE: diagrams/elastic/saas.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Elastic class _Saas(_Elastic): _type = "saas" _icon_dir = "resources/elastic/saas" class Cloud(_Saas): _icon = "cloud.png" class Elastic(_Saas): _icon = "elastic.png" # Aliases ================================================ FILE: diagrams/elastic/security.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Elastic class _Security(_Elastic): _type = "security" _icon_dir = "resources/elastic/security" class Endpoint(_Security): _icon = "endpoint.png" class Security(_Security): _icon = "security.png" class SIEM(_Security): _icon = "siem.png" class Xdr(_Security): _icon = "xdr.png" # Aliases ================================================ FILE: diagrams/firebase/__init__.py ================================================ """ Firebase provides a set of services for Firebase provider. """ from diagrams import Node class _Firebase(Node): _provider = "firebase" _icon_dir = "resources/firebase" fontcolor = "#ffffff" class Firebase(_Firebase): _icon = "firebase.png" ================================================ FILE: diagrams/firebase/base.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Firebase class _Base(_Firebase): _type = "base" _icon_dir = "resources/firebase/base" class Firebase(_Base): _icon = "firebase.png" # Aliases ================================================ FILE: diagrams/firebase/develop.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Firebase class _Develop(_Firebase): _type = "develop" _icon_dir = "resources/firebase/develop" class Authentication(_Develop): _icon = "authentication.png" class Firestore(_Develop): _icon = "firestore.png" class Functions(_Develop): _icon = "functions.png" class Hosting(_Develop): _icon = "hosting.png" class MLKit(_Develop): _icon = "ml-kit.png" class RealtimeDatabase(_Develop): _icon = "realtime-database.png" class Storage(_Develop): _icon = "storage.png" # Aliases ================================================ FILE: diagrams/firebase/extentions.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Firebase class _Extentions(_Firebase): _type = "extentions" _icon_dir = "resources/firebase/extentions" class Extensions(_Extentions): _icon = "extensions.png" # Aliases ================================================ FILE: diagrams/firebase/grow.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Firebase class _Grow(_Firebase): _type = "grow" _icon_dir = "resources/firebase/grow" class ABTesting(_Grow): _icon = "ab-testing.png" class AppIndexing(_Grow): _icon = "app-indexing.png" class DynamicLinks(_Grow): _icon = "dynamic-links.png" class InAppMessaging(_Grow): _icon = "in-app-messaging.png" class Invites(_Grow): _icon = "invites.png" class Messaging(_Grow): _icon = "messaging.png" class Predictions(_Grow): _icon = "predictions.png" class RemoteConfig(_Grow): _icon = "remote-config.png" # Aliases FCM = Messaging ================================================ FILE: diagrams/firebase/quality.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Firebase class _Quality(_Firebase): _type = "quality" _icon_dir = "resources/firebase/quality" class AppDistribution(_Quality): _icon = "app-distribution.png" class CrashReporting(_Quality): _icon = "crash-reporting.png" class Crashlytics(_Quality): _icon = "crashlytics.png" class PerformanceMonitoring(_Quality): _icon = "performance-monitoring.png" class TestLab(_Quality): _icon = "test-lab.png" # Aliases ================================================ FILE: diagrams/gcp/__init__.py ================================================ """ GCP provides a set of services for Google Cloud Platform provider. """ from diagrams import Node class _GCP(Node): _provider = "gcp" _icon_dir = "resources/gcp" fontcolor = "#2d3436" class GCP(_GCP): _icon = "gcp.png" ================================================ FILE: diagrams/gcp/analytics.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _Analytics(_GCP): _type = "analytics" _icon_dir = "resources/gcp/analytics" class Bigquery(_Analytics): _icon = "bigquery.png" class Composer(_Analytics): _icon = "composer.png" class DataCatalog(_Analytics): _icon = "data-catalog.png" class DataFusion(_Analytics): _icon = "data-fusion.png" class Dataflow(_Analytics): _icon = "dataflow.png" class Datalab(_Analytics): _icon = "datalab.png" class Dataprep(_Analytics): _icon = "dataprep.png" class Dataproc(_Analytics): _icon = "dataproc.png" class Genomics(_Analytics): _icon = "genomics.png" class Looker(_Analytics): _icon = "looker.png" class Pubsub(_Analytics): _icon = "pubsub.png" # Aliases BigQuery = Bigquery PubSub = Pubsub ================================================ FILE: diagrams/gcp/api.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _API(_GCP): _type = "api" _icon_dir = "resources/gcp/api" class APIGateway(_API): _icon = "api-gateway.png" class Apigee(_API): _icon = "apigee.png" class Endpoints(_API): _icon = "endpoints.png" # Aliases ================================================ FILE: diagrams/gcp/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _Compute(_GCP): _type = "compute" _icon_dir = "resources/gcp/compute" class AppEngine(_Compute): _icon = "app-engine.png" class BinaryAuthorization(_Compute): _icon = "binary-authorization.png" class ComputeEngine(_Compute): _icon = "compute-engine.png" class ContainerOptimizedOS(_Compute): _icon = "container-optimized-os.png" class Functions(_Compute): _icon = "functions.png" class GKEOnPrem(_Compute): _icon = "gke-on-prem.png" class GPU(_Compute): _icon = "gpu.png" class KubernetesEngine(_Compute): _icon = "kubernetes-engine.png" class OSConfigurationManagement(_Compute): _icon = "os-configuration-management.png" class OSInventoryManagement(_Compute): _icon = "os-inventory-management.png" class OSPatchManagement(_Compute): _icon = "os-patch-management.png" class Run(_Compute): _icon = "run.png" # Aliases GAE = AppEngine GCE = ComputeEngine GCF = Functions GKE = KubernetesEngine CloudRun = Run ================================================ FILE: diagrams/gcp/database.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _Database(_GCP): _type = "database" _icon_dir = "resources/gcp/database" class Bigtable(_Database): _icon = "bigtable.png" class Datastore(_Database): _icon = "datastore.png" class Firestore(_Database): _icon = "firestore.png" class Memorystore(_Database): _icon = "memorystore.png" class Spanner(_Database): _icon = "spanner.png" class SQL(_Database): _icon = "sql.png" # Aliases BigTable = Bigtable ================================================ FILE: diagrams/gcp/devtools.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _Devtools(_GCP): _type = "devtools" _icon_dir = "resources/gcp/devtools" class Build(_Devtools): _icon = "build.png" class CloudShell(_Devtools): _icon = "cloud-shell.png" class CodeForIntellij(_Devtools): _icon = "code-for-intellij.png" class Code(_Devtools): _icon = "code.png" class ContainerRegistry(_Devtools): _icon = "container-registry.png" class GradleAppEnginePlugin(_Devtools): _icon = "gradle-app-engine-plugin.png" class IdePlugins(_Devtools): _icon = "ide-plugins.png" class MavenAppEnginePlugin(_Devtools): _icon = "maven-app-engine-plugin.png" class Scheduler(_Devtools): _icon = "scheduler.png" class SDK(_Devtools): _icon = "sdk.png" class ServiceCatalog(_Devtools): _icon = "service-catalog.png" class SourceRepositories(_Devtools): _icon = "source-repositories.png" class Tasks(_Devtools): _icon = "tasks.png" class TestLab(_Devtools): _icon = "test-lab.png" class ToolsForEclipse(_Devtools): _icon = "tools-for-eclipse.png" class ToolsForPowershell(_Devtools): _icon = "tools-for-powershell.png" class ToolsForVisualStudio(_Devtools): _icon = "tools-for-visual-studio.png" # Aliases GCR = ContainerRegistry ================================================ FILE: diagrams/gcp/iot.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _Iot(_GCP): _type = "iot" _icon_dir = "resources/gcp/iot" class IotCore(_Iot): _icon = "iot-core.png" # Aliases ================================================ FILE: diagrams/gcp/management.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _Management(_GCP): _type = "management" _icon_dir = "resources/gcp/management" class Billing(_Management): _icon = "billing.png" class Project(_Management): _icon = "project.png" class Quotas(_Management): _icon = "quotas.png" class Support(_Management): _icon = "support.png" # Aliases ================================================ FILE: diagrams/gcp/migration.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _Migration(_GCP): _type = "migration" _icon_dir = "resources/gcp/migration" class MigrateComputeEngine(_Migration): _icon = "migrate-compute-engine.png" class TransferAppliance(_Migration): _icon = "transfer-appliance.png" # Aliases CE = MigrateComputeEngine ================================================ FILE: diagrams/gcp/ml.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _ML(_GCP): _type = "ml" _icon_dir = "resources/gcp/ml" class AdvancedSolutionsLab(_ML): _icon = "advanced-solutions-lab.png" class AIHub(_ML): _icon = "ai-hub.png" class AIPlatformDataLabelingService(_ML): _icon = "ai-platform-data-labeling-service.png" class AIPlatform(_ML): _icon = "ai-platform.png" class AutomlNaturalLanguage(_ML): _icon = "automl-natural-language.png" class AutomlTables(_ML): _icon = "automl-tables.png" class AutomlTranslation(_ML): _icon = "automl-translation.png" class AutomlVideoIntelligence(_ML): _icon = "automl-video-intelligence.png" class AutomlVision(_ML): _icon = "automl-vision.png" class Automl(_ML): _icon = "automl.png" class DialogFlowEnterpriseEdition(_ML): _icon = "dialog-flow-enterprise-edition.png" class InferenceAPI(_ML): _icon = "inference-api.png" class JobsAPI(_ML): _icon = "jobs-api.png" class NaturalLanguageAPI(_ML): _icon = "natural-language-api.png" class RecommendationsAI(_ML): _icon = "recommendations-ai.png" class SpeechToText(_ML): _icon = "speech-to-text.png" class TextToSpeech(_ML): _icon = "text-to-speech.png" class TPU(_ML): _icon = "tpu.png" class TranslationAPI(_ML): _icon = "translation-api.png" class VertexAI(_ML): _icon = "vertex-ai.png" class VideoIntelligenceAPI(_ML): _icon = "video-intelligence-api.png" class VisionAPI(_ML): _icon = "vision-api.png" # Aliases AutoML = Automl NLAPI = NaturalLanguageAPI STT = SpeechToText TTS = TextToSpeech ================================================ FILE: diagrams/gcp/network.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _Network(_GCP): _type = "network" _icon_dir = "resources/gcp/network" class Armor(_Network): _icon = "armor.png" class CDN(_Network): _icon = "cdn.png" class CloudIDS(_Network): _icon = "cloud-ids.png" class DedicatedInterconnect(_Network): _icon = "dedicated-interconnect.png" class DNS(_Network): _icon = "dns.png" class ExternalIpAddresses(_Network): _icon = "external-ip-addresses.png" class FirewallRules(_Network): _icon = "firewall-rules.png" class LoadBalancing(_Network): _icon = "load-balancing.png" class NAT(_Network): _icon = "nat.png" class NetworkConnectivityCenter(_Network): _icon = "network-connectivity-center.png" class NetworkIntelligenceCenter(_Network): _icon = "network-intelligence-center.png" class NetworkSecurity(_Network): _icon = "network-security.png" class NetworkTiers(_Network): _icon = "network-tiers.png" class NetworkTopology(_Network): _icon = "network-topology.png" class Network(_Network): _icon = "network.png" class PartnerInterconnect(_Network): _icon = "partner-interconnect.png" class PremiumNetworkTier(_Network): _icon = "premium-network-tier.png" class PrivateServiceConnect(_Network): _icon = "private-service-connect.png" class Router(_Network): _icon = "router.png" class Routes(_Network): _icon = "routes.png" class ServiceMesh(_Network): _icon = "service-mesh.png" class StandardNetworkTier(_Network): _icon = "standard-network-tier.png" class TrafficDirector(_Network): _icon = "traffic-director.png" class VirtualPrivateCloud(_Network): _icon = "virtual-private-cloud.png" class VPN(_Network): _icon = "vpn.png" # Aliases IDS = CloudIDS PSC = PrivateServiceConnect VPC = VirtualPrivateCloud ================================================ FILE: diagrams/gcp/operations.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _Operations(_GCP): _type = "operations" _icon_dir = "resources/gcp/operations" class Logging(_Operations): _icon = "logging.png" class Monitoring(_Operations): _icon = "monitoring.png" # Aliases ================================================ FILE: diagrams/gcp/security.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _Security(_GCP): _type = "security" _icon_dir = "resources/gcp/security" class AccessContextManager(_Security): _icon = "access-context-manager.png" class AssuredWorkloads(_Security): _icon = "assured-workloads.png" class CertificateAuthorityService(_Security): _icon = "certificate-authority-service.png" class CertificateManager(_Security): _icon = "certificate-manager.png" class CloudAssetInventory(_Security): _icon = "cloud-asset-inventory.png" class Iam(_Security): _icon = "iam.png" class IAP(_Security): _icon = "iap.png" class KeyManagementService(_Security): _icon = "key-management-service.png" class ResourceManager(_Security): _icon = "resource-manager.png" class SecretManager(_Security): _icon = "secret-manager.png" class SecurityCommandCenter(_Security): _icon = "security-command-center.png" class SecurityHealthAdvisor(_Security): _icon = "security-health-advisor.png" class SecurityScanner(_Security): _icon = "security-scanner.png" # Aliases ACM = AccessContextManager KMS = KeyManagementService SCC = SecurityCommandCenter ================================================ FILE: diagrams/gcp/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GCP class _Storage(_GCP): _type = "storage" _icon_dir = "resources/gcp/storage" class Filestore(_Storage): _icon = "filestore.png" class LocalSSD(_Storage): _icon = "local-ssd.png" class PersistentDisk(_Storage): _icon = "persistent-disk.png" class Storage(_Storage): _icon = "storage.png" # Aliases SSD = LocalSSD GCS = Storage ================================================ FILE: diagrams/generic/__init__.py ================================================ """ Generic provides the possibility of load an image to be presented as a node. """ from diagrams import Node class _Generic(Node): provider = "generic" _icon_dir = "resources/generic" fontcolor = "#ffffff" class Generic(_Generic): _icon = "generic.png" ================================================ FILE: diagrams/generic/blank.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Generic class _Blank(_Generic): _type = "blank" _icon_dir = "resources/generic/blank" class Blank(_Blank): _icon = "blank.png" # Aliases ================================================ FILE: diagrams/generic/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Generic class _Compute(_Generic): _type = "compute" _icon_dir = "resources/generic/compute" class Rack(_Compute): _icon = "rack.png" # Aliases ================================================ FILE: diagrams/generic/database.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Generic class _Database(_Generic): _type = "database" _icon_dir = "resources/generic/database" class SQL(_Database): _icon = "sql.png" # Aliases ================================================ FILE: diagrams/generic/device.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Generic class _Device(_Generic): _type = "device" _icon_dir = "resources/generic/device" class Mobile(_Device): _icon = "mobile.png" class Tablet(_Device): _icon = "tablet.png" # Aliases ================================================ FILE: diagrams/generic/network.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Generic class _Network(_Generic): _type = "network" _icon_dir = "resources/generic/network" class Firewall(_Network): _icon = "firewall.png" class Router(_Network): _icon = "router.png" class Subnet(_Network): _icon = "subnet.png" class Switch(_Network): _icon = "switch.png" class VPN(_Network): _icon = "vpn.png" # Aliases ================================================ FILE: diagrams/generic/os.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Generic class _Os(_Generic): _type = "os" _icon_dir = "resources/generic/os" class Android(_Os): _icon = "android.png" class Centos(_Os): _icon = "centos.png" class Debian(_Os): _icon = "debian.png" class IOS(_Os): _icon = "ios.png" class LinuxGeneral(_Os): _icon = "linux-general.png" class Raspbian(_Os): _icon = "raspbian.png" class RedHat(_Os): _icon = "red-hat.png" class Suse(_Os): _icon = "suse.png" class Ubuntu(_Os): _icon = "ubuntu.png" class Windows(_Os): _icon = "windows.png" # Aliases ================================================ FILE: diagrams/generic/place.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Generic class _Place(_Generic): _type = "place" _icon_dir = "resources/generic/place" class Datacenter(_Place): _icon = "datacenter.png" # Aliases ================================================ FILE: diagrams/generic/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Generic class _Storage(_Generic): _type = "storage" _icon_dir = "resources/generic/storage" class Storage(_Storage): _icon = "storage.png" # Aliases ================================================ FILE: diagrams/generic/virtualization.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Generic class _Virtualization(_Generic): _type = "virtualization" _icon_dir = "resources/generic/virtualization" class Qemu(_Virtualization): _icon = "qemu.png" class Virtualbox(_Virtualization): _icon = "virtualbox.png" class Vmware(_Virtualization): _icon = "vmware.png" class XEN(_Virtualization): _icon = "xen.png" # Aliases ================================================ FILE: diagrams/gis/__init__.py ================================================ """ GIS provides a set of services for Geographic Information Systems provider. """ from diagrams import Node class _GIS(Node): _provider = "gis" _icon_dir = "resources/gis" fontcolor = "#2d3436" ================================================ FILE: diagrams/gis/cli.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Cli(_GIS): _type = "cli" _icon_dir = "resources/gis/cli" class Gdal(_Cli): _icon = "gdal.png" class Imposm(_Cli): _icon = "imposm.png" class Lastools(_Cli): _icon = "lastools.png" class Mapnik(_Cli): _icon = "mapnik.png" class Mdal(_Cli): _icon = "mdal.png" class Pdal(_Cli): _icon = "pdal.png" # Aliases ================================================ FILE: diagrams/gis/cplusplus.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Cplusplus(_GIS): _type = "cplusplus" _icon_dir = "resources/gis/cplusplus" class Mapnik(_Cplusplus): _icon = "mapnik.png" # Aliases ================================================ FILE: diagrams/gis/data.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Data(_GIS): _type = "data" _icon_dir = "resources/gis/data" class BAN(_Data): _icon = "ban.png" class Here(_Data): _icon = "here.png" class IGN(_Data): _icon = "ign.png" class Openstreetmap(_Data): _icon = "openstreetmap.png" class Overturemaps(_Data): _icon = "overturemaps.png" # Aliases ================================================ FILE: diagrams/gis/database.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Database(_GIS): _type = "database" _icon_dir = "resources/gis/database" class Postgis(_Database): _icon = "postgis.png" # Aliases ================================================ FILE: diagrams/gis/desktop.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Desktop(_GIS): _type = "desktop" _icon_dir = "resources/gis/desktop" class Maptunik(_Desktop): _icon = "maptunik.png" class QGIS(_Desktop): _icon = "qgis.png" # Aliases ================================================ FILE: diagrams/gis/format.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Format(_GIS): _type = "format" _icon_dir = "resources/gis/format" class Geopackage(_Format): _icon = "geopackage.png" class Geoparquet(_Format): _icon = "geoparquet.png" # Aliases ================================================ FILE: diagrams/gis/geocoding.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Geocoding(_GIS): _type = "geocoding" _icon_dir = "resources/gis/geocoding" class Addok(_Geocoding): _icon = "addok.png" class Gisgraphy(_Geocoding): _icon = "gisgraphy.png" class Nominatim(_Geocoding): _icon = "nominatim.png" class Pelias(_Geocoding): _icon = "pelias.png" # Aliases ================================================ FILE: diagrams/gis/georchestra.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Georchestra(_GIS): _type = "georchestra" _icon_dir = "resources/gis/georchestra" # Aliases ================================================ FILE: diagrams/gis/java.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Java(_GIS): _type = "java" _icon_dir = "resources/gis/java" class Geotools(_Java): _icon = "geotools.png" # Aliases ================================================ FILE: diagrams/gis/javascript.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Javascript(_GIS): _type = "javascript" _icon_dir = "resources/gis/javascript" class Cesium(_Javascript): _icon = "cesium.png" class Geostyler(_Javascript): _icon = "geostyler.png" class Keplerjs(_Javascript): _icon = "keplerjs.png" class Leaflet(_Javascript): _icon = "leaflet.png" class Maplibre(_Javascript): _icon = "maplibre.png" class OlExt(_Javascript): _icon = "ol-ext.png" class Openlayers(_Javascript): _icon = "openlayers.png" class Turfjs(_Javascript): _icon = "turfjs.png" # Aliases ================================================ FILE: diagrams/gis/mobile.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Mobile(_GIS): _type = "mobile" _icon_dir = "resources/gis/mobile" class Mergin(_Mobile): _icon = "mergin.png" class Qfield(_Mobile): _icon = "qfield.png" class Smash(_Mobile): _icon = "smash.png" # Aliases ================================================ FILE: diagrams/gis/ogc.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _OGC(_GIS): _type = "ogc" _icon_dir = "resources/gis/ogc" class OGC(_OGC): _icon = "ogc.png" class WFS(_OGC): _icon = "wfs.png" class WMS(_OGC): _icon = "wms.png" # Aliases ================================================ FILE: diagrams/gis/organization.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Organization(_GIS): _type = "organization" _icon_dir = "resources/gis/organization" class Osgeo(_Organization): _icon = "osgeo.png" # Aliases ================================================ FILE: diagrams/gis/python.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Python(_GIS): _type = "python" _icon_dir = "resources/gis/python" class Geopandas(_Python): _icon = "geopandas.png" class Pysal(_Python): _icon = "pysal.png" # Aliases ================================================ FILE: diagrams/gis/routing.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Routing(_GIS): _type = "routing" _icon_dir = "resources/gis/routing" class Graphhopper(_Routing): _icon = "graphhopper.png" class Osrm(_Routing): _icon = "osrm.png" class Pgrouting(_Routing): _icon = "pgrouting.png" class Valhalla(_Routing): _icon = "valhalla.png" # Aliases ================================================ FILE: diagrams/gis/server.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Server(_GIS): _type = "server" _icon_dir = "resources/gis/server" class Actinia(_Server): _icon = "actinia.png" class Baremaps(_Server): _icon = "baremaps.png" class Deegree(_Server): _icon = "deegree.png" class G3WSuite(_Server): _icon = "g3w-suite.png" class Geohealthcheck(_Server): _icon = "geohealthcheck.png" class Geomapfish(_Server): _icon = "geomapfish.png" class Geomesa(_Server): _icon = "geomesa.png" class Geonetwork(_Server): _icon = "geonetwork.png" class Geonode(_Server): _icon = "geonode.png" class Georchestra(_Server): _icon = "georchestra.png" class Geoserver(_Server): _icon = "geoserver.png" class Geowebcache(_Server): _icon = "geowebcache.png" class Kepler(_Server): _icon = "kepler.png" class Mapproxy(_Server): _icon = "mapproxy.png" class Mapserver(_Server): _icon = "mapserver.png" class Mapstore(_Server): _icon = "mapstore.png" class Mviewer(_Server): _icon = "mviewer.png" class Pg_Tileserv(_Server): _icon = "pg_tileserv.png" class Pycsw(_Server): _icon = "pycsw.png" class Pygeoapi(_Server): _icon = "pygeoapi.png" class QGISServer(_Server): _icon = "qgis-server.png" class Zooproject(_Server): _icon = "zooproject.png" # Aliases ================================================ FILE: diagrams/gis/toolkit.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _GIS class _Toolkit(_GIS): _type = "toolkit" _icon_dir = "resources/gis/toolkit" # Aliases ================================================ FILE: diagrams/ibm/__init__.py ================================================ """ IBM provides a set of services for IBM Cloud provider. """ from diagrams import Node class _IBM(Node): _provider = "ibm" _icon_dir = "resources/ibm" fontcolor = "#ffffff" class IBM(_IBM): _icon = "ibm.png" ================================================ FILE: diagrams/ibm/analytics.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Analytics(_IBM): _type = "analytics" _icon_dir = "resources/ibm/analytics" class Analytics(_Analytics): _icon = "analytics.png" class DataIntegration(_Analytics): _icon = "data-integration.png" class DataRepositories(_Analytics): _icon = "data-repositories.png" class DeviceAnalytics(_Analytics): _icon = "device-analytics.png" class StreamingComputing(_Analytics): _icon = "streaming-computing.png" # Aliases ================================================ FILE: diagrams/ibm/applications.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Applications(_IBM): _type = "applications" _icon_dir = "resources/ibm/applications" class ActionableInsight(_Applications): _icon = "actionable-insight.png" class Annotate(_Applications): _icon = "annotate.png" class ApiDeveloperPortal(_Applications): _icon = "api-developer-portal.png" class ApiPolyglotRuntimes(_Applications): _icon = "api-polyglot-runtimes.png" class AppServer(_Applications): _icon = "app-server.png" class ApplicationLogic(_Applications): _icon = "application-logic.png" class EnterpriseApplications(_Applications): _icon = "enterprise-applications.png" class Index(_Applications): _icon = "index.png" class IotApplication(_Applications): _icon = "iot-application.png" class Microservice(_Applications): _icon = "microservice.png" class MobileApp(_Applications): _icon = "mobile-app.png" class Ontology(_Applications): _icon = "ontology.png" class OpenSourceTools(_Applications): _icon = "open-source-tools.png" class RuntimeServices(_Applications): _icon = "runtime-services.png" class SaasApplications(_Applications): _icon = "saas-applications.png" class ServiceBroker(_Applications): _icon = "service-broker.png" class SpeechToText(_Applications): _icon = "speech-to-text.png" class VisualRecognition(_Applications): _icon = "visual-recognition.png" class Visualization(_Applications): _icon = "visualization.png" # Aliases ================================================ FILE: diagrams/ibm/blockchain.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Blockchain(_IBM): _type = "blockchain" _icon_dir = "resources/ibm/blockchain" class BlockchainDeveloper(_Blockchain): _icon = "blockchain-developer.png" class Blockchain(_Blockchain): _icon = "blockchain.png" class CertificateAuthority(_Blockchain): _icon = "certificate-authority.png" class ClientApplication(_Blockchain): _icon = "client-application.png" class Communication(_Blockchain): _icon = "communication.png" class Consensus(_Blockchain): _icon = "consensus.png" class EventListener(_Blockchain): _icon = "event-listener.png" class Event(_Blockchain): _icon = "event.png" class ExistingEnterpriseSystems(_Blockchain): _icon = "existing-enterprise-systems.png" class HyperledgerFabric(_Blockchain): _icon = "hyperledger-fabric.png" class KeyManagement(_Blockchain): _icon = "key-management.png" class Ledger(_Blockchain): _icon = "ledger.png" class MembershipServicesProviderApi(_Blockchain): _icon = "membership-services-provider-api.png" class Membership(_Blockchain): _icon = "membership.png" class MessageBus(_Blockchain): _icon = "message-bus.png" class Node(_Blockchain): _icon = "node.png" class Services(_Blockchain): _icon = "services.png" class SmartContract(_Blockchain): _icon = "smart-contract.png" class TransactionManager(_Blockchain): _icon = "transaction-manager.png" class Wallet(_Blockchain): _icon = "wallet.png" # Aliases ================================================ FILE: diagrams/ibm/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Compute(_IBM): _type = "compute" _icon_dir = "resources/ibm/compute" class BareMetalServer(_Compute): _icon = "bare-metal-server.png" class ImageService(_Compute): _icon = "image-service.png" class Instance(_Compute): _icon = "instance.png" class Key(_Compute): _icon = "key.png" class PowerInstance(_Compute): _icon = "power-instance.png" # Aliases ================================================ FILE: diagrams/ibm/data.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Data(_IBM): _type = "data" _icon_dir = "resources/ibm/data" class Caches(_Data): _icon = "caches.png" class Cloud(_Data): _icon = "cloud.png" class ConversationTrainedDeployed(_Data): _icon = "conversation-trained-deployed.png" class DataServices(_Data): _icon = "data-services.png" class DataSources(_Data): _icon = "data-sources.png" class DeviceIdentityService(_Data): _icon = "device-identity-service.png" class DeviceRegistry(_Data): _icon = "device-registry.png" class EnterpriseData(_Data): _icon = "enterprise-data.png" class EnterpriseUserDirectory(_Data): _icon = "enterprise-user-directory.png" class FileRepository(_Data): _icon = "file-repository.png" class GroundTruth(_Data): _icon = "ground-truth.png" class Model(_Data): _icon = "model.png" class TmsDataInterface(_Data): _icon = "tms-data-interface.png" # Aliases ================================================ FILE: diagrams/ibm/devops.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Devops(_IBM): _type = "devops" _icon_dir = "resources/ibm/devops" class ArtifactManagement(_Devops): _icon = "artifact-management.png" class BuildTest(_Devops): _icon = "build-test.png" class CodeEditor(_Devops): _icon = "code-editor.png" class CollaborativeDevelopment(_Devops): _icon = "collaborative-development.png" class ConfigurationManagement(_Devops): _icon = "configuration-management.png" class ContinuousDeploy(_Devops): _icon = "continuous-deploy.png" class ContinuousTesting(_Devops): _icon = "continuous-testing.png" class Devops(_Devops): _icon = "devops.png" class Provision(_Devops): _icon = "provision.png" class ReleaseManagement(_Devops): _icon = "release-management.png" # Aliases ================================================ FILE: diagrams/ibm/general.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _General(_IBM): _type = "general" _icon_dir = "resources/ibm/general" class CloudMessaging(_General): _icon = "cloud-messaging.png" class CloudServices(_General): _icon = "cloud-services.png" class Cloudant(_General): _icon = "cloudant.png" class CognitiveServices(_General): _icon = "cognitive-services.png" class DataSecurity(_General): _icon = "data-security.png" class Enterprise(_General): _icon = "enterprise.png" class GovernanceRiskCompliance(_General): _icon = "governance-risk-compliance.png" class IBMContainers(_General): _icon = "ibm-containers.png" class IBMPublicCloud(_General): _icon = "ibm-public-cloud.png" class IdentityAccessManagement(_General): _icon = "identity-access-management.png" class IdentityProvider(_General): _icon = "identity-provider.png" class InfrastructureSecurity(_General): _icon = "infrastructure-security.png" class Internet(_General): _icon = "internet.png" class IotCloud(_General): _icon = "iot-cloud.png" class MicroservicesApplication(_General): _icon = "microservices-application.png" class MicroservicesMesh(_General): _icon = "microservices-mesh.png" class MonitoringLogging(_General): _icon = "monitoring-logging.png" class Monitoring(_General): _icon = "monitoring.png" class ObjectStorage(_General): _icon = "object-storage.png" class OfflineCapabilities(_General): _icon = "offline-capabilities.png" class Openwhisk(_General): _icon = "openwhisk.png" class PeerCloud(_General): _icon = "peer-cloud.png" class RetrieveRank(_General): _icon = "retrieve-rank.png" class Scalable(_General): _icon = "scalable.png" class ServiceDiscoveryConfiguration(_General): _icon = "service-discovery-configuration.png" class TextToSpeech(_General): _icon = "text-to-speech.png" class TransformationConnectivity(_General): _icon = "transformation-connectivity.png" # Aliases ================================================ FILE: diagrams/ibm/infrastructure.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Infrastructure(_IBM): _type = "infrastructure" _icon_dir = "resources/ibm/infrastructure" class Channels(_Infrastructure): _icon = "channels.png" class CloudMessaging(_Infrastructure): _icon = "cloud-messaging.png" class Dashboard(_Infrastructure): _icon = "dashboard.png" class Diagnostics(_Infrastructure): _icon = "diagnostics.png" class EdgeServices(_Infrastructure): _icon = "edge-services.png" class EnterpriseMessaging(_Infrastructure): _icon = "enterprise-messaging.png" class EventFeed(_Infrastructure): _icon = "event-feed.png" class InfrastructureServices(_Infrastructure): _icon = "infrastructure-services.png" class InterserviceCommunication(_Infrastructure): _icon = "interservice-communication.png" class LoadBalancingRouting(_Infrastructure): _icon = "load-balancing-routing.png" class MicroservicesMesh(_Infrastructure): _icon = "microservices-mesh.png" class MobileBackend(_Infrastructure): _icon = "mobile-backend.png" class MobileProviderNetwork(_Infrastructure): _icon = "mobile-provider-network.png" class MonitoringLogging(_Infrastructure): _icon = "monitoring-logging.png" class Monitoring(_Infrastructure): _icon = "monitoring.png" class PeerServices(_Infrastructure): _icon = "peer-services.png" class ServiceDiscoveryConfiguration(_Infrastructure): _icon = "service-discovery-configuration.png" class TransformationConnectivity(_Infrastructure): _icon = "transformation-connectivity.png" # Aliases ================================================ FILE: diagrams/ibm/management.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Management(_IBM): _type = "management" _icon_dir = "resources/ibm/management" class AlertNotification(_Management): _icon = "alert-notification.png" class ApiManagement(_Management): _icon = "api-management.png" class CloudManagement(_Management): _icon = "cloud-management.png" class ClusterManagement(_Management): _icon = "cluster-management.png" class ContentManagement(_Management): _icon = "content-management.png" class DataServices(_Management): _icon = "data-services.png" class DeviceManagement(_Management): _icon = "device-management.png" class InformationGovernance(_Management): _icon = "information-governance.png" class ItServiceManagement(_Management): _icon = "it-service-management.png" class Management(_Management): _icon = "management.png" class MonitoringMetrics(_Management): _icon = "monitoring-metrics.png" class ProcessManagement(_Management): _icon = "process-management.png" class ProviderCloudPortalService(_Management): _icon = "provider-cloud-portal-service.png" class PushNotifications(_Management): _icon = "push-notifications.png" class ServiceManagementTools(_Management): _icon = "service-management-tools.png" # Aliases ================================================ FILE: diagrams/ibm/network.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Network(_IBM): _type = "network" _icon_dir = "resources/ibm/network" class Bridge(_Network): _icon = "bridge.png" class DirectLink(_Network): _icon = "direct-link.png" class Enterprise(_Network): _icon = "enterprise.png" class Firewall(_Network): _icon = "firewall.png" class FloatingIp(_Network): _icon = "floating-ip.png" class Gateway(_Network): _icon = "gateway.png" class InternetServices(_Network): _icon = "internet-services.png" class LoadBalancerListener(_Network): _icon = "load-balancer-listener.png" class LoadBalancerPool(_Network): _icon = "load-balancer-pool.png" class LoadBalancer(_Network): _icon = "load-balancer.png" class LoadBalancingRouting(_Network): _icon = "load-balancing-routing.png" class PublicGateway(_Network): _icon = "public-gateway.png" class Region(_Network): _icon = "region.png" class Router(_Network): _icon = "router.png" class Rules(_Network): _icon = "rules.png" class Subnet(_Network): _icon = "subnet.png" class TransitGateway(_Network): _icon = "transit-gateway.png" class Vpc(_Network): _icon = "vpc.png" class VpnConnection(_Network): _icon = "vpn-connection.png" class VpnGateway(_Network): _icon = "vpn-gateway.png" class VpnPolicy(_Network): _icon = "vpn-policy.png" # Aliases ================================================ FILE: diagrams/ibm/security.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Security(_IBM): _type = "security" _icon_dir = "resources/ibm/security" class ApiSecurity(_Security): _icon = "api-security.png" class BlockchainSecurityService(_Security): _icon = "blockchain-security-service.png" class DataSecurity(_Security): _icon = "data-security.png" class Firewall(_Security): _icon = "firewall.png" class Gateway(_Security): _icon = "gateway.png" class GovernanceRiskCompliance(_Security): _icon = "governance-risk-compliance.png" class IdentityAccessManagement(_Security): _icon = "identity-access-management.png" class IdentityProvider(_Security): _icon = "identity-provider.png" class InfrastructureSecurity(_Security): _icon = "infrastructure-security.png" class PhysicalSecurity(_Security): _icon = "physical-security.png" class SecurityMonitoringIntelligence(_Security): _icon = "security-monitoring-intelligence.png" class SecurityServices(_Security): _icon = "security-services.png" class TrustendComputing(_Security): _icon = "trustend-computing.png" class Vpn(_Security): _icon = "vpn.png" # Aliases ================================================ FILE: diagrams/ibm/social.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Social(_IBM): _type = "social" _icon_dir = "resources/ibm/social" class Communities(_Social): _icon = "communities.png" class FileSync(_Social): _icon = "file-sync.png" class LiveCollaboration(_Social): _icon = "live-collaboration.png" class Messaging(_Social): _icon = "messaging.png" class Networking(_Social): _icon = "networking.png" # Aliases ================================================ FILE: diagrams/ibm/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _Storage(_IBM): _type = "storage" _icon_dir = "resources/ibm/storage" class BlockStorage(_Storage): _icon = "block-storage.png" class ObjectStorage(_Storage): _icon = "object-storage.png" # Aliases ================================================ FILE: diagrams/ibm/user.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _IBM class _User(_IBM): _type = "user" _icon_dir = "resources/ibm/user" class Browser(_User): _icon = "browser.png" class Device(_User): _icon = "device.png" class IntegratedDigitalExperiences(_User): _icon = "integrated-digital-experiences.png" class PhysicalEntity(_User): _icon = "physical-entity.png" class Sensor(_User): _icon = "sensor.png" class User(_User): _icon = "user.png" # Aliases ================================================ FILE: diagrams/k8s/__init__.py ================================================ """ K8S provides a set of services for Kubernetes. """ from diagrams import Node class _K8S(Node): _provider = "k8s" _icon_dir = "resources/k8s" fontcolor = "#2d3436" class K8S(_K8S): _icon = "k8s.png" ================================================ FILE: diagrams/k8s/chaos.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Chaos(_K8S): _type = "chaos" _icon_dir = "resources/k8s/chaos" class ChaosMesh(_Chaos): _icon = "chaos-mesh.png" class LitmusChaos(_Chaos): _icon = "litmus-chaos.png" # Aliases ================================================ FILE: diagrams/k8s/clusterconfig.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Clusterconfig(_K8S): _type = "clusterconfig" _icon_dir = "resources/k8s/clusterconfig" class HPA(_Clusterconfig): _icon = "hpa.png" class Limits(_Clusterconfig): _icon = "limits.png" class Quota(_Clusterconfig): _icon = "quota.png" # Aliases LimitRange = Limits HorizontalPodAutoscaler = HPA ================================================ FILE: diagrams/k8s/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Compute(_K8S): _type = "compute" _icon_dir = "resources/k8s/compute" class Cronjob(_Compute): _icon = "cronjob.png" class Deploy(_Compute): _icon = "deploy.png" class DS(_Compute): _icon = "ds.png" class Job(_Compute): _icon = "job.png" class Pod(_Compute): _icon = "pod.png" class RS(_Compute): _icon = "rs.png" class STS(_Compute): _icon = "sts.png" # Aliases Deployment = Deploy DaemonSet = DS ReplicaSet = RS StatefulSet = STS ================================================ FILE: diagrams/k8s/controlplane.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Controlplane(_K8S): _type = "controlplane" _icon_dir = "resources/k8s/controlplane" class API(_Controlplane): _icon = "api.png" class CCM(_Controlplane): _icon = "c-c-m.png" class CM(_Controlplane): _icon = "c-m.png" class KProxy(_Controlplane): _icon = "k-proxy.png" class Kubelet(_Controlplane): _icon = "kubelet.png" class Sched(_Controlplane): _icon = "sched.png" # Aliases APIServer = API ControllerManager = CM KubeProxy = KProxy Scheduler = Sched ================================================ FILE: diagrams/k8s/ecosystem.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Ecosystem(_K8S): _type = "ecosystem" _icon_dir = "resources/k8s/ecosystem" class ExternalDns(_Ecosystem): _icon = "external-dns.png" class Helm(_Ecosystem): _icon = "helm.png" class Krew(_Ecosystem): _icon = "krew.png" class Kustomize(_Ecosystem): _icon = "kustomize.png" # Aliases ================================================ FILE: diagrams/k8s/group.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Group(_K8S): _type = "group" _icon_dir = "resources/k8s/group" class NS(_Group): _icon = "ns.png" # Aliases Namespace = NS ================================================ FILE: diagrams/k8s/infra.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Infra(_K8S): _type = "infra" _icon_dir = "resources/k8s/infra" class ETCD(_Infra): _icon = "etcd.png" class Master(_Infra): _icon = "master.png" class Node(_Infra): _icon = "node.png" # Aliases ================================================ FILE: diagrams/k8s/network.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Network(_K8S): _type = "network" _icon_dir = "resources/k8s/network" class Ep(_Network): _icon = "ep.png" class Ing(_Network): _icon = "ing.png" class Netpol(_Network): _icon = "netpol.png" class SVC(_Network): _icon = "svc.png" # Aliases Endpoint = Ep Ingress = Ing NetworkPolicy = Netpol Service = SVC ================================================ FILE: diagrams/k8s/others.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Others(_K8S): _type = "others" _icon_dir = "resources/k8s/others" class CRD(_Others): _icon = "crd.png" class PSP(_Others): _icon = "psp.png" # Aliases ================================================ FILE: diagrams/k8s/podconfig.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Podconfig(_K8S): _type = "podconfig" _icon_dir = "resources/k8s/podconfig" class CM(_Podconfig): _icon = "cm.png" class Secret(_Podconfig): _icon = "secret.png" # Aliases ConfigMap = CM ================================================ FILE: diagrams/k8s/rbac.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Rbac(_K8S): _type = "rbac" _icon_dir = "resources/k8s/rbac" class CRole(_Rbac): _icon = "c-role.png" class CRB(_Rbac): _icon = "crb.png" class Group(_Rbac): _icon = "group.png" class RB(_Rbac): _icon = "rb.png" class Role(_Rbac): _icon = "role.png" class SA(_Rbac): _icon = "sa.png" class User(_Rbac): _icon = "user.png" # Aliases ClusterRole = CRole ClusterRoleBinding = CRB RoleBinding = RB ServiceAccount = SA ================================================ FILE: diagrams/k8s/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _K8S class _Storage(_K8S): _type = "storage" _icon_dir = "resources/k8s/storage" class PV(_Storage): _icon = "pv.png" class PVC(_Storage): _icon = "pvc.png" class SC(_Storage): _icon = "sc.png" class Vol(_Storage): _icon = "vol.png" # Aliases PersistentVolume = PV PersistentVolumeClaim = PVC StorageClass = SC Volume = Vol ================================================ FILE: diagrams/oci/__init__.py ================================================ """ OCI provides a set of services for Oracle Cloud Infrastructure provider. """ from diagrams import Node class _OCI(Node): _provider = "oci" _icon_dir = "resources/oci" fontcolor = "#312D2A" class OCI(_OCI): _icon = "oci.png" ================================================ FILE: diagrams/oci/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OCI class _Compute(_OCI): _type = "compute" _icon_dir = "resources/oci/compute" class AutoscaleWhite(_Compute): _icon = "autoscale-white.png" class Autoscale(_Compute): _icon = "autoscale.png" class BMWhite(_Compute): _icon = "bm-white.png" class BM(_Compute): _icon = "bm.png" class ContainerWhite(_Compute): _icon = "container-white.png" class Container(_Compute): _icon = "container.png" class FunctionsWhite(_Compute): _icon = "functions-white.png" class Functions(_Compute): _icon = "functions.png" class InstancePoolsWhite(_Compute): _icon = "instance-pools-white.png" class InstancePools(_Compute): _icon = "instance-pools.png" class OCIRWhite(_Compute): _icon = "ocir-white.png" class OCIR(_Compute): _icon = "ocir.png" class OKEWhite(_Compute): _icon = "oke-white.png" class OKE(_Compute): _icon = "oke.png" class VMWhite(_Compute): _icon = "vm-white.png" class VM(_Compute): _icon = "vm.png" # Aliases VirtualMachine = VM VirtualMachineWhite = VMWhite BareMetal = BM BareMetalWhite = BMWhite OCIRegistry = OCIR OCIRegistryWhite = OCIRWhite ContainerEngine = OKE ContainerEngineWhite = OKEWhite ================================================ FILE: diagrams/oci/connectivity.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OCI class _Connectivity(_OCI): _type = "connectivity" _icon_dir = "resources/oci/connectivity" class BackboneWhite(_Connectivity): _icon = "backbone-white.png" class Backbone(_Connectivity): _icon = "backbone.png" class CDNWhite(_Connectivity): _icon = "cdn-white.png" class CDN(_Connectivity): _icon = "cdn.png" class CustomerDatacenter(_Connectivity): _icon = "customer-datacenter.png" class CustomerDatacntrWhite(_Connectivity): _icon = "customer-datacntr-white.png" class CustomerPremisesWhite(_Connectivity): _icon = "customer-premises-white.png" class CustomerPremises(_Connectivity): _icon = "customer-premises.png" class DisconnectedRegionsWhite(_Connectivity): _icon = "disconnected-regions-white.png" class DisconnectedRegions(_Connectivity): _icon = "disconnected-regions.png" class DNSWhite(_Connectivity): _icon = "dns-white.png" class DNS(_Connectivity): _icon = "dns.png" class FastConnectWhite(_Connectivity): _icon = "fast-connect-white.png" class FastConnect(_Connectivity): _icon = "fast-connect.png" class NATGatewayWhite(_Connectivity): _icon = "nat-gateway-white.png" class NATGateway(_Connectivity): _icon = "nat-gateway.png" class VPNWhite(_Connectivity): _icon = "vpn-white.png" class VPN(_Connectivity): _icon = "vpn.png" # Aliases ================================================ FILE: diagrams/oci/database.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OCI class _Database(_OCI): _type = "database" _icon_dir = "resources/oci/database" class AutonomousWhite(_Database): _icon = "autonomous-white.png" class Autonomous(_Database): _icon = "autonomous.png" class BigdataServiceWhite(_Database): _icon = "bigdata-service-white.png" class BigdataService(_Database): _icon = "bigdata-service.png" class DatabaseServiceWhite(_Database): _icon = "database-service-white.png" class DatabaseService(_Database): _icon = "database-service.png" class DataflowApacheWhite(_Database): _icon = "dataflow-apache-white.png" class DataflowApache(_Database): _icon = "dataflow-apache.png" class DcatWhite(_Database): _icon = "dcat-white.png" class Dcat(_Database): _icon = "dcat.png" class DisWhite(_Database): _icon = "dis-white.png" class Dis(_Database): _icon = "dis.png" class DMSWhite(_Database): _icon = "dms-white.png" class DMS(_Database): _icon = "dms.png" class ScienceWhite(_Database): _icon = "science-white.png" class Science(_Database): _icon = "science.png" class StreamWhite(_Database): _icon = "stream-white.png" class Stream(_Database): _icon = "stream.png" # Aliases ADB = Autonomous ADBWhite = AutonomousWhite DBService = DatabaseService DBServiceWhite = DatabaseServiceWhite ================================================ FILE: diagrams/oci/devops.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OCI class _Devops(_OCI): _type = "devops" _icon_dir = "resources/oci/devops" class APIGatewayWhite(_Devops): _icon = "api-gateway-white.png" class APIGateway(_Devops): _icon = "api-gateway.png" class APIServiceWhite(_Devops): _icon = "api-service-white.png" class APIService(_Devops): _icon = "api-service.png" class ResourceMgmtWhite(_Devops): _icon = "resource-mgmt-white.png" class ResourceMgmt(_Devops): _icon = "resource-mgmt.png" # Aliases ================================================ FILE: diagrams/oci/governance.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OCI class _Governance(_OCI): _type = "governance" _icon_dir = "resources/oci/governance" class AuditWhite(_Governance): _icon = "audit-white.png" class Audit(_Governance): _icon = "audit.png" class CompartmentsWhite(_Governance): _icon = "compartments-white.png" class Compartments(_Governance): _icon = "compartments.png" class GroupsWhite(_Governance): _icon = "groups-white.png" class Groups(_Governance): _icon = "groups.png" class LoggingWhite(_Governance): _icon = "logging-white.png" class Logging(_Governance): _icon = "logging.png" class OCIDWhite(_Governance): _icon = "ocid-white.png" class OCID(_Governance): _icon = "ocid.png" class PoliciesWhite(_Governance): _icon = "policies-white.png" class Policies(_Governance): _icon = "policies.png" class TaggingWhite(_Governance): _icon = "tagging-white.png" class Tagging(_Governance): _icon = "tagging.png" # Aliases ================================================ FILE: diagrams/oci/monitoring.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OCI class _Monitoring(_OCI): _type = "monitoring" _icon_dir = "resources/oci/monitoring" class AlarmWhite(_Monitoring): _icon = "alarm-white.png" class Alarm(_Monitoring): _icon = "alarm.png" class EmailWhite(_Monitoring): _icon = "email-white.png" class Email(_Monitoring): _icon = "email.png" class EventsWhite(_Monitoring): _icon = "events-white.png" class Events(_Monitoring): _icon = "events.png" class HealthCheckWhite(_Monitoring): _icon = "health-check-white.png" class HealthCheck(_Monitoring): _icon = "health-check.png" class NotificationsWhite(_Monitoring): _icon = "notifications-white.png" class Notifications(_Monitoring): _icon = "notifications.png" class QueueWhite(_Monitoring): _icon = "queue-white.png" class Queue(_Monitoring): _icon = "queue.png" class SearchWhite(_Monitoring): _icon = "search-white.png" class Search(_Monitoring): _icon = "search.png" class TelemetryWhite(_Monitoring): _icon = "telemetry-white.png" class Telemetry(_Monitoring): _icon = "telemetry.png" class WorkflowWhite(_Monitoring): _icon = "workflow-white.png" class Workflow(_Monitoring): _icon = "workflow.png" # Aliases ================================================ FILE: diagrams/oci/network.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OCI class _Network(_OCI): _type = "network" _icon_dir = "resources/oci/network" class DrgWhite(_Network): _icon = "drg-white.png" class Drg(_Network): _icon = "drg.png" class FirewallWhite(_Network): _icon = "firewall-white.png" class Firewall(_Network): _icon = "firewall.png" class InternetGatewayWhite(_Network): _icon = "internet-gateway-white.png" class InternetGateway(_Network): _icon = "internet-gateway.png" class LoadBalancerWhite(_Network): _icon = "load-balancer-white.png" class LoadBalancer(_Network): _icon = "load-balancer.png" class RouteTableWhite(_Network): _icon = "route-table-white.png" class RouteTable(_Network): _icon = "route-table.png" class SecurityListsWhite(_Network): _icon = "security-lists-white.png" class SecurityLists(_Network): _icon = "security-lists.png" class ServiceGatewayWhite(_Network): _icon = "service-gateway-white.png" class ServiceGateway(_Network): _icon = "service-gateway.png" class VcnWhite(_Network): _icon = "vcn-white.png" class Vcn(_Network): _icon = "vcn.png" # Aliases ================================================ FILE: diagrams/oci/security.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OCI class _Security(_OCI): _type = "security" _icon_dir = "resources/oci/security" class CloudGuardWhite(_Security): _icon = "cloud-guard-white.png" class CloudGuard(_Security): _icon = "cloud-guard.png" class DDOSWhite(_Security): _icon = "ddos-white.png" class DDOS(_Security): _icon = "ddos.png" class EncryptionWhite(_Security): _icon = "encryption-white.png" class Encryption(_Security): _icon = "encryption.png" class IDAccessWhite(_Security): _icon = "id-access-white.png" class IDAccess(_Security): _icon = "id-access.png" class KeyManagementWhite(_Security): _icon = "key-management-white.png" class KeyManagement(_Security): _icon = "key-management.png" class MaxSecurityZoneWhite(_Security): _icon = "max-security-zone-white.png" class MaxSecurityZone(_Security): _icon = "max-security-zone.png" class VaultWhite(_Security): _icon = "vault-white.png" class Vault(_Security): _icon = "vault.png" class WAFWhite(_Security): _icon = "waf-white.png" class WAF(_Security): _icon = "waf.png" # Aliases ================================================ FILE: diagrams/oci/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OCI class _Storage(_OCI): _type = "storage" _icon_dir = "resources/oci/storage" class BackupRestoreWhite(_Storage): _icon = "backup-restore-white.png" class BackupRestore(_Storage): _icon = "backup-restore.png" class BlockStorageCloneWhite(_Storage): _icon = "block-storage-clone-white.png" class BlockStorageClone(_Storage): _icon = "block-storage-clone.png" class BlockStorageWhite(_Storage): _icon = "block-storage-white.png" class BlockStorage(_Storage): _icon = "block-storage.png" class BucketsWhite(_Storage): _icon = "buckets-white.png" class Buckets(_Storage): _icon = "buckets.png" class DataTransferWhite(_Storage): _icon = "data-transfer-white.png" class DataTransfer(_Storage): _icon = "data-transfer.png" class ElasticPerformanceWhite(_Storage): _icon = "elastic-performance-white.png" class ElasticPerformance(_Storage): _icon = "elastic-performance.png" class FileStorageWhite(_Storage): _icon = "file-storage-white.png" class FileStorage(_Storage): _icon = "file-storage.png" class ObjectStorageWhite(_Storage): _icon = "object-storage-white.png" class ObjectStorage(_Storage): _icon = "object-storage.png" class StorageGatewayWhite(_Storage): _icon = "storage-gateway-white.png" class StorageGateway(_Storage): _icon = "storage-gateway.png" # Aliases ================================================ FILE: diagrams/onprem/__init__.py ================================================ """ OnPrem provides a set of general on-premises services. """ from diagrams import Node class _OnPrem(Node): _provider = "onprem" _icon_dir = "resources/onprem" fontcolor = "#ffffff" class OnPrem(_OnPrem): _icon = "onprem.png" ================================================ FILE: diagrams/onprem/aggregator.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Aggregator(_OnPrem): _type = "aggregator" _icon_dir = "resources/onprem/aggregator" class Fluentd(_Aggregator): _icon = "fluentd.png" class Vector(_Aggregator): _icon = "vector.png" # Aliases ================================================ FILE: diagrams/onprem/analytics.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Analytics(_OnPrem): _type = "analytics" _icon_dir = "resources/onprem/analytics" class Beam(_Analytics): _icon = "beam.png" class Databricks(_Analytics): _icon = "databricks.png" class Dbt(_Analytics): _icon = "dbt.png" class Dremio(_Analytics): _icon = "dremio.png" class Flink(_Analytics): _icon = "flink.png" class Hadoop(_Analytics): _icon = "hadoop.png" class Hive(_Analytics): _icon = "hive.png" class Metabase(_Analytics): _icon = "metabase.png" class Norikra(_Analytics): _icon = "norikra.png" class Powerbi(_Analytics): _icon = "powerbi.png" class Presto(_Analytics): _icon = "presto.png" class Singer(_Analytics): _icon = "singer.png" class Spark(_Analytics): _icon = "spark.png" class Storm(_Analytics): _icon = "storm.png" class Superset(_Analytics): _icon = "superset.png" class Tableau(_Analytics): _icon = "tableau.png" class Trino(_Analytics): _icon = "trino.png" # Aliases PowerBI = Powerbi ================================================ FILE: diagrams/onprem/auth.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Auth(_OnPrem): _type = "auth" _icon_dir = "resources/onprem/auth" class Boundary(_Auth): _icon = "boundary.png" class BuzzfeedSso(_Auth): _icon = "buzzfeed-sso.png" class Oauth2Proxy(_Auth): _icon = "oauth2-proxy.png" # Aliases ================================================ FILE: diagrams/onprem/cd.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Cd(_OnPrem): _type = "cd" _icon_dir = "resources/onprem/cd" class Spinnaker(_Cd): _icon = "spinnaker.png" class TektonCli(_Cd): _icon = "tekton-cli.png" class Tekton(_Cd): _icon = "tekton.png" # Aliases ================================================ FILE: diagrams/onprem/certificates.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Certificates(_OnPrem): _type = "certificates" _icon_dir = "resources/onprem/certificates" class CertManager(_Certificates): _icon = "cert-manager.png" class LetsEncrypt(_Certificates): _icon = "lets-encrypt.png" # Aliases ================================================ FILE: diagrams/onprem/ci.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Ci(_OnPrem): _type = "ci" _icon_dir = "resources/onprem/ci" class Circleci(_Ci): _icon = "circleci.png" class Concourseci(_Ci): _icon = "concourseci.png" class Droneci(_Ci): _icon = "droneci.png" class GithubActions(_Ci): _icon = "github-actions.png" class Gitlabci(_Ci): _icon = "gitlabci.png" class Jenkins(_Ci): _icon = "jenkins.png" class Teamcity(_Ci): _icon = "teamcity.png" class Travisci(_Ci): _icon = "travisci.png" class Zuulci(_Ci): _icon = "zuulci.png" # Aliases CircleCI = Circleci ConcourseCI = Concourseci DroneCI = Droneci GitlabCI = Gitlabci TravisCI = Travisci TC = Teamcity ZuulCI = Zuulci ================================================ FILE: diagrams/onprem/client.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Client(_OnPrem): _type = "client" _icon_dir = "resources/onprem/client" class Client(_Client): _icon = "client.png" class User(_Client): _icon = "user.png" class Users(_Client): _icon = "users.png" # Aliases ================================================ FILE: diagrams/onprem/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Compute(_OnPrem): _type = "compute" _icon_dir = "resources/onprem/compute" class Nomad(_Compute): _icon = "nomad.png" class Server(_Compute): _icon = "server.png" # Aliases ================================================ FILE: diagrams/onprem/container.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Container(_OnPrem): _type = "container" _icon_dir = "resources/onprem/container" class Containerd(_Container): _icon = "containerd.png" class Crio(_Container): _icon = "crio.png" class Docker(_Container): _icon = "docker.png" class Firecracker(_Container): _icon = "firecracker.png" class Gvisor(_Container): _icon = "gvisor.png" class K3S(_Container): _icon = "k3s.png" class Lxc(_Container): _icon = "lxc.png" class Rkt(_Container): _icon = "rkt.png" # Aliases LXC = Lxc RKT = Rkt ================================================ FILE: diagrams/onprem/database.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Database(_OnPrem): _type = "database" _icon_dir = "resources/onprem/database" class Cassandra(_Database): _icon = "cassandra.png" class Clickhouse(_Database): _icon = "clickhouse.png" class Cockroachdb(_Database): _icon = "cockroachdb.png" class Couchbase(_Database): _icon = "couchbase.png" class Couchdb(_Database): _icon = "couchdb.png" class Dgraph(_Database): _icon = "dgraph.png" class Druid(_Database): _icon = "druid.png" class Duckdb(_Database): _icon = "duckdb.png" class Hbase(_Database): _icon = "hbase.png" class Influxdb(_Database): _icon = "influxdb.png" class Janusgraph(_Database): _icon = "janusgraph.png" class Mariadb(_Database): _icon = "mariadb.png" class Mongodb(_Database): _icon = "mongodb.png" class Mssql(_Database): _icon = "mssql.png" class Mysql(_Database): _icon = "mysql.png" class Neo4J(_Database): _icon = "neo4j.png" class Oracle(_Database): _icon = "oracle.png" class Postgresql(_Database): _icon = "postgresql.png" class Qdrant(_Database): _icon = "qdrant.png" class Scylla(_Database): _icon = "scylla.png" # Aliases ClickHouse = Clickhouse CockroachDB = Cockroachdb CouchDB = Couchdb HBase = Hbase InfluxDB = Influxdb JanusGraph = Janusgraph MariaDB = Mariadb MongoDB = Mongodb MSSQL = Mssql MySQL = Mysql PostgreSQL = Postgresql Qdrant = Qdrant ================================================ FILE: diagrams/onprem/dns.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Dns(_OnPrem): _type = "dns" _icon_dir = "resources/onprem/dns" class Coredns(_Dns): _icon = "coredns.png" class Powerdns(_Dns): _icon = "powerdns.png" # Aliases ================================================ FILE: diagrams/onprem/etl.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Etl(_OnPrem): _type = "etl" _icon_dir = "resources/onprem/etl" class Embulk(_Etl): _icon = "embulk.png" # Aliases ================================================ FILE: diagrams/onprem/gitops.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Gitops(_OnPrem): _type = "gitops" _icon_dir = "resources/onprem/gitops" class Argocd(_Gitops): _icon = "argocd.png" class Flagger(_Gitops): _icon = "flagger.png" class Flux(_Gitops): _icon = "flux.png" # Aliases ArgoCD = Argocd ================================================ FILE: diagrams/onprem/groupware.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Groupware(_OnPrem): _type = "groupware" _icon_dir = "resources/onprem/groupware" class Nextcloud(_Groupware): _icon = "nextcloud.png" # Aliases ================================================ FILE: diagrams/onprem/iac.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Iac(_OnPrem): _type = "iac" _icon_dir = "resources/onprem/iac" class Ansible(_Iac): _icon = "ansible.png" class Atlantis(_Iac): _icon = "atlantis.png" class Awx(_Iac): _icon = "awx.png" class Pulumi(_Iac): _icon = "pulumi.png" class Puppet(_Iac): _icon = "puppet.png" class Terraform(_Iac): _icon = "terraform.png" # Aliases ================================================ FILE: diagrams/onprem/identity.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Identity(_OnPrem): _type = "identity" _icon_dir = "resources/onprem/identity" class Dex(_Identity): _icon = "dex.png" # Aliases ================================================ FILE: diagrams/onprem/inmemory.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Inmemory(_OnPrem): _type = "inmemory" _icon_dir = "resources/onprem/inmemory" class Aerospike(_Inmemory): _icon = "aerospike.png" class Hazelcast(_Inmemory): _icon = "hazelcast.png" class Memcached(_Inmemory): _icon = "memcached.png" class Redis(_Inmemory): _icon = "redis.png" # Aliases ================================================ FILE: diagrams/onprem/logging.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Logging(_OnPrem): _type = "logging" _icon_dir = "resources/onprem/logging" class Fluentbit(_Logging): _icon = "fluentbit.png" class Graylog(_Logging): _icon = "graylog.png" class Loki(_Logging): _icon = "loki.png" class Rsyslog(_Logging): _icon = "rsyslog.png" class SyslogNg(_Logging): _icon = "syslog-ng.png" # Aliases FluentBit = Fluentbit RSyslog = Rsyslog ================================================ FILE: diagrams/onprem/messaging.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Messaging(_OnPrem): _type = "messaging" _icon_dir = "resources/onprem/messaging" class Centrifugo(_Messaging): _icon = "centrifugo.png" # Aliases ================================================ FILE: diagrams/onprem/mlops.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Mlops(_OnPrem): _type = "mlops" _icon_dir = "resources/onprem/mlops" class Mlflow(_Mlops): _icon = "mlflow.png" class Polyaxon(_Mlops): _icon = "polyaxon.png" # Aliases ================================================ FILE: diagrams/onprem/monitoring.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Monitoring(_OnPrem): _type = "monitoring" _icon_dir = "resources/onprem/monitoring" class Cortex(_Monitoring): _icon = "cortex.png" class Datadog(_Monitoring): _icon = "datadog.png" class Dynatrace(_Monitoring): _icon = "dynatrace.png" class Grafana(_Monitoring): _icon = "grafana.png" class Humio(_Monitoring): _icon = "humio.png" class Mimir(_Monitoring): _icon = "mimir.png" class Nagios(_Monitoring): _icon = "nagios.png" class Newrelic(_Monitoring): _icon = "newrelic.png" class PrometheusOperator(_Monitoring): _icon = "prometheus-operator.png" class Prometheus(_Monitoring): _icon = "prometheus.png" class Sentry(_Monitoring): _icon = "sentry.png" class Splunk(_Monitoring): _icon = "splunk.png" class Thanos(_Monitoring): _icon = "thanos.png" class Zabbix(_Monitoring): _icon = "zabbix.png" # Aliases ================================================ FILE: diagrams/onprem/network.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Network(_OnPrem): _type = "network" _icon_dir = "resources/onprem/network" class Ambassador(_Network): _icon = "ambassador.png" class Apache(_Network): _icon = "apache.png" class Bind9(_Network): _icon = "bind-9.png" class Caddy(_Network): _icon = "caddy.png" class CiscoRouter(_Network): _icon = "cisco-router.png" class CiscoSwitchL2(_Network): _icon = "cisco-switch-l2.png" class CiscoSwitchL3(_Network): _icon = "cisco-switch-l3.png" class Consul(_Network): _icon = "consul.png" class Envoy(_Network): _icon = "envoy.png" class Etcd(_Network): _icon = "etcd.png" class Glassfish(_Network): _icon = "glassfish.png" class Gunicorn(_Network): _icon = "gunicorn.png" class Haproxy(_Network): _icon = "haproxy.png" class Internet(_Network): _icon = "internet.png" class Istio(_Network): _icon = "istio.png" class Jbossas(_Network): _icon = "jbossas.png" class Jetty(_Network): _icon = "jetty.png" class Kong(_Network): _icon = "kong.png" class Linkerd(_Network): _icon = "linkerd.png" class Mikrotik(_Network): _icon = "mikrotik.png" class Nginx(_Network): _icon = "nginx.png" class Ocelot(_Network): _icon = "ocelot.png" class OpenServiceMesh(_Network): _icon = "open-service-mesh.png" class Opnsense(_Network): _icon = "opnsense.png" class Pfsense(_Network): _icon = "pfsense.png" class Pomerium(_Network): _icon = "pomerium.png" class Powerdns(_Network): _icon = "powerdns.png" class Tomcat(_Network): _icon = "tomcat.png" class Traefik(_Network): _icon = "traefik.png" class Tyk(_Network): _icon = "tyk.png" class Vyos(_Network): _icon = "vyos.png" class Wildfly(_Network): _icon = "wildfly.png" class Yarp(_Network): _icon = "yarp.png" class Zookeeper(_Network): _icon = "zookeeper.png" # Aliases ETCD = Etcd HAProxy = Haproxy OSM = OpenServiceMesh OPNSense = Opnsense PFSense = Pfsense VyOS = Vyos ================================================ FILE: diagrams/onprem/proxmox.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Proxmox(_OnPrem): _type = "proxmox" _icon_dir = "resources/onprem/proxmox" class Pve(_Proxmox): _icon = "pve.png" # Aliases ProxmoxVE = Pve ================================================ FILE: diagrams/onprem/queue.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Queue(_OnPrem): _type = "queue" _icon_dir = "resources/onprem/queue" class Activemq(_Queue): _icon = "activemq.png" class Celery(_Queue): _icon = "celery.png" class Emqx(_Queue): _icon = "emqx.png" class Kafka(_Queue): _icon = "kafka.png" class Nats(_Queue): _icon = "nats.png" class Rabbitmq(_Queue): _icon = "rabbitmq.png" class Zeromq(_Queue): _icon = "zeromq.png" # Aliases ActiveMQ = Activemq EMQX = Emqx RabbitMQ = Rabbitmq ZeroMQ = Zeromq ================================================ FILE: diagrams/onprem/registry.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Registry(_OnPrem): _type = "registry" _icon_dir = "resources/onprem/registry" class Harbor(_Registry): _icon = "harbor.png" class Jfrog(_Registry): _icon = "jfrog.png" # Aliases ================================================ FILE: diagrams/onprem/search.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Search(_OnPrem): _type = "search" _icon_dir = "resources/onprem/search" class Solr(_Search): _icon = "solr.png" # Aliases ================================================ FILE: diagrams/onprem/security.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Security(_OnPrem): _type = "security" _icon_dir = "resources/onprem/security" class Bitwarden(_Security): _icon = "bitwarden.png" class Trivy(_Security): _icon = "trivy.png" class Vault(_Security): _icon = "vault.png" # Aliases ================================================ FILE: diagrams/onprem/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Storage(_OnPrem): _type = "storage" _icon_dir = "resources/onprem/storage" class CephOsd(_Storage): _icon = "ceph-osd.png" class Ceph(_Storage): _icon = "ceph.png" class Glusterfs(_Storage): _icon = "glusterfs.png" class Portworx(_Storage): _icon = "portworx.png" # Aliases CEPH = Ceph CEPH_OSD = CephOsd ================================================ FILE: diagrams/onprem/tracing.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Tracing(_OnPrem): _type = "tracing" _icon_dir = "resources/onprem/tracing" class Jaeger(_Tracing): _icon = "jaeger.png" class Tempo(_Tracing): _icon = "tempo.png" # Aliases ================================================ FILE: diagrams/onprem/vcs.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Vcs(_OnPrem): _type = "vcs" _icon_dir = "resources/onprem/vcs" class Git(_Vcs): _icon = "git.png" class Gitea(_Vcs): _icon = "gitea.png" class Github(_Vcs): _icon = "github.png" class Gitlab(_Vcs): _icon = "gitlab.png" class Svn(_Vcs): _icon = "svn.png" # Aliases ================================================ FILE: diagrams/onprem/workflow.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OnPrem class _Workflow(_OnPrem): _type = "workflow" _icon_dir = "resources/onprem/workflow" class Airflow(_Workflow): _icon = "airflow.png" class Digdag(_Workflow): _icon = "digdag.png" class Kubeflow(_Workflow): _icon = "kubeflow.png" class Nifi(_Workflow): _icon = "nifi.png" # Aliases KubeFlow = Kubeflow NiFi = Nifi ================================================ FILE: diagrams/openstack/__init__.py ================================================ """ Openstack provides a set of general OpenStack services. """ from diagrams import Node class _OpenStack(Node): _provider = "openstack" _icon_dir = "resources/openstack" fontcolor = "#ffffff" class OpenStack(_OpenStack): _icon = "openstack.png" ================================================ FILE: diagrams/openstack/adjacentenablers.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Adjacentenablers(_OpenStack): _type = "adjacentenablers" _icon_dir = "resources/openstack/adjacentenablers" # Aliases ================================================ FILE: diagrams/openstack/apiproxies.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Apiproxies(_OpenStack): _type = "apiproxies" _icon_dir = "resources/openstack/apiproxies" class EC2API(_Apiproxies): _icon = "ec2api.png" # Aliases ================================================ FILE: diagrams/openstack/applicationlifecycle.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Applicationlifecycle(_OpenStack): _type = "applicationlifecycle" _icon_dir = "resources/openstack/applicationlifecycle" class Freezer(_Applicationlifecycle): _icon = "freezer.png" class Masakari(_Applicationlifecycle): _icon = "masakari.png" class Murano(_Applicationlifecycle): _icon = "murano.png" class Solum(_Applicationlifecycle): _icon = "solum.png" # Aliases ================================================ FILE: diagrams/openstack/baremetal.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Baremetal(_OpenStack): _type = "baremetal" _icon_dir = "resources/openstack/baremetal" class Cyborg(_Baremetal): _icon = "cyborg.png" class Ironic(_Baremetal): _icon = "ironic.png" # Aliases ================================================ FILE: diagrams/openstack/billing.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Billing(_OpenStack): _type = "billing" _icon_dir = "resources/openstack/billing" class Cloudkitty(_Billing): _icon = "cloudkitty.png" # Aliases CloudKitty = Cloudkitty ================================================ FILE: diagrams/openstack/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Compute(_OpenStack): _type = "compute" _icon_dir = "resources/openstack/compute" class Nova(_Compute): _icon = "nova.png" class Qinling(_Compute): _icon = "qinling.png" class Zun(_Compute): _icon = "zun.png" # Aliases ================================================ FILE: diagrams/openstack/containerservices.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Containerservices(_OpenStack): _type = "containerservices" _icon_dir = "resources/openstack/containerservices" class Kuryr(_Containerservices): _icon = "kuryr.png" # Aliases ================================================ FILE: diagrams/openstack/deployment.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Deployment(_OpenStack): _type = "deployment" _icon_dir = "resources/openstack/deployment" class Ansible(_Deployment): _icon = "ansible.png" class Charms(_Deployment): _icon = "charms.png" class Chef(_Deployment): _icon = "chef.png" class Helm(_Deployment): _icon = "helm.png" class Kolla(_Deployment): _icon = "kolla.png" class Tripleo(_Deployment): _icon = "tripleo.png" # Aliases KollaAnsible = Kolla TripleO = Tripleo ================================================ FILE: diagrams/openstack/frontend.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Frontend(_OpenStack): _type = "frontend" _icon_dir = "resources/openstack/frontend" class Horizon(_Frontend): _icon = "horizon.png" # Aliases ================================================ FILE: diagrams/openstack/lifecyclemanagement.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Lifecyclemanagement(_OpenStack): _type = "lifecyclemanagement" _icon_dir = "resources/openstack/lifecyclemanagement" # Aliases ================================================ FILE: diagrams/openstack/monitoring.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Monitoring(_OpenStack): _type = "monitoring" _icon_dir = "resources/openstack/monitoring" class Monasca(_Monitoring): _icon = "monasca.png" class Telemetry(_Monitoring): _icon = "telemetry.png" # Aliases ================================================ FILE: diagrams/openstack/multiregion.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Multiregion(_OpenStack): _type = "multiregion" _icon_dir = "resources/openstack/multiregion" class Tricircle(_Multiregion): _icon = "tricircle.png" # Aliases ================================================ FILE: diagrams/openstack/networking.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Networking(_OpenStack): _type = "networking" _icon_dir = "resources/openstack/networking" class Designate(_Networking): _icon = "designate.png" class Neutron(_Networking): _icon = "neutron.png" class Octavia(_Networking): _icon = "octavia.png" # Aliases ================================================ FILE: diagrams/openstack/nfv.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _NFV(_OpenStack): _type = "nfv" _icon_dir = "resources/openstack/nfv" class Tacker(_NFV): _icon = "tacker.png" # Aliases ================================================ FILE: diagrams/openstack/operations.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Operations(_OpenStack): _type = "operations" _icon_dir = "resources/openstack/operations" # Aliases ================================================ FILE: diagrams/openstack/optimization.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Optimization(_OpenStack): _type = "optimization" _icon_dir = "resources/openstack/optimization" class Congress(_Optimization): _icon = "congress.png" class Rally(_Optimization): _icon = "rally.png" class Vitrage(_Optimization): _icon = "vitrage.png" class Watcher(_Optimization): _icon = "watcher.png" # Aliases ================================================ FILE: diagrams/openstack/orchestration.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Orchestration(_OpenStack): _type = "orchestration" _icon_dir = "resources/openstack/orchestration" class Blazar(_Orchestration): _icon = "blazar.png" class Heat(_Orchestration): _icon = "heat.png" class Mistral(_Orchestration): _icon = "mistral.png" class Senlin(_Orchestration): _icon = "senlin.png" class Zaqar(_Orchestration): _icon = "zaqar.png" # Aliases ================================================ FILE: diagrams/openstack/packaging.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Packaging(_OpenStack): _type = "packaging" _icon_dir = "resources/openstack/packaging" class LOCI(_Packaging): _icon = "loci.png" class Puppet(_Packaging): _icon = "puppet.png" class RPM(_Packaging): _icon = "rpm.png" # Aliases ================================================ FILE: diagrams/openstack/sharedservices.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Sharedservices(_OpenStack): _type = "sharedservices" _icon_dir = "resources/openstack/sharedservices" class Barbican(_Sharedservices): _icon = "barbican.png" class Glance(_Sharedservices): _icon = "glance.png" class Karbor(_Sharedservices): _icon = "karbor.png" class Keystone(_Sharedservices): _icon = "keystone.png" class Searchlight(_Sharedservices): _icon = "searchlight.png" # Aliases ================================================ FILE: diagrams/openstack/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Storage(_OpenStack): _type = "storage" _icon_dir = "resources/openstack/storage" class Cinder(_Storage): _icon = "cinder.png" class Manila(_Storage): _icon = "manila.png" class Swift(_Storage): _icon = "swift.png" # Aliases ================================================ FILE: diagrams/openstack/user.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _User(_OpenStack): _type = "user" _icon_dir = "resources/openstack/user" class Openstackclient(_User): _icon = "openstackclient.png" # Aliases OpenStackClient = Openstackclient ================================================ FILE: diagrams/openstack/workloadprovisioning.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _OpenStack class _Workloadprovisioning(_OpenStack): _type = "workloadprovisioning" _icon_dir = "resources/openstack/workloadprovisioning" class Magnum(_Workloadprovisioning): _icon = "magnum.png" class Sahara(_Workloadprovisioning): _icon = "sahara.png" class Trove(_Workloadprovisioning): _icon = "trove.png" # Aliases ================================================ FILE: diagrams/outscale/__init__.py ================================================ from diagrams import Node class _Outscale(Node): _provider = "outscale" _icon_dir = "resources/outscale" fontcolor = "#ffffff" class Outscale(_Outscale): _icon = "outscale.png" ================================================ FILE: diagrams/outscale/compute.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Outscale class _Compute(_Outscale): _type = "compute" _icon_dir = "resources/outscale/compute" class Compute(_Compute): _icon = "compute.png" class DirectConnect(_Compute): _icon = "direct-connect.png" # Aliases ================================================ FILE: diagrams/outscale/network.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Outscale class _Network(_Outscale): _type = "network" _icon_dir = "resources/outscale/network" class ClientVpn(_Network): _icon = "client-vpn.png" class InternetService(_Network): _icon = "internet-service.png" class LoadBalancer(_Network): _icon = "load-balancer.png" class NatService(_Network): _icon = "nat-service.png" class Net(_Network): _icon = "net.png" class SiteToSiteVpng(_Network): _icon = "site-to-site-vpng.png" # Aliases ================================================ FILE: diagrams/outscale/security.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Outscale class _Security(_Outscale): _type = "security" _icon_dir = "resources/outscale/security" class Firewall(_Security): _icon = "firewall.png" class IdentityAndAccessManagement(_Security): _icon = "identity-and-access-management.png" # Aliases ================================================ FILE: diagrams/outscale/storage.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Outscale class _Storage(_Outscale): _type = "storage" _icon_dir = "resources/outscale/storage" class SimpleStorageService(_Storage): _icon = "simple-storage-service.png" class Storage(_Storage): _icon = "storage.png" # Aliases ================================================ FILE: diagrams/programming/__init__.py ================================================ """ Programming provides a set of programming languages and frameworks. """ from diagrams import Node class _Programming(Node): _provider = "programming" _icon_dir = "resources/programming" fontcolor = "#ffffff" class Programming(_Programming): _icon = "programming.png" ================================================ FILE: diagrams/programming/flowchart.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Programming class _Flowchart(_Programming): _type = "flowchart" _icon_dir = "resources/programming/flowchart" class Action(_Flowchart): _icon = "action.png" class Collate(_Flowchart): _icon = "collate.png" class Database(_Flowchart): _icon = "database.png" class Decision(_Flowchart): _icon = "decision.png" class Delay(_Flowchart): _icon = "delay.png" class Display(_Flowchart): _icon = "display.png" class Document(_Flowchart): _icon = "document.png" class InputOutput(_Flowchart): _icon = "input-output.png" class Inspection(_Flowchart): _icon = "inspection.png" class InternalStorage(_Flowchart): _icon = "internal-storage.png" class LoopLimit(_Flowchart): _icon = "loop-limit.png" class ManualInput(_Flowchart): _icon = "manual-input.png" class ManualLoop(_Flowchart): _icon = "manual-loop.png" class Merge(_Flowchart): _icon = "merge.png" class MultipleDocuments(_Flowchart): _icon = "multiple-documents.png" class OffPageConnectorLeft(_Flowchart): _icon = "off-page-connector-left.png" class OffPageConnectorRight(_Flowchart): _icon = "off-page-connector-right.png" class Or(_Flowchart): _icon = "or.png" class PredefinedProcess(_Flowchart): _icon = "predefined-process.png" class Preparation(_Flowchart): _icon = "preparation.png" class Sort(_Flowchart): _icon = "sort.png" class StartEnd(_Flowchart): _icon = "start-end.png" class StoredData(_Flowchart): _icon = "stored-data.png" class SummingJunction(_Flowchart): _icon = "summing-junction.png" # Aliases ================================================ FILE: diagrams/programming/framework.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Programming class _Framework(_Programming): _type = "framework" _icon_dir = "resources/programming/framework" class Angular(_Framework): _icon = "angular.png" class Backbone(_Framework): _icon = "backbone.png" class Camel(_Framework): _icon = "camel.png" class Django(_Framework): _icon = "django.png" class Dotnet(_Framework): _icon = "dotnet.png" class Ember(_Framework): _icon = "ember.png" class Fastapi(_Framework): _icon = "fastapi.png" class Flask(_Framework): _icon = "flask.png" class Flutter(_Framework): _icon = "flutter.png" class Graphql(_Framework): _icon = "graphql.png" class Hibernate(_Framework): _icon = "hibernate.png" class Jhipster(_Framework): _icon = "jhipster.png" class Laravel(_Framework): _icon = "laravel.png" class Micronaut(_Framework): _icon = "micronaut.png" class Nextjs(_Framework): _icon = "nextjs.png" class Phoenix(_Framework): _icon = "phoenix.png" class Quarkus(_Framework): _icon = "quarkus.png" class Rails(_Framework): _icon = "rails.png" class React(_Framework): _icon = "react.png" class Spring(_Framework): _icon = "spring.png" class Sqlpage(_Framework): _icon = "sqlpage.png" class Starlette(_Framework): _icon = "starlette.png" class Svelte(_Framework): _icon = "svelte.png" class Vercel(_Framework): _icon = "vercel.png" class Vue(_Framework): _icon = "vue.png" # Aliases FastAPI = Fastapi GraphQL = Graphql DotNet = Dotnet NextJs = Nextjs ================================================ FILE: diagrams/programming/language.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Programming class _Language(_Programming): _type = "language" _icon_dir = "resources/programming/language" class Bash(_Language): _icon = "bash.png" class C(_Language): _icon = "c.png" class Cpp(_Language): _icon = "cpp.png" class Csharp(_Language): _icon = "csharp.png" class Dart(_Language): _icon = "dart.png" class Elixir(_Language): _icon = "elixir.png" class Erlang(_Language): _icon = "erlang.png" class Go(_Language): _icon = "go.png" class Java(_Language): _icon = "java.png" class Javascript(_Language): _icon = "javascript.png" class Kotlin(_Language): _icon = "kotlin.png" class Latex(_Language): _icon = "latex.png" class Matlab(_Language): _icon = "matlab.png" class Nodejs(_Language): _icon = "nodejs.png" class Php(_Language): _icon = "php.png" class Python(_Language): _icon = "python.png" class R(_Language): _icon = "r.png" class Ruby(_Language): _icon = "ruby.png" class Rust(_Language): _icon = "rust.png" class Scala(_Language): _icon = "scala.png" class Sql(_Language): _icon = "sql.png" class Swift(_Language): _icon = "swift.png" class Typescript(_Language): _icon = "typescript.png" # Aliases JavaScript = Javascript NodeJS = Nodejs PHP = Php TypeScript = Typescript ================================================ FILE: diagrams/programming/runtime.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Programming class _Runtime(_Programming): _type = "runtime" _icon_dir = "resources/programming/runtime" class Dapr(_Runtime): _icon = "dapr.png" # Aliases ================================================ FILE: diagrams/saas/__init__.py ================================================ """ Saas provides a set of general saas services. """ from diagrams import Node class _Saas(Node): _provider = "saas" _icon_dir = "resources/saas" fontcolor = "#ffffff" class Saas(_Saas): _icon = "saas.png" ================================================ FILE: diagrams/saas/alerting.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Alerting(_Saas): _type = "alerting" _icon_dir = "resources/saas/alerting" class Newrelic(_Alerting): _icon = "newrelic.png" class Opsgenie(_Alerting): _icon = "opsgenie.png" class Pagerduty(_Alerting): _icon = "pagerduty.png" class Pushover(_Alerting): _icon = "pushover.png" class Xmatters(_Alerting): _icon = "xmatters.png" # Aliases ================================================ FILE: diagrams/saas/analytics.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Analytics(_Saas): _type = "analytics" _icon_dir = "resources/saas/analytics" class Dataform(_Analytics): _icon = "dataform.png" class Snowflake(_Analytics): _icon = "snowflake.png" class Stitch(_Analytics): _icon = "stitch.png" # Aliases ================================================ FILE: diagrams/saas/automation.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Automation(_Saas): _type = "automation" _icon_dir = "resources/saas/automation" class N8N(_Automation): _icon = "n8n.png" # Aliases ================================================ FILE: diagrams/saas/cdn.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Cdn(_Saas): _type = "cdn" _icon_dir = "resources/saas/cdn" class Akamai(_Cdn): _icon = "akamai.png" class Cloudflare(_Cdn): _icon = "cloudflare.png" class Fastly(_Cdn): _icon = "fastly.png" class Imperva(_Cdn): _icon = "imperva.png" # Aliases ================================================ FILE: diagrams/saas/chat.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Chat(_Saas): _type = "chat" _icon_dir = "resources/saas/chat" class Discord(_Chat): _icon = "discord.png" class Line(_Chat): _icon = "line.png" class Mattermost(_Chat): _icon = "mattermost.png" class Messenger(_Chat): _icon = "messenger.png" class RocketChat(_Chat): _icon = "rocket-chat.png" class Slack(_Chat): _icon = "slack.png" class Teams(_Chat): _icon = "teams.png" class Telegram(_Chat): _icon = "telegram.png" # Aliases ================================================ FILE: diagrams/saas/communication.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Communication(_Saas): _type = "communication" _icon_dir = "resources/saas/communication" class Twilio(_Communication): _icon = "twilio.png" # Aliases ================================================ FILE: diagrams/saas/crm.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Crm(_Saas): _type = "crm" _icon_dir = "resources/saas/crm" class Intercom(_Crm): _icon = "intercom.png" class Zendesk(_Crm): _icon = "zendesk.png" # Aliases ================================================ FILE: diagrams/saas/filesharing.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Filesharing(_Saas): _type = "filesharing" _icon_dir = "resources/saas/filesharing" class Nextcloud(_Filesharing): _icon = "nextcloud.png" # Aliases ================================================ FILE: diagrams/saas/identity.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Identity(_Saas): _type = "identity" _icon_dir = "resources/saas/identity" class Auth0(_Identity): _icon = "auth0.png" class Okta(_Identity): _icon = "okta.png" # Aliases ================================================ FILE: diagrams/saas/logging.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Logging(_Saas): _type = "logging" _icon_dir = "resources/saas/logging" class Datadog(_Logging): _icon = "datadog.png" class Newrelic(_Logging): _icon = "newrelic.png" class Papertrail(_Logging): _icon = "papertrail.png" # Aliases DataDog = Datadog NewRelic = Newrelic ================================================ FILE: diagrams/saas/media.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Media(_Saas): _type = "media" _icon_dir = "resources/saas/media" class Cloudinary(_Media): _icon = "cloudinary.png" # Aliases ================================================ FILE: diagrams/saas/payment.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Payment(_Saas): _type = "payment" _icon_dir = "resources/saas/payment" class Adyen(_Payment): _icon = "adyen.png" class AmazonPay(_Payment): _icon = "amazon-pay.png" class Paypal(_Payment): _icon = "paypal.png" class Stripe(_Payment): _icon = "stripe.png" # Aliases ================================================ FILE: diagrams/saas/recommendation.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Recommendation(_Saas): _type = "recommendation" _icon_dir = "resources/saas/recommendation" class Recombee(_Recommendation): _icon = "recombee.png" # Aliases ================================================ FILE: diagrams/saas/security.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Security(_Saas): _type = "security" _icon_dir = "resources/saas/security" class Crowdstrike(_Security): _icon = "crowdstrike.png" class Sonarqube(_Security): _icon = "sonarqube.png" # Aliases ================================================ FILE: diagrams/saas/social.py ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _Saas class _Social(_Saas): _type = "social" _icon_dir = "resources/saas/social" class Facebook(_Social): _icon = "facebook.png" class Twitter(_Social): _icon = "twitter.png" # Aliases ================================================ FILE: docker/dev/Dockerfile ================================================ # use latest python alpine image. FROM python:3.13.3-alpine3.20 # install system dependencies. RUN apk update && apk add --no-cache \ gcc libc-dev g++ graphviz git bash go imagemagick inkscape ttf-opensans curl fontconfig xdg-utils # install go package. RUN go install github.com/mingrammer/round@latest # install fonts RUN curl -O https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip \ && mkdir -p /usr/share/fonts/NotoSansCJKjp \ && unzip NotoSansCJKjp-hinted.zip -d /usr/share/fonts/NotoSansCJKjp/ \ && rm NotoSansCJKjp-hinted.zip \ && fc-cache -fv # add go bin to path. ENV PATH="$PATH:/root/go/bin" # project directory. WORKDIR /usr/src/diagrams # Copy the rest of your app's source code from your host to your image filesystem. COPY . . # install python requirements. RUN pip install black graphviz jinja2 ================================================ FILE: docs/getting-started/examples.md ================================================ --- id: examples title: Examples --- Here are some more examples. ## Grouped Workers on AWS ```python from diagrams import Diagram from diagrams.aws.compute import EC2 from diagrams.aws.database import RDS from diagrams.aws.network import ELB with Diagram("Grouped Workers", show=False, direction="TB"): ELB("lb") >> [EC2("worker1"), EC2("worker2"), EC2("worker3"), EC2("worker4"), EC2("worker5")] >> RDS("events") ``` ![grouped workers diagram](/img/grouped_workers_diagram.png) ## Clustered Web Services ```python from diagrams import Cluster, Diagram from diagrams.aws.compute import ECS from diagrams.aws.database import ElastiCache, RDS from diagrams.aws.network import ELB from diagrams.aws.network import Route53 with Diagram("Clustered Web Services", show=False): dns = Route53("dns") lb = ELB("lb") with Cluster("Services"): svc_group = [ECS("web1"), ECS("web2"), ECS("web3")] with Cluster("DB Cluster"): db_primary = RDS("userdb") db_primary - [RDS("userdb ro")] memcached = ElastiCache("memcached") dns >> lb >> svc_group svc_group >> db_primary svc_group >> memcached ``` ![clustered web services diagram](/img/clustered_web_services_diagram.png) ## Event Processing on AWS ```python from diagrams import Cluster, Diagram from diagrams.aws.compute import ECS, EKS, Lambda from diagrams.aws.database import Redshift from diagrams.aws.integration import SQS from diagrams.aws.storage import S3 with Diagram("Event Processing", show=False): source = EKS("k8s source") with Cluster("Event Flows"): with Cluster("Event Workers"): workers = [ECS("worker1"), ECS("worker2"), ECS("worker3")] queue = SQS("event queue") with Cluster("Processing"): handlers = [Lambda("proc1"), Lambda("proc2"), Lambda("proc3")] store = S3("events store") dw = Redshift("analytics") source >> workers >> queue >> handlers handlers >> store handlers >> dw ``` ![event processing diagram](/img/event_processing_diagram.png) ## Message Collecting System on GCP ```python from diagrams import Cluster, Diagram from diagrams.gcp.analytics import BigQuery, Dataflow, PubSub from diagrams.gcp.compute import AppEngine, Functions from diagrams.gcp.database import BigTable from diagrams.gcp.iot import IotCore from diagrams.gcp.storage import GCS with Diagram("Message Collecting", show=False): pubsub = PubSub("pubsub") with Cluster("Source of Data"): [IotCore("core1"), IotCore("core2"), IotCore("core3")] >> pubsub with Cluster("Targets"): with Cluster("Data Flow"): flow = Dataflow("data flow") with Cluster("Data Lake"): flow >> [BigQuery("bq"), GCS("storage")] with Cluster("Event Driven"): with Cluster("Processing"): flow >> AppEngine("engine") >> BigTable("bigtable") with Cluster("Serverless"): flow >> Functions("func") >> AppEngine("appengine") pubsub >> flow ``` ![message collecting diagram](/img/message_collecting_diagram.png) ## Exposed Pod with 3 Replicas on Kubernetes ```python from diagrams import Diagram from diagrams.k8s.clusterconfig import HPA from diagrams.k8s.compute import Deployment, Pod, ReplicaSet from diagrams.k8s.network import Ingress, Service with Diagram("Exposed Pod with 3 Replicas", show=False): net = Ingress("domain.com") >> Service("svc") net >> [Pod("pod1"), Pod("pod2"), Pod("pod3")] << ReplicaSet("rs") << Deployment("dp") << HPA("hpa") ``` ![exposed pod with 3 replicas diagram](/img/exposed_pod_with_3_replicas_diagram.png) ## Stateful Architecture on Kubernetes ```python from diagrams import Cluster, Diagram from diagrams.k8s.compute import Pod, StatefulSet from diagrams.k8s.network import Service from diagrams.k8s.storage import PV, PVC, StorageClass with Diagram("Stateful Architecture", show=False): with Cluster("Apps"): svc = Service("svc") sts = StatefulSet("sts") apps = [] for _ in range(3): pod = Pod("pod") pvc = PVC("pvc") pod - sts - pvc apps.append(svc >> pod >> pvc) apps << PV("pv") << StorageClass("sc") ``` ![stateful architecture diagram](/img/stateful_architecture_diagram.png) ## Advanced Web Service with On-Premises ```python from diagrams import Cluster, Diagram from diagrams.onprem.analytics import Spark from diagrams.onprem.compute import Server from diagrams.onprem.database import PostgreSQL from diagrams.onprem.inmemory import Redis from diagrams.onprem.aggregator import Fluentd from diagrams.onprem.monitoring import Grafana, Prometheus from diagrams.onprem.network import Nginx from diagrams.onprem.queue import Kafka with Diagram("Advanced Web Service with On-Premises", show=False): ingress = Nginx("ingress") metrics = Prometheus("metric") metrics << Grafana("monitoring") with Cluster("Service Cluster"): grpcsvc = [ Server("grpc1"), Server("grpc2"), Server("grpc3")] with Cluster("Sessions HA"): primary = Redis("session") primary - Redis("replica") << metrics grpcsvc >> primary with Cluster("Database HA"): primary = PostgreSQL("users") primary - PostgreSQL("replica") << metrics grpcsvc >> primary aggregator = Fluentd("logging") aggregator >> Kafka("stream") >> Spark("analytics") ingress >> grpcsvc >> aggregator ``` ![advanced web service with on-premises diagram](/img/advanced_web_service_with_on-premises.png) ## Advanced Web Service with On-Premises (with colors and labels) ```python from diagrams import Cluster, Diagram, Edge from diagrams.onprem.analytics import Spark from diagrams.onprem.compute import Server from diagrams.onprem.database import PostgreSQL from diagrams.onprem.inmemory import Redis from diagrams.onprem.aggregator import Fluentd from diagrams.onprem.monitoring import Grafana, Prometheus from diagrams.onprem.network import Nginx from diagrams.onprem.queue import Kafka with Diagram(name="Advanced Web Service with On-Premises (colored)", show=False): ingress = Nginx("ingress") metrics = Prometheus("metric") metrics << Edge(color="firebrick", style="dashed") << Grafana("monitoring") with Cluster("Service Cluster"): grpcsvc = [ Server("grpc1"), Server("grpc2"), Server("grpc3")] with Cluster("Sessions HA"): primary = Redis("session") primary - Edge(color="brown", style="dashed") - Redis("replica") << Edge(label="collect") << metrics grpcsvc >> Edge(color="brown") >> primary with Cluster("Database HA"): primary = PostgreSQL("users") primary - Edge(color="brown", style="dotted") - PostgreSQL("replica") << Edge(label="collect") << metrics grpcsvc >> Edge(color="black") >> primary aggregator = Fluentd("logging") aggregator >> Edge(label="parse") >> Kafka("stream") >> Edge(color="black", style="bold") >> Spark("analytics") ingress >> Edge(color="darkgreen") << grpcsvc >> Edge(color="darkorange") >> aggregator ``` ![advanced web service with on-premises diagram colored](/img/advanced_web_service_with_on-premises_colored.png) ## RabbitMQ Consumers with Custom Nodes ```python from urllib.request import urlretrieve from diagrams import Cluster, Diagram from diagrams.aws.database import Aurora from diagrams.custom import Custom from diagrams.k8s.compute import Pod # Download an image to be used into a Custom Node class rabbitmq_url = "https://jpadilla.github.io/rabbitmqapp/assets/img/icon.png" rabbitmq_icon = "rabbitmq.png" urlretrieve(rabbitmq_url, rabbitmq_icon) with Diagram("Broker Consumers", show=False): with Cluster("Consumers"): consumers = [ Pod("worker"), Pod("worker"), Pod("worker")] queue = Custom("Message queue", rabbitmq_icon) queue >> consumers >> Aurora("Database") ``` ![rabbitmq consumers diagram](/img/rabbitmq_consumers_diagram.png) ================================================ FILE: docs/getting-started/installation.md ================================================ --- id: installation title: Installation --- **diagrams** requires **Python 3.7** or higher, check your Python version first. **diagrams** uses [Graphviz](https://www.graphviz.org/) to render the diagram, so you need to [install Graphviz](https://graphviz.gitlab.io/download/) to use it. > macOS users using [Homebrew](https://brew.sh) can install Graphviz via `brew install graphviz` . Similarly, Windows users with [Chocolatey](https://chocolatey.org) installed can run `choco install graphviz` or use [Winget](https://learn.microsoft.com/windows/package-manager/) via `winget install Graphviz.Graphviz -i`. After installing Graphviz (or if you already have it), install **diagrams**: ```shell # using pip (pip3) $ pip install diagrams # using pipenv $ pipenv install diagrams # using poetry $ poetry add diagrams # using uv $ uv tool install diagrams ``` ## Quick Start ```python # diagram.py from diagrams import Diagram from diagrams.aws.compute import EC2 from diagrams.aws.database import RDS from diagrams.aws.network import ELB with Diagram("Web Service", show=False): ELB("lb") >> EC2("web") >> RDS("userdb") ``` To generate the diagram, run: ```shell $ python diagram.py ``` This generates the diagram below: ![web service diagram](/img/web_service_diagram.png) It will be saved as `web_service.png` in your working directory. ### CLI With the `diagrams` CLI you can process one or more diagram files at once. ```shell $ diagrams diagram1.py diagram2.py ``` ## Next See more [Examples](/docs/getting-started/examples) or see the [Guides](/docs/guides/diagram) page for more details. ================================================ FILE: docs/guides/cluster.md ================================================ --- id: cluster title: Clusters --- `Cluster` allows you to group (or cluster) nodes in an isolated group. ## Basic `Cluster` represents a local cluster context. You can create a cluster context using the `Cluster` class. You can also connect the nodes in a cluster to other nodes outside a cluster. ```python from diagrams import Cluster, Diagram from diagrams.aws.compute import ECS from diagrams.aws.database import RDS from diagrams.aws.network import Route53 with Diagram("Simple Web Service with DB Cluster", show=False): dns = Route53("dns") web = ECS("service") with Cluster("DB Cluster"): db_primary = RDS("primary") db_primary - [RDS("replica1"), RDS("replica2")] dns >> web >> db_primary ``` ![simple web service with db cluster diagram](/img/simple_web_service_with_db_cluster_diagram.png) ## Nested Clusters Nested clustering is also possible: ```python from diagrams import Cluster, Diagram from diagrams.aws.compute import ECS, EKS, Lambda from diagrams.aws.database import Redshift from diagrams.aws.integration import SQS from diagrams.aws.storage import S3 with Diagram("Event Processing", show=False): source = EKS("k8s source") with Cluster("Event Flows"): with Cluster("Event Workers"): workers = [ECS("worker1"), ECS("worker2"), ECS("worker3")] queue = SQS("event queue") with Cluster("Processing"): handlers = [Lambda("proc1"), Lambda("proc2"), Lambda("proc3")] store = S3("events store") dw = Redshift("analytics") source >> workers >> queue >> handlers handlers >> store handlers >> dw ``` ![event processing diagram](/img/event_processing_diagram.png) > There is no depth limit to nesting. Feel free to create nested clusters as deep as you want. ================================================ FILE: docs/guides/diagram.md ================================================ --- id: diagram title: Diagrams --- `Diagram` is a primary object representing a diagram. ## Basic `Diagram` represents a global diagram context. You can create a diagram context with the `Diagram` class. The first parameter of the `Diagram` constructor will be used to generate the output filename. ```python from diagrams import Diagram from diagrams.aws.compute import EC2 with Diagram("Simple Diagram"): EC2("web") ``` If you run the above script with the command below, ```shell $ python diagram.py ``` it will generate an image file with single `EC2` node drawn as `simple_diagram.png` in your working directory and open that created image file immediately. ## Jupyter Notebooks Diagrams can also be rendered directly inside Jupyter notebooks like this: ```python from diagrams import Diagram from diagrams.aws.compute import EC2 with Diagram("Simple Diagram") as diag: EC2("web") diag ``` ## Options You can specify the output file format with the `outformat` parameter. The default is **png**. > Allowed formats are: png, jpg, svg, pdf, and dot ```python from diagrams import Diagram from diagrams.aws.compute import EC2 with Diagram("Simple Diagram", outformat="jpg"): EC2("web") ``` The `outformat` parameter also supports a list to output all the defined outputs in one call: ```python from diagrams import Diagram from diagrams.aws.compute import EC2 with Diagram("Simple Diagram Multi Output", outformat=["jpg", "png", "dot"]): EC2("web") ``` You can specify the output filename with the `filename` parameter. The extension shouldn't be included, it's determined by the `outformat` parameter. ```python from diagrams import Diagram from diagrams.aws.compute import EC2 with Diagram("Simple Diagram", filename="my_diagram"): EC2("web") ``` You can also disable the automatic file opening by setting the `show` parameter to **false**. The default is **true**. ```python from diagrams import Diagram from diagrams.aws.compute import EC2 with Diagram("Simple Diagram", show=False): EC2("web") ``` Diagrams also allow custom Graphviz dot attributes options. > `graph_attr`, `node_attr` and `edge_attr` are supported. Here is a [reference link](https://www.graphviz.org/doc/info/attrs.html). ```python from diagrams import Diagram from diagrams.aws.compute import EC2 graph_attr = { "fontsize": "45", "bgcolor": "transparent" } with Diagram("Simple Diagram", show=False, graph_attr=graph_attr): EC2("web") ``` ================================================ FILE: docs/guides/edge.md ================================================ --- id: edge title: Edges --- `Edge` represents an edge between nodes. ## Basic `Edge` is an object representing a connection between nodes with some additional properties. An edge object contains three attributes: **label**, **color**, and **style**. They mirror the corresponding Graphviz edge attributes. ```python from diagrams import Cluster, Diagram, Edge from diagrams.onprem.analytics import Spark from diagrams.onprem.compute import Server from diagrams.onprem.database import PostgreSQL from diagrams.onprem.inmemory import Redis from diagrams.onprem.aggregator import Fluentd from diagrams.onprem.monitoring import Grafana, Prometheus from diagrams.onprem.network import Nginx from diagrams.onprem.queue import Kafka with Diagram(name="Advanced Web Service with On-Premises (colored)", show=False): ingress = Nginx("ingress") metrics = Prometheus("metric") metrics << Edge(color="firebrick", style="dashed") << Grafana("monitoring") with Cluster("Service Cluster"): grpcsvc = [ Server("grpc1"), Server("grpc2"), Server("grpc3")] with Cluster("Sessions HA"): primary = Redis("session") primary \ - Edge(color="brown", style="dashed") \ - Redis("replica") \ << Edge(label="collect") \ << metrics grpcsvc >> Edge(color="brown") >> primary with Cluster("Database HA"): primary = PostgreSQL("users") primary \ - Edge(color="brown", style="dotted") \ - PostgreSQL("replica") \ << Edge(label="collect") \ << metrics grpcsvc >> Edge(color="black") >> primary aggregator = Fluentd("logging") aggregator \ >> Edge(label="parse") \ >> Kafka("stream") \ >> Edge(color="black", style="bold") \ >> Spark("analytics") ingress \ >> Edge(color="darkgreen") \ << grpcsvc \ >> Edge(color="darkorange") \ >> aggregator ``` ![advanced web service with on-premise diagram colored](/img/advanced_web_service_with_on-premise_colored.png) ## Less Edges As you can see on the previous graph the edges can quickly become noisy. Below are two examples to solve this problem. One approach is to get creative with the Node class to create blank placeholders, together with named nodes within Clusters, and then only pointing to single named elements within those Clusters. Compare the output below to the example output above . ```python from diagrams import Cluster, Diagram, Node from diagrams.onprem.analytics import Spark from diagrams.onprem.compute import Server from diagrams.onprem.database import PostgreSQL from diagrams.onprem.inmemory import Redis from diagrams.onprem.aggregator import Fluentd from diagrams.onprem.monitoring import Grafana, Prometheus from diagrams.onprem.network import Nginx from diagrams.onprem.queue import Kafka with Diagram("\nAdvanced Web Service with On-Premise Less edges", show=False) as diag: ingress = Nginx("ingress") with Cluster("Service Cluster"): serv1 = Server("grpc1") serv2 = Server("grpc2") serv3 = Server("grpc3") with Cluster(""): blankHA = Node("", shape="plaintext", width="0", height="0") metrics = Prometheus("metric") metrics << Grafana("monitoring") aggregator = Fluentd("logging") blankHA >> aggregator >> Kafka("stream") >> Spark("analytics") with Cluster("Database HA"): db = PostgreSQL("users") db - PostgreSQL("replica") << metrics blankHA >> db with Cluster("Sessions HA"): sess = Redis("session") sess - Redis("replica") << metrics blankHA >> sess ingress >> serv2 >> blankHA diag ``` ![advanced web service with on-premise less edges](/img/advanced_web_service_with_on-premise_less_edges.png) ## Merged Edges Yet another option is to set the graph_attr dictionary key "concentrate" to "true". Note the following restrictions: 1. the Edge must end at the same headport 2. This only works when the "splines" graph_attr key is set to the value "spline". It has no effect when the value was set to "ortho", which is the default for the diagrams library. 3. this will only work with the "dot" layout engine, which is the default for the diagrams library. For more information see: https://graphviz.gitlab.io/doc/info/attrs.html#d:concentrate https://www.graphviz.org/pdf/dotguide.pdf Section 3.3 Concentrators ```python from diagrams import Cluster, Diagram, Edge, Node from diagrams.onprem.analytics import Spark from diagrams.onprem.compute import Server from diagrams.onprem.database import PostgreSQL from diagrams.onprem.inmemory import Redis from diagrams.onprem.aggregator import Fluentd from diagrams.onprem.monitoring import Grafana, Prometheus from diagrams.onprem.network import Nginx from diagrams.onprem.queue import Kafka graph_attr = { "concentrate": "true", "splines": "spline", } edge_attr = { "minlen":"3", } with Diagram("\n\nAdvanced Web Service with On-Premise Merged edges", show=False, graph_attr=graph_attr, edge_attr=edge_attr) as diag: ingress = Nginx("ingress") metrics = Prometheus("metric") metrics << Edge(minlen="0") << Grafana("monitoring") with Cluster("Service Cluster"): grpsrv = [ Server("grpc1"), Server("grpc2"), Server("grpc3")] blank = Node("", shape="plaintext", height="0.0", width="0.0") with Cluster("Sessions HA"): sess = Redis("session") sess - Redis("replica") << metrics with Cluster("Database HA"): db = PostgreSQL("users") db - PostgreSQL("replica") << metrics aggregator = Fluentd("logging") aggregator >> Kafka("stream") >> Spark("analytics") ingress >> [grpsrv[0], grpsrv[1], grpsrv[2],] [grpsrv[0], grpsrv[1], grpsrv[2],] - Edge(headport="w", minlen="1") - blank blank >> Edge(headport="w", minlen="2") >> [sess, db, aggregator] diag ``` ![advanced web service with on-premise merged edges](/img/advanced_web_service_with_on-premise_merged_edges.png) ================================================ FILE: docs/guides/node.md ================================================ --- id: node title: Nodes --- `Node` is an object representing a node or system component. ## Basic `Node` is an abstract concept that represents a single system component object. A node object consists of three parts: **provider**, **resource type** and **name**. You may already have seen each part in the previous example. ```python from diagrams import Diagram from diagrams.aws.compute import EC2 with Diagram("Simple Diagram"): EC2("web") ``` In the example above, the `EC2` is a node of resource type `compute` which is provided by the `aws` provider. You can use other node objects in a similar manner: ```python # aws resources from diagrams.aws.compute import ECS, Lambda from diagrams.aws.database import RDS, ElastiCache from diagrams.aws.network import ELB, Route53, VPC ... # azure resources from diagrams.azure.compute import FunctionApps from diagrams.azure.storage import BlobStorage ... # alibaba cloud resources from diagrams.alibabacloud.compute import ECS from diagrams.alibabacloud.storage import ObjectTableStore ... # gcp resources from diagrams.gcp.compute import AppEngine, GKE from diagrams.gcp.ml import AutoML ... # k8s resources from diagrams.k8s.compute import Pod, StatefulSet from diagrams.k8s.network import Service from diagrams.k8s.storage import PV, PVC, StorageClass ... # oracle resources from diagrams.oci.compute import VirtualMachine, Container from diagrams.oci.network import Firewall from diagrams.oci.storage import FileStorage, StorageGateway ``` You can find lists of all available nodes for each provider in the sidebar on the left. For example, [here](https://diagrams.mingrammer.com/docs/nodes/aws) is the list of all available AWS nodes. ## Data Flow You can represent data flow by connecting the nodes with the operators `>>`, `<<`, and `-`. - **>>** connects nodes in left to right direction. - **<<** connects nodes in right to left direction. - **-** connects nodes in no direction. Undirected. ```python from diagrams import Diagram from diagrams.aws.compute import EC2 from diagrams.aws.database import RDS from diagrams.aws.network import ELB from diagrams.aws.storage import S3 with Diagram("Web Services", show=False): ELB("lb") >> EC2("web") >> RDS("userdb") >> S3("store") ELB("lb") >> EC2("web") >> RDS("userdb") << EC2("stat") (ELB("lb") >> EC2("web")) - EC2("web") >> RDS("userdb") ``` > Be careful when using `-` and any shift operators together. It can cause unexpected results due to Python's operator precedence, so you might have to use parentheses. ![web services diagram](/img/web_services_diagram.png) > The order of rendered diagrams is the reverse of the declaration order. You can change the data flow direction with the `direction` parameter. The default is **LR**. > Allowed values are: TB, BT, LR, and RL ```python from diagrams import Diagram from diagrams.aws.compute import EC2 from diagrams.aws.database import RDS from diagrams.aws.network import ELB with Diagram("Workers", show=False, direction="TB"): lb = ELB("lb") db = RDS("events") lb >> EC2("worker1") >> db lb >> EC2("worker2") >> db lb >> EC2("worker3") >> db lb >> EC2("worker4") >> db lb >> EC2("worker5") >> db ``` ![workers diagram](/img/workers_diagram.png) ## Group Data Flow The above worker example has too many redundant flows. To avoid this, you can group nodes into a list so that all nodes are connected to other nodes at once: ```python from diagrams import Diagram from diagrams.aws.compute import EC2 from diagrams.aws.database import RDS from diagrams.aws.network import ELB with Diagram("Grouped Workers", show=False, direction="TB"): ELB("lb") >> [EC2("worker1"), EC2("worker2"), EC2("worker3"), EC2("worker4"), EC2("worker5")] >> RDS("events") ``` ![grouped workers diagram](/img/grouped_workers_diagram.png) > You can't connect two **lists** directly because shift/arithmetic operations between lists are not allowed in Python. ================================================ FILE: docs/nodes/alibabacloud.md ================================================ --- id: alibabacloud title: AlibabaCloud --- Node classes list of the alibabacloud provider. ## alibabacloud.analytics AnalyticDb **diagrams.alibabacloud.analytics.AnalyticDb** ClickHouse **diagrams.alibabacloud.analytics.ClickHouse** DataLakeAnalytics **diagrams.alibabacloud.analytics.DataLakeAnalytics** ElaticMapReduce **diagrams.alibabacloud.analytics.ElaticMapReduce** OpenSearch **diagrams.alibabacloud.analytics.OpenSearch** ## alibabacloud.application ApiGateway **diagrams.alibabacloud.application.ApiGateway** BeeBot **diagrams.alibabacloud.application.BeeBot** BlockchainAsAService **diagrams.alibabacloud.application.BlockchainAsAService** CloudCallCenter **diagrams.alibabacloud.application.CloudCallCenter** CodePipeline **diagrams.alibabacloud.application.CodePipeline** DirectMail **diagrams.alibabacloud.application.DirectMail** LogService **diagrams.alibabacloud.application.LogService**, **SLS** (alias) MessageNotificationService **diagrams.alibabacloud.application.MessageNotificationService**, **MNS** (alias) NodeJsPerformancePlatform **diagrams.alibabacloud.application.NodeJsPerformancePlatform** OpenSearch **diagrams.alibabacloud.application.OpenSearch** PerformanceTestingService **diagrams.alibabacloud.application.PerformanceTestingService**, **PTS** (alias) RdCloud **diagrams.alibabacloud.application.RdCloud** SmartConversationAnalysis **diagrams.alibabacloud.application.SmartConversationAnalysis**, **SCA** (alias) Yida **diagrams.alibabacloud.application.Yida** ## alibabacloud.communication DirectMail **diagrams.alibabacloud.communication.DirectMail** MobilePush **diagrams.alibabacloud.communication.MobilePush** ## alibabacloud.compute AutoScaling **diagrams.alibabacloud.compute.AutoScaling**, **ESS** (alias) BatchCompute **diagrams.alibabacloud.compute.BatchCompute** ContainerRegistry **diagrams.alibabacloud.compute.ContainerRegistry** ContainerService **diagrams.alibabacloud.compute.ContainerService** ElasticComputeService **diagrams.alibabacloud.compute.ElasticComputeService**, **ECS** (alias) ElasticContainerInstance **diagrams.alibabacloud.compute.ElasticContainerInstance**, **ECI** (alias) ElasticHighPerformanceComputing **diagrams.alibabacloud.compute.ElasticHighPerformanceComputing**, **EHPC** (alias) ElasticSearch **diagrams.alibabacloud.compute.ElasticSearch** FunctionCompute **diagrams.alibabacloud.compute.FunctionCompute**, **FC** (alias) OperationOrchestrationService **diagrams.alibabacloud.compute.OperationOrchestrationService**, **OOS** (alias) ResourceOrchestrationService **diagrams.alibabacloud.compute.ResourceOrchestrationService**, **ROS** (alias) ServerLoadBalancer **diagrams.alibabacloud.compute.ServerLoadBalancer**, **SLB** (alias) ServerlessAppEngine **diagrams.alibabacloud.compute.ServerlessAppEngine**, **SAE** (alias) SimpleApplicationServer **diagrams.alibabacloud.compute.SimpleApplicationServer**, **SAS** (alias) WebAppService **diagrams.alibabacloud.compute.WebAppService**, **WAS** (alias) ## alibabacloud.database ApsaradbCassandra **diagrams.alibabacloud.database.ApsaradbCassandra** ApsaradbHbase **diagrams.alibabacloud.database.ApsaradbHbase** ApsaradbMemcache **diagrams.alibabacloud.database.ApsaradbMemcache** ApsaradbMongodb **diagrams.alibabacloud.database.ApsaradbMongodb** ApsaradbOceanbase **diagrams.alibabacloud.database.ApsaradbOceanbase** ApsaradbPolardb **diagrams.alibabacloud.database.ApsaradbPolardb** ApsaradbPostgresql **diagrams.alibabacloud.database.ApsaradbPostgresql** ApsaradbPpas **diagrams.alibabacloud.database.ApsaradbPpas** ApsaradbRedis **diagrams.alibabacloud.database.ApsaradbRedis** ApsaradbSqlserver **diagrams.alibabacloud.database.ApsaradbSqlserver** DataManagementService **diagrams.alibabacloud.database.DataManagementService**, **DMS** (alias) DataTransmissionService **diagrams.alibabacloud.database.DataTransmissionService**, **DTS** (alias) DatabaseBackupService **diagrams.alibabacloud.database.DatabaseBackupService**, **DBS** (alias) DisributeRelationalDatabaseService **diagrams.alibabacloud.database.DisributeRelationalDatabaseService**, **DRDS** (alias) GraphDatabaseService **diagrams.alibabacloud.database.GraphDatabaseService**, **GDS** (alias) HybriddbForMysql **diagrams.alibabacloud.database.HybriddbForMysql** RelationalDatabaseService **diagrams.alibabacloud.database.RelationalDatabaseService**, **RDS** (alias) ## alibabacloud.iot IotInternetDeviceId **diagrams.alibabacloud.iot.IotInternetDeviceId** IotLinkWan **diagrams.alibabacloud.iot.IotLinkWan** IotMobileConnectionPackage **diagrams.alibabacloud.iot.IotMobileConnectionPackage** IotPlatform **diagrams.alibabacloud.iot.IotPlatform** ## alibabacloud.network Cdn **diagrams.alibabacloud.network.Cdn** CloudEnterpriseNetwork **diagrams.alibabacloud.network.CloudEnterpriseNetwork**, **CEN** (alias) ElasticIpAddress **diagrams.alibabacloud.network.ElasticIpAddress**, **EIP** (alias) ExpressConnect **diagrams.alibabacloud.network.ExpressConnect** NatGateway **diagrams.alibabacloud.network.NatGateway** ServerLoadBalancer **diagrams.alibabacloud.network.ServerLoadBalancer**, **SLB** (alias) SmartAccessGateway **diagrams.alibabacloud.network.SmartAccessGateway** VirtualPrivateCloud **diagrams.alibabacloud.network.VirtualPrivateCloud**, **VPC** (alias) VpnGateway **diagrams.alibabacloud.network.VpnGateway** ## alibabacloud.security AntiBotService **diagrams.alibabacloud.security.AntiBotService**, **ABS** (alias) AntiDdosBasic **diagrams.alibabacloud.security.AntiDdosBasic** AntiDdosPro **diagrams.alibabacloud.security.AntiDdosPro** AntifraudService **diagrams.alibabacloud.security.AntifraudService**, **AS** (alias) BastionHost **diagrams.alibabacloud.security.BastionHost** CloudFirewall **diagrams.alibabacloud.security.CloudFirewall**, **CFW** (alias) CloudSecurityScanner **diagrams.alibabacloud.security.CloudSecurityScanner** ContentModeration **diagrams.alibabacloud.security.ContentModeration**, **CM** (alias) CrowdsourcedSecurityTesting **diagrams.alibabacloud.security.CrowdsourcedSecurityTesting** DataEncryptionService **diagrams.alibabacloud.security.DataEncryptionService**, **DES** (alias) DbAudit **diagrams.alibabacloud.security.DbAudit** GameShield **diagrams.alibabacloud.security.GameShield** IdVerification **diagrams.alibabacloud.security.IdVerification** ManagedSecurityService **diagrams.alibabacloud.security.ManagedSecurityService** SecurityCenter **diagrams.alibabacloud.security.SecurityCenter** ServerGuard **diagrams.alibabacloud.security.ServerGuard** SslCertificates **diagrams.alibabacloud.security.SslCertificates** WebApplicationFirewall **diagrams.alibabacloud.security.WebApplicationFirewall**, **WAF** (alias) ## alibabacloud.storage CloudStorageGateway **diagrams.alibabacloud.storage.CloudStorageGateway** FileStorageHdfs **diagrams.alibabacloud.storage.FileStorageHdfs**, **HDFS** (alias) FileStorageNas **diagrams.alibabacloud.storage.FileStorageNas**, **NAS** (alias) HybridBackupRecovery **diagrams.alibabacloud.storage.HybridBackupRecovery**, **HBR** (alias) HybridCloudDisasterRecovery **diagrams.alibabacloud.storage.HybridCloudDisasterRecovery**, **HDR** (alias) Imm **diagrams.alibabacloud.storage.Imm** ObjectStorageService **diagrams.alibabacloud.storage.ObjectStorageService**, **OSS** (alias) ObjectTableStore **diagrams.alibabacloud.storage.ObjectTableStore**, **OTS** (alias) ## alibabacloud.web Dns **diagrams.alibabacloud.web.Dns** Domain **diagrams.alibabacloud.web.Domain** ================================================ FILE: docs/nodes/aws.md ================================================ --- id: aws title: AWS --- Node classes list of the aws provider. ## aws.analytics AmazonOpensearchService **diagrams.aws.analytics.AmazonOpensearchService** Analytics **diagrams.aws.analytics.Analytics** Athena **diagrams.aws.analytics.Athena** CloudsearchSearchDocuments **diagrams.aws.analytics.CloudsearchSearchDocuments** Cloudsearch **diagrams.aws.analytics.Cloudsearch** DataLakeResource **diagrams.aws.analytics.DataLakeResource** DataPipeline **diagrams.aws.analytics.DataPipeline** ElasticsearchService **diagrams.aws.analytics.ElasticsearchService**, **ES** (alias) EMRCluster **diagrams.aws.analytics.EMRCluster** EMREngineMaprM3 **diagrams.aws.analytics.EMREngineMaprM3** EMREngineMaprM5 **diagrams.aws.analytics.EMREngineMaprM5** EMREngineMaprM7 **diagrams.aws.analytics.EMREngineMaprM7** EMREngine **diagrams.aws.analytics.EMREngine** EMRHdfsCluster **diagrams.aws.analytics.EMRHdfsCluster** EMR **diagrams.aws.analytics.EMR** GlueCrawlers **diagrams.aws.analytics.GlueCrawlers** GlueDataCatalog **diagrams.aws.analytics.GlueDataCatalog** Glue **diagrams.aws.analytics.Glue** KinesisDataAnalytics **diagrams.aws.analytics.KinesisDataAnalytics** KinesisDataFirehose **diagrams.aws.analytics.KinesisDataFirehose** KinesisDataStreams **diagrams.aws.analytics.KinesisDataStreams** KinesisVideoStreams **diagrams.aws.analytics.KinesisVideoStreams** Kinesis **diagrams.aws.analytics.Kinesis** LakeFormation **diagrams.aws.analytics.LakeFormation** ManagedStreamingForKafka **diagrams.aws.analytics.ManagedStreamingForKafka** Quicksight **diagrams.aws.analytics.Quicksight** RedshiftDenseComputeNode **diagrams.aws.analytics.RedshiftDenseComputeNode** RedshiftDenseStorageNode **diagrams.aws.analytics.RedshiftDenseStorageNode** Redshift **diagrams.aws.analytics.Redshift** ## aws.ar ArVr **diagrams.aws.ar.ArVr** Sumerian **diagrams.aws.ar.Sumerian** ## aws.blockchain BlockchainResource **diagrams.aws.blockchain.BlockchainResource** Blockchain **diagrams.aws.blockchain.Blockchain** ManagedBlockchain **diagrams.aws.blockchain.ManagedBlockchain** QuantumLedgerDatabaseQldb **diagrams.aws.blockchain.QuantumLedgerDatabaseQldb**, **QLDB** (alias) ## aws.business AlexaForBusiness **diagrams.aws.business.AlexaForBusiness**, **A4B** (alias) BusinessApplications **diagrams.aws.business.BusinessApplications** Chime **diagrams.aws.business.Chime** Workmail **diagrams.aws.business.Workmail** ## aws.compute AppRunner **diagrams.aws.compute.AppRunner** ApplicationAutoScaling **diagrams.aws.compute.ApplicationAutoScaling**, **AutoScaling** (alias) Batch **diagrams.aws.compute.Batch** ComputeOptimizer **diagrams.aws.compute.ComputeOptimizer** Compute **diagrams.aws.compute.Compute** EC2Ami **diagrams.aws.compute.EC2Ami**, **AMI** (alias) EC2AutoScaling **diagrams.aws.compute.EC2AutoScaling** EC2ContainerRegistryImage **diagrams.aws.compute.EC2ContainerRegistryImage** EC2ContainerRegistryRegistry **diagrams.aws.compute.EC2ContainerRegistryRegistry** EC2ContainerRegistry **diagrams.aws.compute.EC2ContainerRegistry**, **ECR** (alias) EC2ElasticIpAddress **diagrams.aws.compute.EC2ElasticIpAddress** EC2ImageBuilder **diagrams.aws.compute.EC2ImageBuilder** EC2Instance **diagrams.aws.compute.EC2Instance** EC2Instances **diagrams.aws.compute.EC2Instances** EC2Rescue **diagrams.aws.compute.EC2Rescue** EC2SpotInstance **diagrams.aws.compute.EC2SpotInstance** EC2 **diagrams.aws.compute.EC2** ElasticBeanstalkApplication **diagrams.aws.compute.ElasticBeanstalkApplication** ElasticBeanstalkDeployment **diagrams.aws.compute.ElasticBeanstalkDeployment** ElasticBeanstalk **diagrams.aws.compute.ElasticBeanstalk**, **EB** (alias) ElasticContainerServiceContainer **diagrams.aws.compute.ElasticContainerServiceContainer** ElasticContainerServiceServiceConnect **diagrams.aws.compute.ElasticContainerServiceServiceConnect** ElasticContainerServiceService **diagrams.aws.compute.ElasticContainerServiceService** ElasticContainerServiceTask **diagrams.aws.compute.ElasticContainerServiceTask** ElasticContainerService **diagrams.aws.compute.ElasticContainerService**, **ECS** (alias) ElasticKubernetesService **diagrams.aws.compute.ElasticKubernetesService**, **EKS** (alias) Fargate **diagrams.aws.compute.Fargate** LambdaFunction **diagrams.aws.compute.LambdaFunction** Lambda **diagrams.aws.compute.Lambda** Lightsail **diagrams.aws.compute.Lightsail** LocalZones **diagrams.aws.compute.LocalZones** Outposts **diagrams.aws.compute.Outposts** ServerlessApplicationRepository **diagrams.aws.compute.ServerlessApplicationRepository**, **SAR** (alias) ThinkboxDeadline **diagrams.aws.compute.ThinkboxDeadline** ThinkboxDraft **diagrams.aws.compute.ThinkboxDraft** ThinkboxFrost **diagrams.aws.compute.ThinkboxFrost** ThinkboxKrakatoa **diagrams.aws.compute.ThinkboxKrakatoa** ThinkboxSequoia **diagrams.aws.compute.ThinkboxSequoia** ThinkboxStoke **diagrams.aws.compute.ThinkboxStoke** ThinkboxXmesh **diagrams.aws.compute.ThinkboxXmesh** VmwareCloudOnAWS **diagrams.aws.compute.VmwareCloudOnAWS** Wavelength **diagrams.aws.compute.Wavelength** ## aws.cost Budgets **diagrams.aws.cost.Budgets** CostAndUsageReport **diagrams.aws.cost.CostAndUsageReport** CostExplorer **diagrams.aws.cost.CostExplorer** CostManagement **diagrams.aws.cost.CostManagement** ReservedInstanceReporting **diagrams.aws.cost.ReservedInstanceReporting** SavingsPlans **diagrams.aws.cost.SavingsPlans** ## aws.database AuroraInstance **diagrams.aws.database.AuroraInstance** Aurora **diagrams.aws.database.Aurora** DatabaseMigrationServiceDatabaseMigrationWorkflow **diagrams.aws.database.DatabaseMigrationServiceDatabaseMigrationWorkflow** DatabaseMigrationService **diagrams.aws.database.DatabaseMigrationService**, **DMS** (alias) Database **diagrams.aws.database.Database**, **DB** (alias) DocumentdbMongodbCompatibility **diagrams.aws.database.DocumentdbMongodbCompatibility**, **DocumentDB** (alias) DynamodbAttribute **diagrams.aws.database.DynamodbAttribute** DynamodbAttributes **diagrams.aws.database.DynamodbAttributes** DynamodbDax **diagrams.aws.database.DynamodbDax**, **DAX** (alias) DynamodbGlobalSecondaryIndex **diagrams.aws.database.DynamodbGlobalSecondaryIndex**, **DynamodbGSI** (alias) DynamodbItem **diagrams.aws.database.DynamodbItem** DynamodbItems **diagrams.aws.database.DynamodbItems** DynamodbStreams **diagrams.aws.database.DynamodbStreams** DynamodbTable **diagrams.aws.database.DynamodbTable** Dynamodb **diagrams.aws.database.Dynamodb**, **DDB** (alias) ElasticacheCacheNode **diagrams.aws.database.ElasticacheCacheNode** ElasticacheForMemcached **diagrams.aws.database.ElasticacheForMemcached** ElasticacheForRedis **diagrams.aws.database.ElasticacheForRedis** Elasticache **diagrams.aws.database.Elasticache**, **ElastiCache** (alias) KeyspacesManagedApacheCassandraService **diagrams.aws.database.KeyspacesManagedApacheCassandraService** Neptune **diagrams.aws.database.Neptune** QuantumLedgerDatabaseQldb **diagrams.aws.database.QuantumLedgerDatabaseQldb**, **QLDB** (alias) RDSInstance **diagrams.aws.database.RDSInstance** RDSMariadbInstance **diagrams.aws.database.RDSMariadbInstance** RDSMysqlInstance **diagrams.aws.database.RDSMysqlInstance** RDSOnVmware **diagrams.aws.database.RDSOnVmware** RDSOracleInstance **diagrams.aws.database.RDSOracleInstance** RDSPostgresqlInstance **diagrams.aws.database.RDSPostgresqlInstance** RDSSqlServerInstance **diagrams.aws.database.RDSSqlServerInstance** RDS **diagrams.aws.database.RDS** RedshiftDenseComputeNode **diagrams.aws.database.RedshiftDenseComputeNode** RedshiftDenseStorageNode **diagrams.aws.database.RedshiftDenseStorageNode** Redshift **diagrams.aws.database.Redshift** Timestream **diagrams.aws.database.Timestream** ## aws.devtools CloudDevelopmentKit **diagrams.aws.devtools.CloudDevelopmentKit** Cloud9Resource **diagrams.aws.devtools.Cloud9Resource** Cloud9 **diagrams.aws.devtools.Cloud9** Cloudshell **diagrams.aws.devtools.Cloudshell** Codeartifact **diagrams.aws.devtools.Codeartifact** Codebuild **diagrams.aws.devtools.Codebuild** Codecommit **diagrams.aws.devtools.Codecommit** Codedeploy **diagrams.aws.devtools.Codedeploy** Codepipeline **diagrams.aws.devtools.Codepipeline** Codestar **diagrams.aws.devtools.Codestar** CommandLineInterface **diagrams.aws.devtools.CommandLineInterface**, **CLI** (alias) DeveloperTools **diagrams.aws.devtools.DeveloperTools**, **DevTools** (alias) ToolsAndSdks **diagrams.aws.devtools.ToolsAndSdks** XRay **diagrams.aws.devtools.XRay** ## aws.enablement CustomerEnablement **diagrams.aws.enablement.CustomerEnablement** Iq **diagrams.aws.enablement.Iq** ManagedServices **diagrams.aws.enablement.ManagedServices** ProfessionalServices **diagrams.aws.enablement.ProfessionalServices** Support **diagrams.aws.enablement.Support** ## aws.enduser Appstream20 **diagrams.aws.enduser.Appstream20** DesktopAndAppStreaming **diagrams.aws.enduser.DesktopAndAppStreaming** Workdocs **diagrams.aws.enduser.Workdocs** Worklink **diagrams.aws.enduser.Worklink** Workspaces **diagrams.aws.enduser.Workspaces** ## aws.engagement Connect **diagrams.aws.engagement.Connect** CustomerEngagement **diagrams.aws.engagement.CustomerEngagement** Pinpoint **diagrams.aws.engagement.Pinpoint** SimpleEmailServiceSesEmail **diagrams.aws.engagement.SimpleEmailServiceSesEmail** SimpleEmailServiceSes **diagrams.aws.engagement.SimpleEmailServiceSes**, **SES** (alias) ## aws.game GameTech **diagrams.aws.game.GameTech** Gamelift **diagrams.aws.game.Gamelift** ## aws.general Client **diagrams.aws.general.Client** Disk **diagrams.aws.general.Disk** Forums **diagrams.aws.general.Forums** General **diagrams.aws.general.General** GenericDatabase **diagrams.aws.general.GenericDatabase** GenericFirewall **diagrams.aws.general.GenericFirewall** GenericOfficeBuilding **diagrams.aws.general.GenericOfficeBuilding**, **OfficeBuilding** (alias) GenericSamlToken **diagrams.aws.general.GenericSamlToken** GenericSDK **diagrams.aws.general.GenericSDK** InternetAlt1 **diagrams.aws.general.InternetAlt1** InternetAlt2 **diagrams.aws.general.InternetAlt2** InternetGateway **diagrams.aws.general.InternetGateway** Marketplace **diagrams.aws.general.Marketplace** MobileClient **diagrams.aws.general.MobileClient** Multimedia **diagrams.aws.general.Multimedia** OfficeBuilding **diagrams.aws.general.OfficeBuilding** SamlToken **diagrams.aws.general.SamlToken** SDK **diagrams.aws.general.SDK** SslPadlock **diagrams.aws.general.SslPadlock** TapeStorage **diagrams.aws.general.TapeStorage** Toolkit **diagrams.aws.general.Toolkit** TraditionalServer **diagrams.aws.general.TraditionalServer** User **diagrams.aws.general.User** Users **diagrams.aws.general.Users** ## aws.integration ApplicationIntegration **diagrams.aws.integration.ApplicationIntegration** Appsync **diagrams.aws.integration.Appsync** ConsoleMobileApplication **diagrams.aws.integration.ConsoleMobileApplication** EventResource **diagrams.aws.integration.EventResource** EventbridgeCustomEventBusResource **diagrams.aws.integration.EventbridgeCustomEventBusResource** EventbridgeDefaultEventBusResource **diagrams.aws.integration.EventbridgeDefaultEventBusResource** EventbridgeEvent **diagrams.aws.integration.EventbridgeEvent** EventbridgePipes **diagrams.aws.integration.EventbridgePipes** EventbridgeRule **diagrams.aws.integration.EventbridgeRule** EventbridgeSaasPartnerEventBusResource **diagrams.aws.integration.EventbridgeSaasPartnerEventBusResource** EventbridgeScheduler **diagrams.aws.integration.EventbridgeScheduler** EventbridgeSchema **diagrams.aws.integration.EventbridgeSchema** Eventbridge **diagrams.aws.integration.Eventbridge** ExpressWorkflows **diagrams.aws.integration.ExpressWorkflows** MQ **diagrams.aws.integration.MQ** SimpleNotificationServiceSnsEmailNotification **diagrams.aws.integration.SimpleNotificationServiceSnsEmailNotification** SimpleNotificationServiceSnsHttpNotification **diagrams.aws.integration.SimpleNotificationServiceSnsHttpNotification** SimpleNotificationServiceSnsTopic **diagrams.aws.integration.SimpleNotificationServiceSnsTopic** SimpleNotificationServiceSns **diagrams.aws.integration.SimpleNotificationServiceSns**, **SNS** (alias) SimpleQueueServiceSqsMessage **diagrams.aws.integration.SimpleQueueServiceSqsMessage** SimpleQueueServiceSqsQueue **diagrams.aws.integration.SimpleQueueServiceSqsQueue** SimpleQueueServiceSqs **diagrams.aws.integration.SimpleQueueServiceSqs**, **SQS** (alias) StepFunctions **diagrams.aws.integration.StepFunctions**, **SF** (alias) ## aws.iot Freertos **diagrams.aws.iot.Freertos**, **FreeRTOS** (alias) InternetOfThings **diagrams.aws.iot.InternetOfThings** Iot1Click **diagrams.aws.iot.Iot1Click** IotAction **diagrams.aws.iot.IotAction** IotActuator **diagrams.aws.iot.IotActuator** IotAlexaEcho **diagrams.aws.iot.IotAlexaEcho** IotAlexaEnabledDevice **diagrams.aws.iot.IotAlexaEnabledDevice** IotAlexaSkill **diagrams.aws.iot.IotAlexaSkill** IotAlexaVoiceService **diagrams.aws.iot.IotAlexaVoiceService** IotAnalyticsChannel **diagrams.aws.iot.IotAnalyticsChannel** IotAnalyticsDataSet **diagrams.aws.iot.IotAnalyticsDataSet** IotAnalyticsDataStore **diagrams.aws.iot.IotAnalyticsDataStore** IotAnalyticsNotebook **diagrams.aws.iot.IotAnalyticsNotebook** IotAnalyticsPipeline **diagrams.aws.iot.IotAnalyticsPipeline** IotAnalytics **diagrams.aws.iot.IotAnalytics** IotBank **diagrams.aws.iot.IotBank** IotBicycle **diagrams.aws.iot.IotBicycle** IotButton **diagrams.aws.iot.IotButton** IotCamera **diagrams.aws.iot.IotCamera** IotCar **diagrams.aws.iot.IotCar** IotCart **diagrams.aws.iot.IotCart** IotCertificate **diagrams.aws.iot.IotCertificate** IotCoffeePot **diagrams.aws.iot.IotCoffeePot** IotCore **diagrams.aws.iot.IotCore** IotDesiredState **diagrams.aws.iot.IotDesiredState** IotDeviceDefender **diagrams.aws.iot.IotDeviceDefender** IotDeviceGateway **diagrams.aws.iot.IotDeviceGateway** IotDeviceManagement **diagrams.aws.iot.IotDeviceManagement** IotDoorLock **diagrams.aws.iot.IotDoorLock** IotEvents **diagrams.aws.iot.IotEvents** IotFactory **diagrams.aws.iot.IotFactory** IotFireTvStick **diagrams.aws.iot.IotFireTvStick** IotFireTv **diagrams.aws.iot.IotFireTv** IotGeneric **diagrams.aws.iot.IotGeneric** IotGreengrassConnector **diagrams.aws.iot.IotGreengrassConnector** IotGreengrass **diagrams.aws.iot.IotGreengrass** IotHardwareBoard **diagrams.aws.iot.IotHardwareBoard**, **IotBoard** (alias) IotHouse **diagrams.aws.iot.IotHouse** IotHttp **diagrams.aws.iot.IotHttp** IotHttp2 **diagrams.aws.iot.IotHttp2** IotJobs **diagrams.aws.iot.IotJobs** IotLambda **diagrams.aws.iot.IotLambda** IotLightbulb **diagrams.aws.iot.IotLightbulb** IotMedicalEmergency **diagrams.aws.iot.IotMedicalEmergency** IotMqtt **diagrams.aws.iot.IotMqtt** IotOverTheAirUpdate **diagrams.aws.iot.IotOverTheAirUpdate** IotPolicyEmergency **diagrams.aws.iot.IotPolicyEmergency** IotPolicy **diagrams.aws.iot.IotPolicy** IotReportedState **diagrams.aws.iot.IotReportedState** IotRule **diagrams.aws.iot.IotRule** IotSensor **diagrams.aws.iot.IotSensor** IotServo **diagrams.aws.iot.IotServo** IotShadow **diagrams.aws.iot.IotShadow** IotSimulator **diagrams.aws.iot.IotSimulator** IotSitewise **diagrams.aws.iot.IotSitewise** IotThermostat **diagrams.aws.iot.IotThermostat** IotThingsGraph **diagrams.aws.iot.IotThingsGraph** IotTopic **diagrams.aws.iot.IotTopic** IotTravel **diagrams.aws.iot.IotTravel** IotUtility **diagrams.aws.iot.IotUtility** IotWindfarm **diagrams.aws.iot.IotWindfarm** ## aws.management AmazonDevopsGuru **diagrams.aws.management.AmazonDevopsGuru** AmazonManagedGrafana **diagrams.aws.management.AmazonManagedGrafana** AmazonManagedPrometheus **diagrams.aws.management.AmazonManagedPrometheus** AmazonManagedWorkflowsApacheAirflow **diagrams.aws.management.AmazonManagedWorkflowsApacheAirflow** AutoScaling **diagrams.aws.management.AutoScaling** Chatbot **diagrams.aws.management.Chatbot** CloudformationChangeSet **diagrams.aws.management.CloudformationChangeSet** CloudformationStack **diagrams.aws.management.CloudformationStack** CloudformationTemplate **diagrams.aws.management.CloudformationTemplate** Cloudformation **diagrams.aws.management.Cloudformation** Cloudtrail **diagrams.aws.management.Cloudtrail** CloudwatchAlarm **diagrams.aws.management.CloudwatchAlarm** CloudwatchEventEventBased **diagrams.aws.management.CloudwatchEventEventBased** CloudwatchEventTimeBased **diagrams.aws.management.CloudwatchEventTimeBased** CloudwatchLogs **diagrams.aws.management.CloudwatchLogs** CloudwatchRule **diagrams.aws.management.CloudwatchRule** Cloudwatch **diagrams.aws.management.Cloudwatch** Codeguru **diagrams.aws.management.Codeguru** CommandLineInterface **diagrams.aws.management.CommandLineInterface** Config **diagrams.aws.management.Config** ControlTower **diagrams.aws.management.ControlTower** LicenseManager **diagrams.aws.management.LicenseManager** ManagedServices **diagrams.aws.management.ManagedServices** ManagementAndGovernance **diagrams.aws.management.ManagementAndGovernance** ManagementConsole **diagrams.aws.management.ManagementConsole** OpsworksApps **diagrams.aws.management.OpsworksApps** OpsworksDeployments **diagrams.aws.management.OpsworksDeployments** OpsworksInstances **diagrams.aws.management.OpsworksInstances** OpsworksLayers **diagrams.aws.management.OpsworksLayers** OpsworksMonitoring **diagrams.aws.management.OpsworksMonitoring** OpsworksPermissions **diagrams.aws.management.OpsworksPermissions** OpsworksResources **diagrams.aws.management.OpsworksResources** OpsworksStack **diagrams.aws.management.OpsworksStack** Opsworks **diagrams.aws.management.Opsworks** OrganizationsAccount **diagrams.aws.management.OrganizationsAccount** OrganizationsOrganizationalUnit **diagrams.aws.management.OrganizationsOrganizationalUnit** Organizations **diagrams.aws.management.Organizations** PersonalHealthDashboard **diagrams.aws.management.PersonalHealthDashboard** Proton **diagrams.aws.management.Proton** ServiceCatalog **diagrams.aws.management.ServiceCatalog** SystemsManagerAppConfig **diagrams.aws.management.SystemsManagerAppConfig** SystemsManagerAutomation **diagrams.aws.management.SystemsManagerAutomation** SystemsManagerDocuments **diagrams.aws.management.SystemsManagerDocuments** SystemsManagerInventory **diagrams.aws.management.SystemsManagerInventory** SystemsManagerMaintenanceWindows **diagrams.aws.management.SystemsManagerMaintenanceWindows** SystemsManagerOpscenter **diagrams.aws.management.SystemsManagerOpscenter** SystemsManagerParameterStore **diagrams.aws.management.SystemsManagerParameterStore**, **ParameterStore** (alias) SystemsManagerPatchManager **diagrams.aws.management.SystemsManagerPatchManager** SystemsManagerRunCommand **diagrams.aws.management.SystemsManagerRunCommand** SystemsManagerStateManager **diagrams.aws.management.SystemsManagerStateManager** SystemsManager **diagrams.aws.management.SystemsManager**, **SSM** (alias) TrustedAdvisorChecklistCost **diagrams.aws.management.TrustedAdvisorChecklistCost** TrustedAdvisorChecklistFaultTolerant **diagrams.aws.management.TrustedAdvisorChecklistFaultTolerant** TrustedAdvisorChecklistPerformance **diagrams.aws.management.TrustedAdvisorChecklistPerformance** TrustedAdvisorChecklistSecurity **diagrams.aws.management.TrustedAdvisorChecklistSecurity** TrustedAdvisorChecklist **diagrams.aws.management.TrustedAdvisorChecklist** TrustedAdvisor **diagrams.aws.management.TrustedAdvisor** UserNotifications **diagrams.aws.management.UserNotifications** WellArchitectedTool **diagrams.aws.management.WellArchitectedTool** ## aws.media ElasticTranscoder **diagrams.aws.media.ElasticTranscoder** ElementalConductor **diagrams.aws.media.ElementalConductor** ElementalDelta **diagrams.aws.media.ElementalDelta** ElementalLive **diagrams.aws.media.ElementalLive** ElementalMediaconnect **diagrams.aws.media.ElementalMediaconnect** ElementalMediaconvert **diagrams.aws.media.ElementalMediaconvert** ElementalMedialive **diagrams.aws.media.ElementalMedialive** ElementalMediapackage **diagrams.aws.media.ElementalMediapackage** ElementalMediastore **diagrams.aws.media.ElementalMediastore** ElementalMediatailor **diagrams.aws.media.ElementalMediatailor** ElementalServer **diagrams.aws.media.ElementalServer** KinesisVideoStreams **diagrams.aws.media.KinesisVideoStreams** MediaServices **diagrams.aws.media.MediaServices** ## aws.migration ApplicationDiscoveryService **diagrams.aws.migration.ApplicationDiscoveryService**, **ADS** (alias) CloudendureMigration **diagrams.aws.migration.CloudendureMigration**, **CEM** (alias) DatabaseMigrationService **diagrams.aws.migration.DatabaseMigrationService**, **DMS** (alias) DatasyncAgent **diagrams.aws.migration.DatasyncAgent** Datasync **diagrams.aws.migration.Datasync** MigrationAndTransfer **diagrams.aws.migration.MigrationAndTransfer**, **MAT** (alias) MigrationHub **diagrams.aws.migration.MigrationHub** ServerMigrationService **diagrams.aws.migration.ServerMigrationService**, **SMS** (alias) SnowballEdge **diagrams.aws.migration.SnowballEdge** Snowball **diagrams.aws.migration.Snowball** Snowmobile **diagrams.aws.migration.Snowmobile** TransferForSftp **diagrams.aws.migration.TransferForSftp** ## aws.ml ApacheMxnetOnAWS **diagrams.aws.ml.ApacheMxnetOnAWS** AugmentedAi **diagrams.aws.ml.AugmentedAi** Bedrock **diagrams.aws.ml.Bedrock** Comprehend **diagrams.aws.ml.Comprehend** DeepLearningAmis **diagrams.aws.ml.DeepLearningAmis** DeepLearningContainers **diagrams.aws.ml.DeepLearningContainers**, **DLC** (alias) Deepcomposer **diagrams.aws.ml.Deepcomposer** Deeplens **diagrams.aws.ml.Deeplens** Deepracer **diagrams.aws.ml.Deepracer** ElasticInference **diagrams.aws.ml.ElasticInference** Forecast **diagrams.aws.ml.Forecast** FraudDetector **diagrams.aws.ml.FraudDetector** Kendra **diagrams.aws.ml.Kendra** Lex **diagrams.aws.ml.Lex** MachineLearning **diagrams.aws.ml.MachineLearning** Personalize **diagrams.aws.ml.Personalize** Polly **diagrams.aws.ml.Polly** Q **diagrams.aws.ml.Q** RekognitionImage **diagrams.aws.ml.RekognitionImage** RekognitionVideo **diagrams.aws.ml.RekognitionVideo** Rekognition **diagrams.aws.ml.Rekognition** SagemakerGroundTruth **diagrams.aws.ml.SagemakerGroundTruth** SagemakerModel **diagrams.aws.ml.SagemakerModel** SagemakerNotebook **diagrams.aws.ml.SagemakerNotebook** SagemakerTrainingJob **diagrams.aws.ml.SagemakerTrainingJob** Sagemaker **diagrams.aws.ml.Sagemaker** TensorflowOnAWS **diagrams.aws.ml.TensorflowOnAWS** Textract **diagrams.aws.ml.Textract** Transcribe **diagrams.aws.ml.Transcribe** Transform **diagrams.aws.ml.Transform** Translate **diagrams.aws.ml.Translate** ## aws.mobile Amplify **diagrams.aws.mobile.Amplify** APIGatewayEndpoint **diagrams.aws.mobile.APIGatewayEndpoint** APIGateway **diagrams.aws.mobile.APIGateway** Appsync **diagrams.aws.mobile.Appsync** DeviceFarm **diagrams.aws.mobile.DeviceFarm** Mobile **diagrams.aws.mobile.Mobile** Pinpoint **diagrams.aws.mobile.Pinpoint** ## aws.network APIGatewayEndpoint **diagrams.aws.network.APIGatewayEndpoint** APIGateway **diagrams.aws.network.APIGateway** AppMesh **diagrams.aws.network.AppMesh** ClientVpn **diagrams.aws.network.ClientVpn** CloudMap **diagrams.aws.network.CloudMap** CloudFrontDownloadDistribution **diagrams.aws.network.CloudFrontDownloadDistribution** CloudFrontEdgeLocation **diagrams.aws.network.CloudFrontEdgeLocation** CloudFrontStreamingDistribution **diagrams.aws.network.CloudFrontStreamingDistribution** CloudFront **diagrams.aws.network.CloudFront**, **CF** (alias) DirectConnect **diagrams.aws.network.DirectConnect** ElasticLoadBalancing **diagrams.aws.network.ElasticLoadBalancing**, **ELB** (alias) ElbApplicationLoadBalancer **diagrams.aws.network.ElbApplicationLoadBalancer**, **ALB** (alias) ElbClassicLoadBalancer **diagrams.aws.network.ElbClassicLoadBalancer**, **CLB** (alias) ElbNetworkLoadBalancer **diagrams.aws.network.ElbNetworkLoadBalancer**, **NLB** (alias) Endpoint **diagrams.aws.network.Endpoint** GlobalAccelerator **diagrams.aws.network.GlobalAccelerator**, **GAX** (alias) InternetGateway **diagrams.aws.network.InternetGateway**, **IGW** (alias) Nacl **diagrams.aws.network.Nacl** NATGateway **diagrams.aws.network.NATGateway** NetworkFirewall **diagrams.aws.network.NetworkFirewall** NetworkingAndContentDelivery **diagrams.aws.network.NetworkingAndContentDelivery** PrivateSubnet **diagrams.aws.network.PrivateSubnet** Privatelink **diagrams.aws.network.Privatelink** PublicSubnet **diagrams.aws.network.PublicSubnet** Route53HostedZone **diagrams.aws.network.Route53HostedZone** Route53 **diagrams.aws.network.Route53** RouteTable **diagrams.aws.network.RouteTable** SiteToSiteVpn **diagrams.aws.network.SiteToSiteVpn** TransitGatewayAttachment **diagrams.aws.network.TransitGatewayAttachment**, **TGWAttach** (alias) TransitGateway **diagrams.aws.network.TransitGateway**, **TGW** (alias) VPCCustomerGateway **diagrams.aws.network.VPCCustomerGateway** VPCElasticNetworkAdapter **diagrams.aws.network.VPCElasticNetworkAdapter** VPCElasticNetworkInterface **diagrams.aws.network.VPCElasticNetworkInterface** VPCFlowLogs **diagrams.aws.network.VPCFlowLogs** VPCPeering **diagrams.aws.network.VPCPeering** VPCRouter **diagrams.aws.network.VPCRouter** VPCTrafficMirroring **diagrams.aws.network.VPCTrafficMirroring** VPC **diagrams.aws.network.VPC** VpnConnection **diagrams.aws.network.VpnConnection** VpnGateway **diagrams.aws.network.VpnGateway** ## aws.quantum Braket **diagrams.aws.quantum.Braket** QuantumTechnologies **diagrams.aws.quantum.QuantumTechnologies** ## aws.robotics RobomakerCloudExtensionRos **diagrams.aws.robotics.RobomakerCloudExtensionRos** RobomakerDevelopmentEnvironment **diagrams.aws.robotics.RobomakerDevelopmentEnvironment** RobomakerFleetManagement **diagrams.aws.robotics.RobomakerFleetManagement** RobomakerSimulator **diagrams.aws.robotics.RobomakerSimulator** Robomaker **diagrams.aws.robotics.Robomaker** Robotics **diagrams.aws.robotics.Robotics** ## aws.satellite GroundStation **diagrams.aws.satellite.GroundStation** Satellite **diagrams.aws.satellite.Satellite** ## aws.security AdConnector **diagrams.aws.security.AdConnector** Artifact **diagrams.aws.security.Artifact** CertificateAuthority **diagrams.aws.security.CertificateAuthority** CertificateManager **diagrams.aws.security.CertificateManager**, **ACM** (alias) CloudDirectory **diagrams.aws.security.CloudDirectory** Cloudhsm **diagrams.aws.security.Cloudhsm**, **CloudHSM** (alias) Cognito **diagrams.aws.security.Cognito** Detective **diagrams.aws.security.Detective** DirectoryService **diagrams.aws.security.DirectoryService**, **DS** (alias) FirewallManager **diagrams.aws.security.FirewallManager**, **FMS** (alias) Guardduty **diagrams.aws.security.Guardduty** IdentityAndAccessManagementIamAccessAnalyzer **diagrams.aws.security.IdentityAndAccessManagementIamAccessAnalyzer**, **IAMAccessAnalyzer** (alias) IdentityAndAccessManagementIamAddOn **diagrams.aws.security.IdentityAndAccessManagementIamAddOn** IdentityAndAccessManagementIamAWSStsAlternate **diagrams.aws.security.IdentityAndAccessManagementIamAWSStsAlternate** IdentityAndAccessManagementIamAWSSts **diagrams.aws.security.IdentityAndAccessManagementIamAWSSts**, **IAMAWSSts** (alias) IdentityAndAccessManagementIamDataEncryptionKey **diagrams.aws.security.IdentityAndAccessManagementIamDataEncryptionKey** IdentityAndAccessManagementIamEncryptedData **diagrams.aws.security.IdentityAndAccessManagementIamEncryptedData** IdentityAndAccessManagementIamLongTermSecurityCredential **diagrams.aws.security.IdentityAndAccessManagementIamLongTermSecurityCredential** IdentityAndAccessManagementIamMfaToken **diagrams.aws.security.IdentityAndAccessManagementIamMfaToken** IdentityAndAccessManagementIamPermissions **diagrams.aws.security.IdentityAndAccessManagementIamPermissions**, **IAMPermissions** (alias) IdentityAndAccessManagementIamRole **diagrams.aws.security.IdentityAndAccessManagementIamRole**, **IAMRole** (alias) IdentityAndAccessManagementIamTemporarySecurityCredential **diagrams.aws.security.IdentityAndAccessManagementIamTemporarySecurityCredential** IdentityAndAccessManagementIam **diagrams.aws.security.IdentityAndAccessManagementIam**, **IAM** (alias) InspectorAgent **diagrams.aws.security.InspectorAgent** Inspector **diagrams.aws.security.Inspector** KeyManagementService **diagrams.aws.security.KeyManagementService**, **KMS** (alias) Macie **diagrams.aws.security.Macie** ManagedMicrosoftAd **diagrams.aws.security.ManagedMicrosoftAd** ResourceAccessManager **diagrams.aws.security.ResourceAccessManager**, **RAM** (alias) SecretsManager **diagrams.aws.security.SecretsManager** SecurityHubFinding **diagrams.aws.security.SecurityHubFinding** SecurityHub **diagrams.aws.security.SecurityHub** SecurityIdentityAndCompliance **diagrams.aws.security.SecurityIdentityAndCompliance** SecurityLake **diagrams.aws.security.SecurityLake** ShieldAdvanced **diagrams.aws.security.ShieldAdvanced** Shield **diagrams.aws.security.Shield** SimpleAd **diagrams.aws.security.SimpleAd** SingleSignOn **diagrams.aws.security.SingleSignOn** WAFFilteringRule **diagrams.aws.security.WAFFilteringRule** WAF **diagrams.aws.security.WAF** ## aws.storage Backup **diagrams.aws.storage.Backup** CloudendureDisasterRecovery **diagrams.aws.storage.CloudendureDisasterRecovery**, **CDR** (alias) EFSInfrequentaccessPrimaryBg **diagrams.aws.storage.EFSInfrequentaccessPrimaryBg** EFSStandardPrimaryBg **diagrams.aws.storage.EFSStandardPrimaryBg** ElasticBlockStoreEBSSnapshot **diagrams.aws.storage.ElasticBlockStoreEBSSnapshot** ElasticBlockStoreEBSVolume **diagrams.aws.storage.ElasticBlockStoreEBSVolume** ElasticBlockStoreEBS **diagrams.aws.storage.ElasticBlockStoreEBS**, **EBS** (alias) ElasticFileSystemEFSFileSystem **diagrams.aws.storage.ElasticFileSystemEFSFileSystem** ElasticFileSystemEFS **diagrams.aws.storage.ElasticFileSystemEFS**, **EFS** (alias) FsxForLustre **diagrams.aws.storage.FsxForLustre** FsxForWindowsFileServer **diagrams.aws.storage.FsxForWindowsFileServer** Fsx **diagrams.aws.storage.Fsx**, **FSx** (alias) MultipleVolumesResource **diagrams.aws.storage.MultipleVolumesResource** S3AccessPoints **diagrams.aws.storage.S3AccessPoints** S3GlacierArchive **diagrams.aws.storage.S3GlacierArchive** S3GlacierVault **diagrams.aws.storage.S3GlacierVault** S3Glacier **diagrams.aws.storage.S3Glacier** S3ObjectLambdaAccessPoints **diagrams.aws.storage.S3ObjectLambdaAccessPoints** SimpleStorageServiceS3BucketWithObjects **diagrams.aws.storage.SimpleStorageServiceS3BucketWithObjects** SimpleStorageServiceS3Bucket **diagrams.aws.storage.SimpleStorageServiceS3Bucket** SimpleStorageServiceS3Object **diagrams.aws.storage.SimpleStorageServiceS3Object** SimpleStorageServiceS3 **diagrams.aws.storage.SimpleStorageServiceS3**, **S3** (alias) SnowFamilySnowballImportExport **diagrams.aws.storage.SnowFamilySnowballImportExport** SnowballEdge **diagrams.aws.storage.SnowballEdge** Snowball **diagrams.aws.storage.Snowball** Snowmobile **diagrams.aws.storage.Snowmobile** StorageGatewayCachedVolume **diagrams.aws.storage.StorageGatewayCachedVolume** StorageGatewayNonCachedVolume **diagrams.aws.storage.StorageGatewayNonCachedVolume** StorageGatewayVirtualTapeLibrary **diagrams.aws.storage.StorageGatewayVirtualTapeLibrary** StorageGateway **diagrams.aws.storage.StorageGateway** Storage **diagrams.aws.storage.Storage** ================================================ FILE: docs/nodes/azure.md ================================================ --- id: azure title: Azure --- Node classes list of azure provider. ## azure.aimachinelearning AIStudio **diagrams.azure.aimachinelearning.AIStudio** AnomalyDetector **diagrams.azure.aimachinelearning.AnomalyDetector** AzureAppliedAIServices **diagrams.azure.aimachinelearning.AzureAppliedAIServices** AzureExperimentationStudio **diagrams.azure.aimachinelearning.AzureExperimentationStudio** AzureObjectUnderstanding **diagrams.azure.aimachinelearning.AzureObjectUnderstanding** AzureOpenai **diagrams.azure.aimachinelearning.AzureOpenai** BatchAI **diagrams.azure.aimachinelearning.BatchAI** Bonsai **diagrams.azure.aimachinelearning.Bonsai** BotServices **diagrams.azure.aimachinelearning.BotServices** CognitiveSearch **diagrams.azure.aimachinelearning.CognitiveSearch** CognitiveServicesDecisions **diagrams.azure.aimachinelearning.CognitiveServicesDecisions** CognitiveServices **diagrams.azure.aimachinelearning.CognitiveServices** ComputerVision **diagrams.azure.aimachinelearning.ComputerVision** ContentModerators **diagrams.azure.aimachinelearning.ContentModerators** CustomVision **diagrams.azure.aimachinelearning.CustomVision** FaceApis **diagrams.azure.aimachinelearning.FaceApis** FormRecognizers **diagrams.azure.aimachinelearning.FormRecognizers** GenomicsAccounts **diagrams.azure.aimachinelearning.GenomicsAccounts** Genomics **diagrams.azure.aimachinelearning.Genomics** ImmersiveReaders **diagrams.azure.aimachinelearning.ImmersiveReaders** LanguageUnderstanding **diagrams.azure.aimachinelearning.LanguageUnderstanding** Language **diagrams.azure.aimachinelearning.Language** MachineLearningStudioClassicWebServices **diagrams.azure.aimachinelearning.MachineLearningStudioClassicWebServices** MachineLearningStudioWebServicePlans **diagrams.azure.aimachinelearning.MachineLearningStudioWebServicePlans** MachineLearningStudioWorkspaces **diagrams.azure.aimachinelearning.MachineLearningStudioWorkspaces** MachineLearning **diagrams.azure.aimachinelearning.MachineLearning** MetricsAdvisor **diagrams.azure.aimachinelearning.MetricsAdvisor** Personalizers **diagrams.azure.aimachinelearning.Personalizers** QnaMakers **diagrams.azure.aimachinelearning.QnaMakers** ServerlessSearch **diagrams.azure.aimachinelearning.ServerlessSearch** SpeechServices **diagrams.azure.aimachinelearning.SpeechServices** TranslatorText **diagrams.azure.aimachinelearning.TranslatorText** ## azure.analytics AnalysisServices **diagrams.azure.analytics.AnalysisServices** AzureDataExplorerClusters **diagrams.azure.analytics.AzureDataExplorerClusters** AzureDatabricks **diagrams.azure.analytics.AzureDatabricks** AzureSynapseAnalytics **diagrams.azure.analytics.AzureSynapseAnalytics** AzureWorkbooks **diagrams.azure.analytics.AzureWorkbooks** DataExplorerClusters **diagrams.azure.analytics.DataExplorerClusters** DataFactories **diagrams.azure.analytics.DataFactories** DataLakeAnalytics **diagrams.azure.analytics.DataLakeAnalytics** DataLakeStoreGen1 **diagrams.azure.analytics.DataLakeStoreGen1** Databricks **diagrams.azure.analytics.Databricks** EndpointAnalytics **diagrams.azure.analytics.EndpointAnalytics** EventHubClusters **diagrams.azure.analytics.EventHubClusters** EventHubs **diagrams.azure.analytics.EventHubs** HDInsightClusters **diagrams.azure.analytics.HDInsightClusters** LogAnalyticsWorkspaces **diagrams.azure.analytics.LogAnalyticsWorkspaces** PowerBiEmbedded **diagrams.azure.analytics.PowerBiEmbedded** PowerPlatform **diagrams.azure.analytics.PowerPlatform** PrivateLinkServices **diagrams.azure.analytics.PrivateLinkServices** StreamAnalyticsJobs **diagrams.azure.analytics.StreamAnalyticsJobs** SynapseAnalytics **diagrams.azure.analytics.SynapseAnalytics** ## azure.appservices AppServiceCertificates **diagrams.azure.appservices.AppServiceCertificates** AppServiceDomains **diagrams.azure.appservices.AppServiceDomains** AppServiceEnvironments **diagrams.azure.appservices.AppServiceEnvironments** AppServicePlans **diagrams.azure.appservices.AppServicePlans** AppServices **diagrams.azure.appservices.AppServices** CDNProfiles **diagrams.azure.appservices.CDNProfiles** CognitiveSearch **diagrams.azure.appservices.CognitiveSearch** NotificationHubs **diagrams.azure.appservices.NotificationHubs** ## azure.azureecosystem Applens **diagrams.azure.azureecosystem.Applens** AzureHybridCenter **diagrams.azure.azureecosystem.AzureHybridCenter** CollaborativeService **diagrams.azure.azureecosystem.CollaborativeService** ## azure.azurestack Capacity **diagrams.azure.azurestack.Capacity** InfrastructureBackup **diagrams.azure.azurestack.InfrastructureBackup** MultiTenancy **diagrams.azure.azurestack.MultiTenancy** Offers **diagrams.azure.azurestack.Offers** Plans **diagrams.azure.azurestack.Plans** Updates **diagrams.azure.azurestack.Updates** UserSubscriptions **diagrams.azure.azurestack.UserSubscriptions** ## azure.blockchain AbsMember **diagrams.azure.blockchain.AbsMember** AzureBlockchainService **diagrams.azure.blockchain.AzureBlockchainService** AzureTokenService **diagrams.azure.blockchain.AzureTokenService** BlockchainApplications **diagrams.azure.blockchain.BlockchainApplications** Consortium **diagrams.azure.blockchain.Consortium** OutboundConnection **diagrams.azure.blockchain.OutboundConnection** ## azure.compute AppServices **diagrams.azure.compute.AppServices** ApplicationGroup **diagrams.azure.compute.ApplicationGroup** AutomanagedVM **diagrams.azure.compute.AutomanagedVM** AvailabilitySets **diagrams.azure.compute.AvailabilitySets** AzureComputeGalleries **diagrams.azure.compute.AzureComputeGalleries** AzureSpringApps **diagrams.azure.compute.AzureSpringApps** BatchAccounts **diagrams.azure.compute.BatchAccounts** CitrixVirtualDesktopsEssentials **diagrams.azure.compute.CitrixVirtualDesktopsEssentials** CloudServicesClassic **diagrams.azure.compute.CloudServicesClassic** CloudServices **diagrams.azure.compute.CloudServices** CloudsimpleVirtualMachines **diagrams.azure.compute.CloudsimpleVirtualMachines** ContainerApps **diagrams.azure.compute.ContainerApps** ContainerInstances **diagrams.azure.compute.ContainerInstances** ContainerRegistries **diagrams.azure.compute.ContainerRegistries**, **ACR** (alias) ContainerServicesDeprecated **diagrams.azure.compute.ContainerServicesDeprecated** DiskEncryptionSets **diagrams.azure.compute.DiskEncryptionSets** DiskSnapshots **diagrams.azure.compute.DiskSnapshots** DisksClassic **diagrams.azure.compute.DisksClassic** DisksSnapshots **diagrams.azure.compute.DisksSnapshots** Disks **diagrams.azure.compute.Disks** FunctionApps **diagrams.azure.compute.FunctionApps** HostGroups **diagrams.azure.compute.HostGroups** HostPools **diagrams.azure.compute.HostPools** Hosts **diagrams.azure.compute.Hosts** ImageDefinitions **diagrams.azure.compute.ImageDefinitions** ImageTemplates **diagrams.azure.compute.ImageTemplates** ImageVersions **diagrams.azure.compute.ImageVersions** Images **diagrams.azure.compute.Images** KubernetesServices **diagrams.azure.compute.KubernetesServices**, **AKS** (alias) MaintenanceConfiguration **diagrams.azure.compute.MaintenanceConfiguration** ManagedServiceFabric **diagrams.azure.compute.ManagedServiceFabric** MeshApplications **diagrams.azure.compute.MeshApplications** MetricsAdvisor **diagrams.azure.compute.MetricsAdvisor** OsImagesClassic **diagrams.azure.compute.OsImagesClassic** OsImages **diagrams.azure.compute.OsImages** RestorePointsCollections **diagrams.azure.compute.RestorePointsCollections** RestorePoints **diagrams.azure.compute.RestorePoints** SAPHANAOnAzure **diagrams.azure.compute.SAPHANAOnAzure** ServiceFabricClusters **diagrams.azure.compute.ServiceFabricClusters** SharedImageGalleries **diagrams.azure.compute.SharedImageGalleries** SpringCloud **diagrams.azure.compute.SpringCloud** VirtualMachine **diagrams.azure.compute.VirtualMachine** VirtualMachinesClassic **diagrams.azure.compute.VirtualMachinesClassic** VMClassic **diagrams.azure.compute.VMClassic** VMImagesClassic **diagrams.azure.compute.VMImagesClassic** VMImages **diagrams.azure.compute.VMImages** VMLinux **diagrams.azure.compute.VMLinux** VMScaleSet **diagrams.azure.compute.VMScaleSet**, **VMSS** (alias) VMScaleSets **diagrams.azure.compute.VMScaleSets** VMWindows **diagrams.azure.compute.VMWindows** VM **diagrams.azure.compute.VM** Workspaces2 **diagrams.azure.compute.Workspaces2** Workspaces **diagrams.azure.compute.Workspaces** ## azure.containers AppServices **diagrams.azure.containers.AppServices** AzureRedHatOpenshift **diagrams.azure.containers.AzureRedHatOpenshift** BatchAccounts **diagrams.azure.containers.BatchAccounts** ContainerInstances **diagrams.azure.containers.ContainerInstances** ContainerRegistries **diagrams.azure.containers.ContainerRegistries** KubernetesServices **diagrams.azure.containers.KubernetesServices** ServiceFabricClusters **diagrams.azure.containers.ServiceFabricClusters** ## azure.database BlobStorage **diagrams.azure.database.BlobStorage** CacheForRedis **diagrams.azure.database.CacheForRedis** CosmosDb **diagrams.azure.database.CosmosDb** DataExplorerClusters **diagrams.azure.database.DataExplorerClusters** DataFactory **diagrams.azure.database.DataFactory** DataLake **diagrams.azure.database.DataLake** DatabaseForMariadbServers **diagrams.azure.database.DatabaseForMariadbServers** DatabaseForMysqlServers **diagrams.azure.database.DatabaseForMysqlServers** DatabaseForPostgresqlServers **diagrams.azure.database.DatabaseForPostgresqlServers** ElasticDatabasePools **diagrams.azure.database.ElasticDatabasePools** ElasticJobAgents **diagrams.azure.database.ElasticJobAgents** InstancePools **diagrams.azure.database.InstancePools** ManagedDatabases **diagrams.azure.database.ManagedDatabases** SQLDatabases **diagrams.azure.database.SQLDatabases** SQLDatawarehouse **diagrams.azure.database.SQLDatawarehouse** SQLManagedInstances **diagrams.azure.database.SQLManagedInstances** SQLServerStretchDatabases **diagrams.azure.database.SQLServerStretchDatabases** SQLServers **diagrams.azure.database.SQLServers** SQLVM **diagrams.azure.database.SQLVM** SQL **diagrams.azure.database.SQL** SsisLiftAndShiftIr **diagrams.azure.database.SsisLiftAndShiftIr** SynapseAnalytics **diagrams.azure.database.SynapseAnalytics** VirtualClusters **diagrams.azure.database.VirtualClusters** VirtualDatacenter **diagrams.azure.database.VirtualDatacenter** ## azure.databases AzureCosmosDb **diagrams.azure.databases.AzureCosmosDb** AzureDataExplorerClusters **diagrams.azure.databases.AzureDataExplorerClusters** AzureDatabaseMariadbServer **diagrams.azure.databases.AzureDatabaseMariadbServer** AzureDatabaseMigrationServices **diagrams.azure.databases.AzureDatabaseMigrationServices** AzureDatabaseMysqlServer **diagrams.azure.databases.AzureDatabaseMysqlServer** AzureDatabasePostgresqlServerGroup **diagrams.azure.databases.AzureDatabasePostgresqlServerGroup** AzureDatabasePostgresqlServer **diagrams.azure.databases.AzureDatabasePostgresqlServer** AzurePurviewAccounts **diagrams.azure.databases.AzurePurviewAccounts** AzureSQLEdge **diagrams.azure.databases.AzureSQLEdge** AzureSQLServerStretchDatabases **diagrams.azure.databases.AzureSQLServerStretchDatabases** AzureSQLVM **diagrams.azure.databases.AzureSQLVM** AzureSQL **diagrams.azure.databases.AzureSQL** AzureSynapseAnalytics **diagrams.azure.databases.AzureSynapseAnalytics** CacheRedis **diagrams.azure.databases.CacheRedis** DataFactories **diagrams.azure.databases.DataFactories** ElasticJobAgents **diagrams.azure.databases.ElasticJobAgents** InstancePools **diagrams.azure.databases.InstancePools** ManagedDatabase **diagrams.azure.databases.ManagedDatabase** OracleDatabase **diagrams.azure.databases.OracleDatabase** SQLDataWarehouses **diagrams.azure.databases.SQLDataWarehouses** SQLDatabase **diagrams.azure.databases.SQLDatabase** SQLElasticPools **diagrams.azure.databases.SQLElasticPools** SQLManagedInstance **diagrams.azure.databases.SQLManagedInstance** SQLServerRegistries **diagrams.azure.databases.SQLServerRegistries** SQLServer **diagrams.azure.databases.SQLServer** SsisLiftAndShiftIr **diagrams.azure.databases.SsisLiftAndShiftIr** VirtualClusters **diagrams.azure.databases.VirtualClusters** ## azure.devops APIConnections **diagrams.azure.devops.APIConnections** APIManagementServices **diagrams.azure.devops.APIManagementServices** ApplicationInsights **diagrams.azure.devops.ApplicationInsights** Artifacts **diagrams.azure.devops.Artifacts** AzureDevops **diagrams.azure.devops.AzureDevops** Boards **diagrams.azure.devops.Boards** ChangeAnalysis **diagrams.azure.devops.ChangeAnalysis** Cloudtest **diagrams.azure.devops.Cloudtest** CodeOptimization **diagrams.azure.devops.CodeOptimization** DevopsStarter **diagrams.azure.devops.DevopsStarter** Devops **diagrams.azure.devops.Devops** DevtestLabs **diagrams.azure.devops.DevtestLabs** LabAccounts **diagrams.azure.devops.LabAccounts** LabServices **diagrams.azure.devops.LabServices** LoadTesting **diagrams.azure.devops.LoadTesting** Pipelines **diagrams.azure.devops.Pipelines** Repos **diagrams.azure.devops.Repos** TestPlans **diagrams.azure.devops.TestPlans** ## azure.general AllResources **diagrams.azure.general.AllResources** Allresources **diagrams.azure.general.Allresources** Azurehome **diagrams.azure.general.Azurehome** Backlog **diagrams.azure.general.Backlog** BizTalk **diagrams.azure.general.BizTalk** BlobBlock **diagrams.azure.general.BlobBlock** BlobPage **diagrams.azure.general.BlobPage** Branch **diagrams.azure.general.Branch** Browser **diagrams.azure.general.Browser** Bug **diagrams.azure.general.Bug** Builds **diagrams.azure.general.Builds** Cache **diagrams.azure.general.Cache** Code **diagrams.azure.general.Code** Commit **diagrams.azure.general.Commit** ControlsHorizontal **diagrams.azure.general.ControlsHorizontal** Controls **diagrams.azure.general.Controls** CostAlerts **diagrams.azure.general.CostAlerts** CostAnalysis **diagrams.azure.general.CostAnalysis** CostBudgets **diagrams.azure.general.CostBudgets** CostManagementAndBilling **diagrams.azure.general.CostManagementAndBilling** CostManagement **diagrams.azure.general.CostManagement** Counter **diagrams.azure.general.Counter** Cubes **diagrams.azure.general.Cubes** Dashboard **diagrams.azure.general.Dashboard** DevConsole **diagrams.azure.general.DevConsole** Developertools **diagrams.azure.general.Developertools** Download **diagrams.azure.general.Download** Error **diagrams.azure.general.Error** Extensions **diagrams.azure.general.Extensions** FeaturePreviews **diagrams.azure.general.FeaturePreviews** File **diagrams.azure.general.File** Files **diagrams.azure.general.Files** FolderBlank **diagrams.azure.general.FolderBlank** FolderWebsite **diagrams.azure.general.FolderWebsite** FreeServices **diagrams.azure.general.FreeServices** Ftp **diagrams.azure.general.Ftp** Gear **diagrams.azure.general.Gear** GlobeError **diagrams.azure.general.GlobeError** GlobeSuccess **diagrams.azure.general.GlobeSuccess** GlobeWarning **diagrams.azure.general.GlobeWarning** Guide **diagrams.azure.general.Guide** Heart **diagrams.azure.general.Heart** HelpAndSupport **diagrams.azure.general.HelpAndSupport** Helpsupport **diagrams.azure.general.Helpsupport** Image **diagrams.azure.general.Image** Information **diagrams.azure.general.Information** InputOutput **diagrams.azure.general.InputOutput** JourneyHub **diagrams.azure.general.JourneyHub** LaunchPortal **diagrams.azure.general.LaunchPortal** Learn **diagrams.azure.general.Learn** LoadTest **diagrams.azure.general.LoadTest** Location **diagrams.azure.general.Location** LogStreaming **diagrams.azure.general.LogStreaming** ManagementGroups **diagrams.azure.general.ManagementGroups** ManagementPortal **diagrams.azure.general.ManagementPortal** Managementgroups **diagrams.azure.general.Managementgroups** MarketplaceManagement **diagrams.azure.general.MarketplaceManagement** Marketplace **diagrams.azure.general.Marketplace** MediaFile **diagrams.azure.general.MediaFile** Media **diagrams.azure.general.Media** MobileEngagement **diagrams.azure.general.MobileEngagement** Mobile **diagrams.azure.general.Mobile** Module **diagrams.azure.general.Module** PowerUp **diagrams.azure.general.PowerUp** Power **diagrams.azure.general.Power** Powershell **diagrams.azure.general.Powershell** PreviewFeatures **diagrams.azure.general.PreviewFeatures** ProcessExplorer **diagrams.azure.general.ProcessExplorer** ProductionReadyDatabase **diagrams.azure.general.ProductionReadyDatabase** QuickstartCenter **diagrams.azure.general.QuickstartCenter** Quickstartcenter **diagrams.azure.general.Quickstartcenter** Recent **diagrams.azure.general.Recent** RegionManagement **diagrams.azure.general.RegionManagement** Reservations **diagrams.azure.general.Reservations** ResourceExplorer **diagrams.azure.general.ResourceExplorer** ResourceGroupList **diagrams.azure.general.ResourceGroupList** ResourceGroups **diagrams.azure.general.ResourceGroups** ResourceLinked **diagrams.azure.general.ResourceLinked** Resource **diagrams.azure.general.Resource** Resourcegroups **diagrams.azure.general.Resourcegroups** Scheduler **diagrams.azure.general.Scheduler** SearchGrid **diagrams.azure.general.SearchGrid** Search **diagrams.azure.general.Search** ServerFarm **diagrams.azure.general.ServerFarm** ServiceHealth **diagrams.azure.general.ServiceHealth** Servicehealth **diagrams.azure.general.Servicehealth** Shareddashboard **diagrams.azure.general.Shareddashboard** Ssd **diagrams.azure.general.Ssd** StorageAzureFiles **diagrams.azure.general.StorageAzureFiles** StorageContainer **diagrams.azure.general.StorageContainer** StorageQueue **diagrams.azure.general.StorageQueue** Subscriptions **diagrams.azure.general.Subscriptions** Support **diagrams.azure.general.Support** Supportrequests **diagrams.azure.general.Supportrequests** Table **diagrams.azure.general.Table** Tag **diagrams.azure.general.Tag** Tags **diagrams.azure.general.Tags** Templates **diagrams.azure.general.Templates** TfsVcRepository **diagrams.azure.general.TfsVcRepository** Toolbox **diagrams.azure.general.Toolbox** Troubleshoot **diagrams.azure.general.Troubleshoot** Twousericon **diagrams.azure.general.Twousericon** Userhealthicon **diagrams.azure.general.Userhealthicon** Usericon **diagrams.azure.general.Usericon** Userprivacy **diagrams.azure.general.Userprivacy** Userresource **diagrams.azure.general.Userresource** Versions **diagrams.azure.general.Versions** WebSlots **diagrams.azure.general.WebSlots** WebTest **diagrams.azure.general.WebTest** WebsitePower **diagrams.azure.general.WebsitePower** WebsiteStaging **diagrams.azure.general.WebsiteStaging** Whatsnew **diagrams.azure.general.Whatsnew** Workbooks **diagrams.azure.general.Workbooks** Workflow **diagrams.azure.general.Workflow** ## azure.hybridmulticloud AzureOperator5GCore **diagrams.azure.hybridmulticloud.AzureOperator5GCore** AzureOperatorInsights **diagrams.azure.hybridmulticloud.AzureOperatorInsights** AzureOperatorNexus **diagrams.azure.hybridmulticloud.AzureOperatorNexus** AzureOperatorServiceManager **diagrams.azure.hybridmulticloud.AzureOperatorServiceManager** AzureProgrammableConnectivity **diagrams.azure.hybridmulticloud.AzureProgrammableConnectivity** ## azure.identity AadLicenses **diagrams.azure.identity.AadLicenses** AccessReview **diagrams.azure.identity.AccessReview** ActiveDirectoryConnectHealth **diagrams.azure.identity.ActiveDirectoryConnectHealth** ActiveDirectory **diagrams.azure.identity.ActiveDirectory** ADB2C **diagrams.azure.identity.ADB2C** ADDomainServices **diagrams.azure.identity.ADDomainServices** ADIdentityProtection **diagrams.azure.identity.ADIdentityProtection** ADPrivilegedIdentityManagement **diagrams.azure.identity.ADPrivilegedIdentityManagement** AdministrativeUnits **diagrams.azure.identity.AdministrativeUnits** APIProxy **diagrams.azure.identity.APIProxy** AppRegistrations **diagrams.azure.identity.AppRegistrations** AzureActiveDirectory **diagrams.azure.identity.AzureActiveDirectory** AzureADB2C **diagrams.azure.identity.AzureADB2C** AzureADDomainServices **diagrams.azure.identity.AzureADDomainServices** AzureADIdentityProtection **diagrams.azure.identity.AzureADIdentityProtection** AzureADPrivilegeIdentityManagement **diagrams.azure.identity.AzureADPrivilegeIdentityManagement** AzureADPrivlegedIdentityManagement **diagrams.azure.identity.AzureADPrivlegedIdentityManagement** AzureADRolesAndAdministrators **diagrams.azure.identity.AzureADRolesAndAdministrators** AzureInformationProtection **diagrams.azure.identity.AzureInformationProtection** ConditionalAccess **diagrams.azure.identity.ConditionalAccess** CustomAzureADRoles **diagrams.azure.identity.CustomAzureADRoles** EnterpriseApplications **diagrams.azure.identity.EnterpriseApplications** EntraConnect **diagrams.azure.identity.EntraConnect** EntraDomainServices **diagrams.azure.identity.EntraDomainServices** EntraIDProtection **diagrams.azure.identity.EntraIDProtection** EntraManagedIdentities **diagrams.azure.identity.EntraManagedIdentities** EntraPrivlegedIdentityManagement **diagrams.azure.identity.EntraPrivlegedIdentityManagement** EntraVerifiedID **diagrams.azure.identity.EntraVerifiedID** ExternalIdentities **diagrams.azure.identity.ExternalIdentities** GlobalSecureAccess **diagrams.azure.identity.GlobalSecureAccess** Groups **diagrams.azure.identity.Groups** IdentityGovernance **diagrams.azure.identity.IdentityGovernance** InformationProtection **diagrams.azure.identity.InformationProtection** InternetAccess **diagrams.azure.identity.InternetAccess** ManagedIdentities **diagrams.azure.identity.ManagedIdentities** PrivateAccess **diagrams.azure.identity.PrivateAccess** Security **diagrams.azure.identity.Security** TenantProperties **diagrams.azure.identity.TenantProperties** UserSettings **diagrams.azure.identity.UserSettings** Users **diagrams.azure.identity.Users** VerifiableCredentials **diagrams.azure.identity.VerifiableCredentials** ## azure.integration APIConnections **diagrams.azure.integration.APIConnections** APIForFhir **diagrams.azure.integration.APIForFhir** APIManagementServices **diagrams.azure.integration.APIManagementServices** APIManagement **diagrams.azure.integration.APIManagement** AppConfiguration **diagrams.azure.integration.AppConfiguration** AzureAPIForFhir **diagrams.azure.integration.AzureAPIForFhir** AzureDataCatalog **diagrams.azure.integration.AzureDataCatalog** AzureDataboxGateway **diagrams.azure.integration.AzureDataboxGateway** AzureServiceBus **diagrams.azure.integration.AzureServiceBus** AzureSQLServerStretchDatabases **diagrams.azure.integration.AzureSQLServerStretchDatabases** AzureStackEdge **diagrams.azure.integration.AzureStackEdge** DataCatalog **diagrams.azure.integration.DataCatalog** DataFactories **diagrams.azure.integration.DataFactories** EventGridDomains **diagrams.azure.integration.EventGridDomains** EventGridSubscriptions **diagrams.azure.integration.EventGridSubscriptions** EventGridTopics **diagrams.azure.integration.EventGridTopics** IntegrationAccounts **diagrams.azure.integration.IntegrationAccounts** IntegrationEnvironments **diagrams.azure.integration.IntegrationEnvironments** IntegrationServiceEnvironments **diagrams.azure.integration.IntegrationServiceEnvironments** LogicAppsCustomConnector **diagrams.azure.integration.LogicAppsCustomConnector** LogicApps **diagrams.azure.integration.LogicApps** PartnerNamespace **diagrams.azure.integration.PartnerNamespace** PartnerRegistration **diagrams.azure.integration.PartnerRegistration** PartnerTopic **diagrams.azure.integration.PartnerTopic** PowerPlatform **diagrams.azure.integration.PowerPlatform** Relays **diagrams.azure.integration.Relays** SendgridAccounts **diagrams.azure.integration.SendgridAccounts** ServiceBusRelays **diagrams.azure.integration.ServiceBusRelays** ServiceBus **diagrams.azure.integration.ServiceBus** ServiceCatalogManagedApplicationDefinitions **diagrams.azure.integration.ServiceCatalogManagedApplicationDefinitions** SoftwareAsAService **diagrams.azure.integration.SoftwareAsAService** SQLDataWarehouses **diagrams.azure.integration.SQLDataWarehouses** StorsimpleDeviceManagers **diagrams.azure.integration.StorsimpleDeviceManagers** SystemTopic **diagrams.azure.integration.SystemTopic** ## azure.intune AzureADRolesAndAdministrators **diagrams.azure.intune.AzureADRolesAndAdministrators** ClientApps **diagrams.azure.intune.ClientApps** DeviceCompliance **diagrams.azure.intune.DeviceCompliance** DeviceConfiguration **diagrams.azure.intune.DeviceConfiguration** DeviceEnrollment **diagrams.azure.intune.DeviceEnrollment** DeviceSecurityApple **diagrams.azure.intune.DeviceSecurityApple** DeviceSecurityGoogle **diagrams.azure.intune.DeviceSecurityGoogle** DeviceSecurityWindows **diagrams.azure.intune.DeviceSecurityWindows** Devices **diagrams.azure.intune.Devices** Ebooks **diagrams.azure.intune.Ebooks** ExchangeAccess **diagrams.azure.intune.ExchangeAccess** IntuneAppProtection **diagrams.azure.intune.IntuneAppProtection** IntuneForEducation **diagrams.azure.intune.IntuneForEducation** Intune **diagrams.azure.intune.Intune** Mindaro **diagrams.azure.intune.Mindaro** SecurityBaselines **diagrams.azure.intune.SecurityBaselines** SoftwareUpdates **diagrams.azure.intune.SoftwareUpdates** TenantStatus **diagrams.azure.intune.TenantStatus** ## azure.iot AzureCosmosDb **diagrams.azure.iot.AzureCosmosDb** AzureDataboxGateway **diagrams.azure.iot.AzureDataboxGateway** AzureIotOperations **diagrams.azure.iot.AzureIotOperations** AzureMapsAccounts **diagrams.azure.iot.AzureMapsAccounts** AzureStack **diagrams.azure.iot.AzureStack** DeviceProvisioningServices **diagrams.azure.iot.DeviceProvisioningServices** DigitalTwins **diagrams.azure.iot.DigitalTwins** EventGridSubscriptions **diagrams.azure.iot.EventGridSubscriptions** EventHubClusters **diagrams.azure.iot.EventHubClusters** EventHubs **diagrams.azure.iot.EventHubs** FunctionApps **diagrams.azure.iot.FunctionApps** IndustrialIot **diagrams.azure.iot.IndustrialIot** IotCentralApplications **diagrams.azure.iot.IotCentralApplications** IotEdge **diagrams.azure.iot.IotEdge** IotHubSecurity **diagrams.azure.iot.IotHubSecurity** IotHub **diagrams.azure.iot.IotHub** LogicApps **diagrams.azure.iot.LogicApps** MachineLearningStudioClassicWebServices **diagrams.azure.iot.MachineLearningStudioClassicWebServices** MachineLearningStudioWebServicePlans **diagrams.azure.iot.MachineLearningStudioWebServicePlans** MachineLearningStudioWorkspaces **diagrams.azure.iot.MachineLearningStudioWorkspaces** Maps **diagrams.azure.iot.Maps** NotificationHubNamespaces **diagrams.azure.iot.NotificationHubNamespaces** NotificationHubs **diagrams.azure.iot.NotificationHubs** Sphere **diagrams.azure.iot.Sphere** StackHciPremium **diagrams.azure.iot.StackHciPremium** StreamAnalyticsJobs **diagrams.azure.iot.StreamAnalyticsJobs** TimeSeriesDataSets **diagrams.azure.iot.TimeSeriesDataSets** TimeSeriesInsightsAccessPolicies **diagrams.azure.iot.TimeSeriesInsightsAccessPolicies** TimeSeriesInsightsEnvironments **diagrams.azure.iot.TimeSeriesInsightsEnvironments** TimeSeriesInsightsEventSources **diagrams.azure.iot.TimeSeriesInsightsEventSources** TimeSeriesInsightsEventsSources **diagrams.azure.iot.TimeSeriesInsightsEventsSources** Windows10IotCoreServices **diagrams.azure.iot.Windows10IotCoreServices** Windows10CoreServices **diagrams.azure.iot.Windows10CoreServices** ## azure.managementgovernance ActivityLog **diagrams.azure.managementgovernance.ActivityLog** Advisor **diagrams.azure.managementgovernance.Advisor** Alerts **diagrams.azure.managementgovernance.Alerts** ApplicationInsights **diagrams.azure.managementgovernance.ApplicationInsights** ArcMachines **diagrams.azure.managementgovernance.ArcMachines** AutomationAccounts **diagrams.azure.managementgovernance.AutomationAccounts** AzureArc **diagrams.azure.managementgovernance.AzureArc** AzureLighthouse **diagrams.azure.managementgovernance.AzureLighthouse** Blueprints **diagrams.azure.managementgovernance.Blueprints** Compliance **diagrams.azure.managementgovernance.Compliance** CostManagementAndBilling **diagrams.azure.managementgovernance.CostManagementAndBilling** CustomerLockboxForMicrosoftAzure **diagrams.azure.managementgovernance.CustomerLockboxForMicrosoftAzure** DiagnosticsSettings **diagrams.azure.managementgovernance.DiagnosticsSettings** Education **diagrams.azure.managementgovernance.Education** IntuneTrends **diagrams.azure.managementgovernance.IntuneTrends** LogAnalyticsWorkspaces **diagrams.azure.managementgovernance.LogAnalyticsWorkspaces** Machinesazurearc **diagrams.azure.managementgovernance.Machinesazurearc** ManagedApplicationsCenter **diagrams.azure.managementgovernance.ManagedApplicationsCenter** ManagedDesktop **diagrams.azure.managementgovernance.ManagedDesktop** Metrics **diagrams.azure.managementgovernance.Metrics** Monitor **diagrams.azure.managementgovernance.Monitor** MyCustomers **diagrams.azure.managementgovernance.MyCustomers** OperationLogClassic **diagrams.azure.managementgovernance.OperationLogClassic** Policy **diagrams.azure.managementgovernance.Policy** RecoveryServicesVaults **diagrams.azure.managementgovernance.RecoveryServicesVaults** ResourceGraphExplorer **diagrams.azure.managementgovernance.ResourceGraphExplorer** ResourcesProvider **diagrams.azure.managementgovernance.ResourcesProvider** SchedulerJobCollections **diagrams.azure.managementgovernance.SchedulerJobCollections** ServiceCatalogMad **diagrams.azure.managementgovernance.ServiceCatalogMad** ServiceProviders **diagrams.azure.managementgovernance.ServiceProviders** Solutions **diagrams.azure.managementgovernance.Solutions** UniversalPrint **diagrams.azure.managementgovernance.UniversalPrint** UserPrivacy **diagrams.azure.managementgovernance.UserPrivacy** ## azure.menu Keys **diagrams.azure.menu.Keys** ## azure.migrate AzureDataboxGateway **diagrams.azure.migrate.AzureDataboxGateway** AzureMigrate **diagrams.azure.migrate.AzureMigrate** AzureStackEdge **diagrams.azure.migrate.AzureStackEdge** CostManagementAndBilling **diagrams.azure.migrate.CostManagementAndBilling** DataBox **diagrams.azure.migrate.DataBox** RecoveryServicesVaults **diagrams.azure.migrate.RecoveryServicesVaults** ## azure.migration AzureDatabaseMigrationServices **diagrams.azure.migration.AzureDatabaseMigrationServices** DataBoxEdge **diagrams.azure.migration.DataBoxEdge** DataBox **diagrams.azure.migration.DataBox** DatabaseMigrationServices **diagrams.azure.migration.DatabaseMigrationServices** MigrationProjects **diagrams.azure.migration.MigrationProjects** RecoveryServicesVaults **diagrams.azure.migration.RecoveryServicesVaults** ## azure.mixedreality RemoteRendering **diagrams.azure.mixedreality.RemoteRendering** SpatialAnchorAccounts **diagrams.azure.mixedreality.SpatialAnchorAccounts** ## azure.ml AzureOpenAI **diagrams.azure.ml.AzureOpenAI** AzureSpeechService **diagrams.azure.ml.AzureSpeechService** BatchAI **diagrams.azure.ml.BatchAI** BotServices **diagrams.azure.ml.BotServices** CognitiveServices **diagrams.azure.ml.CognitiveServices** GenomicsAccounts **diagrams.azure.ml.GenomicsAccounts** MachineLearningServiceWorkspaces **diagrams.azure.ml.MachineLearningServiceWorkspaces** MachineLearningStudioWebServicePlans **diagrams.azure.ml.MachineLearningStudioWebServicePlans** MachineLearningStudioWebServices **diagrams.azure.ml.MachineLearningStudioWebServices** MachineLearningStudioWorkspaces **diagrams.azure.ml.MachineLearningStudioWorkspaces** ## azure.mobile AppServiceMobile **diagrams.azure.mobile.AppServiceMobile** AppServices **diagrams.azure.mobile.AppServices** MobileEngagement **diagrams.azure.mobile.MobileEngagement** NotificationHubs **diagrams.azure.mobile.NotificationHubs** PowerPlatform **diagrams.azure.mobile.PowerPlatform** ## azure.monitor ActivityLog **diagrams.azure.monitor.ActivityLog** ApplicationInsights **diagrams.azure.monitor.ApplicationInsights** AutoScale **diagrams.azure.monitor.AutoScale** AzureMonitorsForSAPSolutions **diagrams.azure.monitor.AzureMonitorsForSAPSolutions** AzureWorkbooks **diagrams.azure.monitor.AzureWorkbooks** ChangeAnalysis **diagrams.azure.monitor.ChangeAnalysis** DiagnosticsSettings **diagrams.azure.monitor.DiagnosticsSettings** LogAnalyticsWorkspaces **diagrams.azure.monitor.LogAnalyticsWorkspaces** Metrics **diagrams.azure.monitor.Metrics** Monitor **diagrams.azure.monitor.Monitor** NetworkWatcher **diagrams.azure.monitor.NetworkWatcher** ## azure.network ApplicationGateway **diagrams.azure.network.ApplicationGateway** ApplicationSecurityGroups **diagrams.azure.network.ApplicationSecurityGroups** CDNProfiles **diagrams.azure.network.CDNProfiles** Connections **diagrams.azure.network.Connections** DDOSProtectionPlans **diagrams.azure.network.DDOSProtectionPlans** DNSPrivateZones **diagrams.azure.network.DNSPrivateZones** DNSZones **diagrams.azure.network.DNSZones** ExpressrouteCircuits **diagrams.azure.network.ExpressrouteCircuits** Firewall **diagrams.azure.network.Firewall** FrontDoors **diagrams.azure.network.FrontDoors** LoadBalancers **diagrams.azure.network.LoadBalancers** LocalNetworkGateways **diagrams.azure.network.LocalNetworkGateways** NetworkInterfaces **diagrams.azure.network.NetworkInterfaces** NetworkSecurityGroupsClassic **diagrams.azure.network.NetworkSecurityGroupsClassic** NetworkWatcher **diagrams.azure.network.NetworkWatcher** OnPremisesDataGateways **diagrams.azure.network.OnPremisesDataGateways** PrivateEndpoint **diagrams.azure.network.PrivateEndpoint** PublicIpAddresses **diagrams.azure.network.PublicIpAddresses** ReservedIpAddressesClassic **diagrams.azure.network.ReservedIpAddressesClassic** RouteFilters **diagrams.azure.network.RouteFilters** RouteTables **diagrams.azure.network.RouteTables** ServiceEndpointPolicies **diagrams.azure.network.ServiceEndpointPolicies** Subnets **diagrams.azure.network.Subnets** TrafficManagerProfiles **diagrams.azure.network.TrafficManagerProfiles** VirtualNetworkClassic **diagrams.azure.network.VirtualNetworkClassic** VirtualNetworkGateways **diagrams.azure.network.VirtualNetworkGateways** VirtualNetworks **diagrams.azure.network.VirtualNetworks** VirtualWans **diagrams.azure.network.VirtualWans** ## azure.networking ApplicationGateways **diagrams.azure.networking.ApplicationGateways** AtmMultistack **diagrams.azure.networking.AtmMultistack** AzureCommunicationsGateway **diagrams.azure.networking.AzureCommunicationsGateway** AzureFirewallManager **diagrams.azure.networking.AzureFirewallManager** AzureFirewallPolicy **diagrams.azure.networking.AzureFirewallPolicy** Bastions **diagrams.azure.networking.Bastions** CDNProfiles **diagrams.azure.networking.CDNProfiles** ConnectedCache **diagrams.azure.networking.ConnectedCache** Connections **diagrams.azure.networking.Connections** DDOSProtectionPlans **diagrams.azure.networking.DDOSProtectionPlans** DNSMultistack **diagrams.azure.networking.DNSMultistack** DNSPrivateResolver **diagrams.azure.networking.DNSPrivateResolver** DNSSecurityPolicy **diagrams.azure.networking.DNSSecurityPolicy** DNSZones **diagrams.azure.networking.DNSZones** ExpressrouteCircuits **diagrams.azure.networking.ExpressrouteCircuits** Firewalls **diagrams.azure.networking.Firewalls** FrontDoorAndCDNProfiles **diagrams.azure.networking.FrontDoorAndCDNProfiles** IpAddressManager **diagrams.azure.networking.IpAddressManager** IpGroups **diagrams.azure.networking.IpGroups** LoadBalancerHub **diagrams.azure.networking.LoadBalancerHub** LoadBalancers **diagrams.azure.networking.LoadBalancers** LocalNetworkGateways **diagrams.azure.networking.LocalNetworkGateways** Nat **diagrams.azure.networking.Nat** NetworkInterfaces **diagrams.azure.networking.NetworkInterfaces** NetworkSecurityGroups **diagrams.azure.networking.NetworkSecurityGroups** NetworkWatcher **diagrams.azure.networking.NetworkWatcher** OnPremisesDataGateways **diagrams.azure.networking.OnPremisesDataGateways** PrivateLinkService **diagrams.azure.networking.PrivateLinkService** PrivateLinkServices **diagrams.azure.networking.PrivateLinkServices** PrivateLink **diagrams.azure.networking.PrivateLink** ProximityPlacementGroups **diagrams.azure.networking.ProximityPlacementGroups** PublicIpAddressesClassic **diagrams.azure.networking.PublicIpAddressesClassic** PublicIpAddresses **diagrams.azure.networking.PublicIpAddresses** PublicIpPrefixes **diagrams.azure.networking.PublicIpPrefixes** ReservedIpAddressesClassic **diagrams.azure.networking.ReservedIpAddressesClassic** ResourceManagementPrivateLink **diagrams.azure.networking.ResourceManagementPrivateLink** RouteFilters **diagrams.azure.networking.RouteFilters** RouteTables **diagrams.azure.networking.RouteTables** ServiceEndpointPolicies **diagrams.azure.networking.ServiceEndpointPolicies** SpotVM **diagrams.azure.networking.SpotVM** SpotVmss **diagrams.azure.networking.SpotVmss** Subnet **diagrams.azure.networking.Subnet** TrafficController **diagrams.azure.networking.TrafficController** TrafficManagerProfiles **diagrams.azure.networking.TrafficManagerProfiles** VirtualNetworkGateways **diagrams.azure.networking.VirtualNetworkGateways** VirtualNetworksClassic **diagrams.azure.networking.VirtualNetworksClassic** VirtualNetworks **diagrams.azure.networking.VirtualNetworks** VirtualRouter **diagrams.azure.networking.VirtualRouter** VirtualWanHub **diagrams.azure.networking.VirtualWanHub** VirtualWans **diagrams.azure.networking.VirtualWans** WebApplicationFirewallPolicieswaf **diagrams.azure.networking.WebApplicationFirewallPolicieswaf** ## azure.newicons AzureSustainability **diagrams.azure.newicons.AzureSustainability** ConnectedVehiclePlatform **diagrams.azure.newicons.ConnectedVehiclePlatform** EntraConnectHealth **diagrams.azure.newicons.EntraConnectHealth** EntraConnectSync **diagrams.azure.newicons.EntraConnectSync** IcmTroubleshooting **diagrams.azure.newicons.IcmTroubleshooting** Osconfig **diagrams.azure.newicons.Osconfig** StorageActions **diagrams.azure.newicons.StorageActions** ## azure.other AadLicenses **diagrams.azure.other.AadLicenses** AksIstio **diagrams.azure.other.AksIstio** AppComplianceAutomation **diagrams.azure.other.AppComplianceAutomation** AppRegistrations **diagrams.azure.other.AppRegistrations** Aquila **diagrams.azure.other.Aquila** ArcDataServices **diagrams.azure.other.ArcDataServices** ArcKubernetes **diagrams.azure.other.ArcKubernetes** ArcPostgresql **diagrams.azure.other.ArcPostgresql** ArcSQLManagedInstance **diagrams.azure.other.ArcSQLManagedInstance** ArcSQLServer **diagrams.azure.other.ArcSQLServer** AvsVM **diagrams.azure.other.AvsVM** AzureA **diagrams.azure.other.AzureA** AzureBackupCenter **diagrams.azure.other.AzureBackupCenter** AzureCenterForSAP **diagrams.azure.other.AzureCenterForSAP** AzureChaosStudio **diagrams.azure.other.AzureChaosStudio** AzureCloudShell **diagrams.azure.other.AzureCloudShell** AzureCommunicationServices **diagrams.azure.other.AzureCommunicationServices** AzureComputeGalleries **diagrams.azure.other.AzureComputeGalleries** AzureDeploymentEnvironments **diagrams.azure.other.AzureDeploymentEnvironments** AzureDevTunnels **diagrams.azure.other.AzureDevTunnels** AzureEdgeHardwareCenter **diagrams.azure.other.AzureEdgeHardwareCenter** AzureHpcWorkbenches **diagrams.azure.other.AzureHpcWorkbenches** AzureLoadTesting **diagrams.azure.other.AzureLoadTesting** AzureManagedGrafana **diagrams.azure.other.AzureManagedGrafana** AzureMonitorDashboard **diagrams.azure.other.AzureMonitorDashboard** AzureNetworkFunctionManagerFunctions **diagrams.azure.other.AzureNetworkFunctionManagerFunctions** AzureNetworkFunctionManager **diagrams.azure.other.AzureNetworkFunctionManager** AzureOrbital **diagrams.azure.other.AzureOrbital** AzureQuotas **diagrams.azure.other.AzureQuotas** AzureSphere **diagrams.azure.other.AzureSphere** AzureStorageMover **diagrams.azure.other.AzureStorageMover** AzureSupportCenterBlue **diagrams.azure.other.AzureSupportCenterBlue** AzureVideoIndexer **diagrams.azure.other.AzureVideoIndexer** AzureVirtualDesktop **diagrams.azure.other.AzureVirtualDesktop** AzureVmwareSolution **diagrams.azure.other.AzureVmwareSolution** Azureattestation **diagrams.azure.other.Azureattestation** Azurite **diagrams.azure.other.Azurite** BackupVault **diagrams.azure.other.BackupVault** BareMetalInfrastructure **diagrams.azure.other.BareMetalInfrastructure** CapacityReservationGroups **diagrams.azure.other.CapacityReservationGroups** CentralServiceInstanceForSAP **diagrams.azure.other.CentralServiceInstanceForSAP** Ceres **diagrams.azure.other.Ceres** CloudServicesExtendedSupport **diagrams.azure.other.CloudServicesExtendedSupport** CommunityImages **diagrams.azure.other.CommunityImages** ComplianceCenter **diagrams.azure.other.ComplianceCenter** ConfidentialLedgers **diagrams.azure.other.ConfidentialLedgers** ContainerAppsEnvironments **diagrams.azure.other.ContainerAppsEnvironments** CostExport **diagrams.azure.other.CostExport** CustomIpPrefix **diagrams.azure.other.CustomIpPrefix** DashboardHub **diagrams.azure.other.DashboardHub** DataCollectionRules **diagrams.azure.other.DataCollectionRules** DatabaseInstanceForSAP **diagrams.azure.other.DatabaseInstanceForSAP** DedicatedHsm **diagrams.azure.other.DedicatedHsm** DefenderCmLocalManager **diagrams.azure.other.DefenderCmLocalManager** DefenderDcsController **diagrams.azure.other.DefenderDcsController** DefenderDistributerControlSystem **diagrams.azure.other.DefenderDistributerControlSystem** DefenderEngineeringStation **diagrams.azure.other.DefenderEngineeringStation** DefenderExternalManagement **diagrams.azure.other.DefenderExternalManagement** DefenderFreezerMonitor **diagrams.azure.other.DefenderFreezerMonitor** DefenderHistorian **diagrams.azure.other.DefenderHistorian** DefenderHmi **diagrams.azure.other.DefenderHmi** DefenderIndustrialPackagingSystem **diagrams.azure.other.DefenderIndustrialPackagingSystem** DefenderIndustrialPrinter **diagrams.azure.other.DefenderIndustrialPrinter** DefenderIndustrialRobot **diagrams.azure.other.DefenderIndustrialRobot** DefenderIndustrialScaleSystem **diagrams.azure.other.DefenderIndustrialScaleSystem** DefenderMarquee **diagrams.azure.other.DefenderMarquee** DefenderMeter **diagrams.azure.other.DefenderMeter** DefenderPlc **diagrams.azure.other.DefenderPlc** DefenderPneumaticDevice **diagrams.azure.other.DefenderPneumaticDevice** DefenderProgramableBoard **diagrams.azure.other.DefenderProgramableBoard** DefenderRelay **diagrams.azure.other.DefenderRelay** DefenderRobotController **diagrams.azure.other.DefenderRobotController** DefenderRtu **diagrams.azure.other.DefenderRtu** DefenderSensor **diagrams.azure.other.DefenderSensor** DefenderSlot **diagrams.azure.other.DefenderSlot** DefenderWebGuidingSystem **diagrams.azure.other.DefenderWebGuidingSystem** DeviceUpdateIotHub **diagrams.azure.other.DeviceUpdateIotHub** DiskPool **diagrams.azure.other.DiskPool** EdgeManagement **diagrams.azure.other.EdgeManagement** ElasticSan **diagrams.azure.other.ElasticSan** ExchangeOnPremisesAccess **diagrams.azure.other.ExchangeOnPremisesAccess** ExpressRouteTrafficCollector **diagrams.azure.other.ExpressRouteTrafficCollector** ExpressrouteDirect **diagrams.azure.other.ExpressrouteDirect** FhirService **diagrams.azure.other.FhirService** Fiji **diagrams.azure.other.Fiji** HdiAksCluster **diagrams.azure.other.HdiAksCluster** InstancePools **diagrams.azure.other.InstancePools** InternetAnalyzerProfiles **diagrams.azure.other.InternetAnalyzerProfiles** KubernetesFleetManager **diagrams.azure.other.KubernetesFleetManager** LocalNetworkGateways **diagrams.azure.other.LocalNetworkGateways** LogAnalyticsQueryPack **diagrams.azure.other.LogAnalyticsQueryPack** ManagedInstanceApacheCassandra **diagrams.azure.other.ManagedInstanceApacheCassandra** MedtechService **diagrams.azure.other.MedtechService** MicrosoftDevBox **diagrams.azure.other.MicrosoftDevBox** MissionLandingZone **diagrams.azure.other.MissionLandingZone** MobileNetworks **diagrams.azure.other.MobileNetworks** ModularDataCenter **diagrams.azure.other.ModularDataCenter** NetworkManagers **diagrams.azure.other.NetworkManagers** NetworkSecurityPerimeters **diagrams.azure.other.NetworkSecurityPerimeters** OpenSupplyChainPlatform **diagrams.azure.other.OpenSupplyChainPlatform** PeeringService **diagrams.azure.other.PeeringService** Peerings **diagrams.azure.other.Peerings** PrivateEndpoints **diagrams.azure.other.PrivateEndpoints** ReservedCapacity **diagrams.azure.other.ReservedCapacity** ResourceGuard **diagrams.azure.other.ResourceGuard** ResourceMover **diagrams.azure.other.ResourceMover** Rtos **diagrams.azure.other.Rtos** SavingsPlans **diagrams.azure.other.SavingsPlans** ScvmmManagementServers **diagrams.azure.other.ScvmmManagementServers** SonicDash **diagrams.azure.other.SonicDash** SshKeys **diagrams.azure.other.SshKeys** StorageFunctions **diagrams.azure.other.StorageFunctions** TargetsManagement **diagrams.azure.other.TargetsManagement** TemplateSpecs **diagrams.azure.other.TemplateSpecs** TestBase **diagrams.azure.other.TestBase** UpdateManagementCenter **diagrams.azure.other.UpdateManagementCenter** VideoAnalyzers **diagrams.azure.other.VideoAnalyzers** VirtualEnclaves **diagrams.azure.other.VirtualEnclaves** VirtualInstanceForSAP **diagrams.azure.other.VirtualInstanceForSAP** VirtualVisitsBuilder **diagrams.azure.other.VirtualVisitsBuilder** VMAppDefinitions **diagrams.azure.other.VMAppDefinitions** VMAppVersions **diagrams.azure.other.VMAppVersions** VMImageVersion **diagrams.azure.other.VMImageVersion** Wac **diagrams.azure.other.Wac** WebAppDatabase **diagrams.azure.other.WebAppDatabase** WebJobs **diagrams.azure.other.WebJobs** WindowsNotificationServices **diagrams.azure.other.WindowsNotificationServices** WorkerContainerApp **diagrams.azure.other.WorkerContainerApp** ## azure.security ApplicationSecurityGroups **diagrams.azure.security.ApplicationSecurityGroups** AzureADAuthenticationMethods **diagrams.azure.security.AzureADAuthenticationMethods** AzureADIdentityProtection **diagrams.azure.security.AzureADIdentityProtection** AzureADPrivlegedIdentityManagement **diagrams.azure.security.AzureADPrivlegedIdentityManagement** AzureADRiskySignins **diagrams.azure.security.AzureADRiskySignins** AzureADRiskyUsers **diagrams.azure.security.AzureADRiskyUsers** AzureInformationProtection **diagrams.azure.security.AzureInformationProtection** AzureSentinel **diagrams.azure.security.AzureSentinel** ConditionalAccess **diagrams.azure.security.ConditionalAccess** Defender **diagrams.azure.security.Defender** Detonation **diagrams.azure.security.Detonation** ExtendedSecurityUpdates **diagrams.azure.security.ExtendedSecurityUpdates** Extendedsecurityupdates **diagrams.azure.security.Extendedsecurityupdates** IdentitySecureScore **diagrams.azure.security.IdentitySecureScore** KeyVaults **diagrams.azure.security.KeyVaults** MicrosoftDefenderEasm **diagrams.azure.security.MicrosoftDefenderEasm** MicrosoftDefenderForCloud **diagrams.azure.security.MicrosoftDefenderForCloud** MicrosoftDefenderForIot **diagrams.azure.security.MicrosoftDefenderForIot** MultifactorAuthentication **diagrams.azure.security.MultifactorAuthentication** SecurityCenter **diagrams.azure.security.SecurityCenter** Sentinel **diagrams.azure.security.Sentinel** UserSettings **diagrams.azure.security.UserSettings** ## azure.storage ArchiveStorage **diagrams.azure.storage.ArchiveStorage** AzureDataboxGateway **diagrams.azure.storage.AzureDataboxGateway** AzureFileshares **diagrams.azure.storage.AzureFileshares** AzureHcpCache **diagrams.azure.storage.AzureHcpCache** AzureNetappFiles **diagrams.azure.storage.AzureNetappFiles** AzureStackEdge **diagrams.azure.storage.AzureStackEdge** Azurefxtedgefiler **diagrams.azure.storage.Azurefxtedgefiler** BlobStorage **diagrams.azure.storage.BlobStorage** DataBoxEdgeDataBoxGateway **diagrams.azure.storage.DataBoxEdgeDataBoxGateway** DataBox **diagrams.azure.storage.DataBox** DataLakeStorageGen1 **diagrams.azure.storage.DataLakeStorageGen1** DataLakeStorage **diagrams.azure.storage.DataLakeStorage** DataShareInvitations **diagrams.azure.storage.DataShareInvitations** DataShares **diagrams.azure.storage.DataShares** GeneralStorage **diagrams.azure.storage.GeneralStorage** ImportExportJobs **diagrams.azure.storage.ImportExportJobs** NetappFiles **diagrams.azure.storage.NetappFiles** QueuesStorage **diagrams.azure.storage.QueuesStorage** RecoveryServicesVaults **diagrams.azure.storage.RecoveryServicesVaults** StorageAccountsClassic **diagrams.azure.storage.StorageAccountsClassic** StorageAccounts **diagrams.azure.storage.StorageAccounts** StorageExplorer **diagrams.azure.storage.StorageExplorer** StorageSyncServices **diagrams.azure.storage.StorageSyncServices** StorsimpleDataManagers **diagrams.azure.storage.StorsimpleDataManagers** StorsimpleDeviceManagers **diagrams.azure.storage.StorsimpleDeviceManagers** TableStorage **diagrams.azure.storage.TableStorage** ## azure.web APICenter **diagrams.azure.web.APICenter** APIConnections **diagrams.azure.web.APIConnections** APIManagementServices **diagrams.azure.web.APIManagementServices** AppServiceCertificates **diagrams.azure.web.AppServiceCertificates** AppServiceDomains **diagrams.azure.web.AppServiceDomains** AppServiceEnvironments **diagrams.azure.web.AppServiceEnvironments** AppServicePlans **diagrams.azure.web.AppServicePlans** AppServices **diagrams.azure.web.AppServices** AppSpace **diagrams.azure.web.AppSpace** AzureMediaService **diagrams.azure.web.AzureMediaService** AzureSpringApps **diagrams.azure.web.AzureSpringApps** CognitiveSearch **diagrams.azure.web.CognitiveSearch** CognitiveServices **diagrams.azure.web.CognitiveServices** FrontDoorAndCDNProfiles **diagrams.azure.web.FrontDoorAndCDNProfiles** MediaServices **diagrams.azure.web.MediaServices** NotificationHubNamespaces **diagrams.azure.web.NotificationHubNamespaces** PowerPlatform **diagrams.azure.web.PowerPlatform** Search **diagrams.azure.web.Search** Signalr **diagrams.azure.web.Signalr** StaticApps **diagrams.azure.web.StaticApps** ================================================ FILE: docs/nodes/c4.md ================================================ --- id: c4 title: C4 --- ## C4 Diagrams [C4](https://c4model.com/) is a standardized model to visualize software architecture. You can generate C4 diagrams by using the node and edge classes from the `diagrams.c4` package: ```python from diagrams import Diagram from diagrams.c4 import Person, Container, Database, System, SystemBoundary, Relationship graph_attr = { "splines": "spline", } with Diagram("Container diagram for Internet Banking System", direction="TB", graph_attr=graph_attr): customer = Person( name="Personal Banking Customer", description="A customer of the bank, with personal bank accounts." ) with SystemBoundary("Internet Banking System"): webapp = Container( name="Web Application", technology="Java and Spring MVC", description="Delivers the static content and the Internet banking single page application.", ) spa = Container( name="Single-Page Application", technology="Javascript and Angular", description="Provides all of the Internet banking functionality to customers via their web browser.", ) mobileapp = Container( name="Mobile App", technology="Xamarin", description="Provides a limited subset of the Internet banking functionality to customers via their mobile device.", ) api = Container( name="API Application", technology="Java and Spring MVC", description="Provides Internet banking functionality via a JSON/HTTPS API.", ) database = Database( name="Database", technology="Oracle Database Schema", description="Stores user registration information, hashed authentication credentials, access logs, etc.", ) email = System(name="E-mail System", description="The internal Microsoft Exchange e-mail system.", external=True) mainframe = System( name="Mainframe Banking System", description="Stores all of the core banking information about customers, accounts, transactions, etc.", external=True, ) customer >> Relationship("Visits bigbank.com/ib using [HTTPS]") >> webapp customer >> Relationship("Views account balances, and makes payments using") >> [spa, mobileapp] webapp >> Relationship("Delivers to the customer's web browser") >> spa spa >> Relationship("Make API calls to [JSON/HTTPS]") >> api mobileapp >> Relationship("Make API calls to [JSON/HTTPS]") >> api api >> Relationship("reads from and writes to") >> database api >> Relationship("Sends email using [SMTP]") >> email api >> Relationship("Makes API calls to [XML/HTTPS]") >> mainframe customer << Relationship("Sends e-mails to") << email ``` It will produce the following diagram: ![c4](/img/c4.png) ================================================ FILE: docs/nodes/custom.md ================================================ --- id: custom title: Custom --- ## Custom with local icons For this example we use the following architecture: ``` . ├── custom_local.py ├── my_resources │ ├── cc_heart.black.png │ ├── cc_attribution.png │ ├──... ``` The content of custom_local.py file: ```python from diagrams import Diagram, Cluster from diagrams.custom import Custom with Diagram("Custom with local icons\n Can be downloaded here: \nhttps://creativecommons.org/about/downloads/", show=False, filename="custom_local", direction="LR"): cc_heart = Custom("Creative Commons", "./my_resources/cc_heart.black.png") cc_attribution = Custom("Credit must be given to the creator", "./my_resources/cc_attribution.png") cc_sa = Custom("Adaptations must be shared\n under the same terms", "./my_resources/cc_sa.png") cc_nd = Custom("No derivatives or adaptations\n of the work are permitted", "./my_resources/cc_nd.png") cc_zero = Custom("Public Domain Dedication", "./my_resources/cc_zero.png") with Cluster("Non Commercial"): non_commercial = [Custom("Y", "./my_resources/cc_nc-jp.png") - Custom("E", "./my_resources/cc_nc-eu.png") - Custom("S", "./my_resources/cc_nc.png")] cc_heart >> cc_attribution cc_heart >> non_commercial cc_heart >> cc_sa cc_heart >> cc_nd cc_heart >> cc_zero ``` It will generate the following diagram: ![custom local](/img/custom_local.png) ## Custom with remote icons If your icons are hosted and can be accessed when you generate the diagrams, you can ```python from diagrams import Diagram, Cluster from diagrams.custom import Custom from urllib.request import urlretrieve with Diagram("Custom with remote icons", show=False, filename="custom_remote", direction="LR"): # download the icon image file diagrams_url = "https://github.com/mingrammer/diagrams/raw/master/assets/img/diagrams.png" diagrams_icon = "diagrams.png" urlretrieve(diagrams_url, diagrams_icon) diagrams = Custom("Diagrams", diagrams_icon) with Cluster("Some Providers"): openstack_url = "https://github.com/mingrammer/diagrams/raw/master/resources/openstack/openstack.png" openstack_icon = "openstack.png" urlretrieve(openstack_url, openstack_icon) openstack = Custom("OpenStack", openstack_icon) elastic_url = "https://github.com/mingrammer/diagrams/raw/master/resources/elastic/saas/elastic.png" elastic_icon = "elastic.png" urlretrieve(elastic_url, elastic_icon) elastic = Custom("Elastic", elastic_icon) diagrams >> openstack diagrams >> elastic ``` It will generate the following diagram: ![custom local](/img/custom_remote.png) Another example can be found [Here](https://diagrams.mingrammer.com/docs/getting-started/examples#rabbitmq-consumers-with-custom-nodes). ================================================ FILE: docs/nodes/digitalocean.md ================================================ --- id: digitalocean title: DigitalOcean --- Node classes list of the digitalocean provider. ## digitalocean.compute Containers **diagrams.digitalocean.compute.Containers** Docker **diagrams.digitalocean.compute.Docker** DropletConnect **diagrams.digitalocean.compute.DropletConnect** DropletSnapshot **diagrams.digitalocean.compute.DropletSnapshot** Droplet **diagrams.digitalocean.compute.Droplet** K8SCluster **diagrams.digitalocean.compute.K8SCluster** K8SNodePool **diagrams.digitalocean.compute.K8SNodePool** K8SNode **diagrams.digitalocean.compute.K8SNode** ## digitalocean.database DbaasPrimaryStandbyMore **diagrams.digitalocean.database.DbaasPrimaryStandbyMore** DbaasPrimary **diagrams.digitalocean.database.DbaasPrimary** DbaasReadOnly **diagrams.digitalocean.database.DbaasReadOnly** DbaasStandby **diagrams.digitalocean.database.DbaasStandby** ## digitalocean.network Certificate **diagrams.digitalocean.network.Certificate** DomainRegistration **diagrams.digitalocean.network.DomainRegistration** Domain **diagrams.digitalocean.network.Domain** Firewall **diagrams.digitalocean.network.Firewall** FloatingIp **diagrams.digitalocean.network.FloatingIp** InternetGateway **diagrams.digitalocean.network.InternetGateway** LoadBalancer **diagrams.digitalocean.network.LoadBalancer** ManagedVpn **diagrams.digitalocean.network.ManagedVpn** Vpc **diagrams.digitalocean.network.Vpc** ## digitalocean.storage Folder **diagrams.digitalocean.storage.Folder** Space **diagrams.digitalocean.storage.Space** VolumeSnapshot **diagrams.digitalocean.storage.VolumeSnapshot** Volume **diagrams.digitalocean.storage.Volume** ================================================ FILE: docs/nodes/elastic.md ================================================ --- id: elastic title: Elastic --- Node classes list of the elastic provider. ## elastic.agent Agent **diagrams.elastic.agent.Agent** Endpoint **diagrams.elastic.agent.Endpoint** Fleet **diagrams.elastic.agent.Fleet** Integrations **diagrams.elastic.agent.Integrations** ## elastic.beats APM **diagrams.elastic.beats.APM** Auditbeat **diagrams.elastic.beats.Auditbeat** Filebeat **diagrams.elastic.beats.Filebeat** Functionbeat **diagrams.elastic.beats.Functionbeat** Heartbeat **diagrams.elastic.beats.Heartbeat** Metricbeat **diagrams.elastic.beats.Metricbeat** Packetbeat **diagrams.elastic.beats.Packetbeat** Winlogbeat **diagrams.elastic.beats.Winlogbeat** ## elastic.elasticsearch Alerting **diagrams.elastic.elasticsearch.Alerting** Beats **diagrams.elastic.elasticsearch.Beats** Elasticsearch **diagrams.elastic.elasticsearch.Elasticsearch**, **ElasticSearch** (alias) Kibana **diagrams.elastic.elasticsearch.Kibana** LogstashPipeline **diagrams.elastic.elasticsearch.LogstashPipeline** Logstash **diagrams.elastic.elasticsearch.Logstash**, **LogStash** (alias) MachineLearning **diagrams.elastic.elasticsearch.MachineLearning**, **ML** (alias) MapServices **diagrams.elastic.elasticsearch.MapServices** Maps **diagrams.elastic.elasticsearch.Maps** Monitoring **diagrams.elastic.elasticsearch.Monitoring** SearchableSnapshots **diagrams.elastic.elasticsearch.SearchableSnapshots** SecuritySettings **diagrams.elastic.elasticsearch.SecuritySettings** SQL **diagrams.elastic.elasticsearch.SQL** Stack **diagrams.elastic.elasticsearch.Stack** ## elastic.enterprisesearch AppSearch **diagrams.elastic.enterprisesearch.AppSearch** Crawler **diagrams.elastic.enterprisesearch.Crawler** EnterpriseSearch **diagrams.elastic.enterprisesearch.EnterpriseSearch** SiteSearch **diagrams.elastic.enterprisesearch.SiteSearch** WorkplaceSearch **diagrams.elastic.enterprisesearch.WorkplaceSearch** ## elastic.observability APM **diagrams.elastic.observability.APM** Logs **diagrams.elastic.observability.Logs** Metrics **diagrams.elastic.observability.Metrics** Observability **diagrams.elastic.observability.Observability** Uptime **diagrams.elastic.observability.Uptime** ## elastic.orchestration ECE **diagrams.elastic.orchestration.ECE** ECK **diagrams.elastic.orchestration.ECK** ## elastic.saas Cloud **diagrams.elastic.saas.Cloud** Elastic **diagrams.elastic.saas.Elastic** ## elastic.security Endpoint **diagrams.elastic.security.Endpoint** Security **diagrams.elastic.security.Security** SIEM **diagrams.elastic.security.SIEM** Xdr **diagrams.elastic.security.Xdr** ================================================ FILE: docs/nodes/firebase.md ================================================ --- id: firebase title: Firebase --- Node classes list of the firebase provider. ## firebase.base Firebase **diagrams.firebase.base.Firebase** ## firebase.develop Authentication **diagrams.firebase.develop.Authentication** Firestore **diagrams.firebase.develop.Firestore** Functions **diagrams.firebase.develop.Functions** Hosting **diagrams.firebase.develop.Hosting** MLKit **diagrams.firebase.develop.MLKit** RealtimeDatabase **diagrams.firebase.develop.RealtimeDatabase** Storage **diagrams.firebase.develop.Storage** ## firebase.extentions Extensions **diagrams.firebase.extentions.Extensions** ## firebase.grow ABTesting **diagrams.firebase.grow.ABTesting** AppIndexing **diagrams.firebase.grow.AppIndexing** DynamicLinks **diagrams.firebase.grow.DynamicLinks** InAppMessaging **diagrams.firebase.grow.InAppMessaging** Invites **diagrams.firebase.grow.Invites** Messaging **diagrams.firebase.grow.Messaging**, **FCM** (alias) Predictions **diagrams.firebase.grow.Predictions** RemoteConfig **diagrams.firebase.grow.RemoteConfig** ## firebase.quality AppDistribution **diagrams.firebase.quality.AppDistribution** CrashReporting **diagrams.firebase.quality.CrashReporting** Crashlytics **diagrams.firebase.quality.Crashlytics** PerformanceMonitoring **diagrams.firebase.quality.PerformanceMonitoring** TestLab **diagrams.firebase.quality.TestLab** ================================================ FILE: docs/nodes/gcp.md ================================================ --- id: gcp title: GCP --- Node classes list of the gcp provider. ## gcp.analytics Bigquery **diagrams.gcp.analytics.Bigquery**, **BigQuery** (alias) Composer **diagrams.gcp.analytics.Composer** DataCatalog **diagrams.gcp.analytics.DataCatalog** DataFusion **diagrams.gcp.analytics.DataFusion** Dataflow **diagrams.gcp.analytics.Dataflow** Datalab **diagrams.gcp.analytics.Datalab** Dataprep **diagrams.gcp.analytics.Dataprep** Dataproc **diagrams.gcp.analytics.Dataproc** Genomics **diagrams.gcp.analytics.Genomics** Looker **diagrams.gcp.analytics.Looker** Pubsub **diagrams.gcp.analytics.Pubsub**, **PubSub** (alias) ## gcp.api APIGateway **diagrams.gcp.api.APIGateway** Apigee **diagrams.gcp.api.Apigee** Endpoints **diagrams.gcp.api.Endpoints** ## gcp.compute AppEngine **diagrams.gcp.compute.AppEngine**, **GAE** (alias) BinaryAuthorization **diagrams.gcp.compute.BinaryAuthorization** ComputeEngine **diagrams.gcp.compute.ComputeEngine**, **GCE** (alias) ContainerOptimizedOS **diagrams.gcp.compute.ContainerOptimizedOS** Functions **diagrams.gcp.compute.Functions**, **GCF** (alias) GKEOnPrem **diagrams.gcp.compute.GKEOnPrem** GPU **diagrams.gcp.compute.GPU** KubernetesEngine **diagrams.gcp.compute.KubernetesEngine**, **GKE** (alias) OSConfigurationManagement **diagrams.gcp.compute.OSConfigurationManagement** OSInventoryManagement **diagrams.gcp.compute.OSInventoryManagement** OSPatchManagement **diagrams.gcp.compute.OSPatchManagement** Run **diagrams.gcp.compute.Run**, **CloudRun** (alias) ## gcp.database Bigtable **diagrams.gcp.database.Bigtable**, **BigTable** (alias) Datastore **diagrams.gcp.database.Datastore** Firestore **diagrams.gcp.database.Firestore** Memorystore **diagrams.gcp.database.Memorystore** Spanner **diagrams.gcp.database.Spanner** SQL **diagrams.gcp.database.SQL** ## gcp.devtools Build **diagrams.gcp.devtools.Build** CloudShell **diagrams.gcp.devtools.CloudShell** CodeForIntellij **diagrams.gcp.devtools.CodeForIntellij** Code **diagrams.gcp.devtools.Code** ContainerRegistry **diagrams.gcp.devtools.ContainerRegistry**, **GCR** (alias) GradleAppEnginePlugin **diagrams.gcp.devtools.GradleAppEnginePlugin** IdePlugins **diagrams.gcp.devtools.IdePlugins** MavenAppEnginePlugin **diagrams.gcp.devtools.MavenAppEnginePlugin** Scheduler **diagrams.gcp.devtools.Scheduler** SDK **diagrams.gcp.devtools.SDK** ServiceCatalog **diagrams.gcp.devtools.ServiceCatalog** SourceRepositories **diagrams.gcp.devtools.SourceRepositories** Tasks **diagrams.gcp.devtools.Tasks** TestLab **diagrams.gcp.devtools.TestLab** ToolsForEclipse **diagrams.gcp.devtools.ToolsForEclipse** ToolsForPowershell **diagrams.gcp.devtools.ToolsForPowershell** ToolsForVisualStudio **diagrams.gcp.devtools.ToolsForVisualStudio** ## gcp.iot IotCore **diagrams.gcp.iot.IotCore** ## gcp.management Billing **diagrams.gcp.management.Billing** Project **diagrams.gcp.management.Project** Quotas **diagrams.gcp.management.Quotas** Support **diagrams.gcp.management.Support** ## gcp.migration MigrateComputeEngine **diagrams.gcp.migration.MigrateComputeEngine**, **CE** (alias) TransferAppliance **diagrams.gcp.migration.TransferAppliance** ## gcp.ml AdvancedSolutionsLab **diagrams.gcp.ml.AdvancedSolutionsLab** AIHub **diagrams.gcp.ml.AIHub** AIPlatformDataLabelingService **diagrams.gcp.ml.AIPlatformDataLabelingService** AIPlatform **diagrams.gcp.ml.AIPlatform** AutomlNaturalLanguage **diagrams.gcp.ml.AutomlNaturalLanguage** AutomlTables **diagrams.gcp.ml.AutomlTables** AutomlTranslation **diagrams.gcp.ml.AutomlTranslation** AutomlVideoIntelligence **diagrams.gcp.ml.AutomlVideoIntelligence** AutomlVision **diagrams.gcp.ml.AutomlVision** Automl **diagrams.gcp.ml.Automl**, **AutoML** (alias) DialogFlowEnterpriseEdition **diagrams.gcp.ml.DialogFlowEnterpriseEdition** InferenceAPI **diagrams.gcp.ml.InferenceAPI** JobsAPI **diagrams.gcp.ml.JobsAPI** NaturalLanguageAPI **diagrams.gcp.ml.NaturalLanguageAPI**, **NLAPI** (alias) RecommendationsAI **diagrams.gcp.ml.RecommendationsAI** SpeechToText **diagrams.gcp.ml.SpeechToText**, **STT** (alias) TextToSpeech **diagrams.gcp.ml.TextToSpeech**, **TTS** (alias) TPU **diagrams.gcp.ml.TPU** TranslationAPI **diagrams.gcp.ml.TranslationAPI** VertexAI **diagrams.gcp.ml.VertexAI** VideoIntelligenceAPI **diagrams.gcp.ml.VideoIntelligenceAPI** VisionAPI **diagrams.gcp.ml.VisionAPI** ## gcp.network Armor **diagrams.gcp.network.Armor** CDN **diagrams.gcp.network.CDN** CloudIDS **diagrams.gcp.network.CloudIDS**, **IDS** (alias) DedicatedInterconnect **diagrams.gcp.network.DedicatedInterconnect** DNS **diagrams.gcp.network.DNS** ExternalIpAddresses **diagrams.gcp.network.ExternalIpAddresses** FirewallRules **diagrams.gcp.network.FirewallRules** LoadBalancing **diagrams.gcp.network.LoadBalancing** NAT **diagrams.gcp.network.NAT** NetworkConnectivityCenter **diagrams.gcp.network.NetworkConnectivityCenter** NetworkIntelligenceCenter **diagrams.gcp.network.NetworkIntelligenceCenter** NetworkSecurity **diagrams.gcp.network.NetworkSecurity** NetworkTiers **diagrams.gcp.network.NetworkTiers** NetworkTopology **diagrams.gcp.network.NetworkTopology** Network **diagrams.gcp.network.Network** PartnerInterconnect **diagrams.gcp.network.PartnerInterconnect** PremiumNetworkTier **diagrams.gcp.network.PremiumNetworkTier** PrivateServiceConnect **diagrams.gcp.network.PrivateServiceConnect**, **PSC** (alias) Router **diagrams.gcp.network.Router** Routes **diagrams.gcp.network.Routes** ServiceMesh **diagrams.gcp.network.ServiceMesh** StandardNetworkTier **diagrams.gcp.network.StandardNetworkTier** TrafficDirector **diagrams.gcp.network.TrafficDirector** VirtualPrivateCloud **diagrams.gcp.network.VirtualPrivateCloud**, **VPC** (alias) VPN **diagrams.gcp.network.VPN** ## gcp.operations Logging **diagrams.gcp.operations.Logging** Monitoring **diagrams.gcp.operations.Monitoring** ## gcp.security AccessContextManager **diagrams.gcp.security.AccessContextManager**, **ACM** (alias) AssuredWorkloads **diagrams.gcp.security.AssuredWorkloads** CertificateAuthorityService **diagrams.gcp.security.CertificateAuthorityService** CertificateManager **diagrams.gcp.security.CertificateManager** CloudAssetInventory **diagrams.gcp.security.CloudAssetInventory** Iam **diagrams.gcp.security.Iam** IAP **diagrams.gcp.security.IAP** KeyManagementService **diagrams.gcp.security.KeyManagementService**, **KMS** (alias) ResourceManager **diagrams.gcp.security.ResourceManager** SecretManager **diagrams.gcp.security.SecretManager** SecurityCommandCenter **diagrams.gcp.security.SecurityCommandCenter**, **SCC** (alias) SecurityHealthAdvisor **diagrams.gcp.security.SecurityHealthAdvisor** SecurityScanner **diagrams.gcp.security.SecurityScanner** ## gcp.storage Filestore **diagrams.gcp.storage.Filestore** LocalSSD **diagrams.gcp.storage.LocalSSD**, **SSD** (alias) PersistentDisk **diagrams.gcp.storage.PersistentDisk** Storage **diagrams.gcp.storage.Storage**, **GCS** (alias) ================================================ FILE: docs/nodes/generic.md ================================================ --- id: generic title: Generic --- Node classes list of the generic provider. ## generic.blank Blank **diagrams.generic.blank.Blank** ## generic.compute Rack **diagrams.generic.compute.Rack** ## generic.database SQL **diagrams.generic.database.SQL** ## generic.device Mobile **diagrams.generic.device.Mobile** Tablet **diagrams.generic.device.Tablet** ## generic.network Firewall **diagrams.generic.network.Firewall** Router **diagrams.generic.network.Router** Subnet **diagrams.generic.network.Subnet** Switch **diagrams.generic.network.Switch** VPN **diagrams.generic.network.VPN** ## generic.os Android **diagrams.generic.os.Android** Centos **diagrams.generic.os.Centos** Debian **diagrams.generic.os.Debian** IOS **diagrams.generic.os.IOS** LinuxGeneral **diagrams.generic.os.LinuxGeneral** Raspbian **diagrams.generic.os.Raspbian** RedHat **diagrams.generic.os.RedHat** Suse **diagrams.generic.os.Suse** Ubuntu **diagrams.generic.os.Ubuntu** Windows **diagrams.generic.os.Windows** ## generic.place Datacenter **diagrams.generic.place.Datacenter** ## generic.storage Storage **diagrams.generic.storage.Storage** ## generic.virtualization Qemu **diagrams.generic.virtualization.Qemu** Virtualbox **diagrams.generic.virtualization.Virtualbox** Vmware **diagrams.generic.virtualization.Vmware** XEN **diagrams.generic.virtualization.XEN** ================================================ FILE: docs/nodes/gis.md ================================================ --- id: gis title: GIS --- Node classes list of the gis provider. ## gis.cli Gdal **diagrams.gis.cli.Gdal** Imposm **diagrams.gis.cli.Imposm** Lastools **diagrams.gis.cli.Lastools** Mapnik **diagrams.gis.cli.Mapnik** Mdal **diagrams.gis.cli.Mdal** Pdal **diagrams.gis.cli.Pdal** ## gis.data BAN **diagrams.gis.data.BAN** Here **diagrams.gis.data.Here** IGN **diagrams.gis.data.IGN** Openstreetmap **diagrams.gis.data.Openstreetmap** Overturemaps **diagrams.gis.data.Overturemaps** ## gis.database Postgis **diagrams.gis.database.Postgis** ## gis.desktop Maptunik **diagrams.gis.desktop.Maptunik** QGIS **diagrams.gis.desktop.QGIS** ## gis.format Geopackage **diagrams.gis.format.Geopackage** Geoparquet **diagrams.gis.format.Geoparquet** ## gis.geocoding Addok **diagrams.gis.geocoding.Addok** Gisgraphy **diagrams.gis.geocoding.Gisgraphy** Nominatim **diagrams.gis.geocoding.Nominatim** Pelias **diagrams.gis.geocoding.Pelias** ## gis.georchestra ## gis.java Geotools **diagrams.gis.java.Geotools** ## gis.javascript Cesium **diagrams.gis.javascript.Cesium** Geostyler **diagrams.gis.javascript.Geostyler** Keplerjs **diagrams.gis.javascript.Keplerjs** Leaflet **diagrams.gis.javascript.Leaflet** Maplibre **diagrams.gis.javascript.Maplibre** OlExt **diagrams.gis.javascript.OlExt** Openlayers **diagrams.gis.javascript.Openlayers** Turfjs **diagrams.gis.javascript.Turfjs** ## gis.mobile Mergin **diagrams.gis.mobile.Mergin** Qfield **diagrams.gis.mobile.Qfield** Smash **diagrams.gis.mobile.Smash** ## gis.ogc OGC **diagrams.gis.ogc.OGC** WFS **diagrams.gis.ogc.WFS** WMS **diagrams.gis.ogc.WMS** ## gis.organization Osgeo **diagrams.gis.organization.Osgeo** ## gis.python Geopandas **diagrams.gis.python.Geopandas** Pysal **diagrams.gis.python.Pysal** ## gis.routing Graphhopper **diagrams.gis.routing.Graphhopper** Osrm **diagrams.gis.routing.Osrm** Pgrouting **diagrams.gis.routing.Pgrouting** Valhalla **diagrams.gis.routing.Valhalla** ## gis.server Actinia **diagrams.gis.server.Actinia** Baremaps **diagrams.gis.server.Baremaps** Deegree **diagrams.gis.server.Deegree** G3WSuite **diagrams.gis.server.G3WSuite** Geohealthcheck **diagrams.gis.server.Geohealthcheck** Geomapfish **diagrams.gis.server.Geomapfish** Geomesa **diagrams.gis.server.Geomesa** Geonetwork **diagrams.gis.server.Geonetwork** Geonode **diagrams.gis.server.Geonode** Georchestra **diagrams.gis.server.Georchestra** Geoserver **diagrams.gis.server.Geoserver** Geowebcache **diagrams.gis.server.Geowebcache** Kepler **diagrams.gis.server.Kepler** Mapproxy **diagrams.gis.server.Mapproxy** Mapserver **diagrams.gis.server.Mapserver** Mapstore **diagrams.gis.server.Mapstore** Mviewer **diagrams.gis.server.Mviewer** Pg_Tileserv **diagrams.gis.server.Pg_Tileserv** Pycsw **diagrams.gis.server.Pycsw** Pygeoapi **diagrams.gis.server.Pygeoapi** QGISServer **diagrams.gis.server.QGISServer** Zooproject **diagrams.gis.server.Zooproject** ================================================ FILE: docs/nodes/ibm.md ================================================ --- id: ibm title: IBM --- Node classes list of the ibm provider. ## ibm.analytics Analytics **diagrams.ibm.analytics.Analytics** DataIntegration **diagrams.ibm.analytics.DataIntegration** DataRepositories **diagrams.ibm.analytics.DataRepositories** DeviceAnalytics **diagrams.ibm.analytics.DeviceAnalytics** StreamingComputing **diagrams.ibm.analytics.StreamingComputing** ## ibm.applications ActionableInsight **diagrams.ibm.applications.ActionableInsight** Annotate **diagrams.ibm.applications.Annotate** ApiDeveloperPortal **diagrams.ibm.applications.ApiDeveloperPortal** ApiPolyglotRuntimes **diagrams.ibm.applications.ApiPolyglotRuntimes** AppServer **diagrams.ibm.applications.AppServer** ApplicationLogic **diagrams.ibm.applications.ApplicationLogic** EnterpriseApplications **diagrams.ibm.applications.EnterpriseApplications** Index **diagrams.ibm.applications.Index** IotApplication **diagrams.ibm.applications.IotApplication** Microservice **diagrams.ibm.applications.Microservice** MobileApp **diagrams.ibm.applications.MobileApp** Ontology **diagrams.ibm.applications.Ontology** OpenSourceTools **diagrams.ibm.applications.OpenSourceTools** RuntimeServices **diagrams.ibm.applications.RuntimeServices** SaasApplications **diagrams.ibm.applications.SaasApplications** ServiceBroker **diagrams.ibm.applications.ServiceBroker** SpeechToText **diagrams.ibm.applications.SpeechToText** VisualRecognition **diagrams.ibm.applications.VisualRecognition** Visualization **diagrams.ibm.applications.Visualization** ## ibm.blockchain BlockchainDeveloper **diagrams.ibm.blockchain.BlockchainDeveloper** Blockchain **diagrams.ibm.blockchain.Blockchain** CertificateAuthority **diagrams.ibm.blockchain.CertificateAuthority** ClientApplication **diagrams.ibm.blockchain.ClientApplication** Communication **diagrams.ibm.blockchain.Communication** Consensus **diagrams.ibm.blockchain.Consensus** EventListener **diagrams.ibm.blockchain.EventListener** Event **diagrams.ibm.blockchain.Event** ExistingEnterpriseSystems **diagrams.ibm.blockchain.ExistingEnterpriseSystems** HyperledgerFabric **diagrams.ibm.blockchain.HyperledgerFabric** KeyManagement **diagrams.ibm.blockchain.KeyManagement** Ledger **diagrams.ibm.blockchain.Ledger** MembershipServicesProviderApi **diagrams.ibm.blockchain.MembershipServicesProviderApi** Membership **diagrams.ibm.blockchain.Membership** MessageBus **diagrams.ibm.blockchain.MessageBus** Node **diagrams.ibm.blockchain.Node** Services **diagrams.ibm.blockchain.Services** SmartContract **diagrams.ibm.blockchain.SmartContract** TransactionManager **diagrams.ibm.blockchain.TransactionManager** Wallet **diagrams.ibm.blockchain.Wallet** ## ibm.compute BareMetalServer **diagrams.ibm.compute.BareMetalServer** ImageService **diagrams.ibm.compute.ImageService** Instance **diagrams.ibm.compute.Instance** Key **diagrams.ibm.compute.Key** PowerInstance **diagrams.ibm.compute.PowerInstance** ## ibm.data Caches **diagrams.ibm.data.Caches** Cloud **diagrams.ibm.data.Cloud** ConversationTrainedDeployed **diagrams.ibm.data.ConversationTrainedDeployed** DataServices **diagrams.ibm.data.DataServices** DataSources **diagrams.ibm.data.DataSources** DeviceIdentityService **diagrams.ibm.data.DeviceIdentityService** DeviceRegistry **diagrams.ibm.data.DeviceRegistry** EnterpriseData **diagrams.ibm.data.EnterpriseData** EnterpriseUserDirectory **diagrams.ibm.data.EnterpriseUserDirectory** FileRepository **diagrams.ibm.data.FileRepository** GroundTruth **diagrams.ibm.data.GroundTruth** Model **diagrams.ibm.data.Model** TmsDataInterface **diagrams.ibm.data.TmsDataInterface** ## ibm.devops ArtifactManagement **diagrams.ibm.devops.ArtifactManagement** BuildTest **diagrams.ibm.devops.BuildTest** CodeEditor **diagrams.ibm.devops.CodeEditor** CollaborativeDevelopment **diagrams.ibm.devops.CollaborativeDevelopment** ConfigurationManagement **diagrams.ibm.devops.ConfigurationManagement** ContinuousDeploy **diagrams.ibm.devops.ContinuousDeploy** ContinuousTesting **diagrams.ibm.devops.ContinuousTesting** Devops **diagrams.ibm.devops.Devops** Provision **diagrams.ibm.devops.Provision** ReleaseManagement **diagrams.ibm.devops.ReleaseManagement** ## ibm.general CloudMessaging **diagrams.ibm.general.CloudMessaging** CloudServices **diagrams.ibm.general.CloudServices** Cloudant **diagrams.ibm.general.Cloudant** CognitiveServices **diagrams.ibm.general.CognitiveServices** DataSecurity **diagrams.ibm.general.DataSecurity** Enterprise **diagrams.ibm.general.Enterprise** GovernanceRiskCompliance **diagrams.ibm.general.GovernanceRiskCompliance** IBMContainers **diagrams.ibm.general.IBMContainers** IBMPublicCloud **diagrams.ibm.general.IBMPublicCloud** IdentityAccessManagement **diagrams.ibm.general.IdentityAccessManagement** IdentityProvider **diagrams.ibm.general.IdentityProvider** InfrastructureSecurity **diagrams.ibm.general.InfrastructureSecurity** Internet **diagrams.ibm.general.Internet** IotCloud **diagrams.ibm.general.IotCloud** MicroservicesApplication **diagrams.ibm.general.MicroservicesApplication** MicroservicesMesh **diagrams.ibm.general.MicroservicesMesh** MonitoringLogging **diagrams.ibm.general.MonitoringLogging** Monitoring **diagrams.ibm.general.Monitoring** ObjectStorage **diagrams.ibm.general.ObjectStorage** OfflineCapabilities **diagrams.ibm.general.OfflineCapabilities** Openwhisk **diagrams.ibm.general.Openwhisk** PeerCloud **diagrams.ibm.general.PeerCloud** RetrieveRank **diagrams.ibm.general.RetrieveRank** Scalable **diagrams.ibm.general.Scalable** ServiceDiscoveryConfiguration **diagrams.ibm.general.ServiceDiscoveryConfiguration** TextToSpeech **diagrams.ibm.general.TextToSpeech** TransformationConnectivity **diagrams.ibm.general.TransformationConnectivity** ## ibm.infrastructure Channels **diagrams.ibm.infrastructure.Channels** CloudMessaging **diagrams.ibm.infrastructure.CloudMessaging** Dashboard **diagrams.ibm.infrastructure.Dashboard** Diagnostics **diagrams.ibm.infrastructure.Diagnostics** EdgeServices **diagrams.ibm.infrastructure.EdgeServices** EnterpriseMessaging **diagrams.ibm.infrastructure.EnterpriseMessaging** EventFeed **diagrams.ibm.infrastructure.EventFeed** InfrastructureServices **diagrams.ibm.infrastructure.InfrastructureServices** InterserviceCommunication **diagrams.ibm.infrastructure.InterserviceCommunication** LoadBalancingRouting **diagrams.ibm.infrastructure.LoadBalancingRouting** MicroservicesMesh **diagrams.ibm.infrastructure.MicroservicesMesh** MobileBackend **diagrams.ibm.infrastructure.MobileBackend** MobileProviderNetwork **diagrams.ibm.infrastructure.MobileProviderNetwork** MonitoringLogging **diagrams.ibm.infrastructure.MonitoringLogging** Monitoring **diagrams.ibm.infrastructure.Monitoring** PeerServices **diagrams.ibm.infrastructure.PeerServices** ServiceDiscoveryConfiguration **diagrams.ibm.infrastructure.ServiceDiscoveryConfiguration** TransformationConnectivity **diagrams.ibm.infrastructure.TransformationConnectivity** ## ibm.management AlertNotification **diagrams.ibm.management.AlertNotification** ApiManagement **diagrams.ibm.management.ApiManagement** CloudManagement **diagrams.ibm.management.CloudManagement** ClusterManagement **diagrams.ibm.management.ClusterManagement** ContentManagement **diagrams.ibm.management.ContentManagement** DataServices **diagrams.ibm.management.DataServices** DeviceManagement **diagrams.ibm.management.DeviceManagement** InformationGovernance **diagrams.ibm.management.InformationGovernance** ItServiceManagement **diagrams.ibm.management.ItServiceManagement** Management **diagrams.ibm.management.Management** MonitoringMetrics **diagrams.ibm.management.MonitoringMetrics** ProcessManagement **diagrams.ibm.management.ProcessManagement** ProviderCloudPortalService **diagrams.ibm.management.ProviderCloudPortalService** PushNotifications **diagrams.ibm.management.PushNotifications** ServiceManagementTools **diagrams.ibm.management.ServiceManagementTools** ## ibm.network Bridge **diagrams.ibm.network.Bridge** DirectLink **diagrams.ibm.network.DirectLink** Enterprise **diagrams.ibm.network.Enterprise** Firewall **diagrams.ibm.network.Firewall** FloatingIp **diagrams.ibm.network.FloatingIp** Gateway **diagrams.ibm.network.Gateway** InternetServices **diagrams.ibm.network.InternetServices** LoadBalancerListener **diagrams.ibm.network.LoadBalancerListener** LoadBalancerPool **diagrams.ibm.network.LoadBalancerPool** LoadBalancer **diagrams.ibm.network.LoadBalancer** LoadBalancingRouting **diagrams.ibm.network.LoadBalancingRouting** PublicGateway **diagrams.ibm.network.PublicGateway** Region **diagrams.ibm.network.Region** Router **diagrams.ibm.network.Router** Rules **diagrams.ibm.network.Rules** Subnet **diagrams.ibm.network.Subnet** TransitGateway **diagrams.ibm.network.TransitGateway** Vpc **diagrams.ibm.network.Vpc** VpnConnection **diagrams.ibm.network.VpnConnection** VpnGateway **diagrams.ibm.network.VpnGateway** VpnPolicy **diagrams.ibm.network.VpnPolicy** ## ibm.security ApiSecurity **diagrams.ibm.security.ApiSecurity** BlockchainSecurityService **diagrams.ibm.security.BlockchainSecurityService** DataSecurity **diagrams.ibm.security.DataSecurity** Firewall **diagrams.ibm.security.Firewall** Gateway **diagrams.ibm.security.Gateway** GovernanceRiskCompliance **diagrams.ibm.security.GovernanceRiskCompliance** IdentityAccessManagement **diagrams.ibm.security.IdentityAccessManagement** IdentityProvider **diagrams.ibm.security.IdentityProvider** InfrastructureSecurity **diagrams.ibm.security.InfrastructureSecurity** PhysicalSecurity **diagrams.ibm.security.PhysicalSecurity** SecurityMonitoringIntelligence **diagrams.ibm.security.SecurityMonitoringIntelligence** SecurityServices **diagrams.ibm.security.SecurityServices** TrustendComputing **diagrams.ibm.security.TrustendComputing** Vpn **diagrams.ibm.security.Vpn** ## ibm.social Communities **diagrams.ibm.social.Communities** FileSync **diagrams.ibm.social.FileSync** LiveCollaboration **diagrams.ibm.social.LiveCollaboration** Messaging **diagrams.ibm.social.Messaging** Networking **diagrams.ibm.social.Networking** ## ibm.storage BlockStorage **diagrams.ibm.storage.BlockStorage** ObjectStorage **diagrams.ibm.storage.ObjectStorage** ## ibm.user Browser **diagrams.ibm.user.Browser** Device **diagrams.ibm.user.Device** IntegratedDigitalExperiences **diagrams.ibm.user.IntegratedDigitalExperiences** PhysicalEntity **diagrams.ibm.user.PhysicalEntity** Sensor **diagrams.ibm.user.Sensor** User **diagrams.ibm.user.User** ================================================ FILE: docs/nodes/k8s.md ================================================ --- id: k8s title: K8S --- Node classes list of the k8s provider. ## k8s.chaos ChaosMesh **diagrams.k8s.chaos.ChaosMesh** LitmusChaos **diagrams.k8s.chaos.LitmusChaos** ## k8s.clusterconfig HPA **diagrams.k8s.clusterconfig.HPA**, **HorizontalPodAutoscaler** (alias) Limits **diagrams.k8s.clusterconfig.Limits**, **LimitRange** (alias) Quota **diagrams.k8s.clusterconfig.Quota** ## k8s.compute Cronjob **diagrams.k8s.compute.Cronjob** Deploy **diagrams.k8s.compute.Deploy**, **Deployment** (alias) DS **diagrams.k8s.compute.DS**, **DaemonSet** (alias) Job **diagrams.k8s.compute.Job** Pod **diagrams.k8s.compute.Pod** RS **diagrams.k8s.compute.RS**, **ReplicaSet** (alias) STS **diagrams.k8s.compute.STS**, **StatefulSet** (alias) ## k8s.controlplane API **diagrams.k8s.controlplane.API**, **APIServer** (alias) CCM **diagrams.k8s.controlplane.CCM** CM **diagrams.k8s.controlplane.CM**, **ControllerManager** (alias) KProxy **diagrams.k8s.controlplane.KProxy**, **KubeProxy** (alias) Kubelet **diagrams.k8s.controlplane.Kubelet** Sched **diagrams.k8s.controlplane.Sched**, **Scheduler** (alias) ## k8s.ecosystem ExternalDns **diagrams.k8s.ecosystem.ExternalDns** Helm **diagrams.k8s.ecosystem.Helm** Krew **diagrams.k8s.ecosystem.Krew** Kustomize **diagrams.k8s.ecosystem.Kustomize** ## k8s.group NS **diagrams.k8s.group.NS**, **Namespace** (alias) ## k8s.infra ETCD **diagrams.k8s.infra.ETCD** Master **diagrams.k8s.infra.Master** Node **diagrams.k8s.infra.Node** ## k8s.network Ep **diagrams.k8s.network.Ep**, **Endpoint** (alias) Ing **diagrams.k8s.network.Ing**, **Ingress** (alias) Netpol **diagrams.k8s.network.Netpol**, **NetworkPolicy** (alias) SVC **diagrams.k8s.network.SVC**, **Service** (alias) ## k8s.others CRD **diagrams.k8s.others.CRD** PSP **diagrams.k8s.others.PSP** ## k8s.podconfig CM **diagrams.k8s.podconfig.CM**, **ConfigMap** (alias) Secret **diagrams.k8s.podconfig.Secret** ## k8s.rbac CRole **diagrams.k8s.rbac.CRole**, **ClusterRole** (alias) CRB **diagrams.k8s.rbac.CRB**, **ClusterRoleBinding** (alias) Group **diagrams.k8s.rbac.Group** RB **diagrams.k8s.rbac.RB**, **RoleBinding** (alias) Role **diagrams.k8s.rbac.Role** SA **diagrams.k8s.rbac.SA**, **ServiceAccount** (alias) User **diagrams.k8s.rbac.User** ## k8s.storage PV **diagrams.k8s.storage.PV**, **PersistentVolume** (alias) PVC **diagrams.k8s.storage.PVC**, **PersistentVolumeClaim** (alias) SC **diagrams.k8s.storage.SC**, **StorageClass** (alias) Vol **diagrams.k8s.storage.Vol**, **Volume** (alias) ================================================ FILE: docs/nodes/oci.md ================================================ --- id: oci title: OCI --- Node classes list of the oci provider. ## oci.compute AutoscaleWhite **diagrams.oci.compute.AutoscaleWhite** Autoscale **diagrams.oci.compute.Autoscale** BMWhite **diagrams.oci.compute.BMWhite**, **BareMetalWhite** (alias) BM **diagrams.oci.compute.BM**, **BareMetal** (alias) ContainerWhite **diagrams.oci.compute.ContainerWhite** Container **diagrams.oci.compute.Container** FunctionsWhite **diagrams.oci.compute.FunctionsWhite** Functions **diagrams.oci.compute.Functions** InstancePoolsWhite **diagrams.oci.compute.InstancePoolsWhite** InstancePools **diagrams.oci.compute.InstancePools** OCIRWhite **diagrams.oci.compute.OCIRWhite**, **OCIRegistryWhite** (alias) OCIR **diagrams.oci.compute.OCIR**, **OCIRegistry** (alias) OKEWhite **diagrams.oci.compute.OKEWhite**, **ContainerEngineWhite** (alias) OKE **diagrams.oci.compute.OKE**, **ContainerEngine** (alias) VMWhite **diagrams.oci.compute.VMWhite**, **VirtualMachineWhite** (alias) VM **diagrams.oci.compute.VM**, **VirtualMachine** (alias) ## oci.connectivity BackboneWhite **diagrams.oci.connectivity.BackboneWhite** Backbone **diagrams.oci.connectivity.Backbone** CDNWhite **diagrams.oci.connectivity.CDNWhite** CDN **diagrams.oci.connectivity.CDN** CustomerDatacenter **diagrams.oci.connectivity.CustomerDatacenter** CustomerDatacntrWhite **diagrams.oci.connectivity.CustomerDatacntrWhite** CustomerPremisesWhite **diagrams.oci.connectivity.CustomerPremisesWhite** CustomerPremises **diagrams.oci.connectivity.CustomerPremises** DisconnectedRegionsWhite **diagrams.oci.connectivity.DisconnectedRegionsWhite** DisconnectedRegions **diagrams.oci.connectivity.DisconnectedRegions** DNSWhite **diagrams.oci.connectivity.DNSWhite** DNS **diagrams.oci.connectivity.DNS** FastConnectWhite **diagrams.oci.connectivity.FastConnectWhite** FastConnect **diagrams.oci.connectivity.FastConnect** NATGatewayWhite **diagrams.oci.connectivity.NATGatewayWhite** NATGateway **diagrams.oci.connectivity.NATGateway** VPNWhite **diagrams.oci.connectivity.VPNWhite** VPN **diagrams.oci.connectivity.VPN** ## oci.database AutonomousWhite **diagrams.oci.database.AutonomousWhite**, **ADBWhite** (alias) Autonomous **diagrams.oci.database.Autonomous**, **ADB** (alias) BigdataServiceWhite **diagrams.oci.database.BigdataServiceWhite** BigdataService **diagrams.oci.database.BigdataService** DatabaseServiceWhite **diagrams.oci.database.DatabaseServiceWhite**, **DBServiceWhite** (alias) DatabaseService **diagrams.oci.database.DatabaseService**, **DBService** (alias) DataflowApacheWhite **diagrams.oci.database.DataflowApacheWhite** DataflowApache **diagrams.oci.database.DataflowApache** DcatWhite **diagrams.oci.database.DcatWhite** Dcat **diagrams.oci.database.Dcat** DisWhite **diagrams.oci.database.DisWhite** Dis **diagrams.oci.database.Dis** DMSWhite **diagrams.oci.database.DMSWhite** DMS **diagrams.oci.database.DMS** ScienceWhite **diagrams.oci.database.ScienceWhite** Science **diagrams.oci.database.Science** StreamWhite **diagrams.oci.database.StreamWhite** Stream **diagrams.oci.database.Stream** ## oci.devops APIGatewayWhite **diagrams.oci.devops.APIGatewayWhite** APIGateway **diagrams.oci.devops.APIGateway** APIServiceWhite **diagrams.oci.devops.APIServiceWhite** APIService **diagrams.oci.devops.APIService** ResourceMgmtWhite **diagrams.oci.devops.ResourceMgmtWhite** ResourceMgmt **diagrams.oci.devops.ResourceMgmt** ## oci.governance AuditWhite **diagrams.oci.governance.AuditWhite** Audit **diagrams.oci.governance.Audit** CompartmentsWhite **diagrams.oci.governance.CompartmentsWhite** Compartments **diagrams.oci.governance.Compartments** GroupsWhite **diagrams.oci.governance.GroupsWhite** Groups **diagrams.oci.governance.Groups** LoggingWhite **diagrams.oci.governance.LoggingWhite** Logging **diagrams.oci.governance.Logging** OCIDWhite **diagrams.oci.governance.OCIDWhite** OCID **diagrams.oci.governance.OCID** PoliciesWhite **diagrams.oci.governance.PoliciesWhite** Policies **diagrams.oci.governance.Policies** TaggingWhite **diagrams.oci.governance.TaggingWhite** Tagging **diagrams.oci.governance.Tagging** ## oci.monitoring AlarmWhite **diagrams.oci.monitoring.AlarmWhite** Alarm **diagrams.oci.monitoring.Alarm** EmailWhite **diagrams.oci.monitoring.EmailWhite** Email **diagrams.oci.monitoring.Email** EventsWhite **diagrams.oci.monitoring.EventsWhite** Events **diagrams.oci.monitoring.Events** HealthCheckWhite **diagrams.oci.monitoring.HealthCheckWhite** HealthCheck **diagrams.oci.monitoring.HealthCheck** NotificationsWhite **diagrams.oci.monitoring.NotificationsWhite** Notifications **diagrams.oci.monitoring.Notifications** QueueWhite **diagrams.oci.monitoring.QueueWhite** Queue **diagrams.oci.monitoring.Queue** SearchWhite **diagrams.oci.monitoring.SearchWhite** Search **diagrams.oci.monitoring.Search** TelemetryWhite **diagrams.oci.monitoring.TelemetryWhite** Telemetry **diagrams.oci.monitoring.Telemetry** WorkflowWhite **diagrams.oci.monitoring.WorkflowWhite** Workflow **diagrams.oci.monitoring.Workflow** ## oci.network DrgWhite **diagrams.oci.network.DrgWhite** Drg **diagrams.oci.network.Drg** FirewallWhite **diagrams.oci.network.FirewallWhite** Firewall **diagrams.oci.network.Firewall** InternetGatewayWhite **diagrams.oci.network.InternetGatewayWhite** InternetGateway **diagrams.oci.network.InternetGateway** LoadBalancerWhite **diagrams.oci.network.LoadBalancerWhite** LoadBalancer **diagrams.oci.network.LoadBalancer** RouteTableWhite **diagrams.oci.network.RouteTableWhite** RouteTable **diagrams.oci.network.RouteTable** SecurityListsWhite **diagrams.oci.network.SecurityListsWhite** SecurityLists **diagrams.oci.network.SecurityLists** ServiceGatewayWhite **diagrams.oci.network.ServiceGatewayWhite** ServiceGateway **diagrams.oci.network.ServiceGateway** VcnWhite **diagrams.oci.network.VcnWhite** Vcn **diagrams.oci.network.Vcn** ## oci.security CloudGuardWhite **diagrams.oci.security.CloudGuardWhite** CloudGuard **diagrams.oci.security.CloudGuard** DDOSWhite **diagrams.oci.security.DDOSWhite** DDOS **diagrams.oci.security.DDOS** EncryptionWhite **diagrams.oci.security.EncryptionWhite** Encryption **diagrams.oci.security.Encryption** IDAccessWhite **diagrams.oci.security.IDAccessWhite** IDAccess **diagrams.oci.security.IDAccess** KeyManagementWhite **diagrams.oci.security.KeyManagementWhite** KeyManagement **diagrams.oci.security.KeyManagement** MaxSecurityZoneWhite **diagrams.oci.security.MaxSecurityZoneWhite** MaxSecurityZone **diagrams.oci.security.MaxSecurityZone** VaultWhite **diagrams.oci.security.VaultWhite** Vault **diagrams.oci.security.Vault** WAFWhite **diagrams.oci.security.WAFWhite** WAF **diagrams.oci.security.WAF** ## oci.storage BackupRestoreWhite **diagrams.oci.storage.BackupRestoreWhite** BackupRestore **diagrams.oci.storage.BackupRestore** BlockStorageCloneWhite **diagrams.oci.storage.BlockStorageCloneWhite** BlockStorageClone **diagrams.oci.storage.BlockStorageClone** BlockStorageWhite **diagrams.oci.storage.BlockStorageWhite** BlockStorage **diagrams.oci.storage.BlockStorage** BucketsWhite **diagrams.oci.storage.BucketsWhite** Buckets **diagrams.oci.storage.Buckets** DataTransferWhite **diagrams.oci.storage.DataTransferWhite** DataTransfer **diagrams.oci.storage.DataTransfer** ElasticPerformanceWhite **diagrams.oci.storage.ElasticPerformanceWhite** ElasticPerformance **diagrams.oci.storage.ElasticPerformance** FileStorageWhite **diagrams.oci.storage.FileStorageWhite** FileStorage **diagrams.oci.storage.FileStorage** ObjectStorageWhite **diagrams.oci.storage.ObjectStorageWhite** ObjectStorage **diagrams.oci.storage.ObjectStorage** StorageGatewayWhite **diagrams.oci.storage.StorageGatewayWhite** StorageGateway **diagrams.oci.storage.StorageGateway** ================================================ FILE: docs/nodes/onprem.md ================================================ --- id: onprem title: OnPrem --- Node classes list of the onprem provider. ## onprem.aggregator Fluentd **diagrams.onprem.aggregator.Fluentd** Vector **diagrams.onprem.aggregator.Vector** ## onprem.analytics Beam **diagrams.onprem.analytics.Beam** Databricks **diagrams.onprem.analytics.Databricks** Dbt **diagrams.onprem.analytics.Dbt** Dremio **diagrams.onprem.analytics.Dremio** Flink **diagrams.onprem.analytics.Flink** Hadoop **diagrams.onprem.analytics.Hadoop** Hive **diagrams.onprem.analytics.Hive** Metabase **diagrams.onprem.analytics.Metabase** Norikra **diagrams.onprem.analytics.Norikra** Powerbi **diagrams.onprem.analytics.Powerbi**, **PowerBI** (alias) Presto **diagrams.onprem.analytics.Presto** Singer **diagrams.onprem.analytics.Singer** Spark **diagrams.onprem.analytics.Spark** Storm **diagrams.onprem.analytics.Storm** Superset **diagrams.onprem.analytics.Superset** Tableau **diagrams.onprem.analytics.Tableau** Trino **diagrams.onprem.analytics.Trino** ## onprem.auth Boundary **diagrams.onprem.auth.Boundary** BuzzfeedSso **diagrams.onprem.auth.BuzzfeedSso** Oauth2Proxy **diagrams.onprem.auth.Oauth2Proxy** ## onprem.cd Spinnaker **diagrams.onprem.cd.Spinnaker** TektonCli **diagrams.onprem.cd.TektonCli** Tekton **diagrams.onprem.cd.Tekton** ## onprem.certificates CertManager **diagrams.onprem.certificates.CertManager** LetsEncrypt **diagrams.onprem.certificates.LetsEncrypt** ## onprem.ci Circleci **diagrams.onprem.ci.Circleci**, **CircleCI** (alias) Concourseci **diagrams.onprem.ci.Concourseci**, **ConcourseCI** (alias) Droneci **diagrams.onprem.ci.Droneci**, **DroneCI** (alias) GithubActions **diagrams.onprem.ci.GithubActions** Gitlabci **diagrams.onprem.ci.Gitlabci**, **GitlabCI** (alias) Jenkins **diagrams.onprem.ci.Jenkins** Teamcity **diagrams.onprem.ci.Teamcity**, **TC** (alias) Travisci **diagrams.onprem.ci.Travisci**, **TravisCI** (alias) Zuulci **diagrams.onprem.ci.Zuulci**, **ZuulCI** (alias) ## onprem.client Client **diagrams.onprem.client.Client** User **diagrams.onprem.client.User** Users **diagrams.onprem.client.Users** ## onprem.compute Nomad **diagrams.onprem.compute.Nomad** Server **diagrams.onprem.compute.Server** ## onprem.container Containerd **diagrams.onprem.container.Containerd** Crio **diagrams.onprem.container.Crio** Docker **diagrams.onprem.container.Docker** Firecracker **diagrams.onprem.container.Firecracker** Gvisor **diagrams.onprem.container.Gvisor** K3S **diagrams.onprem.container.K3S** Lxc **diagrams.onprem.container.Lxc**, **LXC** (alias) Rkt **diagrams.onprem.container.Rkt**, **RKT** (alias) ## onprem.database Cassandra **diagrams.onprem.database.Cassandra** Clickhouse **diagrams.onprem.database.Clickhouse**, **ClickHouse** (alias) Cockroachdb **diagrams.onprem.database.Cockroachdb**, **CockroachDB** (alias) Couchbase **diagrams.onprem.database.Couchbase** Couchdb **diagrams.onprem.database.Couchdb**, **CouchDB** (alias) Dgraph **diagrams.onprem.database.Dgraph** Druid **diagrams.onprem.database.Druid** Duckdb **diagrams.onprem.database.Duckdb** Hbase **diagrams.onprem.database.Hbase**, **HBase** (alias) Influxdb **diagrams.onprem.database.Influxdb**, **InfluxDB** (alias) Janusgraph **diagrams.onprem.database.Janusgraph**, **JanusGraph** (alias) Mariadb **diagrams.onprem.database.Mariadb**, **MariaDB** (alias) Mongodb **diagrams.onprem.database.Mongodb**, **MongoDB** (alias) Mssql **diagrams.onprem.database.Mssql**, **MSSQL** (alias) Mysql **diagrams.onprem.database.Mysql**, **MySQL** (alias) Neo4J **diagrams.onprem.database.Neo4J** Oracle **diagrams.onprem.database.Oracle** Postgresql **diagrams.onprem.database.Postgresql**, **PostgreSQL** (alias) Qdrant **diagrams.onprem.database.Qdrant**, **Qdrant** (alias) Scylla **diagrams.onprem.database.Scylla** ## onprem.dns Coredns **diagrams.onprem.dns.Coredns** Powerdns **diagrams.onprem.dns.Powerdns** ## onprem.etl Embulk **diagrams.onprem.etl.Embulk** ## onprem.gitops Argocd **diagrams.onprem.gitops.Argocd**, **ArgoCD** (alias) Flagger **diagrams.onprem.gitops.Flagger** Flux **diagrams.onprem.gitops.Flux** ## onprem.groupware Nextcloud **diagrams.onprem.groupware.Nextcloud** ## onprem.iac Ansible **diagrams.onprem.iac.Ansible** Atlantis **diagrams.onprem.iac.Atlantis** Awx **diagrams.onprem.iac.Awx** Pulumi **diagrams.onprem.iac.Pulumi** Puppet **diagrams.onprem.iac.Puppet** Terraform **diagrams.onprem.iac.Terraform** ## onprem.identity Dex **diagrams.onprem.identity.Dex** ## onprem.inmemory Aerospike **diagrams.onprem.inmemory.Aerospike** Hazelcast **diagrams.onprem.inmemory.Hazelcast** Memcached **diagrams.onprem.inmemory.Memcached** Redis **diagrams.onprem.inmemory.Redis** ## onprem.logging Fluentbit **diagrams.onprem.logging.Fluentbit**, **FluentBit** (alias) Graylog **diagrams.onprem.logging.Graylog** Loki **diagrams.onprem.logging.Loki** Rsyslog **diagrams.onprem.logging.Rsyslog**, **RSyslog** (alias) SyslogNg **diagrams.onprem.logging.SyslogNg** ## onprem.messaging Centrifugo **diagrams.onprem.messaging.Centrifugo** ## onprem.mlops Mlflow **diagrams.onprem.mlops.Mlflow** Polyaxon **diagrams.onprem.mlops.Polyaxon** ## onprem.monitoring Cortex **diagrams.onprem.monitoring.Cortex** Datadog **diagrams.onprem.monitoring.Datadog** Dynatrace **diagrams.onprem.monitoring.Dynatrace** Grafana **diagrams.onprem.monitoring.Grafana** Humio **diagrams.onprem.monitoring.Humio** Mimir **diagrams.onprem.monitoring.Mimir** Nagios **diagrams.onprem.monitoring.Nagios** Newrelic **diagrams.onprem.monitoring.Newrelic** PrometheusOperator **diagrams.onprem.monitoring.PrometheusOperator** Prometheus **diagrams.onprem.monitoring.Prometheus** Sentry **diagrams.onprem.monitoring.Sentry** Splunk **diagrams.onprem.monitoring.Splunk** Thanos **diagrams.onprem.monitoring.Thanos** Zabbix **diagrams.onprem.monitoring.Zabbix** ## onprem.network Ambassador **diagrams.onprem.network.Ambassador** Apache **diagrams.onprem.network.Apache** Bind9 **diagrams.onprem.network.Bind9** Caddy **diagrams.onprem.network.Caddy** CiscoRouter **diagrams.onprem.network.CiscoRouter** CiscoSwitchL2 **diagrams.onprem.network.CiscoSwitchL2** CiscoSwitchL3 **diagrams.onprem.network.CiscoSwitchL3** Consul **diagrams.onprem.network.Consul** Envoy **diagrams.onprem.network.Envoy** Etcd **diagrams.onprem.network.Etcd**, **ETCD** (alias) Glassfish **diagrams.onprem.network.Glassfish** Gunicorn **diagrams.onprem.network.Gunicorn** Haproxy **diagrams.onprem.network.Haproxy**, **HAProxy** (alias) Internet **diagrams.onprem.network.Internet** Istio **diagrams.onprem.network.Istio** Jbossas **diagrams.onprem.network.Jbossas** Jetty **diagrams.onprem.network.Jetty** Kong **diagrams.onprem.network.Kong** Linkerd **diagrams.onprem.network.Linkerd** Mikrotik **diagrams.onprem.network.Mikrotik** Nginx **diagrams.onprem.network.Nginx** Ocelot **diagrams.onprem.network.Ocelot** OpenServiceMesh **diagrams.onprem.network.OpenServiceMesh**, **OSM** (alias) Opnsense **diagrams.onprem.network.Opnsense**, **OPNSense** (alias) Pfsense **diagrams.onprem.network.Pfsense**, **PFSense** (alias) Pomerium **diagrams.onprem.network.Pomerium** Powerdns **diagrams.onprem.network.Powerdns** Tomcat **diagrams.onprem.network.Tomcat** Traefik **diagrams.onprem.network.Traefik** Tyk **diagrams.onprem.network.Tyk** Vyos **diagrams.onprem.network.Vyos**, **VyOS** (alias) Wildfly **diagrams.onprem.network.Wildfly** Yarp **diagrams.onprem.network.Yarp** Zookeeper **diagrams.onprem.network.Zookeeper** ## onprem.proxmox Pve **diagrams.onprem.proxmox.Pve**, **ProxmoxVE** (alias) ## onprem.queue Activemq **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias) Celery **diagrams.onprem.queue.Celery** Emqx **diagrams.onprem.queue.Emqx**, **EMQX** (alias) Kafka **diagrams.onprem.queue.Kafka** Nats **diagrams.onprem.queue.Nats** Rabbitmq **diagrams.onprem.queue.Rabbitmq**, **RabbitMQ** (alias) Zeromq **diagrams.onprem.queue.Zeromq**, **ZeroMQ** (alias) ## onprem.registry Harbor **diagrams.onprem.registry.Harbor** Jfrog **diagrams.onprem.registry.Jfrog** ## onprem.search Solr **diagrams.onprem.search.Solr** ## onprem.security Bitwarden **diagrams.onprem.security.Bitwarden** Trivy **diagrams.onprem.security.Trivy** Vault **diagrams.onprem.security.Vault** ## onprem.storage CephOsd **diagrams.onprem.storage.CephOsd**, **CEPH_OSD** (alias) Ceph **diagrams.onprem.storage.Ceph**, **CEPH** (alias) Glusterfs **diagrams.onprem.storage.Glusterfs** Portworx **diagrams.onprem.storage.Portworx** ## onprem.tracing Jaeger **diagrams.onprem.tracing.Jaeger** Tempo **diagrams.onprem.tracing.Tempo** ## onprem.vcs Git **diagrams.onprem.vcs.Git** Gitea **diagrams.onprem.vcs.Gitea** Github **diagrams.onprem.vcs.Github** Gitlab **diagrams.onprem.vcs.Gitlab** Svn **diagrams.onprem.vcs.Svn** ## onprem.workflow Airflow **diagrams.onprem.workflow.Airflow** Digdag **diagrams.onprem.workflow.Digdag** Kubeflow **diagrams.onprem.workflow.Kubeflow**, **KubeFlow** (alias) Nifi **diagrams.onprem.workflow.Nifi**, **NiFi** (alias) ================================================ FILE: docs/nodes/openstack.md ================================================ --- id: openstack title: OpenStack --- Node classes list of the openstack provider. ## openstack.apiproxies EC2API **diagrams.openstack.apiproxies.EC2API** ## openstack.applicationlifecycle Freezer **diagrams.openstack.applicationlifecycle.Freezer** Masakari **diagrams.openstack.applicationlifecycle.Masakari** Murano **diagrams.openstack.applicationlifecycle.Murano** Solum **diagrams.openstack.applicationlifecycle.Solum** ## openstack.baremetal Cyborg **diagrams.openstack.baremetal.Cyborg** Ironic **diagrams.openstack.baremetal.Ironic** ## openstack.billing Cloudkitty **diagrams.openstack.billing.Cloudkitty**, **CloudKitty** (alias) ## openstack.compute Nova **diagrams.openstack.compute.Nova** Qinling **diagrams.openstack.compute.Qinling** Zun **diagrams.openstack.compute.Zun** ## openstack.containerservices Kuryr **diagrams.openstack.containerservices.Kuryr** ## openstack.deployment Ansible **diagrams.openstack.deployment.Ansible** Charms **diagrams.openstack.deployment.Charms** Chef **diagrams.openstack.deployment.Chef** Helm **diagrams.openstack.deployment.Helm** Kolla **diagrams.openstack.deployment.Kolla**, **KollaAnsible** (alias) Tripleo **diagrams.openstack.deployment.Tripleo**, **TripleO** (alias) ## openstack.frontend Horizon **diagrams.openstack.frontend.Horizon** ## openstack.monitoring Monasca **diagrams.openstack.monitoring.Monasca** Telemetry **diagrams.openstack.monitoring.Telemetry** ## openstack.multiregion Tricircle **diagrams.openstack.multiregion.Tricircle** ## openstack.networking Designate **diagrams.openstack.networking.Designate** Neutron **diagrams.openstack.networking.Neutron** Octavia **diagrams.openstack.networking.Octavia** ## openstack.nfv Tacker **diagrams.openstack.nfv.Tacker** ## openstack.optimization Congress **diagrams.openstack.optimization.Congress** Rally **diagrams.openstack.optimization.Rally** Vitrage **diagrams.openstack.optimization.Vitrage** Watcher **diagrams.openstack.optimization.Watcher** ## openstack.orchestration Blazar **diagrams.openstack.orchestration.Blazar** Heat **diagrams.openstack.orchestration.Heat** Mistral **diagrams.openstack.orchestration.Mistral** Senlin **diagrams.openstack.orchestration.Senlin** Zaqar **diagrams.openstack.orchestration.Zaqar** ## openstack.packaging LOCI **diagrams.openstack.packaging.LOCI** Puppet **diagrams.openstack.packaging.Puppet** RPM **diagrams.openstack.packaging.RPM** ## openstack.sharedservices Barbican **diagrams.openstack.sharedservices.Barbican** Glance **diagrams.openstack.sharedservices.Glance** Karbor **diagrams.openstack.sharedservices.Karbor** Keystone **diagrams.openstack.sharedservices.Keystone** Searchlight **diagrams.openstack.sharedservices.Searchlight** ## openstack.storage Cinder **diagrams.openstack.storage.Cinder** Manila **diagrams.openstack.storage.Manila** Swift **diagrams.openstack.storage.Swift** ## openstack.user Openstackclient **diagrams.openstack.user.Openstackclient**, **OpenStackClient** (alias) ## openstack.workloadprovisioning Magnum **diagrams.openstack.workloadprovisioning.Magnum** Sahara **diagrams.openstack.workloadprovisioning.Sahara** Trove **diagrams.openstack.workloadprovisioning.Trove** ================================================ FILE: docs/nodes/outscale.md ================================================ --- id: outscale title: Outscale --- Node classes list of the outscale provider. ## outscale.compute Compute **diagrams.outscale.compute.Compute** DirectConnect **diagrams.outscale.compute.DirectConnect** ## outscale.network ClientVpn **diagrams.outscale.network.ClientVpn** InternetService **diagrams.outscale.network.InternetService** LoadBalancer **diagrams.outscale.network.LoadBalancer** NatService **diagrams.outscale.network.NatService** Net **diagrams.outscale.network.Net** SiteToSiteVpng **diagrams.outscale.network.SiteToSiteVpng** ## outscale.security Firewall **diagrams.outscale.security.Firewall** IdentityAndAccessManagement **diagrams.outscale.security.IdentityAndAccessManagement** ## outscale.storage SimpleStorageService **diagrams.outscale.storage.SimpleStorageService** Storage **diagrams.outscale.storage.Storage** ================================================ FILE: docs/nodes/programming.md ================================================ --- id: programming title: Programming --- Node classes list of the programming provider. ## programming.flowchart Action **diagrams.programming.flowchart.Action** Collate **diagrams.programming.flowchart.Collate** Database **diagrams.programming.flowchart.Database** Decision **diagrams.programming.flowchart.Decision** Delay **diagrams.programming.flowchart.Delay** Display **diagrams.programming.flowchart.Display** Document **diagrams.programming.flowchart.Document** InputOutput **diagrams.programming.flowchart.InputOutput** Inspection **diagrams.programming.flowchart.Inspection** InternalStorage **diagrams.programming.flowchart.InternalStorage** LoopLimit **diagrams.programming.flowchart.LoopLimit** ManualInput **diagrams.programming.flowchart.ManualInput** ManualLoop **diagrams.programming.flowchart.ManualLoop** Merge **diagrams.programming.flowchart.Merge** MultipleDocuments **diagrams.programming.flowchart.MultipleDocuments** OffPageConnectorLeft **diagrams.programming.flowchart.OffPageConnectorLeft** OffPageConnectorRight **diagrams.programming.flowchart.OffPageConnectorRight** Or **diagrams.programming.flowchart.Or** PredefinedProcess **diagrams.programming.flowchart.PredefinedProcess** Preparation **diagrams.programming.flowchart.Preparation** Sort **diagrams.programming.flowchart.Sort** StartEnd **diagrams.programming.flowchart.StartEnd** StoredData **diagrams.programming.flowchart.StoredData** SummingJunction **diagrams.programming.flowchart.SummingJunction** ## programming.framework Angular **diagrams.programming.framework.Angular** Backbone **diagrams.programming.framework.Backbone** Camel **diagrams.programming.framework.Camel** Django **diagrams.programming.framework.Django** Dotnet **diagrams.programming.framework.Dotnet**, **DotNet** (alias) Ember **diagrams.programming.framework.Ember** Fastapi **diagrams.programming.framework.Fastapi**, **FastAPI** (alias) Flask **diagrams.programming.framework.Flask** Flutter **diagrams.programming.framework.Flutter** Graphql **diagrams.programming.framework.Graphql**, **GraphQL** (alias) Hibernate **diagrams.programming.framework.Hibernate** Jhipster **diagrams.programming.framework.Jhipster** Laravel **diagrams.programming.framework.Laravel** Micronaut **diagrams.programming.framework.Micronaut** Nextjs **diagrams.programming.framework.Nextjs**, **NextJs** (alias) Phoenix **diagrams.programming.framework.Phoenix** Quarkus **diagrams.programming.framework.Quarkus** Rails **diagrams.programming.framework.Rails** React **diagrams.programming.framework.React** Spring **diagrams.programming.framework.Spring** Sqlpage **diagrams.programming.framework.Sqlpage** Starlette **diagrams.programming.framework.Starlette** Svelte **diagrams.programming.framework.Svelte** Vercel **diagrams.programming.framework.Vercel** Vue **diagrams.programming.framework.Vue** ## programming.language Bash **diagrams.programming.language.Bash** C **diagrams.programming.language.C** Cpp **diagrams.programming.language.Cpp** Csharp **diagrams.programming.language.Csharp** Dart **diagrams.programming.language.Dart** Elixir **diagrams.programming.language.Elixir** Erlang **diagrams.programming.language.Erlang** Go **diagrams.programming.language.Go** Java **diagrams.programming.language.Java** Javascript **diagrams.programming.language.Javascript**, **JavaScript** (alias) Kotlin **diagrams.programming.language.Kotlin** Latex **diagrams.programming.language.Latex** Matlab **diagrams.programming.language.Matlab** Nodejs **diagrams.programming.language.Nodejs**, **NodeJS** (alias) Php **diagrams.programming.language.Php**, **PHP** (alias) Python **diagrams.programming.language.Python** R **diagrams.programming.language.R** Ruby **diagrams.programming.language.Ruby** Rust **diagrams.programming.language.Rust** Scala **diagrams.programming.language.Scala** Sql **diagrams.programming.language.Sql** Swift **diagrams.programming.language.Swift** Typescript **diagrams.programming.language.Typescript**, **TypeScript** (alias) ## programming.runtime Dapr **diagrams.programming.runtime.Dapr** ================================================ FILE: docs/nodes/saas.md ================================================ --- id: saas title: Saas --- Node classes list of the saas provider. ## saas.alerting Newrelic **diagrams.saas.alerting.Newrelic** Opsgenie **diagrams.saas.alerting.Opsgenie** Pagerduty **diagrams.saas.alerting.Pagerduty** Pushover **diagrams.saas.alerting.Pushover** Xmatters **diagrams.saas.alerting.Xmatters** ## saas.analytics Dataform **diagrams.saas.analytics.Dataform** Snowflake **diagrams.saas.analytics.Snowflake** Stitch **diagrams.saas.analytics.Stitch** ## saas.automation N8N **diagrams.saas.automation.N8N** ## saas.cdn Akamai **diagrams.saas.cdn.Akamai** Cloudflare **diagrams.saas.cdn.Cloudflare** Fastly **diagrams.saas.cdn.Fastly** Imperva **diagrams.saas.cdn.Imperva** ## saas.chat Discord **diagrams.saas.chat.Discord** Line **diagrams.saas.chat.Line** Mattermost **diagrams.saas.chat.Mattermost** Messenger **diagrams.saas.chat.Messenger** RocketChat **diagrams.saas.chat.RocketChat** Slack **diagrams.saas.chat.Slack** Teams **diagrams.saas.chat.Teams** Telegram **diagrams.saas.chat.Telegram** ## saas.communication Twilio **diagrams.saas.communication.Twilio** ## saas.crm Intercom **diagrams.saas.crm.Intercom** Zendesk **diagrams.saas.crm.Zendesk** ## saas.filesharing Nextcloud **diagrams.saas.filesharing.Nextcloud** ## saas.identity Auth0 **diagrams.saas.identity.Auth0** Okta **diagrams.saas.identity.Okta** ## saas.logging Datadog **diagrams.saas.logging.Datadog**, **DataDog** (alias) Newrelic **diagrams.saas.logging.Newrelic**, **NewRelic** (alias) Papertrail **diagrams.saas.logging.Papertrail** ## saas.media Cloudinary **diagrams.saas.media.Cloudinary** ## saas.payment Adyen **diagrams.saas.payment.Adyen** AmazonPay **diagrams.saas.payment.AmazonPay** Paypal **diagrams.saas.payment.Paypal** Stripe **diagrams.saas.payment.Stripe** ## saas.recommendation Recombee **diagrams.saas.recommendation.Recombee** ## saas.security Crowdstrike **diagrams.saas.security.Crowdstrike** Sonarqube **diagrams.saas.security.Sonarqube** ## saas.social Facebook **diagrams.saas.social.Facebook** Twitter **diagrams.saas.social.Twitter** ================================================ FILE: pyproject.toml ================================================ [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "diagrams" version = "0.25.1" description = "Diagram as Code" authors = [{ name = "mingrammer", email = "mingrammer@gmail.com" }] requires-python = "~=3.9" readme = "README.md" license = "MIT" dependencies = [ "graphviz>=0.13.2,<0.22.0", "jinja2>=2.10,<4.0", "typed-ast>=1.5.5,<2 ; python_version<'3.8'", ] [project.scripts] diagrams = "diagrams.cli:main" [project.urls] Homepage = "https://diagrams.mingrammer.com" Repository = "https://github.com/mingrammer/diagrams" [tool.poetry.group.dev.dependencies] pytest = "^8.3" pylint = "^3.3" rope = "^1.13" isort = "^6.0" black = "^24.4" pre-commit = "^4.0" [tool.hatch.build] only-include = ["diagrams", "resources"] [tool.black] line-length=120 ================================================ FILE: scripts/__init__.py ================================================ import os from pathlib import Path import config as cfg def base_dir() -> Path: return Path(os.path.abspath(os.path.dirname(__file__))).parent def app_root_dir(pvd: str) -> str: return os.path.join(base_dir(), cfg.DIR_APP_ROOT, pvd) def doc_root_dir() -> str: return os.path.join(base_dir(), cfg.DIR_DOC_ROOT) def resource_dir(pvd: str) -> str: return os.path.join(base_dir(), cfg.DIR_RESOURCE, pvd) def template_dir() -> str: return os.path.join(base_dir(), cfg.DIR_TEMPLATE) ================================================ FILE: scripts/generate.py ================================================ import os import sys from typing import Iterable from jinja2 import Environment, FileSystemLoader, Template, exceptions import config as cfg from . import app_root_dir, base_dir, doc_root_dir, resource_dir, template_dir _usage = "Usage: generate.py " def load_tmpl(tmpl: str) -> Template: env = Environment(loader=FileSystemLoader(template_dir())) env.filters["up_or_title"] = up_or_title return env.get_template(tmpl) def up_or_title(pvd: str, s: str) -> str: if s in cfg.UPPER_WORDS.get(pvd, ()): return s.upper() if s in cfg.TITLE_WORDS.get(pvd, {}): return cfg.TITLE_WORDS[pvd][s] return s.title() def gen_classes(pvd: str, typ: str, paths: Iterable[str]) -> str: """Generate all service node classes based on resources paths with class templates.""" tmpl = load_tmpl(cfg.TMPL_MODULE) # TODO: extract the gen class metas for sharing # TODO: independent function for generating all pvd/typ/paths pairs def _gen_class_meta(path: str) -> dict: base = os.path.splitext(path)[0] name = "".join([up_or_title(pvd, s) for s in base.split("-")]) return {"name": name, "icon": path} metas = map(_gen_class_meta, paths) aliases = cfg.ALIASES[pvd][typ] if typ in cfg.ALIASES[pvd] else {} return tmpl.render(pvd=pvd, typ=typ, metas=metas, aliases=aliases) def gen_apidoc(pvd: str, typ_paths: dict) -> str: try: default_tmp = cfg.TMPL_APIDOC.split(".") tmpl_file = f"{default_tmp[0]}_{pvd}.{default_tmp[1]}" tmpl = load_tmpl(tmpl_file) except exceptions.TemplateNotFound: tmpl = load_tmpl(cfg.TMPL_APIDOC) # TODO: remove def _gen_class_name(path: str) -> str: base = os.path.splitext(path)[0] name = "".join([up_or_title(pvd, s) for s in base.split("-")]) return name typ_classes = {} for typ, (paths, resource_root) in sorted(typ_paths.items()): typ_classes[typ] = [] for path in paths: name = _gen_class_name(path) resource_path = os.path.join(resource_root, path) alias = cfg.ALIASES[pvd].get(typ, {}).get(name) typ_classes[typ].append( {"name": name, "alias": alias, "resource_path": resource_path}) return tmpl.render(pvd=pvd, typ_classes=typ_classes) def make_module(pvd: str, typ: str, classes: str) -> None: """Create a module file""" mod_path = os.path.join(app_root_dir(pvd), f"{typ}.py") with open(mod_path, "w+") as f: f.write(classes) def make_apidoc(pvd: str, content: str) -> None: """Create an api documentation file""" mod_path = os.path.join(doc_root_dir(), f"{pvd}.md") with open(mod_path, "w+") as f: f.write(content) def generate(pvd: str) -> None: """Generates a service node classes.""" typ_paths = {} base = base_dir() for root, _, files in os.walk(resource_dir(pvd)): # Extract the names and paths from resources. files.sort() pngs = list(filter(lambda f: f.endswith(".png"), files)) paths = list(filter(lambda f: "rounded" not in f, pngs)) # Skip the top-root directory. typ = os.path.basename(root) if typ == pvd: continue resource_root = os.path.relpath(root, base) classes = gen_classes(pvd, typ, paths) make_module(pvd, typ, classes) typ_paths[typ] = (paths, resource_root) # Build API documentation apidoc = gen_apidoc(pvd, typ_paths) make_apidoc(pvd, apidoc) if __name__ == "__main__": pvd = sys.argv[1] if pvd not in cfg.PROVIDERS: sys.exit() generate(pvd) ================================================ FILE: scripts/resource.py ================================================ """ resources.py provides useful tools for resources processing. There are 2 commands available. - clean: clean and unify the resources file names with some rules. - round: generate the rounded images from the original squared images. """ import os import subprocess import sys import config as cfg from . import resource_dir _usage = "Usage: resource.py " def cleaner_onprem(f): f = f.replace("_", "-") return f.lower() def cleaner_aws(f): f = f.replace("_", "-") f = f.replace("@4x", "") f = f.replace("@5x", "") f = f.replace("2.0", "2-0") f = f.replace("-light-bg4x", "") f = f.replace("-light-bg", "") for p in cfg.FILE_PREFIXES["aws"]: if f.startswith(p): f = f[len(p):] break return f.lower() def cleaner_azure(f): f = f.replace("_", "-") f = f.replace("(", "").replace(")", "") f = "-".join(f.split()) for p in cfg.FILE_PREFIXES["azure"]: if f.startswith(p): f = f[len(p):] break return f.lower() def cleaner_gcp(f): f = f.replace("_", "-") f = "-".join(f.split()) for p in cfg.FILE_PREFIXES["gcp"]: if f.startswith(p): f = f[len(p):] break return f.lower() def cleaner_ibm(f): f = f.replace("_", "-") f = "-".join(f.split()) for p in cfg.FILE_PREFIXES["ibm"]: if f.startswith(p): f = f[len(p):] break return f.lower() def cleaner_firebase(f): f = f.replace("_", "-") f = "-".join(f.split()) for p in cfg.FILE_PREFIXES["firebase"]: if f.startswith(p): f = f[len(p):] break return f.lower() def cleaner_k8s(f): f = f.replace("-256", "") for p in cfg.FILE_PREFIXES["k8s"]: if f.startswith(p): f = f[len(p):] break return f.lower() def cleaner_digitalocean(f): f = f.replace("-32", "") for p in cfg.FILE_PREFIXES["digitalocean"]: if f.startswith(p): f = f[len(p):] break return f.lower() def cleaner_alibabacloud(f): for p in cfg.FILE_PREFIXES["alibabacloud"]: if f.startswith(p): f = f[len(p):] break return f.lower() def cleaner_oci(f): f = f.replace(" ", "-") f = f.replace("_", "-") for p in cfg.FILE_PREFIXES["oci"]: if f.startswith(p): f = f[len(p):] break return f.lower() def cleaner_programming(f): return f.lower() def cleaner_generic(f): return f.lower() def cleaner_saas(f): return f.lower() def cleaner_elastic(f): return f.lower() def cleaner_outscale(f): return f.lower() def cleaner_openstack(f): return f.lower() def cleaner_gis(f): return f.lower() cleaners = { "onprem": cleaner_onprem, "aws": cleaner_aws, "azure": cleaner_azure, "digitalocean": cleaner_digitalocean, "gcp": cleaner_gcp, "ibm": cleaner_ibm, "firebase": cleaner_firebase, "k8s": cleaner_k8s, "alibabacloud": cleaner_alibabacloud, "oci": cleaner_oci, "programming": cleaner_programming, "saas": cleaner_saas, "elastic": cleaner_elastic, "outscale": cleaner_outscale, "generic": cleaner_generic, "openstack": cleaner_openstack, "gis": cleaner_gis, } def clean_png(pvd: str) -> None: """Refine the resources files names.""" def _rename(base: str, png: str): new = cleaners[pvd](png) old_path = os.path.join(base, png) new_path = os.path.join(base, new) os.rename(old_path, new_path) for root, _, files in os.walk(resource_dir(pvd)): pngs = filter(lambda f: f.endswith(".png"), files) [_rename(root, png) for png in pngs] def round_png(pvd: str) -> None: """Round the images.""" def _round(base: str, path: str): path = os.path.join(base, path) subprocess.run([cfg.CMD_ROUND, *cfg.CMD_ROUND_OPTS, path]) for root, _, files in os.walk(resource_dir(pvd)): pngs = filter(lambda f: f.endswith(".png"), files) paths = filter(lambda f: "rounded" not in f, pngs) [_round(root, path) for path in paths] def svg2png(pvd: str) -> None: """Convert the svg into png""" def _convert(base: str, path: str): path = os.path.join(base, path) subprocess.run([cfg.CMD_SVG2PNG, *cfg.CMD_SVG2PNG_OPTS, path]) subprocess.run(["rm", path]) for root, _, files in os.walk(resource_dir(pvd)): svgs = filter(lambda f: f.endswith(".svg"), files) [_convert(root, path) for path in svgs] def svg2png2(pvd: str) -> None: """Convert the svg into png using image magick""" def _convert(base: str, path: str): path_src = os.path.join(base, path) path_dest = path_src.replace(".svg", ".png") subprocess.run([cfg.CMD_SVG2PNG_IM, * cfg.CMD_SVG2PNG_IM_OPTS, path_src, path_dest]) subprocess.run(["rm", path_src]) for root, _, files in os.walk(resource_dir(pvd)): svgs = filter(lambda f: f.endswith(".svg"), files) [_convert(root, path) for path in svgs] # fmt: off commands = { "clean": clean_png, "round": round_png, "svg2png": svg2png, "svg2png2": svg2png2, } # fmt: on if __name__ == "__main__": if len(sys.argv) < 3: print(_usage) sys.exit() cmd = sys.argv[1] pvd = sys.argv[2] if cmd not in commands: sys.exit() if pvd not in cfg.PROVIDERS: sys.exit() commands[cmd](pvd) ================================================ FILE: templates/apidoc.tmpl ================================================ --- id: {{ pvd }} title: {{ pvd|up_or_title(pvd) }} --- Node classes list of the {{ pvd }} provider. {% for typ, classes in typ_classes.items() %} ## {{ pvd }}.{{ typ }} {% for class in classes %} {{ class['name'] }} **diagrams.{{ pvd }}.{{ typ }}.{{ class['name'] }}**{% if class['alias'] %}, **{{ class['alias'] }}** (alias){% endif %}{% endfor %} {% endfor %} ================================================ FILE: templates/apidoc_custom.tmpl ================================================ --- id: {{ pvd }} title: {{ pvd|up_or_title(pvd) }} --- For a full example check: [Here](https://diagrams.mingrammer.com/docs/getting-started/examples#rabbitmq-consumers-with-custom-nodes). ================================================ FILE: templates/module.tmpl ================================================ # This module is automatically generated by autogen.sh. DO NOT EDIT. from . import _{{ pvd|up_or_title(pvd) }} class _{{ pvd|up_or_title(typ) }}(_{{ pvd|up_or_title(pvd) }}): _type = "{{ typ }}" _icon_dir = "resources/{{ pvd }}/{{ typ }}" {% for meta in metas %} class {{ meta["name"] }}(_{{ pvd|up_or_title(typ) }}): _icon = "{{ meta["icon"] }}"{% endfor %} # Aliases {% for svc, alias in aliases.items() %} {{ alias }} = {{ svc }}{% endfor %} ================================================ FILE: tests/__init__.py ================================================ ================================================ FILE: tests/test_c4.py ================================================ import os import random import string import unittest from diagrams import Diagram, setcluster, setdiagram from diagrams.c4 import Container, Database, Person, Relationship, System, SystemBoundary class C4Test(unittest.TestCase): def setUp(self): self.name = "diagram-" + \ "".join([random.choice(string.hexdigits) for n in range(7)]).lower() def tearDown(self): setdiagram(None) setcluster(None) try: os.remove(self.name + ".png") except FileNotFoundError: pass def test_nodes(self): with Diagram(name=self.name, show=False): person = Person("person", "A person.") container = Container( "container", "Java application", "The application.") database = Database( "database", "Oracle database", "Stores information.") def test_external_nodes(self): with Diagram(name=self.name, show=False): external_person = Person("person", external=True) external_system = System("external", external=True) def test_systems(self): with Diagram(name=self.name, show=False): system = System("system", "The internal system.") system_without_description = System("unknown") def test_edges(self): with Diagram(name=self.name, show=False): c1 = Container("container1") c2 = Container("container2") c1 >> c2 def test_edges_with_labels(self): with Diagram(name=self.name, show=False): c1 = Container("container1") c2 = Container("container2") c1 >> Relationship("depends on") >> c2 c1 << Relationship("is depended on by") << c2 def test_edge_without_constraint(self): with Diagram(name=self.name, show=False): s1 = System("system 1") s2 = System("system 2") s1 >> Relationship(constraint="False") >> s2 def test_cluster(self): with Diagram(name=self.name, show=False): with SystemBoundary("System"): Container("container", "type", "description") ================================================ FILE: tests/test_cli.py ================================================ import os import unittest from io import StringIO from unittest.mock import mock_open, patch from diagrams.cli import run class CliTest(unittest.TestCase): def setUp(self): self.test_file = "test_diagram.py" # dummy content for the test file self.test_content_1 = """ from diagrams import Diagram with Diagram(name="Test", show=False): pass """ # content from getting started examples with utf-8 # only support the installed fonts defined in Dockerfile self.test_content_2 = """ from diagrams import Diagram from diagrams.aws.compute import EC2 from diagrams.aws.database import RDS from diagrams.aws.network import ELB with Diagram("test_2", show=False, direction="TB"): ELB("lb") >> [EC2("ワーカー1"), EC2("작업자 2를"), EC2("робітник 3"), EC2("worker4"), EC2("työntekijä 4")] >> RDS("events") """ def tearDown(self): try: os.remove("test.png") except FileNotFoundError: pass def test_run_with_valid_file(self): # write the test file with open(self.test_file, "w") as f: f.write(self.test_content_1) with patch("sys.argv", ["diagrams", self.test_file]): exit_code = run() self.assertEqual(exit_code, 0) try: os.remove(self.test_file) except FileNotFoundError: pass def test_run_with_multiple_files(self): multiple_files = ["file1.py", "file2.py"] # write the code files with open("file1.py", "w") as f: f.write(self.test_content_1) with open("file2.py", "w") as f: f.write(self.test_content_2) with patch("sys.argv", ["diagrams"] + multiple_files): exit_code = run() self.assertEqual(exit_code, 0) # cleanup code file for one_file in multiple_files: try: os.remove(one_file) except FileNotFoundError: pass # cleanup generated image try: os.remove("test_2.png") except FileNotFoundError: pass def test_run_with_no_arguments(self): with patch("sys.argv", ["diagrams"]): with patch("sys.stderr", new=StringIO()) as fake_stderr: with self.assertRaises(SystemExit): run() self.assertIn("the following arguments are required: path", fake_stderr.getvalue()) def test_run_with_nonexistent_file(self): with patch("sys.argv", ["diagrams", "nonexistent.py"]): with self.assertRaises(FileNotFoundError): run() def test_run_with_invalid_python_code(self): invalid_content = "this is not valid python code" with patch("builtins.open", mock_open(read_data=invalid_content)): with patch("sys.argv", ["diagrams", self.test_file]): with self.assertRaises(SyntaxError): run() ================================================ FILE: tests/test_diagram.py ================================================ import os import pathlib import shutil import unittest from diagrams import Cluster, Diagram, Edge, Node, getcluster, getdiagram, setcluster, setdiagram class DiagramTest(unittest.TestCase): def setUp(self): self.name = "diagram_test" def tearDown(self): setdiagram(None) setcluster(None) # Only some tests generate the image file. try: shutil.rmtree(self.name) except OSError: # Consider it file try: os.remove(self.name + ".png") except FileNotFoundError: pass def test_validate_direction(self): # Normal directions. for dir in ("TB", "BT", "LR", "RL", "tb"): Diagram(direction=dir) # Invalid directions. for dir in ("BR", "TL", "Unknown"): with self.assertRaises(ValueError): Diagram(direction=dir) def test_validate_curvestyle(self): # Normal curvestyles. for cvs in ("ortho", "curved", "spline", "polyline", "CURVED"): Diagram(curvestyle=cvs) # Invalid curvestyles. for cvs in ("tangent", "unknown"): with self.assertRaises(ValueError): Diagram(curvestyle=cvs) def test_validate_theme(self): # Valid themes. for theme in ("neutral", "pastel", "blues", "greens", "orange"): Diagram(theme=theme) # Invalid themes. for theme in ("dark", "unknown"): with self.assertRaises(ValueError): Diagram(theme=theme) def test_validate_outformat(self): # Normal output formats. for fmt in ("png", "jpg", "svg", "pdf", "PNG", "dot"): Diagram(outformat=fmt) # Invalid output formats. for fmt in ("pnp", "jpe", "unknown"): with self.assertRaises(ValueError): Diagram(outformat=fmt) def test_with_global_context(self): self.assertIsNone(getdiagram()) with Diagram(name=os.path.join(self.name, "with_global_context"), show=False): self.assertIsNotNone(getdiagram()) self.assertIsNone(getdiagram()) def test_node_not_in_diagram(self): # Node must be belong to a diagrams. with self.assertRaises(EnvironmentError): Node("node") def test_node_to_node(self): with Diagram(name=os.path.join(self.name, "node_to_node"), show=False): node1 = Node("node1") node2 = Node("node2") self.assertEqual(node1 - node2, node2) self.assertEqual(node1 >> node2, node2) self.assertEqual(node1 << node2, node2) def test_node_to_nodes(self): with Diagram(name=os.path.join(self.name, "node_to_nodes"), show=False): node1 = Node("node1") nodes = [Node("node2"), Node("node3")] self.assertEqual(node1 - nodes, nodes) self.assertEqual(node1 >> nodes, nodes) self.assertEqual(node1 << nodes, nodes) def test_nodes_to_node(self): with Diagram(name=os.path.join(self.name, "nodes_to_node"), show=False): node1 = Node("node1") nodes = [Node("node2"), Node("node3")] self.assertEqual(nodes - node1, node1) self.assertEqual(nodes >> node1, node1) self.assertEqual(nodes << node1, node1) def test_default_filename(self): self.name = "example_1" with Diagram(name="Example 1", show=False): Node("node1") self.assertTrue(os.path.exists(f"{self.name}.png")) def test_custom_filename(self): self.name = "my_custom_name" with Diagram(name="Example 1", filename=self.name, show=False): Node("node1") self.assertTrue(os.path.exists(f"{self.name}.png")) def test_empty_name(self): """Check that providing an empty name don't crash, but save in a diagrams_image.xxx file.""" self.name = "diagrams_image" with Diagram(show=False): Node("node1") self.assertTrue(os.path.exists(f"{self.name}.png")) def test_autolabel(self): with Diagram(name=os.path.join(self.name, "nodes_to_node"), show=False): node1 = Node("node1") self.assertTrue(node1.label, "Node\nnode1") def test_outformat_list(self): """Check that outformat render all the files from the list.""" self.name = "diagrams_image" with Diagram(show=False, outformat=["dot", "png"]): Node("node1") # both files must exist self.assertTrue(os.path.exists(f"{self.name}.png")) self.assertTrue(os.path.exists(f"{self.name}.dot")) # clean the dot file as it only generated here os.remove(self.name + ".dot") class ClusterTest(unittest.TestCase): def setUp(self): self.name = "cluster_test" def tearDown(self): setdiagram(None) setcluster(None) # Only some tests generate the image file. try: shutil.rmtree(self.name) except OSError: pass def test_validate_direction(self): # Normal directions. for dir in ("TB", "BT", "LR", "RL"): with Diagram(name=os.path.join(self.name, "validate_direction"), show=False): Cluster(direction=dir) # Invalid directions. for dir in ("BR", "TL", "Unknown"): with self.assertRaises(ValueError): with Diagram(name=os.path.join(self.name, "validate_direction"), show=False): Cluster(direction=dir) def test_with_global_context(self): with Diagram(name=os.path.join(self.name, "with_global_context"), show=False): self.assertIsNone(getcluster()) with Cluster(): self.assertIsNotNone(getcluster()) self.assertIsNone(getcluster()) def test_with_nested_cluster(self): with Diagram(name=os.path.join(self.name, "with_nested_cluster"), show=False): self.assertIsNone(getcluster()) with Cluster() as c1: self.assertEqual(c1, getcluster()) with Cluster() as c2: self.assertEqual(c2, getcluster()) self.assertEqual(c1, getcluster()) self.assertIsNone(getcluster()) def test_node_not_in_diagram(self): # Node must be belong to a diagrams. with self.assertRaises(EnvironmentError): Node("node") def test_node_to_node(self): with Diagram(name=os.path.join(self.name, "node_to_node"), show=False): with Cluster(): node1 = Node("node1") node2 = Node("node2") self.assertEqual(node1 - node2, node2) self.assertEqual(node1 >> node2, node2) self.assertEqual(node1 << node2, node2) def test_node_to_nodes(self): with Diagram(name=os.path.join(self.name, "node_to_nodes"), show=False): with Cluster(): node1 = Node("node1") nodes = [Node("node2"), Node("node3")] self.assertEqual(node1 - nodes, nodes) self.assertEqual(node1 >> nodes, nodes) self.assertEqual(node1 << nodes, nodes) def test_nodes_to_node(self): with Diagram(name=os.path.join(self.name, "nodes_to_node"), show=False): with Cluster(): node1 = Node("node1") nodes = [Node("node2"), Node("node3")] self.assertEqual(nodes - node1, node1) self.assertEqual(nodes >> node1, node1) self.assertEqual(nodes << node1, node1) class EdgeTest(unittest.TestCase): def setUp(self): self.name = "edge_test" def tearDown(self): setdiagram(None) setcluster(None) # Only some tests generate the image file. try: shutil.rmtree(self.name) except OSError: pass def test_node_to_node(self): with Diagram(name=os.path.join(self.name, "node_to_node"), show=False): node1 = Node("node1") node2 = Node("node2") self.assertEqual(node1 - Edge(color="red") - node2, node2) def test_node_to_nodes(self): with Diagram(name=os.path.join(self.name, "node_to_nodes"), show=False): with Cluster(): node1 = Node("node1") nodes = [Node("node2"), Node("node3")] self.assertEqual(node1 - Edge(color="red") - nodes, nodes) def test_nodes_to_node(self): with Diagram(name=os.path.join(self.name, "nodes_to_node"), show=False): with Cluster(): node1 = Node("node1") nodes = [Node("node2"), Node("node3")] self.assertEqual(nodes - Edge(color="red") - node1, node1) def test_nodes_to_node_with_additional_attributes(self): with Diagram(name=os.path.join(self.name, "nodes_to_node_with_additional_attributes"), show=False): with Cluster(): node1 = Node("node1") nodes = [Node("node2"), Node("node3")] self.assertEqual( nodes - Edge( color="red") - Edge( color="green") - node1, node1) def test_node_to_node_with_attributes(self): with Diagram(name=os.path.join(self.name, "node_to_node_with_attributes"), show=False): with Cluster(): node1 = Node("node1") node2 = Node("node2") self.assertEqual( node1 << Edge( color="red", label="1.1") << node2, node2) self.assertEqual( node1 >> Edge( color="green", label="1.2") >> node2, node2) self.assertEqual( node1 << Edge( color="blue", label="1.3") >> node2, node2) def test_node_to_node_with_additional_attributes(self): with Diagram(name=os.path.join(self.name, "node_to_node_with_additional_attributes"), show=False): with Cluster(): node1 = Node("node1") node2 = Node("node2") self.assertEqual( node1 << Edge( color="red", label="2.1") << Edge( color="blue") << node2, node2) self.assertEqual( node1 >> Edge( color="green", label="2.2") >> Edge( color="red") >> node2, node2) self.assertEqual( node1 << Edge( color="blue", label="2.3") >> Edge( color="black") >> node2, node2) def test_nodes_to_node_with_attributes_loop(self): with Diagram(name=os.path.join(self.name, "nodes_to_node_with_attributes_loop"), show=False): with Cluster(): node = Node("node") self.assertEqual( node >> Edge( color="red", label="3.1") >> node, node) self.assertEqual( node << Edge( color="green", label="3.2") << node, node) self.assertEqual( node >> Edge( color="blue", label="3.3") << node, node) self.assertEqual( node << Edge( color="pink", label="3.4") >> node, node) def test_nodes_to_node_with_attributes_bothdirectional(self): with Diagram(name=os.path.join(self.name, "nodes_to_node_with_attributes_bothdirectional"), show=False): with Cluster(): node1 = Node("node1") nodes = [Node("node2"), Node("node3")] self.assertEqual( nodes << Edge( color="green", label="4") >> node1, node1) def test_nodes_to_node_with_attributes_bidirectional(self): with Diagram(name=os.path.join(self.name, "nodes_to_node_with_attributes_bidirectional"), show=False): with Cluster(): node1 = Node("node1") nodes = [Node("node2"), Node("node3")] self.assertEqual( nodes << Edge( color="blue", label="5") >> node1, node1) def test_nodes_to_node_with_attributes_onedirectional(self): with Diagram(name=os.path.join(self.name, "nodes_to_node_with_attributes_onedirectional"), show=False): with Cluster(): node1 = Node("node1") nodes = [Node("node2"), Node("node3")] self.assertEqual( nodes >> Edge( color="red", label="6.1") >> node1, node1) self.assertEqual( nodes << Edge( color="green", label="6.2") << node1, node1) def test_nodes_to_node_with_additional_attributes_directional(self): with Diagram(name=os.path.join(self.name, "nodes_to_node_with_additional_attributes_directional"), show=False): with Cluster(): node1 = Node("node1") nodes = [Node("node2"), Node("node3")] self.assertEqual( nodes >> Edge( color="red", label="6.1") >> Edge( color="blue", label="6.2") >> node1, node1) self.assertEqual( nodes << Edge( color="green", label="6.3") << Edge( color="pink", label="6.4") << node1, node1) class ResourcesTest(unittest.TestCase): def test_folder_depth(self): """ The code currently only handles resource folders up to a dir depth of 2 i.e. resources///, so check that this depth isn't exceeded. """ resources_dir = pathlib.Path(__file__).parent.parent / "resources" max_depth = max( os.path.relpath( d, resources_dir).count( os.sep) + 1 for d, _, _ in os.walk(resources_dir)) self.assertLessEqual(max_depth, 2) def test_resources_exist_and_render(self): """ Test that resources directory exists and icons can be loaded for rendering. This ensures the package build includes all necessary resource files. """ from diagrams.aws.compute import EC2 from diagrams.aws.database import RDS # Verify resources directory exists resources_dir = pathlib.Path(__file__).parent.parent / "resources" self.assertTrue(resources_dir.exists(), "resources directory should exist") # Verify AWS resources exist (sample check) aws_compute_dir = resources_dir / "aws" / "compute" self.assertTrue(aws_compute_dir.exists(), "AWS compute resources should exist") # Verify icon files exist ec2_icon = aws_compute_dir / "ec2.png" self.assertTrue(ec2_icon.exists(), "EC2 icon should exist") # Test that nodes can load their icons test_diagram_name = "test_resources_render" try: with Diagram(test_diagram_name, show=False): ec2_node = EC2("test-ec2") rds_node = RDS("test-rds") # Verify nodes have icon attributes set self.assertIsNotNone(ec2_node._icon, "EC2 node should have an icon") self.assertIsNotNone(rds_node._icon, "RDS node should have an icon") # Verify icon paths are valid ec2_icon_path = ec2_node._load_icon() rds_icon_path = rds_node._load_icon() self.assertTrue(os.path.exists(ec2_icon_path), f"EC2 icon path should exist: {ec2_icon_path}") self.assertTrue(os.path.exists(rds_icon_path), f"RDS icon path should exist: {rds_icon_path}") finally: # Clean up generated files try: os.remove(test_diagram_name + ".png") except FileNotFoundError: pass ================================================ FILE: website/core/Footer.js ================================================ /** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ const React = require('react'); class Footer extends React.Component { docUrl(doc, language) { const baseUrl = this.props.config.baseUrl; const docsUrl = this.props.config.docsUrl; const docsPart = `${docsUrl ? `${docsUrl}/` : ''}`; const langPart = `${language ? `${language}/` : ''}`; return `${baseUrl}${docsPart}${langPart}${doc}`; } pageUrl(doc, language) { const baseUrl = this.props.config.baseUrl; return baseUrl + (language ? `${language}/` : '') + doc; } render() { return ( ); } } module.exports = Footer; ================================================ FILE: website/i18n/en.json ================================================ { "_comment": "This file is auto-generated by write-translations.js", "localized-strings": { "next": "Next", "previous": "Previous", "tagline": "Diagram as Code", "docs": { "getting-started/examples": { "title": "Examples" }, "getting-started/installation": { "title": "Installation" }, "guides/cluster": { "title": "Clusters" }, "guides/diagram": { "title": "Diagrams" }, "guides/edge": { "title": "Edges" }, "guides/node": { "title": "Nodes" }, "nodes/alibabacloud": { "title": "AlibabaCloud" }, "nodes/aws": { "title": "AWS" }, "nodes/azure": { "title": "Azure" }, "nodes/c4": { "title": "C4" }, "nodes/custom": { "title": "Custom" }, "nodes/digitalocean": { "title": "DigitalOcean" }, "nodes/elastic": { "title": "Elastic" }, "nodes/firebase": { "title": "Firebase" }, "nodes/gcp": { "title": "GCP" }, "nodes/generic": { "title": "Generic" }, "nodes/gis": { "title": "GIS" }, "nodes/ibm": { "title": "IBM" }, "nodes/k8s": { "title": "K8S" }, "nodes/oci": { "title": "OCI" }, "nodes/onprem": { "title": "OnPrem" }, "nodes/openstack": { "title": "OpenStack" }, "nodes/outscale": { "title": "Outscale" }, "nodes/programming": { "title": "Programming" }, "nodes/saas": { "title": "Saas" } }, "links": { "Docs": "Docs", "Guides": "Guides", "Nodes": "Nodes", "GitHub": "GitHub", "Sponsoring": "Sponsoring" }, "categories": { "Getting Started": "Getting Started", "Guides": "Guides", "Nodes": "Nodes" } }, "pages-strings": { "Help Translate|recruit community translators for your project": "Help Translate", "Edit this Doc|recruitment message asking to edit the doc source": "Edit", "Translate this Doc|recruitment message asking to translate the docs": "Translate" } } ================================================ FILE: website/package.json ================================================ { "scripts": { "examples": "docusaurus-examples", "start": "docusaurus-start", "build": "docusaurus-build", "publish-gh-pages": "docusaurus-publish", "write-translations": "docusaurus-write-translations", "version": "docusaurus-version", "rename-version": "docusaurus-rename-version" }, "devDependencies": { "docusaurus": "^1.14.7" }, "dependencies": { "minimist": "^1.2.7" } } ================================================ FILE: website/pages/en/index.js ================================================ /** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ const React = require('react'); const CompLibrary = require('../../core/CompLibrary.js'); const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */ const Container = CompLibrary.Container; const GridBlock = CompLibrary.GridBlock; class HomeSplash extends React.Component { render() { const {siteConfig, language = ''} = this.props; const {baseUrl, docsUrl} = siteConfig; const docsPart = `${docsUrl ? `${docsUrl}/` : ''}`; const langPart = `${language ? `${language}/` : ''}`; const docUrl = doc => `${baseUrl}${docsPart}${langPart}${doc}`; const SplashContainer = props => (
{props.children}
); const Logo = props => (
Project Logo
); const ProjectTitle = props => (

{props.title} {props.tagline}

); const PromoSection = props => (
{props.children}
); const Button = props => ( ); return (
); } } class Index extends React.Component { render() { const {config: siteConfig, language = ''} = this.props; const {baseUrl} = siteConfig; const Block = props => ( ); const About = () => (

About Diagrams

Diagrams lets you draw the cloud system architecture **in Python code**. It was born for **prototyping** a new system architecture without any design tools. You can also describe or visualize the existing system architecture as well. `Diagram as Code` allows you to **track** the architecture diagram changes in any **version control** system. Diagrams currently supports main major providers including: `AWS`, `Azure`, `GCP`, `Kubernetes`, `Alibaba Cloud`, `Oracle Cloud` etc... It also supports `On-Premises` nodes, `SaaS` and major `Programming` frameworks and languages. `NOTE: It does not control any actual cloud resources nor does it generate cloud formation or terraform code. It is just for drawing the cloud system architecture diagrams.`
); const Example = () => ( {[ { image: `${baseUrl}img/message_collecting_code.png`, imageAlign: 'left', }, { image: `${baseUrl}img/message_collecting_diagram.png`, imageAlign: 'right', }, ]} ); const Example2 = () => ( {[ { image: `${baseUrl}img/event_processing_code.png`, imageAlign: 'left', }, { image: `${baseUrl}img/event_processing_diagram.png`, imageAlign: 'right', }, ]} ); return (
); } } module.exports = Index; ================================================ FILE: website/publish.sh ================================================ #!/bin/bash GIT_USER=mingrammer CURRENT_BRANCH=master USE_SSH=true yarn run publish-gh-pages ================================================ FILE: website/sidebars.json ================================================ { "docs": { "Getting Started": [ "getting-started/installation", "getting-started/examples" ], "Guides": [ "guides/diagram", "guides/node", "guides/cluster", "guides/edge" ], "Nodes": [ "nodes/onprem", "nodes/aws", "nodes/azure", "nodes/gcp", "nodes/ibm", "nodes/k8s", "nodes/alibabacloud", "nodes/oci", "nodes/openstack", "nodes/firebase", "nodes/digitalocean", "nodes/elastic", "nodes/outscale", "nodes/generic", "nodes/programming", "nodes/saas", "nodes/c4", "nodes/custom", "nodes/gis" ] } } ================================================ FILE: website/siteConfig.js ================================================ /** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ // See https://docusaurus.io/docs/site-config for all the possible // site configuration options. const siteConfig = { title: 'Diagrams', tagline: 'Diagram as Code', url: 'https://diagrams.mingrammer.com', baseUrl: '/', cname: 'diagrams.mingrammer.com', projectName: 'diagrams', organizationName: 'mingrammer', headerLinks: [ {doc: 'getting-started/installation', label: 'Docs'}, {doc: 'guides/diagram', label: 'Guides'}, {doc: 'nodes/aws', label: 'Nodes'}, {href: 'https://github.com/mingrammer/diagrams', label: 'GitHub'}, {href: 'https://www.buymeacoffee.com/mingrammer', label: 'Sponsoring'}, ], headerIcon: 'img/diagrams.ico', footerIcon: 'img/diagrams.ico', favicon: 'img/diagrams.ico', colors: { primaryColor: '#5E73E5', secondaryColor: '#5E89E5', }, copyright: `Copyright © ${new Date().getFullYear()} mingrammer`, highlight: { // Highlight.js theme to use for syntax highlighting in code blocks. theme: 'default', }, // Add custom scripts here that would be placed in