Merge branch 'mingrammer:master' into master

pull/575/head
Guy Zylberberg 4 years ago committed by GitHub
commit 27d4a897e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,20 @@
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

@ -18,11 +18,11 @@ jobs:
test:
strategy:
matrix:
python: ['3.6', '3.7', '3.8']
python: ['3.6', '3.7', '3.8', '3.9']
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-python@v1
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python }}
- name: Setup Graphviz

@ -7,21 +7,7 @@
![python version](https://img.shields.io/badge/python-3.6%2C3.7%2C3.8-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)
![on premise provider](https://img.shields.io/badge/provider-OnPremise-orange?color=5f87bf)
![aws provider](https://img.shields.io/badge/provider-AWS-orange?logo=amazon-aws&color=ff9900)
![azure provider](https://img.shields.io/badge/provider-Azure-orange?logo=microsoft-azure&color=0089d6)
![gcp provider](https://img.shields.io/badge/provider-GCP-orange?logo=google-cloud&color=4285f4)
![kubernetes provider](https://img.shields.io/badge/provider-Kubernetes-orange?logo=kubernetes&color=326ce5)
![alibaba cloud provider](https://img.shields.io/badge/provider-AlibabaCloud-orange)
![oracle cloud provider](https://img.shields.io/badge/provider-OracleCloud-orange?logo=oracle&color=f80000)
![openstack provider](https://img.shields.io/badge/provider-OpenStack-orange?logo=openstack&color=da1a32)
![firebase provider](https://img.shields.io/badge/provider-Firebase-orange?logo=firebase&color=FFCA28)
![outscale provider](https://img.shields.io/badge/provider-OutScale-orange?color=5f87bf)
![elastic provider](https://img.shields.io/badge/provider-Elastic-orange?logo=elastic&color=005571)
![generic provider](https://img.shields.io/badge/provider-Generic-orange?color=5f87bf)
![programming provider](https://img.shields.io/badge/provider-Programming-orange?color=5f87bf)
![saas provider](https://img.shields.io/badge/provider-SaaS-orange?color=5f87bf)
![contributors](https://img.shields.io/github/contributors/mingrammer/diagrams)
<a href="https://www.buymeacoffee.com/mingrammer" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
@ -33,6 +19,24 @@ Diagrams lets you draw the cloud system architecture **in Python code**. It was
> 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)
![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)
![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 premise provider](https://img.shields.io/badge/OnPremise-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)
## Getting Started
It requires **Python 3.6** or higher, check your Python version first.
@ -70,11 +74,9 @@ To contribute to diagram, check out [contribution guidelines](CONTRIBUTING.md).
## Who uses it?
[![GitPitch](https://gitpitch.com/gpimg/logo.png)](https://gitpitch.com/)
[GitPitch](https://gitpitch.com/) is the perfect slide deck solution for Tech Conferences, Training, Developer Advocates, and Educators. Diagrams is now available as a dedicated [Cloud Diagram Markdown Widget](https://docs.gitpitch.com/#/diagrams/cloud-architecture) so you can use Diagrams directly on any slide for conferences, meetups, and training.
[GitPitch](https://gitpitch.github.io/gitpitch) is the perfect slide deck solution for Tech Conferences, Training, Developer Advocates, and Educators. Diagrams is now available as a dedicated [Cloud Diagram Markdown Widget](https://gitpitch.github.io/gitpitch/#/diagrams/cloud-architecture) so you can use Diagrams directly on any slide for conferences, meetups, and training.
[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 the your existing cloud infrastructure with Cloudicovery.
[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.

@ -4,7 +4,7 @@ set -e
app_root_dir="diagrams"
# NOTE: azure icon set is not latest version
providers=("onprem" "aws" "azure" "gcp" "firebase" "k8s" "alibabacloud" "oci" "programming" "saas" "elastic" "generic" "openstack" "outscale")
providers=("onprem" "aws" "azure" "gcp" "ibm" "firebase" "k8s" "alibabacloud" "oci" "programming" "saas" "elastic" "generic" "openstack" "outscale" )
if ! [ -x "$(command -v round)" ]; then
echo 'round is not installed'
@ -33,7 +33,7 @@ for pvd in "${providers[@]}"; do
echo "converting the svg to png using inkscape for provider '$pvd'"
python -m scripts.resource svg2png "$pvd"
fi
if [ "$pvd" == "oci" ]; then
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
@ -52,6 +52,10 @@ for pvd in "${providers[@]}"; do
python -m scripts.generate "$pvd"
done
# Generate doc for custom module
echo "generating the docs for custom"
python -m scripts.generate "custom"
# run black
echo "linting the all the diagram modules"
black "$app_root_dir"/**/*.py

@ -12,7 +12,7 @@ DIR_RESOURCE = "resources"
DIR_TEMPLATE = "templates"
PROVIDERS = (
"base", "onprem", "aws", "azure", "gcp", "firebase", "k8s", "alibabacloud", "oci", "programming", "saas", "elastic",
"base", "onprem", "aws", "azure", "gcp", "ibm", "firebase", "k8s", "alibabacloud", "oci", "programming", "saas", "elastic",
"generic", "openstack", "outscale")
#########################
@ -32,6 +32,7 @@ FILE_PREFIXES = {
"azure": ("Azure-",),
"gcp": ("Cloud-",),
"firebase": ("Cloud-",),
"ibm": (),
"k8s": (),
"alibabacloud": (),
"oci": ("OCI-icon-",),
@ -70,6 +71,7 @@ UPPER_WORDS = {
"outscale": ("osc",),
"openstack": ("rpm", "loci", "nfv", "ec2api"),
"pve": ("pve"),
"ibm": ("ibm"),
}
TITLE_WORDS = {
@ -85,11 +87,17 @@ TITLE_WORDS = {
"openstack": {
"openstack": "OpenStack"
},
"ibm": {
"ibm": "IBMCloud"
},
}
# TODO: check if the classname exists
ALIASES = {
"onprem": {
"analytics": {
"Powerbi": "PowerBI"
},
"ci": {
"Circleci": "CircleCI",
"Concourseci": "ConcourseCI",
@ -160,6 +168,7 @@ ALIASES = {
},
"compute": {
"ApplicationAutoScaling": "AutoScaling",
"EC2Ami": "AMI",
"EC2ContainerRegistry": "ECR",
"ElasticBeanstalk": "EB",
"ElasticContainerService": "ECS",
@ -212,6 +221,9 @@ ALIASES = {
"network": {
"CloudFront": "CF",
"ElasticLoadBalancing": "ELB",
"ElbApplicationLoadBalancer": "ALB",
"ElbClassicLoadBalancer": "CLB",
"ElbNetworkLoadBalancer": "NLB",
"GlobalAccelerator": "GAX",
},
"security": {
@ -239,6 +251,7 @@ ALIASES = {
"compute": {
"ContainerRegistries": "ACR",
"KubernetesServices": "AKS",
"VMScaleSet": "VMSS"
},
},
"gcp": {
@ -385,13 +398,16 @@ ALIASES = {
"OKEWhite": "ContainerEngineWhite",
},
"database": {
"AutonomousDatabase": "ADB",
"AutonomousDatabaseWhite": "ADBWhite",
"Databaseservice": "DBService",
"DatabaseserviceWhite": "DBServiceWhite",
"Autonomous": "ADB",
"AutonomousWhite": "ADBWhite",
"DatabaseService": "DBService",
"DatabaseServiceWhite": "DBServiceWhite",
}
},
"programming": {
"framework": {
"Fastapi": "FastAPI"
},
"language": {
"Javascript": "JavaScript",
"Nodejs": "NodeJS",
@ -402,6 +418,7 @@ ALIASES = {
"saas": {
"logging": {
"Datadog": "DataDog",
"Newrelic": "NewRelic"
}
},
"elastic": {
@ -412,6 +429,7 @@ ALIASES = {
"outscale": {
"Osc": "OSC",
},
"ibm": {},
"generic": {},
"openstack": {
"user": {

@ -104,7 +104,7 @@ class Diagram:
"""
self.name = name
if not name and not filename:
filename = "diagrams_image"
filename = "diagrams_image"
elif not filename:
filename = "_".join(self.name.split()).lower()
self.filename = filename
@ -211,7 +211,10 @@ class Cluster:
# 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: dict = {},
self,
label: str = "cluster",
direction: str = "LR",
graph_attr: dict = {},
):
"""Cluster represents a cluster context.
@ -403,8 +406,8 @@ class Node:
"""
if not isinstance(node, Node):
ValueError(f"{node} is not a valid Node")
if not isinstance(node, Edge):
ValueError(f"{node} is not a valid Edge")
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

@ -24,6 +24,10 @@ class Cloudsearch(_Analytics):
_icon = "cloudsearch.png"
class DataLakeResource(_Analytics):
_icon = "data-lake-resource.png"
class DataPipeline(_Analytics):
_icon = "data-pipeline.png"
@ -36,6 +40,22 @@ 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"

@ -8,6 +8,10 @@ class _Ar(_AWS):
_icon_dir = "resources/aws/ar"
class ArVr(_Ar):
_icon = "ar-vr.png"
class Sumerian(_Ar):
_icon = "sumerian.png"

@ -8,6 +8,14 @@ class _Blockchain(_AWS):
_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"

@ -12,6 +12,10 @@ class AlexaForBusiness(_Business):
_icon = "alexa-for-business.png"
class BusinessApplications(_Business):
_icon = "business-applications.png"
class Chime(_Business):
_icon = "chime.png"

@ -16,22 +16,82 @@ 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 ElasticContainerServiceService(_Compute):
_icon = "elastic-container-service-service.png"
class ElasticContainerService(_Compute):
_icon = "elastic-container-service.png"
@ -44,6 +104,10 @@ class Fargate(_Compute):
_icon = "fargate.png"
class LambdaFunction(_Compute):
_icon = "lambda-function.png"
class Lambda(_Compute):
_icon = "lambda.png"
@ -52,6 +116,10 @@ class Lightsail(_Compute):
_icon = "lightsail.png"
class LocalZones(_Compute):
_icon = "local-zones.png"
class Outposts(_Compute):
_icon = "outposts.png"
@ -92,9 +160,14 @@ 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

@ -20,6 +20,10 @@ class CostExplorer(_Cost):
_icon = "cost-explorer.png"
class CostManagement(_Cost):
_icon = "cost-management.png"
class ReservedInstanceReporting(_Cost):
_icon = "reserved-instance-reporting.png"

@ -8,10 +8,18 @@ class _Database(_AWS):
_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"
@ -24,6 +32,14 @@ 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"
@ -32,6 +48,14 @@ class DynamodbGlobalSecondaryIndex(_Database):
_icon = "dynamodb-global-secondary-index.png"
class DynamodbItem(_Database):
_icon = "dynamodb-item.png"
class DynamodbItems(_Database):
_icon = "dynamodb-items.png"
class DynamodbTable(_Database):
_icon = "dynamodb-table.png"
@ -40,10 +64,26 @@ 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"
@ -52,14 +92,46 @@ 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"

@ -12,6 +12,10 @@ class CloudDevelopmentKit(_Devtools):
_icon = "cloud-development-kit.png"
class Cloud9Resource(_Devtools):
_icon = "cloud9-resource.png"
class Cloud9(_Devtools):
_icon = "cloud9.png"

@ -8,6 +8,10 @@ class _Enablement(_AWS):
_icon_dir = "resources/aws/enablement"
class CustomerEnablement(_Enablement):
_icon = "customer-enablement.png"
class Iq(_Enablement):
_icon = "iq.png"

@ -12,6 +12,10 @@ class Appstream20(_Enduser):
_icon = "appstream-2-0.png"
class DesktopAndAppStreaming(_Enduser):
_icon = "desktop-and-app-streaming.png"
class Workdocs(_Enduser):
_icon = "workdocs.png"

@ -12,10 +12,18 @@ 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"

@ -8,6 +8,10 @@ class _Game(_AWS):
_icon_dir = "resources/aws/game"
class GameTech(_Game):
_icon = "game-tech.png"
class Gamelift(_Game):
_icon = "gamelift.png"

@ -8,10 +8,18 @@ class _General(_AWS):
_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"
@ -36,12 +44,56 @@ 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 TradicionalServer(_General):
_icon = "tradicional-server.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):

@ -20,18 +20,58 @@ 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 EventbridgeSaasPartnerEventBusResource(_Integration):
_icon = "eventbridge-saas-partner-event-bus-resource.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"

@ -24,18 +24,58 @@ 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"
@ -44,26 +84,66 @@ 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"
@ -76,6 +156,10 @@ class IotHardwareBoard(_Iot):
_icon = "iot-hardware-board.png"
class IotHouse(_Iot):
_icon = "iot-house.png"
class IotHttp(_Iot):
_icon = "iot-http.png"
@ -92,10 +176,22 @@ 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"
@ -104,18 +200,38 @@ 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"
@ -124,6 +240,18 @@ 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

@ -12,6 +12,18 @@ class AutoScaling(_Management):
_icon = "auto-scaling.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"
@ -20,6 +32,22 @@ 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 CloudwatchRule(_Management):
_icon = "cloudwatch-rule.png"
class Cloudwatch(_Management):
_icon = "cloudwatch.png"
@ -48,30 +76,130 @@ 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 ServiceCatalog(_Management):
_icon = "service-catalog.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"

@ -52,4 +52,12 @@ class ElementalServer(_Media):
_icon = "elemental-server.png"
class KinesisVideoStreams(_Media):
_icon = "kinesis-video-streams.png"
class MediaServices(_Media):
_icon = "media-services.png"
# Aliases

@ -20,6 +20,10 @@ class DatabaseMigrationService(_Migration):
_icon = "database-migration-service.png"
class DatasyncAgent(_Migration):
_icon = "datasync-agent.png"
class Datasync(_Migration):
_icon = "datasync.png"

@ -12,6 +12,10 @@ class ApacheMxnetOnAWS(_ML):
_icon = "apache-mxnet-on-aws.png"
class AugmentedAi(_ML):
_icon = "augmented-ai.png"
class Comprehend(_ML):
_icon = "comprehend.png"
@ -24,6 +28,10 @@ class DeepLearningContainers(_ML):
_icon = "deep-learning-containers.png"
class Deepcomposer(_ML):
_icon = "deepcomposer.png"
class Deeplens(_ML):
_icon = "deeplens.png"
@ -40,6 +48,14 @@ 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"
@ -56,6 +72,14 @@ class Polly(_ML):
_icon = "polly.png"
class RekognitionImage(_ML):
_icon = "rekognition-image.png"
class RekognitionVideo(_ML):
_icon = "rekognition-video.png"
class Rekognition(_ML):
_icon = "rekognition.png"

@ -28,6 +28,10 @@ class DeviceFarm(_Mobile):
_icon = "device-farm.png"
class Mobile(_Mobile):
_icon = "mobile.png"
class Pinpoint(_Mobile):
_icon = "pinpoint.png"

@ -8,6 +8,10 @@ class _Network(_AWS):
_icon_dir = "resources/aws/network"
class APIGatewayEndpoint(_Network):
_icon = "api-gateway-endpoint.png"
class APIGateway(_Network):
_icon = "api-gateway.png"
@ -24,6 +28,18 @@ 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"
@ -36,6 +52,18 @@ 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"
@ -72,6 +100,10 @@ class PublicSubnet(_Network):
_icon = "public-subnet.png"
class Route53HostedZone(_Network):
_icon = "route-53-hosted-zone.png"
class Route53(_Network):
_icon = "route-53.png"
@ -88,6 +120,22 @@ 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"
@ -96,12 +144,27 @@ 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

@ -12,4 +12,8 @@ class Braket(_Quantum):
_icon = "braket.png"
class QuantumTechnologies(_Quantum):
_icon = "quantum-technologies.png"
# Aliases

@ -8,6 +8,18 @@ class _Robotics(_AWS):
_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"

@ -12,4 +12,8 @@ class GroundStation(_Satellite):
_icon = "ground-station.png"
class Satellite(_Satellite):
_icon = "satellite.png"
# Aliases

@ -8,10 +8,18 @@ class _Security(_AWS):
_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"
@ -48,10 +56,34 @@ 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"
@ -60,10 +92,18 @@ 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"
@ -76,6 +116,10 @@ class Macie(_Security):
_icon = "macie.png"
class ManagedMicrosoftAd(_Security):
_icon = "managed-microsoft-ad.png"
class ResourceAccessManager(_Security):
_icon = "resource-access-manager.png"
@ -84,6 +128,10 @@ class SecretsManager(_Security):
_icon = "secrets-manager.png"
class SecurityHubFinding(_Security):
_icon = "security-hub-finding.png"
class SecurityHub(_Security):
_icon = "security-hub.png"
@ -92,14 +140,26 @@ class SecurityIdentityAndCompliance(_Security):
_icon = "security-identity-and-compliance.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"

@ -24,10 +24,22 @@ 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"
@ -44,14 +56,42 @@ class Fsx(_Storage):
_icon = "fsx.png"
class MultipleVolumesResource(_Storage):
_icon = "multiple-volumes-resource.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 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"
@ -64,6 +104,18 @@ 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"

@ -52,4 +52,8 @@ class StreamAnalyticsJobs(_Analytics):
_icon = "stream-analytics-jobs.png"
class SynapseAnalytics(_Analytics):
_icon = "synapse-analytics.png"
# Aliases

@ -8,6 +8,14 @@ class _Compute(_Azure):
_icon_dir = "resources/azure/compute"
class AppServices(_Compute):
_icon = "app-services.png"
class AutomanagedVM(_Compute):
_icon = "automanaged-vm.png"
class AvailabilitySets(_Compute):
_icon = "availability-sets.png"
@ -40,6 +48,10 @@ class ContainerRegistries(_Compute):
_icon = "container-registries.png"
class DiskEncryptionSets(_Compute):
_icon = "disk-encryption-sets.png"
class DiskSnapshots(_Compute):
_icon = "disk-snapshots.png"
@ -52,6 +64,14 @@ class FunctionApps(_Compute):
_icon = "function-apps.png"
class ImageDefinitions(_Compute):
_icon = "image-definitions.png"
class ImageVersions(_Compute):
_icon = "image-versions.png"
class KubernetesServices(_Compute):
_icon = "kubernetes-services.png"
@ -60,6 +80,10 @@ class MeshApplications(_Compute):
_icon = "mesh-applications.png"
class OsImages(_Compute):
_icon = "os-images.png"
class SAPHANAOnAzure(_Compute):
_icon = "sap-hana-on-azure.png"
@ -68,6 +92,14 @@ class ServiceFabricClusters(_Compute):
_icon = "service-fabric-clusters.png"
class SharedImageGalleries(_Compute):
_icon = "shared-image-galleries.png"
class SpringCloud(_Compute):
_icon = "spring-cloud.png"
class VMClassic(_Compute):
_icon = "vm-classic.png"
@ -80,6 +112,10 @@ class VMLinux(_Compute):
_icon = "vm-linux.png"
class VMScaleSet(_Compute):
_icon = "vm-scale-set.png"
class VMWindows(_Compute):
_icon = "vm-windows.png"
@ -88,7 +124,12 @@ class VM(_Compute):
_icon = "vm.png"
class Workspaces(_Compute):
_icon = "workspaces.png"
# Aliases
ACR = ContainerRegistries
AKS = KubernetesServices
VMSS = VMScaleSet

@ -20,6 +20,14 @@ 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"
@ -44,6 +52,10 @@ class ElasticJobAgents(_Database):
_icon = "elastic-job-agents.png"
class InstancePools(_Database):
_icon = "instance-pools.png"
class ManagedDatabases(_Database):
_icon = "managed-databases.png"
@ -68,6 +80,22 @@ 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"

@ -28,6 +28,10 @@ class DevtestLabs(_Devops):
_icon = "devtest-labs.png"
class LabServices(_Devops):
_icon = "lab-services.png"
class Pipelines(_Devops):
_icon = "pipelines.png"

@ -48,6 +48,10 @@ class EnterpriseApplications(_Identity):
_icon = "enterprise-applications.png"
class Groups(_Identity):
_icon = "groups.png"
class IdentityGovernance(_Identity):
_icon = "identity-governance.png"
@ -60,4 +64,8 @@ class ManagedIdentities(_Identity):
_icon = "managed-identities.png"
class Users(_Identity):
_icon = "users.png"
# Aliases

@ -52,6 +52,10 @@ class LogicApps(_Integration):
_icon = "logic-apps.png"
class PartnerTopic(_Integration):
_icon = "partner-topic.png"
class SendgridAccounts(_Integration):
_icon = "sendgrid-accounts.png"
@ -76,4 +80,8 @@ class StorsimpleDeviceManagers(_Integration):
_icon = "storsimple-device-managers.png"
class SystemTopic(_Integration):
_icon = "system-topic.png"
# Aliases

@ -8,6 +8,14 @@ class _Migration(_Azure):
_icon_dir = "resources/azure/migration"
class DataBoxEdge(_Migration):
_icon = "data-box-edge.png"
class DataBox(_Migration):
_icon = "data-box.png"
class DatabaseMigrationServices(_Migration):
_icon = "database-migration-services.png"

@ -9,7 +9,7 @@ class _Mobile(_Azure):
class AppServiceMobile(_Mobile):
_icon = "app-service---mobile.png"
_icon = "app-service-mobile.png"
class MobileEngagement(_Mobile):

@ -92,6 +92,10 @@ class ServiceEndpointPolicies(_Network):
_icon = "service-endpoint-policies.png"
class Subnets(_Network):
_icon = "subnets.png"
class TrafficManagerProfiles(_Network):
_icon = "traffic-manager-profiles.png"

@ -8,6 +8,22 @@ class _Security(_Azure):
_icon_dir = "resources/azure/security"
class ApplicationSecurityGroups(_Security):
_icon = "application-security-groups.png"
class ConditionalAccess(_Security):
_icon = "conditional-access.png"
class Defender(_Security):
_icon = "defender.png"
class ExtendedSecurityUpdates(_Security):
_icon = "extended-security-updates.png"
class KeyVaults(_Security):
_icon = "key-vaults.png"

@ -21,7 +21,7 @@ class BlobStorage(_Storage):
class DataBoxEdgeDataBoxGateway(_Storage):
_icon = "data-box-edge---data-box-gateway.png"
_icon = "data-box-edge-data-box-gateway.png"
class DataBox(_Storage):

@ -0,0 +1,15 @@
# 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 Monitoring(_Operations):
_icon = "monitoring.png"
# Aliases

@ -0,0 +1,12 @@
"""
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"

@ -0,0 +1,31 @@
# 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

@ -0,0 +1,87 @@
# 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

@ -0,0 +1,91 @@
# 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

@ -0,0 +1,31 @@
# 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

@ -0,0 +1,63 @@
# 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

@ -0,0 +1,51 @@
# 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

@ -0,0 +1,119 @@
# 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

@ -0,0 +1,83 @@
# 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

@ -0,0 +1,71 @@
# 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

@ -0,0 +1,111 @@
# 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
ACL = Rules
CIS = InternetServices
DL = DirectLink
FIP = FloatingIp
FloatingIP = FloatingIp
FW = Firewall
LB = LoadBalancer
NLB = LoadBalancer
PublicGateway = Gateway
SecurityGroupRules = Rules
TG = TransitGateway
VPC = Vpc
VPNGateway = VpnGateway
VPNConnection = VpnConnection
VPNPolicy = VpnPolicy

@ -0,0 +1,68 @@
# 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
VPN = Vpn

@ -0,0 +1,31 @@
# 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

@ -0,0 +1,19 @@
# 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

@ -0,0 +1,35 @@
# 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

@ -82,7 +82,7 @@ class Stream(_Database):
# Aliases
ADB = AutonomousDatabase
ADBWhite = AutonomousDatabaseWhite
DBService = Databaseservice
DBServiceWhite = DatabaseserviceWhite
ADB = Autonomous
ADBWhite = AutonomousWhite
DBService = DatabaseService
DBServiceWhite = DatabaseServiceWhite

@ -40,6 +40,14 @@ class Norikra(_Analytics):
_icon = "norikra.png"
class Powerbi(_Analytics):
_icon = "powerbi.png"
class Presto(_Analytics):
_icon = "presto.png"
class Singer(_Analytics):
_icon = "singer.png"
@ -52,8 +60,14 @@ class Storm(_Analytics):
_icon = "storm.png"
class Superset(_Analytics):
_icon = "superset.png"
class Tableau(_Analytics):
_icon = "tableau.png"
# Aliases
PowerBI = Powerbi

@ -8,6 +8,10 @@ class _Auth(_OnPrem):
_icon_dir = "resources/onprem/auth"
class Boundary(_Auth):
_icon = "boundary.png"
class BuzzfeedSso(_Auth):
_icon = "buzzfeed-sso.png"

@ -20,6 +20,10 @@ class Droneci(_Ci):
_icon = "droneci.png"
class GithubActions(_Ci):
_icon = "github-actions.png"
class Gitlabci(_Ci):
_icon = "gitlabci.png"

@ -8,10 +8,26 @@ class _Container(_OnPrem):
_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 Lxc(_Container):
_icon = "lxc.png"

@ -0,0 +1,19 @@
# 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

@ -0,0 +1,15 @@
# 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

@ -8,6 +8,10 @@ class _Monitoring(_OnPrem):
_icon_dir = "resources/onprem/monitoring"
class Cortex(_Monitoring):
_icon = "cortex.png"
class Datadog(_Monitoring):
_icon = "datadog.png"
@ -16,6 +20,14 @@ class Grafana(_Monitoring):
_icon = "grafana.png"
class Humio(_Monitoring):
_icon = "humio.png"
class Newrelic(_Monitoring):
_icon = "newrelic.png"
class PrometheusOperator(_Monitoring):
_icon = "prometheus-operator.png"

@ -8,6 +8,10 @@ class _Network(_OnPrem):
_icon_dir = "resources/onprem/network"
class Ambassador(_Network):
_icon = "ambassador.png"
class Apache(_Network):
_icon = "apache.png"

@ -20,6 +20,10 @@ class Kafka(_Queue):
_icon = "kafka.png"
class Nats(_Queue):
_icon = "nats.png"
class Rabbitmq(_Queue):
_icon = "rabbitmq.png"

@ -8,6 +8,10 @@ class _Security(_OnPrem):
_icon_dir = "resources/onprem/security"
class Bitwarden(_Security):
_icon = "bitwarden.png"
class Trivy(_Security):
_icon = "trivy.png"

@ -0,0 +1,15 @@
# 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"
# Aliases

@ -12,6 +12,10 @@ class Git(_Vcs):
_icon = "git.png"
class Gitea(_Vcs):
_icon = "gitea.png"
class Github(_Vcs):
_icon = "github.png"

@ -0,0 +1,8 @@
from diagrams import Node
class _Outscale(Node):
_provider = "outscale"
_icon_dir = "resources/outscale"
fontcolor = "#ffffff"

@ -0,0 +1,107 @@
# 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

@ -24,6 +24,10 @@ class Ember(_Framework):
_icon = "ember.png"
class Fastapi(_Framework):
_icon = "fastapi.png"
class Flask(_Framework):
_icon = "flask.png"
@ -36,6 +40,10 @@ class Laravel(_Framework):
_icon = "laravel.png"
class Micronaut(_Framework):
_icon = "micronaut.png"
class Rails(_Framework):
_icon = "rails.png"
@ -53,3 +61,5 @@ class Vue(_Framework):
# Aliases
FastAPI = Fastapi

@ -80,6 +80,10 @@ class Rust(_Language):
_icon = "rust.png"
class Scala(_Language):
_icon = "scala.png"
class Swift(_Language):
_icon = "swift.png"

@ -8,6 +8,10 @@ class _Alerting(_Saas):
_icon_dir = "resources/saas/alerting"
class Newrelic(_Alerting):
_icon = "newrelic.png"
class Opsgenie(_Alerting):
_icon = "opsgenie.png"

@ -8,6 +8,10 @@ class _Chat(_Saas):
_icon_dir = "resources/saas/chat"
class Discord(_Chat):
_icon = "discord.png"
class Mattermost(_Chat):
_icon = "mattermost.png"

@ -0,0 +1,15 @@
# 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

@ -12,6 +12,10 @@ class Datadog(_Logging):
_icon = "datadog.png"
class Newrelic(_Logging):
_icon = "newrelic.png"
class Papertrail(_Logging):
_icon = "papertrail.png"
@ -19,3 +23,4 @@ class Papertrail(_Logging):
# Aliases
DataDog = Datadog
NewRelic = Newrelic

@ -1,9 +1,9 @@
# use latest python alphine image.
FROM python:rc-alpine3.12
# 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
gcc libc-dev g++ graphviz git bash go imagemagick inkscape ttf-opensans curl fontconfig xdg-utils
# install go package.
RUN go get github.com/mingrammer/round

@ -42,13 +42,13 @@ with Diagram("Clustered Web Services", show=False):
ECS("web3")]
with Cluster("DB Cluster"):
db_master = RDS("userdb")
db_master - [RDS("userdb ro")]
db_main = RDS("userdb")
db_main - [RDS("userdb ro")]
memcached = ElastiCache("memcached")
dns >> lb >> svc_group
svc_group >> db_master
svc_group >> db_main
svc_group >> memcached
```
@ -178,7 +178,7 @@ 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.logging import Fluentd
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
@ -196,14 +196,14 @@ with Diagram("Advanced Web Service with On-Premise", show=False):
Server("grpc3")]
with Cluster("Sessions HA"):
master = Redis("session")
master - Redis("replica") << metrics
grpcsvc >> master
main = Redis("session")
main - Redis("replica") << metrics
grpcsvc >> main
with Cluster("Database HA"):
master = PostgreSQL("users")
master - PostgreSQL("slave") << metrics
grpcsvc >> master
main = PostgreSQL("users")
main - PostgreSQL("replica") << metrics
grpcsvc >> main
aggregator = Fluentd("logging")
aggregator >> Kafka("stream") >> Spark("analytics")
@ -221,7 +221,7 @@ 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.logging import Fluentd
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
@ -239,14 +239,14 @@ with Diagram(name="Advanced Web Service with On-Premise (colored)", show=False):
Server("grpc3")]
with Cluster("Sessions HA"):
master = Redis("session")
master - Edge(color="brown", style="dashed") - Redis("replica") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="brown") >> master
main = Redis("session")
main - Edge(color="brown", style="dashed") - Redis("replica") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="brown") >> main
with Cluster("Database HA"):
master = PostgreSQL("users")
master - Edge(color="brown", style="dotted") - PostgreSQL("slave") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="black") >> master
main = PostgreSQL("users")
main - Edge(color="brown", style="dotted") - PostgreSQL("replica") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="black") >> main
aggregator = Fluentd("logging")
aggregator >> Edge(label="parse") >> Kafka("stream") >> Edge(color="black", style="bold") >> Spark("analytics")
@ -283,4 +283,4 @@ with Diagram("Broker Consumers", show=False):
queue >> consumers >> Aurora("Database")
```
![rabbitmq consumers diagram](/img/rabbitmq_consumers_diagram.png)
![rabbitmq consumers diagram](/img/rabbitmq_consumers_diagram.png)

@ -22,11 +22,11 @@ with Diagram("Simple Web Service with DB Cluster", show=False):
web = ECS("service")
with Cluster("DB Cluster"):
db_master = RDS("master")
db_master - [RDS("slave1"),
RDS("slave2")]
db_main = RDS("main")
db_main - [RDS("replica1"),
RDS("replica2")]
dns >> web >> db_master
dns >> web >> db_main
```
![simple web service with db cluster diagram](/img/simple_web_service_with_db_cluster_diagram.png)
@ -68,4 +68,4 @@ with Diagram("Event Processing", show=False):
![event processing diagram](/img/event_processing_diagram.png)
> There is no depth limit of nesting. Feel free to create nested clusters as deep as you want.
> There is no depth limit of nesting. Feel free to create nested clusters as deep as you want.

@ -17,7 +17,7 @@ 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.logging import Fluentd
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
@ -35,19 +35,35 @@ with Diagram(name="Advanced Web Service with On-Premise (colored)", show=False):
Server("grpc3")]
with Cluster("Sessions HA"):
master = Redis("session")
master - Edge(color="brown", style="dashed") - Redis("replica") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="brown") >> master
main = Redis("session")
main \
- Edge(color="brown", style="dashed") \
- Redis("replica") \
<< Edge(label="collect") \
<< metrics
grpcsvc >> Edge(color="brown") >> main
with Cluster("Database HA"):
master = PostgreSQL("users")
master - Edge(color="brown", style="dotted") - PostgreSQL("slave") << Edge(label="collect") << metrics
grpcsvc >> Edge(color="black") >> master
main = PostgreSQL("users")
main \
- Edge(color="brown", style="dotted") \
- PostgreSQL("replica") \
<< Edge(label="collect") \
<< metrics
grpcsvc >> Edge(color="black") >> main
aggregator = Fluentd("logging")
aggregator >> Edge(label="parse") >> Kafka("stream") >> Edge(color="black", style="bold") >> Spark("analytics")
aggregator \
>> Edge(label="parse") \
>> Kafka("stream") \
>> Edge(color="black", style="bold") \
>> Spark("analytics")
ingress >> Edge(color="darkgreen") << grpcsvc >> Edge(color="darkorange") >> aggregator
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)

@ -54,7 +54,7 @@ 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
from diagrams.oci.storage import FileStorage, StorageGateway
```
You can find all available nodes list in [Here](https://diagrams.mingrammer.com/docs/nodes/aws).

@ -11,9 +11,14 @@ Node classes list of aws provider.
- **diagrams.aws.analytics.Athena**
- **diagrams.aws.analytics.CloudsearchSearchDocuments**
- **diagrams.aws.analytics.Cloudsearch**
- **diagrams.aws.analytics.DataLakeResource**
- **diagrams.aws.analytics.DataPipeline**
- **diagrams.aws.analytics.ElasticsearchService**, **ES** (alias)
- **diagrams.aws.analytics.EMRCluster**
- **diagrams.aws.analytics.EMREngineMaprM3**
- **diagrams.aws.analytics.EMREngineMaprM5**
- **diagrams.aws.analytics.EMREngineMaprM7**
- **diagrams.aws.analytics.EMREngine**
- **diagrams.aws.analytics.EMRHdfsCluster**
- **diagrams.aws.analytics.EMR**
- **diagrams.aws.analytics.GlueCrawlers**
@ -33,16 +38,20 @@ Node classes list of aws provider.
## aws.ar
- **diagrams.aws.ar.ArVr**
- **diagrams.aws.ar.Sumerian**
## aws.blockchain
- **diagrams.aws.blockchain.BlockchainResource**
- **diagrams.aws.blockchain.Blockchain**
- **diagrams.aws.blockchain.ManagedBlockchain**
- **diagrams.aws.blockchain.QuantumLedgerDatabaseQldb**, **QLDB** (alias)
## aws.business
- **diagrams.aws.business.AlexaForBusiness**, **A4B** (alias)
- **diagrams.aws.business.BusinessApplications**
- **diagrams.aws.business.Chime**
- **diagrams.aws.business.Workmail**
@ -50,15 +59,32 @@ Node classes list of aws provider.
- **diagrams.aws.compute.ApplicationAutoScaling**, **AutoScaling** (alias)
- **diagrams.aws.compute.Batch**
- **diagrams.aws.compute.ComputeOptimizer**
- **diagrams.aws.compute.Compute**
- **diagrams.aws.compute.EC2Ami**, **AMI** (alias)
- **diagrams.aws.compute.EC2AutoScaling**
- **diagrams.aws.compute.EC2ContainerRegistryImage**
- **diagrams.aws.compute.EC2ContainerRegistryRegistry**
- **diagrams.aws.compute.EC2ContainerRegistry**, **ECR** (alias)
- **diagrams.aws.compute.EC2ElasticIpAddress**
- **diagrams.aws.compute.EC2ImageBuilder**
- **diagrams.aws.compute.EC2Instance**
- **diagrams.aws.compute.EC2Instances**
- **diagrams.aws.compute.EC2Rescue**
- **diagrams.aws.compute.EC2SpotInstance**
- **diagrams.aws.compute.EC2**
- **diagrams.aws.compute.ElasticBeanstalkApplication**
- **diagrams.aws.compute.ElasticBeanstalkDeployment**
- **diagrams.aws.compute.ElasticBeanstalk**, **EB** (alias)
- **diagrams.aws.compute.ElasticContainerServiceContainer**
- **diagrams.aws.compute.ElasticContainerServiceService**
- **diagrams.aws.compute.ElasticContainerService**, **ECS** (alias)
- **diagrams.aws.compute.ElasticKubernetesService**, **EKS** (alias)
- **diagrams.aws.compute.Fargate**
- **diagrams.aws.compute.LambdaFunction**
- **diagrams.aws.compute.Lambda**
- **diagrams.aws.compute.Lightsail**
- **diagrams.aws.compute.LocalZones**
- **diagrams.aws.compute.Outposts**
- **diagrams.aws.compute.ServerlessApplicationRepository**, **SAR** (alias)
- **diagrams.aws.compute.ThinkboxDeadline**
@ -69,36 +95,57 @@ Node classes list of aws provider.
- **diagrams.aws.compute.ThinkboxStoke**
- **diagrams.aws.compute.ThinkboxXmesh**
- **diagrams.aws.compute.VmwareCloudOnAWS**
- **diagrams.aws.compute.Wavelength**
## aws.cost
- **diagrams.aws.cost.Budgets**
- **diagrams.aws.cost.CostAndUsageReport**
- **diagrams.aws.cost.CostExplorer**
- **diagrams.aws.cost.CostManagement**
- **diagrams.aws.cost.ReservedInstanceReporting**
- **diagrams.aws.cost.SavingsPlans**
## aws.database
- **diagrams.aws.database.AuroraInstance**
- **diagrams.aws.database.Aurora**
- **diagrams.aws.database.DatabaseMigrationServiceDatabaseMigrationWorkflow**
- **diagrams.aws.database.DatabaseMigrationService**, **DMS** (alias)
- **diagrams.aws.database.Database**, **DB** (alias)
- **diagrams.aws.database.DocumentdbMongodbCompatibility**, **DocumentDB** (alias)
- **diagrams.aws.database.DynamodbAttribute**
- **diagrams.aws.database.DynamodbAttributes**
- **diagrams.aws.database.DynamodbDax**, **DAX** (alias)
- **diagrams.aws.database.DynamodbGlobalSecondaryIndex**, **DynamodbGSI** (alias)
- **diagrams.aws.database.DynamodbItem**
- **diagrams.aws.database.DynamodbItems**
- **diagrams.aws.database.DynamodbTable**
- **diagrams.aws.database.Dynamodb**, **DDB** (alias)
- **diagrams.aws.database.ElasticacheCacheNode**
- **diagrams.aws.database.ElasticacheForMemcached**
- **diagrams.aws.database.ElasticacheForRedis**
- **diagrams.aws.database.Elasticache**, **ElastiCache** (alias)
- **diagrams.aws.database.KeyspacesManagedApacheCassandraService**
- **diagrams.aws.database.Neptune**
- **diagrams.aws.database.QuantumLedgerDatabaseQldb**, **QLDB** (alias)
- **diagrams.aws.database.RDSInstance**
- **diagrams.aws.database.RDSMariadbInstance**
- **diagrams.aws.database.RDSMysqlInstance**
- **diagrams.aws.database.RDSOnVmware**
- **diagrams.aws.database.RDSOracleInstance**
- **diagrams.aws.database.RDSPostgresqlInstance**
- **diagrams.aws.database.RDSSqlServerInstance**
- **diagrams.aws.database.RDS**
- **diagrams.aws.database.RedshiftDenseComputeNode**
- **diagrams.aws.database.RedshiftDenseStorageNode**
- **diagrams.aws.database.Redshift**
- **diagrams.aws.database.Timestream**
## aws.devtools
- **diagrams.aws.devtools.CloudDevelopmentKit**
- **diagrams.aws.devtools.Cloud9Resource**
- **diagrams.aws.devtools.Cloud9**
- **diagrams.aws.devtools.Codebuild**
- **diagrams.aws.devtools.Codecommit**
@ -112,6 +159,7 @@ Node classes list of aws provider.
## aws.enablement
- **diagrams.aws.enablement.CustomerEnablement**
- **diagrams.aws.enablement.Iq**
- **diagrams.aws.enablement.ManagedServices**
- **diagrams.aws.enablement.ProfessionalServices**
@ -120,6 +168,7 @@ Node classes list of aws provider.
## aws.enduser
- **diagrams.aws.enduser.Appstream20**
- **diagrams.aws.enduser.DesktopAndAppStreaming**
- **diagrams.aws.enduser.Workdocs**
- **diagrams.aws.enduser.Worklink**
- **diagrams.aws.enduser.Workspaces**
@ -127,24 +176,40 @@ Node classes list of aws provider.
## aws.engagement
- **diagrams.aws.engagement.Connect**
- **diagrams.aws.engagement.CustomerEngagement**
- **diagrams.aws.engagement.Pinpoint**
- **diagrams.aws.engagement.SimpleEmailServiceSesEmail**
- **diagrams.aws.engagement.SimpleEmailServiceSes**, **SES** (alias)
## aws.game
- **diagrams.aws.game.GameTech**
- **diagrams.aws.game.Gamelift**
## aws.general
- **diagrams.aws.general.Client**
- **diagrams.aws.general.Disk**
- **diagrams.aws.general.Forums**
- **diagrams.aws.general.General**
- **diagrams.aws.general.GenericDatabase**
- **diagrams.aws.general.GenericFirewall**
- **diagrams.aws.general.GenericOfficeBuilding**, **OfficeBuilding** (alias)
- **diagrams.aws.general.GenericSamlToken**
- **diagrams.aws.general.GenericSDK**
- **diagrams.aws.general.InternetAlt1**
- **diagrams.aws.general.InternetAlt2**
- **diagrams.aws.general.InternetGateway**
- **diagrams.aws.general.Marketplace**
- **diagrams.aws.general.TradicionalServer**
- **diagrams.aws.general.MobileClient**
- **diagrams.aws.general.Multimedia**
- **diagrams.aws.general.OfficeBuilding**
- **diagrams.aws.general.SamlToken**
- **diagrams.aws.general.SDK**
- **diagrams.aws.general.SslPadlock**
- **diagrams.aws.general.TapeStorage**
- **diagrams.aws.general.Toolkit**
- **diagrams.aws.general.TraditionalServer**
- **diagrams.aws.general.User**
- **diagrams.aws.general.Users**
@ -153,9 +218,19 @@ Node classes list of aws provider.
- **diagrams.aws.integration.ApplicationIntegration**
- **diagrams.aws.integration.Appsync**
- **diagrams.aws.integration.ConsoleMobileApplication**
- **diagrams.aws.integration.EventResource**
- **diagrams.aws.integration.EventbridgeCustomEventBusResource**
- **diagrams.aws.integration.EventbridgeDefaultEventBusResource**
- **diagrams.aws.integration.EventbridgeSaasPartnerEventBusResource**
- **diagrams.aws.integration.Eventbridge**
- **diagrams.aws.integration.ExpressWorkflows**
- **diagrams.aws.integration.MQ**
- **diagrams.aws.integration.SimpleNotificationServiceSnsEmailNotification**
- **diagrams.aws.integration.SimpleNotificationServiceSnsHttpNotification**
- **diagrams.aws.integration.SimpleNotificationServiceSnsTopic**
- **diagrams.aws.integration.SimpleNotificationServiceSns**, **SNS** (alias)
- **diagrams.aws.integration.SimpleQueueServiceSqsMessage**
- **diagrams.aws.integration.SimpleQueueServiceSqsQueue**
- **diagrams.aws.integration.SimpleQueueServiceSqs**, **SQS** (alias)
- **diagrams.aws.integration.StepFunctions**, **SF** (alias)
@ -165,37 +240,76 @@ Node classes list of aws provider.
- **diagrams.aws.iot.InternetOfThings**
- **diagrams.aws.iot.Iot1Click**
- **diagrams.aws.iot.IotAction**
- **diagrams.aws.iot.IotActuator**
- **diagrams.aws.iot.IotAlexaEcho**
- **diagrams.aws.iot.IotAlexaEnabledDevice**
- **diagrams.aws.iot.IotAlexaSkill**
- **diagrams.aws.iot.IotAlexaVoiceService**
- **diagrams.aws.iot.IotAnalyticsChannel**
- **diagrams.aws.iot.IotAnalyticsDataSet**
- **diagrams.aws.iot.IotAnalyticsDataStore**
- **diagrams.aws.iot.IotAnalyticsNotebook**
- **diagrams.aws.iot.IotAnalyticsPipeline**
- **diagrams.aws.iot.IotAnalytics**
- **diagrams.aws.iot.IotBank**
- **diagrams.aws.iot.IotBicycle**
- **diagrams.aws.iot.IotButton**
- **diagrams.aws.iot.IotCamera**
- **diagrams.aws.iot.IotCar**
- **diagrams.aws.iot.IotCart**
- **diagrams.aws.iot.IotCertificate**
- **diagrams.aws.iot.IotCoffeePot**
- **diagrams.aws.iot.IotCore**
- **diagrams.aws.iot.IotDesiredState**
- **diagrams.aws.iot.IotDeviceDefender**
- **diagrams.aws.iot.IotDeviceGateway**
- **diagrams.aws.iot.IotDeviceManagement**
- **diagrams.aws.iot.IotDoorLock**
- **diagrams.aws.iot.IotEvents**
- **diagrams.aws.iot.IotFactory**
- **diagrams.aws.iot.IotFireTvStick**
- **diagrams.aws.iot.IotFireTv**
- **diagrams.aws.iot.IotGeneric**
- **diagrams.aws.iot.IotGreengrassConnector**
- **diagrams.aws.iot.IotGreengrass**
- **diagrams.aws.iot.IotHardwareBoard**, **IotBoard** (alias)
- **diagrams.aws.iot.IotHouse**
- **diagrams.aws.iot.IotHttp**
- **diagrams.aws.iot.IotHttp2**
- **diagrams.aws.iot.IotJobs**
- **diagrams.aws.iot.IotLambda**
- **diagrams.aws.iot.IotLightbulb**
- **diagrams.aws.iot.IotMedicalEmergency**
- **diagrams.aws.iot.IotMqtt**
- **diagrams.aws.iot.IotOverTheAirUpdate**
- **diagrams.aws.iot.IotPolicyEmergency**
- **diagrams.aws.iot.IotPolicy**
- **diagrams.aws.iot.IotReportedState**
- **diagrams.aws.iot.IotRule**
- **diagrams.aws.iot.IotSensor**
- **diagrams.aws.iot.IotServo**
- **diagrams.aws.iot.IotShadow**
- **diagrams.aws.iot.IotSimulator**
- **diagrams.aws.iot.IotSitewise**
- **diagrams.aws.iot.IotThermostat**
- **diagrams.aws.iot.IotThingsGraph**
- **diagrams.aws.iot.IotTopic**
- **diagrams.aws.iot.IotTravel**
- **diagrams.aws.iot.IotUtility**
- **diagrams.aws.iot.IotWindfarm**
## aws.management
- **diagrams.aws.management.AutoScaling**
- **diagrams.aws.management.CloudformationChangeSet**
- **diagrams.aws.management.CloudformationStack**
- **diagrams.aws.management.CloudformationTemplate**
- **diagrams.aws.management.Cloudformation**
- **diagrams.aws.management.Cloudtrail**
- **diagrams.aws.management.CloudwatchAlarm**
- **diagrams.aws.management.CloudwatchEventEventBased**
- **diagrams.aws.management.CloudwatchEventTimeBased**
- **diagrams.aws.management.CloudwatchRule**
- **diagrams.aws.management.Cloudwatch**
- **diagrams.aws.management.Codeguru**
- **diagrams.aws.management.CommandLineInterface**
@ -203,12 +317,37 @@ Node classes list of aws provider.
- **diagrams.aws.management.ControlTower**
- **diagrams.aws.management.LicenseManager**
- **diagrams.aws.management.ManagedServices**
- **diagrams.aws.management.ManagementAndGovernance**
- **diagrams.aws.management.ManagementConsole**
- **diagrams.aws.management.OpsworksApps**
- **diagrams.aws.management.OpsworksDeployments**
- **diagrams.aws.management.OpsworksInstances**
- **diagrams.aws.management.OpsworksLayers**
- **diagrams.aws.management.OpsworksMonitoring**
- **diagrams.aws.management.OpsworksPermissions**
- **diagrams.aws.management.OpsworksResources**
- **diagrams.aws.management.OpsworksStack**
- **diagrams.aws.management.Opsworks**
- **diagrams.aws.management.OrganizationsAccount**
- **diagrams.aws.management.OrganizationsOrganizationalUnit**
- **diagrams.aws.management.Organizations**
- **diagrams.aws.management.PersonalHealthDashboard**
- **diagrams.aws.management.ServiceCatalog**
- **diagrams.aws.management.SystemsManagerAutomation**
- **diagrams.aws.management.SystemsManagerDocuments**
- **diagrams.aws.management.SystemsManagerInventory**
- **diagrams.aws.management.SystemsManagerMaintenanceWindows**
- **diagrams.aws.management.SystemsManagerOpscenter**
- **diagrams.aws.management.SystemsManagerParameterStore**, **ParameterStore** (alias)
- **diagrams.aws.management.SystemsManagerPatchManager**
- **diagrams.aws.management.SystemsManagerRunCommand**
- **diagrams.aws.management.SystemsManagerStateManager**
- **diagrams.aws.management.SystemsManager**, **SSM** (alias)
- **diagrams.aws.management.TrustedAdvisorChecklistCost**
- **diagrams.aws.management.TrustedAdvisorChecklistFaultTolerant**
- **diagrams.aws.management.TrustedAdvisorChecklistPerformance**
- **diagrams.aws.management.TrustedAdvisorChecklistSecurity**
- **diagrams.aws.management.TrustedAdvisorChecklist**
- **diagrams.aws.management.TrustedAdvisor**
- **diagrams.aws.management.WellArchitectedTool**
@ -225,12 +364,15 @@ Node classes list of aws provider.
- **diagrams.aws.media.ElementalMediastore**
- **diagrams.aws.media.ElementalMediatailor**
- **diagrams.aws.media.ElementalServer**
- **diagrams.aws.media.KinesisVideoStreams**
- **diagrams.aws.media.MediaServices**
## aws.migration
- **diagrams.aws.migration.ApplicationDiscoveryService**, **ADS** (alias)
- **diagrams.aws.migration.CloudendureMigration**, **CEM** (alias)
- **diagrams.aws.migration.DatabaseMigrationService**, **DMS** (alias)
- **diagrams.aws.migration.DatasyncAgent**
- **diagrams.aws.migration.Datasync**
- **diagrams.aws.migration.MigrationAndTransfer**, **MAT** (alias)
- **diagrams.aws.migration.MigrationHub**
@ -243,17 +385,23 @@ Node classes list of aws provider.
## aws.ml
- **diagrams.aws.ml.ApacheMxnetOnAWS**
- **diagrams.aws.ml.AugmentedAi**
- **diagrams.aws.ml.Comprehend**
- **diagrams.aws.ml.DeepLearningAmis**
- **diagrams.aws.ml.DeepLearningContainers**, **DLC** (alias)
- **diagrams.aws.ml.Deepcomposer**
- **diagrams.aws.ml.Deeplens**
- **diagrams.aws.ml.Deepracer**
- **diagrams.aws.ml.ElasticInference**
- **diagrams.aws.ml.Forecast**
- **diagrams.aws.ml.FraudDetector**
- **diagrams.aws.ml.Kendra**
- **diagrams.aws.ml.Lex**
- **diagrams.aws.ml.MachineLearning**
- **diagrams.aws.ml.Personalize**
- **diagrams.aws.ml.Polly**
- **diagrams.aws.ml.RekognitionImage**
- **diagrams.aws.ml.RekognitionVideo**
- **diagrams.aws.ml.Rekognition**
- **diagrams.aws.ml.SagemakerGroundTruth**
- **diagrams.aws.ml.SagemakerModel**
@ -272,17 +420,25 @@ Node classes list of aws provider.
- **diagrams.aws.mobile.APIGateway**
- **diagrams.aws.mobile.Appsync**
- **diagrams.aws.mobile.DeviceFarm**
- **diagrams.aws.mobile.Mobile**
- **diagrams.aws.mobile.Pinpoint**
## aws.network
- **diagrams.aws.network.APIGatewayEndpoint**
- **diagrams.aws.network.APIGateway**
- **diagrams.aws.network.AppMesh**
- **diagrams.aws.network.ClientVpn**
- **diagrams.aws.network.CloudMap**
- **diagrams.aws.network.CloudFrontDownloadDistribution**
- **diagrams.aws.network.CloudFrontEdgeLocation**
- **diagrams.aws.network.CloudFrontStreamingDistribution**
- **diagrams.aws.network.CloudFront**, **CF** (alias)
- **diagrams.aws.network.DirectConnect**
- **diagrams.aws.network.ElasticLoadBalancing**, **ELB** (alias)
- **diagrams.aws.network.ElbApplicationLoadBalancer**, **ALB** (alias)
- **diagrams.aws.network.ElbClassicLoadBalancer**, **CLB** (alias)
- **diagrams.aws.network.ElbNetworkLoadBalancer**, **NLB** (alias)
- **diagrams.aws.network.Endpoint**
- **diagrams.aws.network.GlobalAccelerator**, **GAX** (alias)
- **diagrams.aws.network.InternetGateway**
@ -292,20 +448,32 @@ Node classes list of aws provider.
- **diagrams.aws.network.PrivateSubnet**
- **diagrams.aws.network.Privatelink**
- **diagrams.aws.network.PublicSubnet**
- **diagrams.aws.network.Route53HostedZone**
- **diagrams.aws.network.Route53**
- **diagrams.aws.network.RouteTable**
- **diagrams.aws.network.SiteToSiteVpn**
- **diagrams.aws.network.TransitGateway**
- **diagrams.aws.network.VPCCustomerGateway**
- **diagrams.aws.network.VPCElasticNetworkAdapter**
- **diagrams.aws.network.VPCElasticNetworkInterface**
- **diagrams.aws.network.VPCFlowLogs**
- **diagrams.aws.network.VPCPeering**
- **diagrams.aws.network.VPCRouter**
- **diagrams.aws.network.VPCTrafficMirroring**
- **diagrams.aws.network.VPC**
- **diagrams.aws.network.VpnConnection**
- **diagrams.aws.network.VpnGateway**
## aws.quantum
- **diagrams.aws.quantum.Braket**
- **diagrams.aws.quantum.QuantumTechnologies**
## aws.robotics
- **diagrams.aws.robotics.RobomakerCloudExtensionRos**
- **diagrams.aws.robotics.RobomakerDevelopmentEnvironment**
- **diagrams.aws.robotics.RobomakerFleetManagement**
- **diagrams.aws.robotics.RobomakerSimulator**
- **diagrams.aws.robotics.Robomaker**
- **diagrams.aws.robotics.Robotics**
@ -313,10 +481,13 @@ Node classes list of aws provider.
## aws.satellite
- **diagrams.aws.satellite.GroundStation**
- **diagrams.aws.satellite.Satellite**
## aws.security
- **diagrams.aws.security.AdConnector**
- **diagrams.aws.security.Artifact**
- **diagrams.aws.security.CertificateAuthority**
- **diagrams.aws.security.CertificateManager**, **ACM** (alias)
- **diagrams.aws.security.CloudDirectory**
- **diagrams.aws.security.Cloudhsm**, **CloudHSM** (alias)
@ -326,19 +497,32 @@ Node classes list of aws provider.
- **diagrams.aws.security.FirewallManager**, **FMS** (alias)
- **diagrams.aws.security.Guardduty**
- **diagrams.aws.security.IdentityAndAccessManagementIamAccessAnalyzer**, **IAMAccessAnalyzer** (alias)
- **diagrams.aws.security.IdentityAndAccessManagementIamAddOn**
- **diagrams.aws.security.IdentityAndAccessManagementIamAWSStsAlternate**
- **diagrams.aws.security.IdentityAndAccessManagementIamAWSSts**, **IAMAWSSts** (alias)
- **diagrams.aws.security.IdentityAndAccessManagementIamDataEncryptionKey**
- **diagrams.aws.security.IdentityAndAccessManagementIamEncryptedData**
- **diagrams.aws.security.IdentityAndAccessManagementIamLongTermSecurityCredential**
- **diagrams.aws.security.IdentityAndAccessManagementIamMfaToken**
- **diagrams.aws.security.IdentityAndAccessManagementIamPermissions**, **IAMPermissions** (alias)
- **diagrams.aws.security.IdentityAndAccessManagementIamRole**, **IAMRole** (alias)
- **diagrams.aws.security.IdentityAndAccessManagementIamTemporarySecurityCredential**
- **diagrams.aws.security.IdentityAndAccessManagementIam**, **IAM** (alias)
- **diagrams.aws.security.InspectorAgent**
- **diagrams.aws.security.Inspector**
- **diagrams.aws.security.KeyManagementService**, **KMS** (alias)
- **diagrams.aws.security.Macie**
- **diagrams.aws.security.ManagedMicrosoftAd**
- **diagrams.aws.security.ResourceAccessManager**, **RAM** (alias)
- **diagrams.aws.security.SecretsManager**
- **diagrams.aws.security.SecurityHubFinding**
- **diagrams.aws.security.SecurityHub**
- **diagrams.aws.security.SecurityIdentityAndCompliance**
- **diagrams.aws.security.ShieldAdvanced**
- **diagrams.aws.security.Shield**
- **diagrams.aws.security.SimpleAd**
- **diagrams.aws.security.SingleSignOn**
- **diagrams.aws.security.WAFFilteringRule**
- **diagrams.aws.security.WAF**
## aws.storage
@ -347,15 +531,28 @@ Node classes list of aws provider.
- **diagrams.aws.storage.CloudendureDisasterRecovery**, **CDR** (alias)
- **diagrams.aws.storage.EFSInfrequentaccessPrimaryBg**
- **diagrams.aws.storage.EFSStandardPrimaryBg**
- **diagrams.aws.storage.ElasticBlockStoreEBSSnapshot**
- **diagrams.aws.storage.ElasticBlockStoreEBSVolume**
- **diagrams.aws.storage.ElasticBlockStoreEBS**, **EBS** (alias)
- **diagrams.aws.storage.ElasticFileSystemEFSFileSystem**
- **diagrams.aws.storage.ElasticFileSystemEFS**, **EFS** (alias)
- **diagrams.aws.storage.FsxForLustre**
- **diagrams.aws.storage.FsxForWindowsFileServer**
- **diagrams.aws.storage.Fsx**, **FSx** (alias)
- **diagrams.aws.storage.MultipleVolumesResource**
- **diagrams.aws.storage.S3GlacierArchive**
- **diagrams.aws.storage.S3GlacierVault**
- **diagrams.aws.storage.S3Glacier**
- **diagrams.aws.storage.SimpleStorageServiceS3BucketWithObjects**
- **diagrams.aws.storage.SimpleStorageServiceS3Bucket**
- **diagrams.aws.storage.SimpleStorageServiceS3Object**
- **diagrams.aws.storage.SimpleStorageServiceS3**, **S3** (alias)
- **diagrams.aws.storage.SnowFamilySnowballImportExport**
- **diagrams.aws.storage.SnowballEdge**
- **diagrams.aws.storage.Snowball**
- **diagrams.aws.storage.Snowmobile**
- **diagrams.aws.storage.StorageGatewayCachedVolume**
- **diagrams.aws.storage.StorageGatewayNonCachedVolume**
- **diagrams.aws.storage.StorageGatewayVirtualTapeLibrary**
- **diagrams.aws.storage.StorageGateway**
- **diagrams.aws.storage.Storage**

@ -18,9 +18,12 @@ Node classes list of azure provider.
- **diagrams.azure.analytics.Hdinsightclusters**
- **diagrams.azure.analytics.LogAnalyticsWorkspaces**
- **diagrams.azure.analytics.StreamAnalyticsJobs**
- **diagrams.azure.analytics.SynapseAnalytics**
## azure.compute
- **diagrams.azure.compute.AppServices**
- **diagrams.azure.compute.AutomanagedVM**
- **diagrams.azure.compute.AvailabilitySets**
- **diagrams.azure.compute.BatchAccounts**
- **diagrams.azure.compute.CitrixVirtualDesktopsEssentials**
@ -29,36 +32,51 @@ Node classes list of azure provider.
- **diagrams.azure.compute.CloudsimpleVirtualMachines**
- **diagrams.azure.compute.ContainerInstances**
- **diagrams.azure.compute.ContainerRegistries**, **ACR** (alias)
- **diagrams.azure.compute.DiskEncryptionSets**
- **diagrams.azure.compute.DiskSnapshots**
- **diagrams.azure.compute.Disks**
- **diagrams.azure.compute.FunctionApps**
- **diagrams.azure.compute.ImageDefinitions**
- **diagrams.azure.compute.ImageVersions**
- **diagrams.azure.compute.KubernetesServices**, **AKS** (alias)
- **diagrams.azure.compute.MeshApplications**
- **diagrams.azure.compute.OsImages**
- **diagrams.azure.compute.SAPHANAOnAzure**
- **diagrams.azure.compute.ServiceFabricClusters**
- **diagrams.azure.compute.SharedImageGalleries**
- **diagrams.azure.compute.SpringCloud**
- **diagrams.azure.compute.VMClassic**
- **diagrams.azure.compute.VMImages**
- **diagrams.azure.compute.VMLinux**
- **diagrams.azure.compute.VMScaleSet**, **VMSS** (alias)
- **diagrams.azure.compute.VMWindows**
- **diagrams.azure.compute.VM**
- **diagrams.azure.compute.Workspaces**
## azure.database
- **diagrams.azure.database.BlobStorage**
- **diagrams.azure.database.CacheForRedis**
- **diagrams.azure.database.CosmosDb**
- **diagrams.azure.database.DataExplorerClusters**
- **diagrams.azure.database.DataFactory**
- **diagrams.azure.database.DataLake**
- **diagrams.azure.database.DatabaseForMariadbServers**
- **diagrams.azure.database.DatabaseForMysqlServers**
- **diagrams.azure.database.DatabaseForPostgresqlServers**
- **diagrams.azure.database.ElasticDatabasePools**
- **diagrams.azure.database.ElasticJobAgents**
- **diagrams.azure.database.InstancePools**
- **diagrams.azure.database.ManagedDatabases**
- **diagrams.azure.database.SQLDatabases**
- **diagrams.azure.database.SQLDatawarehouse**
- **diagrams.azure.database.SQLManagedInstances**
- **diagrams.azure.database.SQLServerStretchDatabases**
- **diagrams.azure.database.SQLServers**
- **diagrams.azure.database.SQLVM**
- **diagrams.azure.database.SQL**
- **diagrams.azure.database.SsisLiftAndShiftIr**
- **diagrams.azure.database.SynapseAnalytics**
- **diagrams.azure.database.VirtualClusters**
- **diagrams.azure.database.VirtualDatacenter**
@ -69,6 +87,7 @@ Node classes list of azure provider.
- **diagrams.azure.devops.Boards**
- **diagrams.azure.devops.Devops**
- **diagrams.azure.devops.DevtestLabs**
- **diagrams.azure.devops.LabServices**
- **diagrams.azure.devops.Pipelines**
- **diagrams.azure.devops.Repos**
- **diagrams.azure.devops.TestPlans**
@ -114,9 +133,11 @@ Node classes list of azure provider.
- **diagrams.azure.identity.AppRegistrations**
- **diagrams.azure.identity.ConditionalAccess**
- **diagrams.azure.identity.EnterpriseApplications**
- **diagrams.azure.identity.Groups**
- **diagrams.azure.identity.IdentityGovernance**
- **diagrams.azure.identity.InformationProtection**
- **diagrams.azure.identity.ManagedIdentities**
- **diagrams.azure.identity.Users**
## azure.integration
@ -131,12 +152,14 @@ Node classes list of azure provider.
- **diagrams.azure.integration.IntegrationServiceEnvironments**
- **diagrams.azure.integration.LogicAppsCustomConnector**
- **diagrams.azure.integration.LogicApps**
- **diagrams.azure.integration.PartnerTopic**
- **diagrams.azure.integration.SendgridAccounts**
- **diagrams.azure.integration.ServiceBusRelays**
- **diagrams.azure.integration.ServiceBus**
- **diagrams.azure.integration.ServiceCatalogManagedApplicationDefinitions**
- **diagrams.azure.integration.SoftwareAsAService**
- **diagrams.azure.integration.StorsimpleDeviceManagers**
- **diagrams.azure.integration.SystemTopic**
## azure.iot
@ -153,6 +176,8 @@ Node classes list of azure provider.
## azure.migration
- **diagrams.azure.migration.DataBoxEdge**
- **diagrams.azure.migration.DataBox**
- **diagrams.azure.migration.DatabaseMigrationServices**
- **diagrams.azure.migration.MigrationProjects**
- **diagrams.azure.migration.RecoveryServicesVaults**
@ -197,6 +222,7 @@ Node classes list of azure provider.
- **diagrams.azure.network.RouteFilters**
- **diagrams.azure.network.RouteTables**
- **diagrams.azure.network.ServiceEndpointPolicies**
- **diagrams.azure.network.Subnets**
- **diagrams.azure.network.TrafficManagerProfiles**
- **diagrams.azure.network.VirtualNetworkClassic**
- **diagrams.azure.network.VirtualNetworkGateways**
@ -205,6 +231,10 @@ Node classes list of azure provider.
## azure.security
- **diagrams.azure.security.ApplicationSecurityGroups**
- **diagrams.azure.security.ConditionalAccess**
- **diagrams.azure.security.Defender**
- **diagrams.azure.security.ExtendedSecurityUpdates**
- **diagrams.azure.security.KeyVaults**
- **diagrams.azure.security.SecurityCenter**
- **diagrams.azure.security.Sentinel**

@ -0,0 +1,90 @@
---
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).

@ -112,6 +112,10 @@ Node classes list of gcp provider.
- **diagrams.gcp.network.VirtualPrivateCloud**, **VPC** (alias)
- **diagrams.gcp.network.VPN**
## gcp.operations
- **diagrams.gcp.operations.Monitoring**
## gcp.security
- **diagrams.gcp.security.Iam**

@ -0,0 +1,228 @@
---
id: ibm
title: IBM
---
Node classes list of ibm provider.
## ibm.analytics
- **diagrams.ibm.analytics.Analytics**
- **diagrams.ibm.analytics.DataIntegration**
- **diagrams.ibm.analytics.DataRepositories**
- **diagrams.ibm.analytics.DeviceAnalytics**
- **diagrams.ibm.analytics.StreamingComputing**
## ibm.applications
- **diagrams.ibm.applications.ActionableInsight**
- **diagrams.ibm.applications.Annotate**
- **diagrams.ibm.applications.ApiDeveloperPortal**
- **diagrams.ibm.applications.ApiPolyglotRuntimes**
- **diagrams.ibm.applications.AppServer**
- **diagrams.ibm.applications.ApplicationLogic**
- **diagrams.ibm.applications.EnterpriseApplications**
- **diagrams.ibm.applications.Index**
- **diagrams.ibm.applications.IotApplication**
- **diagrams.ibm.applications.Microservice**
- **diagrams.ibm.applications.MobileApp**
- **diagrams.ibm.applications.Ontology**
- **diagrams.ibm.applications.OpenSourceTools**
- **diagrams.ibm.applications.RuntimeServices**
- **diagrams.ibm.applications.SaasApplications**
- **diagrams.ibm.applications.ServiceBroker**
- **diagrams.ibm.applications.SpeechToText**
- **diagrams.ibm.applications.VisualRecognition**
- **diagrams.ibm.applications.Visualization**
## ibm.blockchain
- **diagrams.ibm.blockchain.BlockchainDeveloper**
- **diagrams.ibm.blockchain.Blockchain**
- **diagrams.ibm.blockchain.CertificateAuthority**
- **diagrams.ibm.blockchain.ClientApplication**
- **diagrams.ibm.blockchain.Communication**
- **diagrams.ibm.blockchain.Consensus**
- **diagrams.ibm.blockchain.EventListener**
- **diagrams.ibm.blockchain.Event**
- **diagrams.ibm.blockchain.ExistingEnterpriseSystems**
- **diagrams.ibm.blockchain.HyperledgerFabric**
- **diagrams.ibm.blockchain.KeyManagement**
- **diagrams.ibm.blockchain.Ledger**
- **diagrams.ibm.blockchain.MembershipServicesProviderApi**
- **diagrams.ibm.blockchain.Membership**
- **diagrams.ibm.blockchain.MessageBus**
- **diagrams.ibm.blockchain.Node**
- **diagrams.ibm.blockchain.Services**
- **diagrams.ibm.blockchain.SmartContract**
- **diagrams.ibm.blockchain.TransactionManager**
- **diagrams.ibm.blockchain.Wallet**
## ibm.compute
- **diagrams.ibm.compute.BareMetalServer**
- **diagrams.ibm.compute.ImageService**
- **diagrams.ibm.compute.Instance**
- **diagrams.ibm.compute.Key**
- **diagrams.ibm.compute.PowerInstance**
## ibm.data
- **diagrams.ibm.data.Caches**
- **diagrams.ibm.data.Cloud**
- **diagrams.ibm.data.ConversationTrainedDeployed**
- **diagrams.ibm.data.DataServices**
- **diagrams.ibm.data.DataSources**
- **diagrams.ibm.data.DeviceIdentityService**
- **diagrams.ibm.data.DeviceRegistry**
- **diagrams.ibm.data.EnterpriseData**
- **diagrams.ibm.data.EnterpriseUserDirectory**
- **diagrams.ibm.data.FileRepository**
- **diagrams.ibm.data.GroundTruth**
- **diagrams.ibm.data.Model**
- **diagrams.ibm.data.TmsDataInterface**
## ibm.devops
- **diagrams.ibm.devops.ArtifactManagement**
- **diagrams.ibm.devops.BuildTest**
- **diagrams.ibm.devops.CodeEditor**
- **diagrams.ibm.devops.CollaborativeDevelopment**
- **diagrams.ibm.devops.ConfigurationManagement**
- **diagrams.ibm.devops.ContinuousDeploy**
- **diagrams.ibm.devops.ContinuousTesting**
- **diagrams.ibm.devops.Devops**
- **diagrams.ibm.devops.Provision**
- **diagrams.ibm.devops.ReleaseManagement**
## ibm.general
- **diagrams.ibm.general.CloudMessaging**
- **diagrams.ibm.general.CloudServices**
- **diagrams.ibm.general.Cloudant**
- **diagrams.ibm.general.CognitiveServices**
- **diagrams.ibm.general.DataSecurity**
- **diagrams.ibm.general.Enterprise**
- **diagrams.ibm.general.GovernanceRiskCompliance**
- **diagrams.ibm.general.IBMContainers**
- **diagrams.ibm.general.IBMPublicCloud**
- **diagrams.ibm.general.IdentityAccessManagement**
- **diagrams.ibm.general.IdentityProvider**
- **diagrams.ibm.general.InfrastructureSecurity**
- **diagrams.ibm.general.Internet**
- **diagrams.ibm.general.IotCloud**
- **diagrams.ibm.general.MicroservicesApplication**
- **diagrams.ibm.general.MicroservicesMesh**
- **diagrams.ibm.general.MonitoringLogging**
- **diagrams.ibm.general.Monitoring**
- **diagrams.ibm.general.ObjectStorage**
- **diagrams.ibm.general.OfflineCapabilities**
- **diagrams.ibm.general.Openwhisk**
- **diagrams.ibm.general.PeerCloud**
- **diagrams.ibm.general.RetrieveRank**
- **diagrams.ibm.general.Scalable**
- **diagrams.ibm.general.ServiceDiscoveryConfiguration**
- **diagrams.ibm.general.TextToSpeech**
- **diagrams.ibm.general.TransformationConnectivity**
## ibm.infrastructure
- **diagrams.ibm.infrastructure.Channels**
- **diagrams.ibm.infrastructure.CloudMessaging**
- **diagrams.ibm.infrastructure.Dashboard**
- **diagrams.ibm.infrastructure.Diagnostics**
- **diagrams.ibm.infrastructure.EdgeServices**
- **diagrams.ibm.infrastructure.EnterpriseMessaging**
- **diagrams.ibm.infrastructure.EventFeed**
- **diagrams.ibm.infrastructure.InfrastructureServices**
- **diagrams.ibm.infrastructure.InterserviceCommunication**
- **diagrams.ibm.infrastructure.LoadBalancingRouting**
- **diagrams.ibm.infrastructure.MicroservicesMesh**
- **diagrams.ibm.infrastructure.MobileBackend**
- **diagrams.ibm.infrastructure.MobileProviderNetwork**
- **diagrams.ibm.infrastructure.MonitoringLogging**
- **diagrams.ibm.infrastructure.Monitoring**
- **diagrams.ibm.infrastructure.PeerServices**
- **diagrams.ibm.infrastructure.ServiceDiscoveryConfiguration**
- **diagrams.ibm.infrastructure.TransformationConnectivity**
## ibm.management
- **diagrams.ibm.management.AlertNotification**
- **diagrams.ibm.management.ApiManagement**
- **diagrams.ibm.management.CloudManagement**
- **diagrams.ibm.management.ClusterManagement**
- **diagrams.ibm.management.ContentManagement**
- **diagrams.ibm.management.DataServices**
- **diagrams.ibm.management.DeviceManagement**
- **diagrams.ibm.management.InformationGovernance**
- **diagrams.ibm.management.ItServiceManagement**
- **diagrams.ibm.management.Management**
- **diagrams.ibm.management.MonitoringMetrics**
- **diagrams.ibm.management.ProcessManagement**
- **diagrams.ibm.management.ProviderCloudPortalService**
- **diagrams.ibm.management.PushNotifications**
- **diagrams.ibm.management.ServiceManagementTools**
## ibm.network
- **diagrams.ibm.network.Bridge**
- **diagrams.ibm.network.DirectLink**
- **diagrams.ibm.network.Enterprise**
- **diagrams.ibm.network.Firewall**
- **diagrams.ibm.network.FloatingIp**
- **diagrams.ibm.network.Gateway**
- **diagrams.ibm.network.InternetServices**
- **diagrams.ibm.network.LoadBalancerListener**
- **diagrams.ibm.network.LoadBalancerPool**
- **diagrams.ibm.network.LoadBalancer**
- **diagrams.ibm.network.LoadBalancingRouting**
- **diagrams.ibm.network.PublicGateway**
- **diagrams.ibm.network.Region**
- **diagrams.ibm.network.Router**
- **diagrams.ibm.network.Rules**
- **diagrams.ibm.network.Subnet**
- **diagrams.ibm.network.TransitGateway**
- **diagrams.ibm.network.Vpc**
- **diagrams.ibm.network.VpnConnection**
- **diagrams.ibm.network.VpnGateway**
- **diagrams.ibm.network.VpnPolicy**
## ibm.security
- **diagrams.ibm.security.ApiSecurity**
- **diagrams.ibm.security.BlockchainSecurityService**
- **diagrams.ibm.security.DataSecurity**
- **diagrams.ibm.security.Firewall**
- **diagrams.ibm.security.Gateway**
- **diagrams.ibm.security.GovernanceRiskCompliance**
- **diagrams.ibm.security.IdentityAccessManagement**
- **diagrams.ibm.security.IdentityProvider**
- **diagrams.ibm.security.InfrastructureSecurity**
- **diagrams.ibm.security.PhysicalSecurity**
- **diagrams.ibm.security.SecurityMonitoringIntelligence**
- **diagrams.ibm.security.SecurityServices**
- **diagrams.ibm.security.TrustendComputing**
- **diagrams.ibm.security.Vpn**
## ibm.social
- **diagrams.ibm.social.Communities**
- **diagrams.ibm.social.FileSync**
- **diagrams.ibm.social.LiveCollaboration**
- **diagrams.ibm.social.Messaging**
- **diagrams.ibm.social.Networking**
## ibm.storage
- **diagrams.ibm.storage.BlockStorage**
- **diagrams.ibm.storage.ObjectStorage**
## ibm.user
- **diagrams.ibm.user.Browser**
- **diagrams.ibm.user.Device**
- **diagrams.ibm.user.IntegratedDigitalExperiences**
- **diagrams.ibm.user.PhysicalEntity**
- **diagrams.ibm.user.Sensor**
- **diagrams.ibm.user.User**

@ -47,12 +47,12 @@ Node classes list of oci provider.
## oci.database
- **diagrams.oci.database.AutonomousWhite**
- **diagrams.oci.database.Autonomous**
- **diagrams.oci.database.AutonomousWhite**, **ADBWhite** (alias)
- **diagrams.oci.database.Autonomous**, **ADB** (alias)
- **diagrams.oci.database.BigdataServiceWhite**
- **diagrams.oci.database.BigdataService**
- **diagrams.oci.database.DatabaseServiceWhite**
- **diagrams.oci.database.DatabaseService**
- **diagrams.oci.database.DatabaseServiceWhite**, **DBServiceWhite** (alias)
- **diagrams.oci.database.DatabaseService**, **DBService** (alias)
- **diagrams.oci.database.DataflowApacheWhite**
- **diagrams.oci.database.DataflowApache**
- **diagrams.oci.database.DcatWhite**

@ -20,13 +20,17 @@ Node classes list of onprem provider.
- **diagrams.onprem.analytics.Hive**
- **diagrams.onprem.analytics.Metabase**
- **diagrams.onprem.analytics.Norikra**
- **diagrams.onprem.analytics.Powerbi**, **PowerBI** (alias)
- **diagrams.onprem.analytics.Presto**
- **diagrams.onprem.analytics.Singer**
- **diagrams.onprem.analytics.Spark**
- **diagrams.onprem.analytics.Storm**
- **diagrams.onprem.analytics.Superset**
- **diagrams.onprem.analytics.Tableau**
## onprem.auth
- **diagrams.onprem.auth.Boundary**
- **diagrams.onprem.auth.BuzzfeedSso**
- **diagrams.onprem.auth.Oauth2Proxy**
@ -46,6 +50,7 @@ Node classes list of onprem provider.
- **diagrams.onprem.ci.Circleci**, **CircleCI** (alias)
- **diagrams.onprem.ci.Concourseci**, **ConcourseCI** (alias)
- **diagrams.onprem.ci.Droneci**, **DroneCI** (alias)
- **diagrams.onprem.ci.GithubActions**
- **diagrams.onprem.ci.Gitlabci**, **GitlabCI** (alias)
- **diagrams.onprem.ci.Jenkins**
- **diagrams.onprem.ci.Teamcity**, **TC** (alias)
@ -65,7 +70,11 @@ Node classes list of onprem provider.
## onprem.container
- **diagrams.onprem.container.Containerd**
- **diagrams.onprem.container.Crio**
- **diagrams.onprem.container.Docker**
- **diagrams.onprem.container.Firecracker**
- **diagrams.onprem.container.Gvisor**
- **diagrams.onprem.container.Lxc**, **LXC** (alias)
- **diagrams.onprem.container.Rkt**, **RKT** (alias)
@ -90,6 +99,11 @@ Node classes list of onprem provider.
- **diagrams.onprem.database.Postgresql**, **PostgreSQL** (alias)
- **diagrams.onprem.database.Scylla**
## onprem.dns
- **diagrams.onprem.dns.Coredns**
- **diagrams.onprem.dns.Powerdns**
## onprem.etl
- **diagrams.onprem.etl.Embulk**
@ -100,6 +114,10 @@ Node classes list of onprem provider.
- **diagrams.onprem.gitops.Flagger**
- **diagrams.onprem.gitops.Flux**
## onprem.groupware
- **diagrams.onprem.groupware.Nextcloud**
## onprem.iac
- **diagrams.onprem.iac.Ansible**
@ -132,8 +150,11 @@ Node classes list of onprem provider.
## onprem.monitoring
- **diagrams.onprem.monitoring.Cortex**
- **diagrams.onprem.monitoring.Datadog**
- **diagrams.onprem.monitoring.Grafana**
- **diagrams.onprem.monitoring.Humio**
- **diagrams.onprem.monitoring.Newrelic**
- **diagrams.onprem.monitoring.PrometheusOperator**
- **diagrams.onprem.monitoring.Prometheus**
- **diagrams.onprem.monitoring.Sentry**
@ -143,6 +164,7 @@ Node classes list of onprem provider.
## onprem.network
- **diagrams.onprem.network.Ambassador**
- **diagrams.onprem.network.Apache**
- **diagrams.onprem.network.Bind9**
- **diagrams.onprem.network.Caddy**
@ -180,6 +202,7 @@ Node classes list of onprem provider.
- **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias)
- **diagrams.onprem.queue.Celery**
- **diagrams.onprem.queue.Kafka**
- **diagrams.onprem.queue.Nats**
- **diagrams.onprem.queue.Rabbitmq**, **RabbitMQ** (alias)
- **diagrams.onprem.queue.Zeromq**, **ZeroMQ** (alias)
@ -189,6 +212,7 @@ Node classes list of onprem provider.
## onprem.security
- **diagrams.onprem.security.Bitwarden**
- **diagrams.onprem.security.Trivy**
- **diagrams.onprem.security.Vault**
@ -198,9 +222,14 @@ Node classes list of onprem provider.
- **diagrams.onprem.storage.Ceph**, **CEPH** (alias)
- **diagrams.onprem.storage.Glusterfs**
## onprem.tracing
- **diagrams.onprem.tracing.Jaeger**
## onprem.vcs
- **diagrams.onprem.vcs.Git**
- **diagrams.onprem.vcs.Gitea**
- **diagrams.onprem.vcs.Github**
- **diagrams.onprem.vcs.Gitlab**

@ -5,15 +5,44 @@ title: Programming
Node classes list of programming provider.
## programming.flowchart
- **diagrams.programming.flowchart.Action**
- **diagrams.programming.flowchart.Collate**
- **diagrams.programming.flowchart.Database**
- **diagrams.programming.flowchart.Decision**
- **diagrams.programming.flowchart.Delay**
- **diagrams.programming.flowchart.Display**
- **diagrams.programming.flowchart.Document**
- **diagrams.programming.flowchart.InputOutput**
- **diagrams.programming.flowchart.Inspection**
- **diagrams.programming.flowchart.InternalStorage**
- **diagrams.programming.flowchart.LoopLimit**
- **diagrams.programming.flowchart.ManualInput**
- **diagrams.programming.flowchart.ManualLoop**
- **diagrams.programming.flowchart.Merge**
- **diagrams.programming.flowchart.MultipleDocuments**
- **diagrams.programming.flowchart.OffPageConnectorLeft**
- **diagrams.programming.flowchart.OffPageConnectorRight**
- **diagrams.programming.flowchart.Or**
- **diagrams.programming.flowchart.PredefinedProcess**
- **diagrams.programming.flowchart.Preparation**
- **diagrams.programming.flowchart.Sort**
- **diagrams.programming.flowchart.StartEnd**
- **diagrams.programming.flowchart.StoredData**
- **diagrams.programming.flowchart.SummingJunction**
## programming.framework
- **diagrams.programming.framework.Angular**
- **diagrams.programming.framework.Backbone**
- **diagrams.programming.framework.Django**
- **diagrams.programming.framework.Ember**
- **diagrams.programming.framework.Fastapi**, **FastAPI** (alias)
- **diagrams.programming.framework.Flask**
- **diagrams.programming.framework.Flutter**
- **diagrams.programming.framework.Laravel**
- **diagrams.programming.framework.Micronaut**
- **diagrams.programming.framework.Rails**
- **diagrams.programming.framework.React**
- **diagrams.programming.framework.Spring**
@ -39,5 +68,6 @@ Node classes list of programming provider.
- **diagrams.programming.language.R**
- **diagrams.programming.language.Ruby**
- **diagrams.programming.language.Rust**
- **diagrams.programming.language.Scala**
- **diagrams.programming.language.Swift**
- **diagrams.programming.language.Typescript**, **TypeScript** (alias)

@ -7,6 +7,7 @@ Node classes list of saas provider.
## saas.alerting
- **diagrams.saas.alerting.Newrelic**
- **diagrams.saas.alerting.Opsgenie**
- **diagrams.saas.alerting.Pushover**
@ -22,12 +23,17 @@ Node classes list of saas provider.
## saas.chat
- **diagrams.saas.chat.Discord**
- **diagrams.saas.chat.Mattermost**
- **diagrams.saas.chat.RocketChat**
- **diagrams.saas.chat.Slack**
- **diagrams.saas.chat.Teams**
- **diagrams.saas.chat.Telegram**
## saas.filesharing
- **diagrams.saas.filesharing.Nextcloud**
## saas.identity
- **diagrams.saas.identity.Auth0**
@ -36,6 +42,7 @@ Node classes list of saas provider.
## saas.logging
- **diagrams.saas.logging.Datadog**, **DataDog** (alias)
- **diagrams.saas.logging.Newrelic**, **NewRelic** (alias)
- **diagrams.saas.logging.Papertrail**
## saas.media

327
poetry.lock generated

@ -1,43 +1,39 @@
[[package]]
category = "dev"
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
name = "appdirs"
version = "1.4.3"
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
category = "dev"
optional = false
python-versions = "*"
version = "1.4.3"
[[package]]
category = "dev"
description = "An abstract syntax tree for Python with inference support."
name = "astroid"
version = "2.5"
description = "An abstract syntax tree for Python with inference support."
category = "dev"
optional = false
python-versions = ">=3.5.*"
version = "2.3.3"
python-versions = ">=3.6"
[package.dependencies]
lazy-object-proxy = ">=1.4.0,<1.5.0"
six = ">=1.12,<2.0"
wrapt = ">=1.11.0,<1.12.0"
[package.dependencies.typed-ast]
python = "<3.8"
version = ">=1.4.0,<1.5"
lazy-object-proxy = ">=1.4.0"
typed-ast = {version = ">=1.4.0,<1.5", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""}
wrapt = ">=1.11,<1.13"
[[package]]
category = "dev"
description = "Atomic file writes."
name = "atomicwrites"
version = "1.3.0"
description = "Atomic file writes."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.3.0"
[[package]]
category = "dev"
description = "Classes Without Boilerplate"
name = "attrs"
version = "19.3.0"
description = "Classes Without Boilerplate"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "19.3.0"
[package.extras]
azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "pytest-azurepipelines"]
@ -46,12 +42,12 @@ docs = ["sphinx", "zope.interface"]
tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
[[package]]
category = "dev"
description = "The uncompromising code formatter."
name = "black"
version = "19.10b0"
description = "The uncompromising code formatter."
category = "dev"
optional = false
python-versions = ">=3.6"
version = "19.10b0"
[package.dependencies]
appdirs = "*"
@ -66,64 +62,60 @@ typed-ast = ">=1.4.0"
d = ["aiohttp (>=3.3.2)", "aiohttp-cors"]
[[package]]
category = "dev"
description = "Composable command line interface toolkit"
name = "click"
version = "7.0"
description = "Composable command line interface toolkit"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "7.0"
[[package]]
category = "dev"
description = "Cross-platform colored terminal text."
marker = "sys_platform == \"win32\""
name = "colorama"
version = "0.4.3"
description = "Cross-platform colored terminal text."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "0.4.3"
[[package]]
category = "main"
description = "PEP 567 Backport"
marker = "python_version >= \"3.6\" and python_version < \"3.7\""
name = "contextvars"
version = "2.4"
description = "PEP 567 Backport"
category = "main"
optional = false
python-versions = "*"
version = "2.4"
[package.dependencies]
immutables = ">=0.9"
[[package]]
category = "main"
description = "Simple Python interface for Graphviz"
name = "graphviz"
version = "0.16"
description = "Simple Python interface for Graphviz"
category = "main"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
version = "0.13.2"
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*"
[package.extras]
dev = ["tox (>=3.0)", "flake8", "pep8-naming", "wheel", "twine"]
docs = ["sphinx (>=1.7)", "sphinx-rtd-theme"]
test = ["mock (>=2)", "pytest (>=3.4,<3.10.0 || >3.10.0)", "pytest-mock (>=1.8)", "pytest-cov"]
dev = ["tox (>=3)", "flake8", "pep8-naming", "wheel", "twine"]
docs = ["sphinx (>=1.8)", "sphinx-rtd-theme"]
test = ["mock (>=3)", "pytest (>=4)", "pytest-mock (>=2)", "pytest-cov"]
[[package]]
category = "main"
description = "Immutable Collections"
marker = "python_version >= \"3.6\" and python_version < \"3.7\""
name = "immutables"
version = "0.11"
description = "Immutable Collections"
category = "main"
optional = false
python-versions = "*"
version = "0.11"
[[package]]
category = "dev"
description = "Read metadata from Python packages"
marker = "python_version < \"3.8\""
name = "importlib-metadata"
version = "1.5.0"
description = "Read metadata from Python packages"
category = "dev"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
version = "1.5.0"
[package.dependencies]
zipp = ">=0.5"
@ -133,12 +125,20 @@ docs = ["sphinx", "rst.linker"]
testing = ["packaging", "importlib-resources"]
[[package]]
name = "iniconfig"
version = "1.1.1"
description = "iniconfig: brain-dead simple config-ini parsing"
category = "dev"
description = "A Python utility / library to sort Python imports."
optional = false
python-versions = "*"
[[package]]
name = "isort"
version = "4.3.21"
description = "A Python utility / library to sort Python imports."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "4.3.21"
[package.extras]
pipfile = ["pipreqs", "requirementslib"]
@ -147,12 +147,12 @@ requirements = ["pipreqs", "pip-api"]
xdg_home = ["appdirs (>=1.4.0)"]
[[package]]
category = "main"
description = "A very fast and expressive template engine."
name = "jinja2"
version = "2.11.3"
description = "A very fast and expressive template engine."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "2.11.1"
[package.dependencies]
MarkupSafe = ">=0.23"
@ -161,165 +161,174 @@ MarkupSafe = ">=0.23"
i18n = ["Babel (>=0.8)"]
[[package]]
category = "dev"
description = "A fast and thorough lazy object proxy."
name = "lazy-object-proxy"
version = "1.4.3"
description = "A fast and thorough lazy object proxy."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.4.3"
[[package]]
category = "main"
description = "Safely add untrusted strings to HTML/XML markup."
name = "markupsafe"
version = "1.1.1"
description = "Safely add untrusted strings to HTML/XML markup."
category = "main"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
version = "1.1.1"
[[package]]
category = "dev"
description = "McCabe checker, plugin for flake8"
name = "mccabe"
version = "0.6.1"
description = "McCabe checker, plugin for flake8"
category = "dev"
optional = false
python-versions = "*"
version = "0.6.1"
[[package]]
name = "packaging"
version = "20.8"
description = "Core utilities for Python packages"
category = "dev"
description = "More routines for operating on iterables, beyond itertools"
name = "more-itertools"
optional = false
python-versions = ">=3.5"
version = "8.2.0"
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.dependencies]
pyparsing = ">=2.0.2"
[[package]]
category = "dev"
description = "Utility library for gitignore style pattern matching of file paths."
name = "pathspec"
version = "0.7.0"
description = "Utility library for gitignore style pattern matching of file paths."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "0.7.0"
[[package]]
category = "dev"
description = "plugin and hook calling mechanisms for python"
name = "pluggy"
version = "0.13.1"
description = "plugin and hook calling mechanisms for python"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "0.13.1"
[package.dependencies]
[package.dependencies.importlib-metadata]
python = "<3.8"
version = ">=0.12"
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
[package.extras]
dev = ["pre-commit", "tox"]
[[package]]
category = "dev"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
name = "py"
version = "1.10.0"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.8.1"
[[package]]
category = "dev"
description = "python code static checker"
name = "pylint"
version = "2.7.0"
description = "python code static checker"
category = "dev"
optional = false
python-versions = ">=3.5.*"
version = "2.4.4"
python-versions = "~=3.6"
[package.dependencies]
astroid = ">=2.3.0,<2.4"
colorama = "*"
isort = ">=4.2.5,<5"
astroid = "2.5.0"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
isort = ">=4.2.5,<6"
mccabe = ">=0.6,<0.7"
toml = ">=0.7.1"
[package.extras]
docs = ["sphinx (>=3.2,<4.0)", "python-docs-theme"]
[[package]]
name = "pyparsing"
version = "2.4.7"
description = "Python parsing module"
category = "dev"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
[[package]]
name = "pytest"
version = "6.2.1"
description = "pytest: simple powerful testing with Python"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "3.10.1"
python-versions = ">=3.6"
[package.dependencies]
atomicwrites = ">=1.0"
attrs = ">=17.4.0"
colorama = "*"
more-itertools = ">=4.0.0"
pluggy = ">=0.7"
py = ">=1.5.0"
setuptools = "*"
six = ">=1.10.0"
atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
attrs = ">=19.2.0"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
iniconfig = "*"
packaging = "*"
pluggy = ">=0.12,<1.0.0a1"
py = ">=1.8.2"
toml = "*"
[package.extras]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
[[package]]
category = "dev"
description = "Alternative regular expression module, to replace re."
name = "regex"
optional = false
python-versions = "*"
version = "2020.2.20"
[[package]]
description = "Alternative regular expression module, to replace re."
category = "dev"
description = "a python refactoring library..."
name = "rope"
optional = false
python-versions = "*"
version = "0.14.0"
[[package]]
name = "rope"
version = "0.14.0"
description = "a python refactoring library..."
category = "dev"
description = "Python 2 and 3 compatibility utilities"
name = "six"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
version = "1.14.0"
python-versions = "*"
[[package]]
category = "dev"
description = "Python Library for Tom's Obvious, Minimal Language"
name = "toml"
version = "0.10.0"
description = "Python Library for Tom's Obvious, Minimal Language"
category = "dev"
optional = false
python-versions = "*"
version = "0.10.0"
[[package]]
category = "dev"
description = "a fork of Python 2 and 3 ast modules with type comment support"
name = "typed-ast"
version = "1.4.1"
description = "a fork of Python 2 and 3 ast modules with type comment support"
category = "dev"
optional = false
python-versions = "*"
version = "1.4.1"
[[package]]
category = "dev"
description = "Module for decorators, wrappers and monkey patching."
name = "wrapt"
version = "1.11.2"
description = "Module for decorators, wrappers and monkey patching."
category = "dev"
optional = false
python-versions = "*"
version = "1.11.2"
[[package]]
category = "dev"
description = "Backport of pathlib-compatible object wrapper for zip files"
marker = "python_version < \"3.8\""
name = "zipp"
version = "3.1.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
category = "dev"
optional = false
python-versions = ">=3.6"
version = "3.1.0"
[package.extras]
docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["jaraco.itertools", "func-timeout"]
[metadata]
content-hash = "da205efb5c35ed10116f51854f613a43fe000afa1341828bfd8cf3d6d58c4149"
lock-version = "1.1"
python-versions = "^3.6"
content-hash = "441f4ec509fbee3d303586c3abba92d71c5148600632f11c7069c709fa67774c"
[metadata.files]
appdirs = [
@ -327,8 +336,8 @@ appdirs = [
{file = "appdirs-1.4.3.tar.gz", hash = "sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92"},
]
astroid = [
{file = "astroid-2.3.3-py3-none-any.whl", hash = "sha256:840947ebfa8b58f318d42301cf8c0a20fd794a33b61cc4638e28e9e61ba32f42"},
{file = "astroid-2.3.3.tar.gz", hash = "sha256:71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a"},
{file = "astroid-2.5-py3-none-any.whl", hash = "sha256:87ae7f2398b8a0ae5638ddecf9987f081b756e0e9fc071aeebdca525671fc4dc"},
{file = "astroid-2.5.tar.gz", hash = "sha256:b31c92f545517dcc452f284bc9c044050862fbe6d93d2b3de4a215a6b384bf0d"},
]
atomicwrites = [
{file = "atomicwrites-1.3.0-py2.py3-none-any.whl", hash = "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4"},
@ -354,8 +363,8 @@ contextvars = [
{file = "contextvars-2.4.tar.gz", hash = "sha256:f38c908aaa59c14335eeea12abea5f443646216c4e29380d7bf34d2018e2c39e"},
]
graphviz = [
{file = "graphviz-0.13.2-py2.py3-none-any.whl", hash = "sha256:241fb099e32b8e8c2acca747211c8237e40c0b89f24b1622860075d59f4c4b25"},
{file = "graphviz-0.13.2.zip", hash = "sha256:60acbeee346e8c14555821eab57dbf68a169e6c10bce40e83c1bf44f63a62a01"},
{file = "graphviz-0.16-py2.py3-none-any.whl", hash = "sha256:3cad5517c961090dfc679df6402a57de62d97703e2880a1a46147bb0dc1639eb"},
{file = "graphviz-0.16.zip", hash = "sha256:d2d25af1c199cad567ce4806f0449cb74eb30cf451fd7597251e1da099ac6e57"},
]
immutables = [
{file = "immutables-0.11-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:bce27277a2fe91509cca69181971ab509c2ee862e8b37b09f26b64f90e8fe8fb"},
@ -379,13 +388,17 @@ importlib-metadata = [
{file = "importlib_metadata-1.5.0-py2.py3-none-any.whl", hash = "sha256:b97607a1a18a5100839aec1dc26a1ea17ee0d93b20b0f008d80a5a050afb200b"},
{file = "importlib_metadata-1.5.0.tar.gz", hash = "sha256:06f5b3a99029c7134207dd882428a66992a9de2bef7c2b699b5641f9886c3302"},
]
iniconfig = [
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
{file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},
]
isort = [
{file = "isort-4.3.21-py2.py3-none-any.whl", hash = "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd"},
{file = "isort-4.3.21.tar.gz", hash = "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1"},
]
jinja2 = [
{file = "Jinja2-2.11.1-py2.py3-none-any.whl", hash = "sha256:b0eaf100007721b5c16c1fc1eecb87409464edc10469ddc9a22a27a99123be49"},
{file = "Jinja2-2.11.1.tar.gz", hash = "sha256:93187ffbc7808079673ef52771baa950426fd664d3aad1d0fa3e95644360e250"},
{file = "Jinja2-2.11.3-py2.py3-none-any.whl", hash = "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419"},
{file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"},
]
lazy-object-proxy = [
{file = "lazy-object-proxy-1.4.3.tar.gz", hash = "sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0"},
@ -429,29 +442,48 @@ markupsafe = [
{file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
{file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
{file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
{file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
{file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"},
{file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
{file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
{file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"},
{file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"},
{file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash = "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"},
{file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"},
{file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
]
mccabe = [
{file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
{file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
]
more-itertools = [
{file = "more-itertools-8.2.0.tar.gz", hash = "sha256:b1ddb932186d8a6ac451e1d95844b382f55e12686d51ca0c68b6f61f2ab7a507"},
{file = "more_itertools-8.2.0-py3-none-any.whl", hash = "sha256:5dd8bcf33e5f9513ffa06d5ad33d78f31e1931ac9a18f33d37e77a180d393a7c"},
packaging = [
{file = "packaging-20.8-py2.py3-none-any.whl", hash = "sha256:24e0da08660a87484d1602c30bb4902d74816b6985b93de36926f5bc95741858"},
{file = "packaging-20.8.tar.gz", hash = "sha256:78598185a7008a470d64526a8059de9aaa449238f280fc9eb6b13ba6c4109093"},
]
pathspec = [
{file = "pathspec-0.7.0-py2.py3-none-any.whl", hash = "sha256:163b0632d4e31cef212976cf57b43d9fd6b0bac6e67c26015d611a647d5e7424"},
@ -462,16 +494,20 @@ pluggy = [
{file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"},
]
py = [
{file = "py-1.8.1-py2.py3-none-any.whl", hash = "sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0"},
{file = "py-1.8.1.tar.gz", hash = "sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa"},
{file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"},
{file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"},
]
pylint = [
{file = "pylint-2.4.4-py3-none-any.whl", hash = "sha256:886e6afc935ea2590b462664b161ca9a5e40168ea99e5300935f6591ad467df4"},
{file = "pylint-2.4.4.tar.gz", hash = "sha256:3db5468ad013380e987410a8d6956226963aed94ecb5f9d3a28acca6d9ac36cd"},
{file = "pylint-2.7.0-py3-none-any.whl", hash = "sha256:3ea3926700db399765db1faf53860f11e4e981a090646e9eacd01ca78e020579"},
{file = "pylint-2.7.0.tar.gz", hash = "sha256:2e0c6749d809985e4f181c336a8f89b2b797340d8049160bf95f35a3f0ecf6fc"},
]
pyparsing = [
{file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
{file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
]
pytest = [
{file = "pytest-3.10.1-py2.py3-none-any.whl", hash = "sha256:3f193df1cfe1d1609d4c583838bea3d532b18d6160fd3f55c9447fdca30848ec"},
{file = "pytest-3.10.1.tar.gz", hash = "sha256:e246cf173c01169b9617fc07264b7b1316e78d7a650055235d6d897bc80d9660"},
{file = "pytest-6.2.1-py3-none-any.whl", hash = "sha256:1969f797a1a0dbd8ccf0fecc80262312729afea9c17f1d70ebf85c5e76c6f7c8"},
{file = "pytest-6.2.1.tar.gz", hash = "sha256:66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306"},
]
regex = [
{file = "regex-2020.2.20-cp27-cp27m-win32.whl", hash = "sha256:99272d6b6a68c7ae4391908fc15f6b8c9a6c345a46b632d7fdb7ef6c883a2bbb"},
@ -501,10 +537,6 @@ rope = [
{file = "rope-0.14.0-py3-none-any.whl", hash = "sha256:f0dcf719b63200d492b85535ebe5ea9b29e0d0b8aebeb87fe03fc1a65924fdaf"},
{file = "rope-0.14.0.tar.gz", hash = "sha256:c5c5a6a87f7b1a2095fb311135e2a3d1f194f5ecb96900fdd0a9100881f48aaf"},
]
six = [
{file = "six-1.14.0-py2.py3-none-any.whl", hash = "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c"},
{file = "six-1.14.0.tar.gz", hash = "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a"},
]
toml = [
{file = "toml-0.10.0-py2.7.egg", hash = "sha256:f1db651f9657708513243e61e6cc67d101a39bad662eaa9b5546f789338e07a3"},
{file = "toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"},
@ -518,19 +550,28 @@ typed-ast = [
{file = "typed_ast-1.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:269151951236b0f9a6f04015a9004084a5ab0d5f19b57de779f908621e7d8b75"},
{file = "typed_ast-1.4.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:24995c843eb0ad11a4527b026b4dde3da70e1f2d8806c99b7b4a7cf491612652"},
{file = "typed_ast-1.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7"},
{file = "typed_ast-1.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:fcf135e17cc74dbfbc05894ebca928ffeb23d9790b3167a674921db19082401f"},
{file = "typed_ast-1.4.1-cp36-cp36m-win32.whl", hash = "sha256:4e3e5da80ccbebfff202a67bf900d081906c358ccc3d5e3c8aea42fdfdfd51c1"},
{file = "typed_ast-1.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:249862707802d40f7f29f6e1aad8d84b5aa9e44552d2cc17384b209f091276aa"},
{file = "typed_ast-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8ce678dbaf790dbdb3eba24056d5364fb45944f33553dd5869b7580cdbb83614"},
{file = "typed_ast-1.4.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:c9e348e02e4d2b4a8b2eedb48210430658df6951fa484e59de33ff773fbd4b41"},
{file = "typed_ast-1.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:bcd3b13b56ea479b3650b82cabd6b5343a625b0ced5429e4ccad28a8973f301b"},
{file = "typed_ast-1.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f208eb7aff048f6bea9586e61af041ddf7f9ade7caed625742af423f6bae3298"},
{file = "typed_ast-1.4.1-cp37-cp37m-win32.whl", hash = "sha256:d5d33e9e7af3b34a40dc05f498939f0ebf187f07c385fd58d591c533ad8562fe"},
{file = "typed_ast-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355"},
{file = "typed_ast-1.4.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:d205b1b46085271b4e15f670058ce182bd1199e56b317bf2ec004b6a44f911f6"},
{file = "typed_ast-1.4.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:6daac9731f172c2a22ade6ed0c00197ee7cc1221aa84cfdf9c31defeb059a907"},
{file = "typed_ast-1.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d"},
{file = "typed_ast-1.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:7e4c9d7658aaa1fc80018593abdf8598bf91325af6af5cce4ce7c73bc45ea53d"},
{file = "typed_ast-1.4.1-cp38-cp38-win32.whl", hash = "sha256:715ff2f2df46121071622063fc7543d9b1fd19ebfc4f5c8895af64a77a8c852c"},
{file = "typed_ast-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4"},
{file = "typed_ast-1.4.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:d43943ef777f9a1c42bf4e552ba23ac77a6351de620aa9acf64ad54933ad4d34"},
{file = "typed_ast-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:92c325624e304ebf0e025d1224b77dd4e6393f18aab8d829b5b7e04afe9b7a2c"},
{file = "typed_ast-1.4.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d648b8e3bf2fe648745c8ffcee3db3ff903d0817a01a12dd6a6ea7a8f4889072"},
{file = "typed_ast-1.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:fac11badff8313e23717f3dada86a15389d0708275bddf766cca67a84ead3e91"},
{file = "typed_ast-1.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:0d8110d78a5736e16e26213114a38ca35cb15b6515d535413b090bd50951556d"},
{file = "typed_ast-1.4.1-cp39-cp39-win32.whl", hash = "sha256:b52ccf7cfe4ce2a1064b18594381bccf4179c2ecf7f513134ec2f993dd4ab395"},
{file = "typed_ast-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:3742b32cf1c6ef124d57f95be609c473d7ec4c14d0090e5a5e05a15269fb4d0c"},
{file = "typed_ast-1.4.1.tar.gz", hash = "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b"},
]
wrapt = [

@ -1,6 +1,6 @@
[tool.poetry]
name = "diagrams"
version = "0.17.0"
version = "0.20.0"
description = "Diagram as Code"
license = "MIT"
authors = ["mingrammer <mingrammer@gmail.com>"]
@ -11,13 +11,13 @@ include = ["resources/**/*"]
[tool.poetry.dependencies]
python = "^3.6"
graphviz = "^0.13.2"
graphviz = ">=0.13.2,<0.17.0"
jinja2 = "^2.10"
contextvars = { version = "^2.4", python = "~3.6" }
[tool.poetry.dev-dependencies]
pytest = "^3.0"
pylint = "^2.4"
pytest = "^6.2"
pylint = "^2.7"
black = {version = "^19.0", allow-prereleases = true}
rope = "^0.14.0"
isort = "^4.3"

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save