# diagrams-js
> Draw cloud system architecture diagrams as code in TypeScript
- [diagrams-js](/)
## markdown-page
- [Markdown page example](/markdown-page): You don't need React to write simple standalone pages.
## playground
- [Playground](/playground): Interactive diagrams-js playground
## search
- [Search the documentation](/search)
## docs
- [AI Guide](/docs/ai-guide): Guide for AI LLMs and agents using diagrams-js
- [Credits](/docs/credits): Acknowledgments and credits
- [Examples](/docs/getting-started/examples): Real-world architecture examples
- [Installation](/docs/getting-started/installation): Installing diagrams-js in your project
- [Quick Start](/docs/getting-started/quickstart): Create your first diagram in minutes
- [API Reference](/docs/guides/api): Complete API documentation
- [Clusters](/docs/guides/clusters): Group nodes together with clusters
- [Custom Nodes](/docs/guides/custom-nodes): Use your own icons and images
- [Diagrams](/docs/guides/diagram): Understanding the Diagram class
- [Edges](/docs/guides/edge): Connecting nodes with customized edges
- [Migration from Python diagrams](/docs/guides/migration): Migrate from Python diagrams to TypeScript
- [Nodes](/docs/guides/node): Working with nodes and data flow
- [Providers](/docs/guides/providers): Available cloud providers
- [Rendering](/docs/guides/rendering): Render and export diagrams
- [Alibaba Cloud](/docs/nodes/alibabacloud): Node classes for Alibaba Cloud provider
- [AWS](/docs/nodes/aws): Node classes for Amazon Web Services provider
- [Azure](/docs/nodes/azure): Node classes for Microsoft Azure provider
- [C4 Model](/docs/nodes/c4): Visualize software architecture using the C4 model
- [DigitalOcean](/docs/nodes/digitalocean): Node classes for DigitalOcean provider
- [Elastic](/docs/nodes/elastic): Node classes for Elastic Stack provider
- [Firebase](/docs/nodes/firebase): Node classes for Firebase provider
- [GCP](/docs/nodes/gcp): Node classes for Google Cloud Platform provider
- [Generic](/docs/nodes/generic): Node classes for generic/on-premise resources
- [GIS](/docs/nodes/gis): Node classes for GIS (Geographic Information Systems) provider
- [IBM](/docs/nodes/ibm): Node classes for IBM Cloud provider
- [Kubernetes](/docs/nodes/k8s): Node classes for Kubernetes provider
- [OCI](/docs/nodes/oci): Node classes for Oracle Cloud Infrastructure provider
- [On-Premises](/docs/nodes/onprem): Node classes for on-premises infrastructure
- [OpenStack](/docs/nodes/openstack): Node classes for OpenStack provider
- [Outscale](/docs/nodes/outscale): Node classes for Outscale provider
- [Programming](/docs/nodes/programming): Node classes for programming languages and frameworks
- [SaaS](/docs/nodes/saas): Node classes for Software as a Service providers
---
# Full Documentation Content
# Markdown page example
You don't need React to write simple standalone pages.
---
Example: -- Select an example --
Share
## Tips[](#tips "Direct link to Tips")
* Use `Diagram("name")` to create diagrams
* Import providers like `diagrams-js/aws/compute`
* Call `await diagram.render()` to generate the SVG
---
[Skip to main content](#__docusaurus_skipToContent_fallback)
[](/)
[**diagrams-js**](/)[Docs](/docs/getting-started/installation)[Examples](/docs/getting-started/examples)[Guides](/docs/guides/diagram)[Providers](/docs/guides/providers)[Playground](/playground)
[GitHub](https://github.com/hatemhosny/diagrams-js)
Search
# Search the documentation
Type your search here
Powered by[](https://www.algolia.com/)
Docs
* [Getting Started](/docs/getting-started/quickstart)
* [Examples](/docs/getting-started/examples)
* [API Reference](/docs/guides/diagram)
* [llms.txt](/llms.txt)
* [llms-full.txt](/llms-full.txt)
Community
* [GitHub](https://github.com/hatemhosny/diagrams-js)
* [𝕏 / Twitter](https://x.com/hatem_hosny_)
* [Credits](/docs/credits)
More
* [Playground](/playground)
* [Sponsor 💚](https://github.com/sponsors/hatemhosny)
Copyright © 2026 [Hatem Hosny](https://github.com/hatemhosny). MIT License.
---
# AI Guide
This guide is specifically designed for AI Large Language Models (LLMs) and autonomous agents to effectively use the diagrams-js library for generating cloud architecture diagrams.
## Quick Reference Files[](#quick-reference-files "Direct link to Quick Reference Files")
LLM-Optimized Documentation
For optimal context when working with diagrams-js, use these specially formatted documentation files:
**📄 [llms.txt](/llms.txt)** - Concise overview of the library, installation, basic usage, and key concepts
**📄 [llms-full.txt](/llms-full.txt)** - Complete documentation including all guides, API reference, and examples
These files are specifically structured for AI consumption with:
* Clear API signatures and type definitions
* Code examples with expected outputs
* Provider reference lists
* Best practices and common patterns
## Key Concepts for AI Agents[](#key-concepts-for-ai-agents "Direct link to Key Concepts for AI Agents")
### 1. Diagram Structure[](#1-diagram-structure "Direct link to 1. Diagram Structure")
```
import { Diagram } from "diagrams-js";
// Always create a diagram instance first
const diagram = Diagram("Architecture Name", {
direction: "TB", // Top-Bottom (or "LR" for Left-Right)
});
```
### 2. Adding Nodes[](#2-adding-nodes "Direct link to 2. Adding Nodes")
Nodes can be added using the `add()` method:
```
import { Diagram, Node } from "diagrams-js";
const diagram = Diagram("Example");
// Basic node (no icon)
const basicNode = diagram.add(Node("Label"));
// Provider nodes (auto-include icons)
import { EC2 } from "diagrams-js/aws/compute";
const server = diagram.add(EC2("Web Server"));
```
### 3. Creating Connections[](#3-creating-connections "Direct link to 3. Creating Connections")
Use method chaining for connections:
```
import { Edge } from "diagrams-js";
// .to() - Forward direction (left to right)
nodeA.to(nodeB);
// Sequential connections
nodeA.to(nodeB).to(nodeC);
// Branching connections
nodeA.to([nodeB, nodeC]);
// Connect multiple nodes to one target
const nodes = [nodeB, nodeC, nodeD];
nodes.forEach((n) => n.to(nodeA));
// .from() - Reverse direction (right to left)
nodeB.from(nodeA);
// .with() - Undirected/bidirectional (no arrows)
nodeA.with(nodeB);
// With custom styling using Edge
nodeA.to(Edge({ color: "red", style: "dashed" }), nodeB);
```
### 4. Rendering Output[](#4-rendering-output "Direct link to 4. Rendering Output")
Always render and cleanup:
```
// Generate SVG
const svg = await diagram.render();
// Use the SVG (save to file, display, etc.)
// Clean up resources
diagram.destroy();
```
## Common Patterns[](#common-patterns "Direct link to Common Patterns")
### Web Application Architecture[](#web-application-architecture "Direct link to Web Application Architecture")
```
import { Diagram } from "diagrams-js";
import { ALB } from "diagrams-js/aws/network";
import { EC2, AutoScaling } from "diagrams-js/aws/compute";
import { RDS } from "diagrams-js/aws/database";
import { S3 } from "diagrams-js/aws/storage";
const diagram = Diagram("Web App Architecture");
const lb = diagram.add(ALB("Load Balancer"));
const web = diagram.add(EC2("Web Servers"));
const db = diagram.add(RDS("Database"));
const storage = diagram.add(S3("Assets"));
lb.to(web);
web.to([db, storage]);
const svg = await diagram.render();
diagram.destroy();
```
### Microservices Pattern[](#microservices-pattern "Direct link to Microservices Pattern")
```
import { Diagram } from "diagrams-js";
import { ECS } from "diagrams-js/aws/compute";
const diagram = Diagram("Microservices");
// Group related services using clusters
const apiCluster = diagram.cluster("API Gateway");
const auth = apiCluster.add(ECS("Auth Service"));
const rateLimiter = apiCluster.add(ECS("Rate Limiter"));
const servicesCluster = diagram.cluster("Services");
const userSvc = servicesCluster.add(ECS("User Service"));
const orderSvc = servicesCluster.add(ECS("Order Service"));
const paymentSvc = servicesCluster.add(ECS("Payment Service"));
// Connect clusters
auth.to([userSvc, orderSvc, paymentSvc]);
const svg = await diagram.render();
diagram.destroy();
```
## Provider Organization[](#provider-organization "Direct link to Provider Organization")
Cloud providers are organized hierarchically:
```
diagrams-js/
├── aws/
│ ├── compute/ # EC2, Lambda, etc.
│ ├── database/ # RDS, DynamoDB, etc.
│ ├── storage/ # S3, EBS, etc.
│ └── ...
├── azure/
│ ├── compute/
│ ├── database/
│ └── ...
└── gcp/
├── compute/
├── database/
└── ...
```
## Best Practices for AI Generation[](#best-practices-for-ai-generation "Direct link to Best Practices for AI Generation")
1. **Use descriptive node labels** that explain the component's role
2. **Group related nodes** using `Cluster` for better organization
3. **Set appropriate diagram direction** based on the layout needs
4. **Import only needed providers** to optimize bundle size
5. **Handle async operations** properly with `await diagram.render()`
## Environment Support[](#environment-support "Direct link to Environment Support")
* **Browsers**: Direct usage with ES modules
* **Node.js/Deno/Bun**: Save SVG to files using
`await diagram.save("filename.svg", { format: "svg" }); // or "png"/"jpeg"`
## Resources[](#resources "Direct link to Resources")
* 📚 [Full Documentation](/docs/getting-started/installation)
* 🔧 [API Reference](/docs/guides/diagram)
* 🎨 [Provider List](/docs/guides/providers)
* 📄 [llms.txt](/llms.txt) - Quick reference
* 📄 [llms-full.txt](/llms-full.txt) - Complete docs
---
# Credits
diagrams-js is made possible thanks to these amazing projects and communities:
## Original Project[](#original-project "Direct link to Original Project")
**[diagrams](https://github.com/mingrammer/diagrams)** by [mingrammer](https://github.com/mingrammer)
This project is a TypeScript port of the original Python diagrams library. We are grateful to mingrammer for creating such an elegant and powerful tool for drawing cloud architecture diagrams as code.
## Rendering Engine[](#rendering-engine "Direct link to Rendering Engine")
**[Graphviz](https://graphviz.org/)**
The graph visualization software that powers the layout and rendering of all diagrams. Graphviz provides the sophisticated algorithms for positioning nodes and routing edges.
**[viz-js](https://github.com/mdaines/viz-js)** by [mdaines](https://github.com/mdaines)
A WebAssembly-based port of Graphviz for JavaScript. This enables diagrams-js to run entirely in the browser without requiring any server-side components.
## Icon Sets[](#icon-sets "Direct link to Icon Sets")
All node icons are from the original [diagrams](https://github.com/mingrammer/diagrams) library, which includes icons from various cloud providers and technology vendors.
## Community[](#community "Direct link to Community")
Thank you to all contributors and users who help improve diagrams-js through bug reports, feature requests, and pull requests.
## License[](#license "Direct link to License")
diagrams-js is released under the MIT License, same as the original diagrams library.
---
# Examples
Here are comprehensive examples demonstrating the capabilities of diagrams-js.
info
These examples are reproduced from the original [Python's Diagrams library](https://diagrams.mingrammer.com/docs/getting-started/examples) documentations.
Live Demo
For interactive examples with live rendered diagrams, check out the [playground](/playground).
## Grouped Workers on AWS[](#grouped-workers-on-aws "Direct link to Grouped Workers on AWS")
```
import { Diagram } from "diagrams-js";
import { EC2 } from "diagrams-js/aws/compute";
import { RDS } from "diagrams-js/aws/database";
import { ELB } from "diagrams-js/aws/network";
const diagram = Diagram("Grouped Workers", {
direction: "TB",
});
const lb = diagram.add(ELB("lb"));
const workers = [
diagram.add(EC2("worker1")),
diagram.add(EC2("worker2")),
diagram.add(EC2("worker3")),
diagram.add(EC2("worker4")),
diagram.add(EC2("worker5")),
];
const events = diagram.add(RDS("events"));
lb.to(workers);
workers.forEach((w) => w.to(events));
const svg = await diagram.render();
diagram.destroy();
```

## Clustered Web Services[](#clustered-web-services "Direct link to Clustered Web Services")
```
import { Diagram } from "diagrams-js";
import { ECS } from "diagrams-js/aws/compute";
import { RDS, Elasticache } from "diagrams-js/aws/database";
import { ELB, Route53 } from "diagrams-js/aws/network";
const diagram = Diagram("Clustered Web Services");
const dns = diagram.add(Route53("dns"));
const lb = diagram.add(ELB("lb"));
const svcCluster = diagram.cluster("Services");
const svcGroup = [
svcCluster.add(ECS("web1")),
svcCluster.add(ECS("web2")),
svcCluster.add(ECS("web3")),
];
lb.to(svcGroup);
const dbCluster = diagram.cluster("DB Cluster");
const dbPrimary = dbCluster.add(RDS("userdb"));
const dbReplica = dbCluster.add(RDS("userdb ro"));
dbPrimary.with(dbReplica);
svcGroup.forEach((s) => s.to(dbPrimary));
const memcached = diagram.add(Elasticache("memcached"));
svcGroup.forEach((s) => s.to(memcached));
dns.to(lb);
const svg = await diagram.render();
diagram.destroy();
```

## Event Processing on AWS[](#event-processing-on-aws "Direct link to Event Processing on AWS")
```
import { Diagram } from "diagrams-js";
import { ECS, EKS, Lambda } from "diagrams-js/aws/compute";
import { Redshift } from "diagrams-js/aws/database";
import { SQS } from "diagrams-js/aws/integration";
import { S3 } from "diagrams-js/aws/storage";
const diagram = Diagram("Event Processing");
const source = diagram.add(EKS("k8s source"));
const store = diagram.add(S3("events store"));
const dw = diagram.add(Redshift("analytics"));
const flowsCluster = diagram.cluster("Event Flows");
const workersCluster = flowsCluster.cluster("Event Workers");
const workerNodes = [
workersCluster.add(ECS("worker1")),
workersCluster.add(ECS("worker2")),
workersCluster.add(ECS("worker3")),
];
source.to(workerNodes);
const queue = flowsCluster.add(SQS("event queue"));
workerNodes.forEach((w) => w.to(queue));
const procCluster = flowsCluster.cluster("Processing");
const handlers = [
procCluster.add(Lambda("proc1")),
procCluster.add(Lambda("proc2")),
procCluster.add(Lambda("proc3")),
];
queue.to(handlers);
handlers.forEach((h) => {
h.to(store);
h.to(dw);
});
const svg = await diagram.render();
diagram.destroy();
```

## Message Collecting System on GCP[](#message-collecting-system-on-gcp "Direct link to Message Collecting System on GCP")
```
import { Diagram } from "diagrams-js";
import { BigQuery, Dataflow, PubSub } from "diagrams-js/gcp/analytics";
import { AppEngine, Functions } from "diagrams-js/gcp/compute";
import { Bigtable } from "diagrams-js/gcp/database";
import { IotCore } from "diagrams-js/gcp/iot";
import { Storage } from "diagrams-js/gcp/storage";
const diagram = Diagram("Message Collecting");
const pubsub = diagram.add(PubSub("pubsub"));
const sourceCluster = diagram.cluster("Source of Data");
const sources = [
sourceCluster.add(IotCore("core1")),
sourceCluster.add(IotCore("core2")),
sourceCluster.add(IotCore("core3")),
];
sources.forEach((s) => s.to(pubsub));
const targetsCluster = diagram.cluster("Targets");
const flowCluster = targetsCluster.cluster("Data Flow");
const dataflow = flowCluster.add(Dataflow("data flow"));
pubsub.to(dataflow);
const lakeCluster = targetsCluster.cluster("Data Lake");
const bq = lakeCluster.add(BigQuery("bq"));
const gcs = lakeCluster.add(Storage("storage"));
dataflow.to([bq, gcs]);
const eventCluster = targetsCluster.cluster("Event Driven");
const procCluster = eventCluster.cluster("Processing");
const engine = procCluster.add(AppEngine("engine"));
const bigtable = procCluster.add(Bigtable("bigtable"));
dataflow.to(engine).to(bigtable);
const serverlessCluster = eventCluster.cluster("Serverless");
const func = serverlessCluster.add(Functions("func"));
const appengine = serverlessCluster.add(AppEngine("appengine"));
dataflow.to(func).to(appengine);
const svg = await diagram.render();
diagram.destroy();
```

## Exposed Pod with 3 Replicas on Kubernetes[](#exposed-pod-with-3-replicas-on-kubernetes "Direct link to Exposed Pod with 3 Replicas on Kubernetes")
```
import { Diagram } from "diagrams-js";
import { HPA } from "diagrams-js/k8s/clusterconfig";
import { Deployment, Pod, ReplicaSet } from "diagrams-js/k8s/compute";
import { Ingress, Service } from "diagrams-js/k8s/network";
const diagram = Diagram("Exposed Pod with 3 Replicas");
const ingress = diagram.add(Ingress("domain.com"));
const svc = diagram.add(Service("svc"));
const pods = [diagram.add(Pod("pod1")), diagram.add(Pod("pod2")), diagram.add(Pod("pod3"))];
const rs = diagram.add(ReplicaSet("rs"));
const dp = diagram.add(Deployment("dp"));
const hpa = diagram.add(HPA("hpa"));
ingress.to(svc);
svc.to(pods);
pods.forEach((p) => p.from(rs));
rs.from(dp);
dp.from(hpa);
const svg = await diagram.render();
diagram.destroy();
```

## Stateful Architecture on Kubernetes[](#stateful-architecture-on-kubernetes "Direct link to Stateful Architecture on Kubernetes")
```
import { Diagram } from "diagrams-js";
import { Pod, StatefulSet } from "diagrams-js/k8s/compute";
import { Service } from "diagrams-js/k8s/network";
import { PV, PVC } from "diagrams-js/k8s/storage";
const diagram = Diagram("Stateful Architecture");
const appsCluster = diagram.cluster("Apps");
const svc = appsCluster.add(Service("svc"));
const sts = appsCluster.add(StatefulSet("sts"));
const pods = [];
const pvcs = [];
for (let i = 0; i < 3; i++) {
const pod = appsCluster.add(Pod("pod"));
const pvc = appsCluster.add(PVC("pvc"));
pod.with(sts).with(pvc);
svc.to(pod).to(pvc);
pods.push(pod);
pvcs.push(pvc);
}
const pv = diagram.add(PV("pv"));
const sc = diagram.add(StorageClass("sc"));
pvcs.forEach((pvc) => {
pvc.from(pv);
});
pv.from(sc);
const svg = await diagram.render();
diagram.destroy();
```

## Advanced Web Service with On-Premises[](#advanced-web-service-with-on-premises "Direct link to Advanced Web Service with On-Premises")
```
import { Diagram } from "diagrams-js";
import { Spark } from "diagrams-js/onprem/analytics";
import { Server } from "diagrams-js/onprem/compute";
import { PostgreSQL } from "diagrams-js/onprem/database";
import { Redis } from "diagrams-js/onprem/inmemory";
import { Fluentd } from "diagrams-js/onprem/aggregator";
import { Grafana, Prometheus } from "diagrams-js/onprem/monitoring";
import { Nginx } from "diagrams-js/onprem/network";
import { Kafka } from "diagrams-js/onprem/queue";
const diagram = Diagram("Advanced Web Service with On-Premises");
const ingress = diagram.add(Nginx("ingress"));
const metrics = diagram.add(Prometheus("metric"));
const grafana = diagram.add(Grafana("monitoring"));
metrics.from(grafana);
const serviceCluster = diagram.cluster("Service Cluster");
const grpcsvc = [
serviceCluster.add(Server("grpc1")),
serviceCluster.add(Server("grpc2")),
serviceCluster.add(Server("grpc3")),
];
const sessionsCluster = diagram.cluster("Sessions HA");
const sessionPrimary = sessionsCluster.add(Redis("session"));
const sessionReplica = sessionsCluster.add(Redis("replica"));
sessionPrimary.with(sessionReplica);
sessionReplica.from(metrics);
grpcsvc.forEach((svc) => svc.to(sessionPrimary));
const dbCluster = diagram.cluster("Database HA");
const dbPrimary = dbCluster.add(PostgreSQL("users"));
const dbReplica = dbCluster.add(PostgreSQL("replica"));
dbPrimary.with(dbReplica);
dbReplica.from(metrics);
grpcsvc.forEach((svc) => svc.to(dbPrimary));
const aggregator = diagram.add(Fluentd("logging"));
const kafka = diagram.add(Kafka("stream"));
const spark = diagram.add(Spark("analytics"));
aggregator.to(kafka).to(spark);
ingress.to(grpcsvc);
grpcsvc.forEach((svc) => svc.to(aggregator));
const svg = await diagram.render();
diagram.destroy();
```

## Advanced Web Service with On-Premises (with colors and labels)[](#advanced-web-service-with-on-premises-with-colors-and-labels "Direct link to Advanced Web Service with On-Premises (with colors and labels)")
```
import { Diagram, Edge } from "diagrams-js";
import { Spark } from "diagrams-js/onprem/analytics";
import { Server } from "diagrams-js/onprem/compute";
import { PostgreSQL } from "diagrams-js/onprem/database";
import { Redis } from "diagrams-js/onprem/inmemory";
import { Fluentd } from "diagrams-js/onprem/aggregator";
import { Grafana, Prometheus } from "diagrams-js/onprem/monitoring";
import { Nginx } from "diagrams-js/onprem/network";
import { Kafka } from "diagrams-js/onprem/queue";
const diagram = Diagram("Advanced Web Service with On-Premises (colored)");
const ingress = diagram.add(Nginx("ingress"));
const metrics = diagram.add(Prometheus("metric"));
const grafana = diagram.add(Grafana("monitoring"));
grafana.to(Edge({ color: "firebrick", style: "dashed" }), metrics);
const serviceCluster = diagram.cluster("Service Cluster");
const grpcsvc = [
serviceCluster.add(Server("grpc1")),
serviceCluster.add(Server("grpc2")),
serviceCluster.add(Server("grpc3")),
];
const sessionsCluster = diagram.cluster("Sessions HA");
const sessionPrimary = sessionsCluster.add(Redis("session"));
const sessionReplica = sessionsCluster.add(Redis("replica"));
sessionPrimary.with(Edge({ color: "brown", style: "dashed" }), sessionReplica);
sessionReplica.from(Edge({ label: "collect" }), metrics);
grpcsvc.forEach((svc) => svc.to(Edge({ color: "brown" }), sessionPrimary));
const dbCluster = diagram.cluster("Database HA");
const dbPrimary = dbCluster.add(PostgreSQL("users"));
const dbReplica = dbCluster.add(PostgreSQL("replica"));
dbPrimary.with(Edge({ color: "brown", style: "dotted" }), dbReplica);
dbReplica.from(Edge({ label: "collect" }), metrics);
grpcsvc.forEach((svc) => svc.to(Edge({ color: "black" }), dbPrimary));
const aggregator = diagram.add(Fluentd("logging"));
const kafka = diagram.add(Kafka("stream"));
const spark = diagram.add(Spark("analytics"));
aggregator.to(Edge({ label: "parse" }), kafka);
kafka.to(Edge({ color: "black", style: "bold" }), spark);
grpcsvc.forEach((svc) => {
ingress.to(Edge({ color: "darkgreen", forward: true, reverse: true }), svc);
});
grpcsvc.forEach((svc) => svc.to(Edge({ color: "darkorange" }), aggregator));
const svg = await diagram.render();
diagram.destroy();
```

## RabbitMQ Consumers with Custom Nodes[](#rabbitmq-consumers-with-custom-nodes "Direct link to RabbitMQ Consumers with Custom Nodes")
```
import { Diagram, Custom } from "diagrams-js";
import { Pod } from "diagrams-js/k8s/compute";
import { Aurora } from "diagrams-js/aws/database";
const diagram = Diagram("Broker Consumers");
const consumersCluster = diagram.cluster("Consumers");
const consumers = [
consumersCluster.add(Pod("worker")),
consumersCluster.add(Pod("worker")),
consumersCluster.add(Pod("worker")),
];
const queue = diagram.add(
Custom("Message queue", "https://jpadilla.github.io/rabbitmqapp/assets/img/icon.png", {
width: "1.0",
}),
);
const database = diagram.add(Aurora("Database"));
queue.to(consumers);
consumers.forEach((consumer) => consumer.to(database));
const svg = await diagram.render();
diagram.destroy();
```

## Next Steps[](#next-steps "Direct link to Next Steps")
* Explore [all providers](/docs/guides/providers) and their available nodes
* Learn about [custom nodes](/docs/guides/custom-nodes) for external icons
* Read the [complete API reference](/docs/guides/diagram)
* Try the [playground](/playground) for interactive examples
---
# Installation
## Node.js[](#nodejs "Direct link to Node.js")
Install [`diagrams-js`](https://www.npmjs.com/package/diagrams-js) using your preferred package manager:
* npm
* yarn
* pnpm
* bun
```
npm install diagrams-js
```
```
yarn add diagrams-js
```
```
pnpm add diagrams-js
```
```
bun add diagrams-js
```
### Optional Dependencies[](#optional-dependencies "Direct link to Optional Dependencies")
[Rendering](/docs/guides/rendering) SVG does not require any additional packages. However, for PNG and JPG rendering in Node.js, the package `sharp` is required:
* npm
* yarn
* pnpm
* bun
```
npm install sharp
```
```
yarn add sharp
```
```
pnpm add sharp
```
```
bun add sharp
```
## Browser Usage[](#browser-usage "Direct link to Browser Usage")
### Using a Bundler[](#using-a-bundler "Direct link to Using a Bundler")
Install via npm and import:
```
import { Diagram } from "diagrams-js";
import { EC2 } from "diagrams-js/aws/compute";
```
### Using CDN[](#using-cdn "Direct link to Using CDN")
```
```
### Using CDN with Import Map[](#using-cdn-with-import-map "Direct link to Using CDN with Import Map")
You can use import maps to enable bare module imports while loading from a CDN:
```
```
Import Maps
Import maps allow you to use bare module specifiers (like `diagrams-js/aws/compute`) instead of full URLs, making your code cleaner and more portable between bundler and CDN environments.
## Next Steps[](#next-steps "Direct link to Next Steps")
* Follow the [Quick Start guide](/docs/getting-started/quickstart) to create your first diagram
* Explore the [Examples](/docs/getting-started/examples) for real-world use cases
* Check out the [Node Reference](/docs/guides/providers) for all available providers and services
---
# Quick Start
Get started with diagrams-js in just a few lines of code.
## Basic Diagram[](#basic-diagram "Direct link to Basic Diagram")
Create a simple diagram with nodes and connections:
```
import { Diagram, Node } from "diagrams-js";
// Create a diagram
const diagram = Diagram("My First Diagram", {
// Diagram options
direction: "TB", // Top to Bottom
});
// Add nodes
const web = diagram.add(Node("Web Server"));
const app = diagram.add(Node("App Server"));
const db = diagram.add(Node("Database"));
// Connect them
web.to(app).to(db);
// Render to SVG
const svg = await diagram.render();
// Clean up
diagram.destroy();
```

## Using Cloud Providers[](#using-cloud-providers "Direct link to Using Cloud Providers")
Import nodes from cloud providers to get automatic icons:
```
import { Diagram } from "diagrams-js";
import { EC2, Lambda } from "diagrams-js/aws/compute";
import { RDS } from "diagrams-js/aws/database";
import { S3 } from "diagrams-js/aws/storage";
import { ALB } from "diagrams-js/aws/network";
const diagram = Diagram("AWS Architecture", { direction: "TB" });
// Create nodes with icons
const lb = diagram.add(ALB("Load Balancer"));
const web = diagram.add(EC2("Web Server"));
const api = diagram.add(Lambda("API"));
const db = diagram.add(RDS("Database"));
const storage = diagram.add(S3("Storage"));
// Connect them
lb.to(web).to(api);
api.to([db, storage]);
// Render to SVG
const svg = await diagram.render();
// Clean up
diagram.destroy();
```

## Browser Integration[](#browser-integration "Direct link to Browser Integration")
Display the diagram directly in the browser:
```
```
## Node.js Usage[](#nodejs-usage "Direct link to Node.js Usage")
Save diagrams to files in Node.js:
```
import { Diagram } from "diagrams-js";
import { EC2 } from "diagrams-js/aws/compute";
import { writeFileSync } from "fs";
const diagram = Diagram("My Diagram");
diagram.add(EC2("Server"));
const svg = await diagram.render();
writeFileSync("diagram.svg", svg);
diagram.destroy();
```
## Key Concepts[](#key-concepts "Direct link to Key Concepts")
1. **Diagram**: The container for your architecture diagram
2. **Nodes**: Components like servers, databases, and services
3. **Connections**: Relationships between nodes using `.to()`, `.from()`, and `.with()`
4. **Providers**: Cloud service categories (AWS, Azure, GCP, etc.)
## Next Steps[](#next-steps "Direct link to Next Steps")
* Learn about [Diagrams](/docs/guides/diagram) in detail
* Explore [Nodes](/docs/guides/node) and connections
* See [all providers](/docs/guides/providers) and their services
* Check out [complete examples](/docs/getting-started/examples)
---
# API Reference
## Core Functions[](#core-functions "Direct link to Core Functions")
### Diagram(name, options?)[](#diagramname-options "Direct link to Diagram(name, options?)")
Creates a new diagram.
**Parameters:**
* `name` (string): The diagram name (used for labeling and default filename)
* `options` (DiagramOptions, optional): Configuration options
**Returns:** Diagram instance
```
const diagram = Diagram("My Diagram", {
direction: "LR",
theme: "neutral",
});
```
**DiagramOptions:**
| Property | Type | Default | Description |
| ------------ | --------------------------------------------- | ------------------- | ---------------------------------- |
| `name` | string | Same as first param | Diagram display name |
| `filename` | string | Lowercase name | Output filename |
| `direction` | "TB" \| "BT" \| "LR" \| "RL" | "LR" | Layout direction |
| `curvestyle` | "ortho" \| "curved" \| "spline" \| "polyline" | "ortho" | Edge curve style |
| `theme` | ThemeName | "neutral" | Color theme |
| `autolabel` | boolean | false | Auto-prefix labels with class name |
| `strict` | boolean | false | Use strict graph mode |
| `graphAttr` | Record\ | | Custom graph attributes |
| `nodeAttr` | Record\ | | Custom node attributes |
| `edgeAttr` | Record\ | | Custom edge attributes |
**Methods:**
#### diagram.add(node)[](#diagramaddnode "Direct link to diagram.add(node)")
Add a node to the diagram.
```
const server = diagram.add(EC2("Web Server"));
```
#### diagram.cluster(label)[](#diagramclusterlabel "Direct link to diagram.cluster(label)")
Create a cluster (subgraph) for grouping nodes.
```
const cluster = diagram.cluster("Services");
const node = cluster.add(EC2("web"));
```
#### diagram.render(options?)[](#diagramrenderoptions "Direct link to diagram.render(options?)")
Render the diagram to a string or binary format.
```
// SVG (default)
const svg = await diagram.render();
// PNG
const png = await diagram.render({ format: "png" });
// DOT
const dot = await diagram.render({ format: "dot" });
// As data URL (for direct use in browsers)
const dataUrl = await diagram.render({ dataUrl: true });
// Returns: data:image/svg+xml;base64,PHN2Zy4uLg==
// PNG as data URL
const pngDataUrl = await diagram.render({ format: "png", dataUrl: true });
// Returns: data:image/png;base64,iVBORw0KGgo...
```
**RenderOptions:**
| Property | Type | Default | Description |
| ------------- | -------------------------------- | ------- | ----------------------- |
| `format` | "svg" \| "png" \| "jpg" \| "dot" | "svg" | Output format |
| `width` | number | Auto | Output width (PNG/JPG) |
| `height` | number | Auto | Output height (PNG/JPG) |
| `scale` | number | 2 | Scale factor (PNG/JPG) |
| `injectIcons` | boolean | true | Auto-inject node icons |
| `dataUrl` | boolean | false | Return as data URL |
#### diagram.save(filepath?)[](#diagramsavefilepath "Direct link to diagram.save(filepath?)")
Save the diagram to a file.
```
await diagram.save("diagram.svg");
await diagram.save("diagram.png");
```
#### diagram.destroy()[](#diagramdestroy "Direct link to diagram.destroy()")
Clean up resources.
```
diagram.destroy();
```
### Node(label, options?)[](#nodelabel-options "Direct link to Node(label, options?)")
Creates a generic node. Usually you use provider-specific node functions instead.
```
import { Node } from "diagrams-js";
const node = diagram.add(Node("My Node"));
```
**Node Methods:**
#### node.to(target)[](#nodetotarget "Direct link to node.to(target)")
Create a forward connection (left to right).
```
web.to(api);
web.to([api1, api2]); // Multiple targets
```
#### node.from(source)[](#nodefromsource "Direct link to node.from(source)")
Create a reverse connection (right to left).
```
db.from(api);
db.from([api1, api2]); // Multiple sources
```
#### node.with(target)[](#nodewithtarget "Direct link to node.with(target)")
Create an undirected connection (no arrows).
```
primary.with(replica);
```
### Edge(options?)[](#edgeoptions "Direct link to Edge(options?)")
Creates an edge with custom properties.
```
import { Edge } from "diagrams-js";
// Simple edge
web.to(Edge({ color: "red" }), db);
// With multiple properties
web.to(
Edge({
label: "data",
color: "blue",
style: "dashed",
}),
db,
);
```
**EdgeOptions:**
| Property | Type | Description |
| --------------- | ------- | ---------------------------------------- |
| `label` | string | Edge label text |
| `color` | string | Edge color |
| `style` | string | Line style (solid, dashed, dotted, bold) |
| `forward` | boolean | Show forward arrow |
| `reverse` | boolean | Show reverse arrow |
| `[key: string]` | any | Any Graphviz edge attribute |
### Custom(label, iconUrl, options?)[](#customlabel-iconurl-options "Direct link to Custom(label, iconUrl, options?)")
Creates a node with a custom icon.
```
import { Custom } from "diagrams-js";
// From URL
const node = diagram.add(Custom("Service", "https://example.com/icon.png"));
// From data URL
const node2 = diagram.add(Custom("Local", "data:image/png;base64,..."));
```
**Parameters:**
* `label` (string): Node label
* `iconUrl` (string): Icon URL or data URL
* `options` (object, optional): Additional node options
## Provider Imports[](#provider-imports "Direct link to Provider Imports")
### AWS[](#aws "Direct link to AWS")
```
import { EC2, Lambda, ECS } from "diagrams-js/aws/compute";
import { RDS, DynamoDB } from "diagrams-js/aws/database";
import { S3 } from "diagrams-js/aws/storage";
import { ALB, Route53 } from "diagrams-js/aws/network";
```
### Azure[](#azure "Direct link to Azure")
```
import { VM } from "diagrams-js/azure/compute";
import { SQLDatabase } from "diagrams-js/azure/databases";
```
### GCP[](#gcp "Direct link to GCP")
```
import { GCE, GKE } from "diagrams-js/gcp/compute";
import { CloudSQL } from "diagrams-js/gcp/database";
import { CloudStorage } from "diagrams-js/gcp/storage";
```
### Kubernetes[](#kubernetes "Direct link to Kubernetes")
```
import { Pod, Deployment } from "diagrams-js/k8s/compute";
import { Service, Ingress } from "diagrams-js/k8s/network";
```
See [Providers](/docs/guides/providers) for complete list.
## Utility Functions[](#utility-functions "Direct link to Utility Functions")
### setIconBaseDir(dir)[](#seticonbasedirdir "Direct link to setIconBaseDir(dir)")
Set the base directory for loading icons in Node.js.
```
import { setIconBaseDir } from "diagrams-js";
setIconBaseDir("./icons");
```
### getIconBaseDir()[](#geticonbasedir "Direct link to getIconBaseDir()")
Get the current icon base directory.
```
import { getIconBaseDir } from "diagrams-js";
const dir = getIconBaseDir();
```
## Type Exports[](#type-exports "Direct link to Type Exports")
```
import type { DiagramOptions, EdgeOptions, NodeOptions, ThemeName, ThemeConfig } from "diagrams-js";
```
## Complete Example[](#complete-example "Direct link to Complete Example")
```
import { Diagram, Edge, Custom, type DiagramOptions } from "diagrams-js";
import { EC2 } from "diagrams-js/aws/compute";
import { RDS } from "diagrams-js/aws/database";
const options: DiagramOptions = {
direction: "TB",
theme: "pastel",
graphAttr: {
fontsize: "20",
},
};
const diagram = Diagram("Architecture", options);
const web = diagram.add(EC2("Web"));
const db = diagram.add(RDS("DB"));
const cache = diagram.add(Custom("Cache", "https://example.com/redis.png"));
web.to(Edge({ color: "blue" }), db);
web.to(Edge({ style: "dashed" }), cache);
// Render as SVG string
const svg = await diagram.render();
// Or render as data URL for direct use
const dataUrl = await diagram.render({ dataUrl: true });
// Display in browser
const img = document.createElement("img");
img.src = dataUrl;
document.body.appendChild(img);
await diagram.save("architecture.svg");
diagram.destroy();
```
---
# Clusters
Clusters allow you to group related nodes together visually.
## Creating a Cluster[](#creating-a-cluster "Direct link to Creating a Cluster")
```
import { Diagram } from "diagrams-js";
import { ECS } from "diagrams-js/aws/compute";
const diagram = Diagram("Clustered Services");
const cluster = diagram.cluster("Services");
const web1 = cluster.add(ECS("web1"));
const web2 = cluster.add(ECS("web2"));
```
## Nested Clusters[](#nested-clusters "Direct link to Nested Clusters")
```
const outer = diagram.cluster("Production");
const inner = outer.cluster("Services");
const service = inner.add(ECS("API"));
```
## Cluster with Connections[](#cluster-with-connections "Direct link to Cluster with Connections")
```
const frontend = diagram.cluster("Frontend");
const backend = diagram.cluster("Backend");
const web = frontend.add(ECS("Web"));
const api = backend.add(ECS("API"));
web.to(api);
```
## Full Example[](#full-example "Direct link to Full Example")
```
import { Diagram } from "diagrams-js";
import { ECS } from "diagrams-js/aws/compute";
import { RDS } from "diagrams-js/aws/database";
import { ALB } from "diagrams-js/aws/network";
const diagram = Diagram("Full Architecture");
const lb = diagram.add(ALB("Load Balancer"));
const webCluster = diagram.cluster("Web Tier");
const web1 = webCluster.add(ECS("web1"));
const web2 = webCluster.add(ECS("web2"));
const dbCluster = diagram.cluster("Database Tier");
const primary = dbCluster.add(RDS("Primary"));
const replica = dbCluster.add(RDS("Replica"));
lb.to([web1, web2]);
web1.to(primary);
web2.to(primary);
primary.with(replica);
const svg = await diagram.render();
```
---
# Custom Nodes
Use the `Custom` function to create nodes with your own icons from URLs, local files, or data URLs.
## From Remote URL[](#from-remote-url "Direct link to From Remote URL")
```
import { Diagram, Custom } from "diagrams-js";
const diagram = Diagram("Custom Icons");
const service = diagram.add(Custom("My Service", "https://example.com/icon.png"));
```
## From Data URL[](#from-data-url "Direct link to From Data URL")
```
const iconData = "data:image/png;base64,iVBORw0KGgo...";
const node = diagram.add(Custom("Embedded", iconData));
```
## With Clusters[](#with-clusters "Direct link to With Clusters")
```
const cluster = diagram.cluster("External Services");
const openstack = cluster.add(Custom("OpenStack", "https://example.com/openstack.png"));
const elastic = cluster.add(Custom("Elastic", "https://example.com/elastic.png"));
openstack.to(elastic);
```
## Supported Formats[](#supported-formats "Direct link to Supported Formats")
* PNG
* JPEG/JPG
* GIF
* SVG
* WebP
## Notes[](#notes "Direct link to Notes")
* In browsers: Icons are fetched from URLs
* In Node.js: Icons can be loaded from local files or URLs
* Icons are automatically converted to data URLs for embedding
---
# Diagrams
`Diagram` is the primary object representing a diagram.
## Basic Usage[](#basic-usage "Direct link to Basic Usage")
`Diagram` represents a global diagram context. You create a diagram by calling the `Diagram` function. The first parameter will be used to generate the output filename.
```
import { Diagram } from "diagrams-js";
import { EC2 } from "diagrams-js/aws/compute";
const diagram = Diagram("Simple Diagram");
diagram.add(EC2("web"));
const svg = await diagram.render();
```
This generates an SVG diagram with a single `EC2` node.
## Options[](#options "Direct link to Options")
### Direction[](#direction "Direct link to Direction")
Control the layout direction of the diagram:
```
const diagram = Diagram("My Diagram", {
direction: "LR", // Left to Right (default)
// direction: "TB" // Top to Bottom
// direction: "BT" // Bottom to Top
// direction: "RL" // Right to Left
});
```
### Curve Style[](#curve-style "Direct link to Curve Style")
Control how edges are drawn:
```
const diagram = Diagram("My Diagram", {
curvestyle: "ortho", // Orthogonal lines (default)
// curvestyle: "curved" // Curved lines
// curvestyle: "spline" // Spline curves
// curvestyle: "polyline" // Polyline
});
```
See [Graphviz splines documentation](https://graphviz.org/docs/attrs/splines/) for more details.
### Theme[](#theme "Direct link to Theme")
Choose a color theme for clusters:
```
const diagram = Diagram("My Diagram", {
theme: "pastel", // Default
// theme: "neutral"
// theme: "blues"
// theme: "greens"
// theme: "orange"
});
```
### Filename[](#filename "Direct link to Filename")
Specify a custom filename for saving:
```
const diagram = Diagram("My Diagram", {
filename: "my_custom_name", // Will save as my_custom_name.svg
});
```
### Custom Attributes[](#custom-attributes "Direct link to Custom Attributes")
Pass custom Graphviz attributes:
```
const diagram = Diagram("My Diagram", {
graphAttr: {
fontsize: "15",
bgcolor: "transparent",
},
nodeAttr: {
style: "filled",
},
edgeAttr: {
color: "red",
style: "dashed",
},
});
```
See [Graphviz attributes reference](https://graphviz.org/doc/info/attrs.html) for available options including custom attributes for [graphs](https://graphviz.org/docs/graph/), [nodes](https://graphviz.org/docs/nodes/), and [edges](https://graphviz.org/docs/edges/).
## Methods[](#methods "Direct link to Methods")
### add(node)[](#addnode "Direct link to add(node)")
Add a node to the diagram:
```
const server = diagram.add(EC2("Web Server"));
```
### cluster(label)[](#clusterlabel "Direct link to cluster(label)")
Create a cluster (group) of nodes:
```
const cluster = diagram.cluster("Services");
const web = cluster.add(EC2("Web"));
```
### render(options?)[](#renderoptions "Direct link to render(options?)")
Render the diagram to SVG or other formats:
```
// Render as SVG (default)
const svg = await diagram.render();
// Render as PNG
const png = await diagram.render({ format: "png" });
// Render as DOT
const dot = await diagram.render({ format: "dot" });
```
### save(filepath?)[](#savefilepath "Direct link to save(filepath?)")
Save the diagram to a file. The behavior differs based on the environment:
**Node.js**: Writes the file to disk using the filesystem.
**Browsers**: Triggers a file download to the user's device.
```
// Auto-detect format from extension
await diagram.save("diagram.svg");
await diagram.save("diagram.png");
// Or use the default filename
await diagram.save();
```
You can also specify render options:
```
// Save as PNG with specific dimensions
await diagram.save("diagram.png", {
format: "png",
width: 1200,
height: 800,
});
```
### destroy()[](#destroy "Direct link to destroy()")
Clean up resources when done:
```
diagram.destroy();
```
## Complete Example[](#complete-example "Direct link to Complete Example")
```
import { Diagram } from "diagrams-js";
import { EC2, Lambda } from "diagrams-js/aws/compute";
import { RDS } from "diagrams-js/aws/database";
import { S3 } from "diagrams-js/aws/storage";
const diagram = Diagram("Web Architecture", {
direction: "TB",
theme: "pastel",
graphAttr: {
fontsize: "20",
},
});
const web = diagram.add(EC2("Web Server"));
const api = diagram.add(Lambda("API"));
const db = diagram.add(RDS("Database"));
const storage = diagram.add(S3("Storage"));
web.to(api).to(db);
api.to(storage);
const svg = await diagram.render();
await diagram.save("web-architecture.svg");
diagram.destroy();
```
## Browser Integration[](#browser-integration "Direct link to Browser Integration")
In browsers, you can display the diagram directly:
```
const svg = await diagram.render();
document.getElementById("diagram-container").innerHTML = svg;
```
---
# Edges
`Edge` represents a connection between nodes with additional properties.
## Basic Usage[](#basic-usage "Direct link to Basic Usage")
An edge object contains attributes like **label**, **color**, and **style**. These mirror the corresponding [Graphviz edge attributes](https://graphviz.org/docs/edges/).
```
import { Diagram, Edge } from "diagrams-js";
import { Nginx } from "diagrams-js/onprem/network";
import { Grafana, Prometheus } from "diagrams-js/onprem/monitoring";
const diagram = Diagram("Monitoring");
const metrics = diagram.add(Prometheus("metric"));
const grafana = diagram.add(Grafana("monitoring"));
// Create a colored, dashed edge
grafana.to(Edge({ color: "firebrick", style: "dashed" }), metrics);
```
## Edge Properties[](#edge-properties "Direct link to Edge Properties")
### Label[](#label "Direct link to Label")
Add text labels to edges:
```
aggregator.to(Edge({ label: "parse" }), kafka);
```
### Color[](#color "Direct link to Color")
Set edge colors:
```
web.to(Edge({ color: "blue" }), api);
api.to(Edge({ color: "green" }), db);
```
### Style[](#style "Direct link to Style")
Choose from various styles:
```
// Dashed line
primary.with(Edge({ style: "dashed" }), replica);
// Dotted line
primary.with(Edge({ style: "dotted" }), replica);
// Bold line
primary.with(Edge({ style: "bold" }), replica);
// Solid line (default)
primary.with(Edge({ style: "solid" }), replica);
```
See [Graphviz style attribute](https://graphviz.org/docs/attrs/style/) for more options.
### Direction[](#direction "Direct link to Direction")
Control arrow direction:
```
// Forward arrow (default)
Edge({ forward: true });
// Reverse arrow
Edge({ reverse: true });
// Bidirectional
Edge({ forward: true, reverse: true });
// No arrows
Edge({}); // Neither forward nor reverse
```
## Combining Properties[](#combining-properties "Direct link to Combining Properties")
Combine multiple properties:
```
import { Redis } from "diagrams-js/onprem/inmemory";
const diagram = Diagram("Database Cluster");
const primary = diagram.add(Redis("session"));
const replica = diagram.add(Redis("replica"));
// Colored, dashed connection
primary.with(Edge({ color: "brown", style: "dashed" }), replica);
// With label
replica.from(Edge({ label: "collect", color: "blue" }), metrics);
```
## Edge Chaining[](#edge-chaining "Direct link to Edge Chaining")
Edges can be chained for complex connections:
```
aggregator.to(Edge({ label: "parse" }), kafka).to(Edge({ color: "black", style: "bold" }), spark);
```
## Multiple Targets with Edges[](#multiple-targets-with-edges "Direct link to Multiple Targets with Edges")
Apply the same edge style to multiple connections:
```
const grpcsvc = [
diagram.add(Server("grpc1")),
diagram.add(Server("grpc2")),
diagram.add(Server("grpc3")),
];
// All connections use brown color
grpcsvc.forEach((svc) => svc.to(Edge({ color: "brown" }), sessionPrimary));
```
## Advanced Example[](#advanced-example "Direct link to Advanced Example")
```
import { Diagram, Edge } from "diagrams-js";
import { Spark } from "diagrams-js/onprem/analytics";
import { Server } from "diagrams-js/onprem/compute";
import { PostgreSQL } from "diagrams-js/onprem/database";
import { Redis } from "diagrams-js/onprem/inmemory";
import { Fluentd } from "diagrams-js/onprem/aggregator";
import { Grafana, Prometheus } from "diagrams-js/onprem/monitoring";
import { Nginx } from "diagrams-js/onprem/network";
import { Kafka } from "diagrams-js/onprem/queue";
const diagram = Diagram("Advanced Web Service with On-Premises (colored)");
const ingress = diagram.add(Nginx("ingress"));
const metrics = diagram.add(Prometheus("metric"));
const grafana = diagram.add(Grafana("monitoring"));
// Red dashed line from Grafana to Prometheus
grafana.to(Edge({ color: "firebrick", style: "dashed" }), metrics);
const serviceCluster = diagram.cluster("Service Cluster");
const grpcsvc = [
serviceCluster.add(Server("grpc1")),
serviceCluster.add(Server("grpc2")),
serviceCluster.add(Server("grpc3")),
];
const sessionsCluster = diagram.cluster("Sessions HA");
const sessionPrimary = sessionsCluster.add(Redis("session"));
const sessionReplica = sessionsCluster.add(Redis("replica"));
// Brown dashed line for session replication
sessionPrimary.with(Edge({ color: "brown", style: "dashed" }), sessionReplica);
// Labelled edge from replica to metrics
sessionReplica.from(Edge({ label: "collect" }), metrics);
grpcsvc.forEach((svc) => svc.to(Edge({ color: "brown" }), sessionPrimary));
const dbCluster = diagram.cluster("Database HA");
const dbPrimary = dbCluster.add(PostgreSQL("users"));
const dbReplica = dbCluster.add(PostgreSQL("replica"));
// Brown dotted line for DB replication
dbPrimary.with(Edge({ color: "brown", style: "dotted" }), dbReplica);
// Labelled edge from replica to metrics
dbReplica.from(Edge({ label: "collect" }), metrics);
grpcsvc.forEach((svc) => svc.to(Edge({ color: "black" }), dbPrimary));
const aggregator = diagram.add(Fluentd("logging"));
const kafka = diagram.add(Kafka("stream"));
const spark = diagram.add(Spark("analytics"));
// Labelled and styled edges
aggregator.to(Edge({ label: "parse" }), kafka);
kafka.to(Edge({ color: "black", style: "bold" }), spark);
// Bidirectional edges with color
grpcsvc.forEach((svc) => {
ingress.to(Edge({ color: "darkgreen", forward: true, reverse: true }), svc);
});
grpcsvc.forEach((svc) => svc.to(Edge({ color: "darkorange" }), aggregator));
const svg = await diagram.render();
```
## Custom Attributes[](#custom-attributes "Direct link to Custom Attributes")
You can pass any Graphviz edge attribute:
```
Edge({
label: "data",
color: "red",
style: "dashed",
penwidth: "2", // Line thickness
arrowhead: "vee", // Arrowhead style
arrowsize: "1.5", // Arrow size
minlen: "2", // Minimum edge length
});
```
See [Graphviz edge attributes](https://graphviz.org/docs/edges/) for the complete list.
---
# Migration from Python diagrams
This guide helps you migrate from the Python diagrams library to diagrams-js.
## Syntax Differences[](#syntax-differences "Direct link to Syntax Differences")
### Creating Diagrams[](#creating-diagrams "Direct link to Creating Diagrams")
**Python:**
```
from diagrams import Diagram
from diagrams.aws.compute import EC2
with Diagram("My Diagram", show=False):
EC2("web")
```
**TypeScript:**
```
import { Diagram } from "diagrams-js";
import { EC2 } from "diagrams-js/aws/compute";
const diagram = Diagram("My Diagram");
diagram.add(EC2("web"));
const svg = await diagram.render();
```
Key differences:
* Use function call `Diagram()` instead of context manager `with Diagram()`
* Explicitly add nodes with `diagram.add()`
* Call `render()` and `destroy()` explicitly
### Creating Nodes[](#creating-nodes "Direct link to Creating Nodes")
**Python:**
```
web = EC2("Web Server")
```
**TypeScript:**
```
const web = diagram.add(EC2("Web Server"));
```
Key differences:
* Always add nodes to diagram explicitly
* Provider functions return node instances
### Connections[](#connections "Direct link to Connections")
| Python | TypeScript |
| ------------------------- | ------------------------------------------ |
| `node1 >> node2` | `node1.to(node2)` |
| `node1 << node2` | `node1.from(node2)` |
| `node1 - node2` | `node1.with(node2)` |
| `node1 >> [node2, node3]` | `node1.to([node2, node3])` |
| `node1 << [node2, node3]` | `node1.from([node2, node3])` |
| `[node1, node2] >> node3` | `[node1, node2].forEach(n => n.to(node3))` |
**Python:**
```
web >> api >> database
api >> storage
```
**TypeScript:**
```
web.to(api).to(database);
api.to(storage);
```
### Clusters[](#clusters "Direct link to Clusters")
**Python:**
```
from diagrams import Cluster
with Diagram("Services"):
with Cluster("Web Tier"):
web1 = EC2("web1")
web2 = EC2("web2")
```
**TypeScript:**
```
import { Diagram } from "diagrams-js";
const diagram = Diagram("Services");
const webTier = diagram.cluster("Web Tier");
const web1 = webTier.add(EC2("web1"));
const web2 = webTier.add(EC2("web2"));
```
Key differences:
* Call `diagram.cluster()` to create a cluster
* Add nodes to cluster with `cluster.add()`
### Nested Clusters[](#nested-clusters "Direct link to Nested Clusters")
**Python:**
```
with Cluster("Production"):
with Cluster("Services"):
api = ECS("api")
```
**TypeScript:**
```
const production = diagram.cluster("Production");
const services = production.cluster("Services");
const api = services.add(ECS("api"));
```
### Edges[](#edges "Direct link to Edges")
**Python:**
```
from diagrams import Edge
web >> Edge(color="red") >> db
```
**TypeScript:**
```
import { Edge } from "diagrams-js";
web.to(Edge({ color: "red" }), db);
```
Key differences:
* Use object notation for options: `Edge({ color: "red" })`
* Pass edge as first argument to `to()`, `from()`, or `with()`
### Custom Nodes[](#custom-nodes "Direct link to Custom Nodes")
**Python:**
```
from diagrams.custom import Custom
with Diagram("Custom"):
prod = Custom("Product", "https://mywebsite.com/icon.png")
```
**TypeScript:**
```
import { Custom } from "diagrams-js";
const diagram = Diagram("Custom");
const prod = diagram.add(Custom("Product", "https://mywebsite.com/icon.png"));
```
## Import Paths[](#import-paths "Direct link to Import Paths")
Provider import paths follow the same pattern:
| Python | TypeScript |
| --------------------------------------- | ------------------------------------------------ |
| `from diagrams.aws.compute import EC2` | `import { EC2 } from "diagrams-js/aws/compute"` |
| `from diagrams.aws.database import RDS` | `import { RDS } from "diagrams-js/aws/database"` |
| `from diagrams.gcp.compute import GCE` | `import { GCE } from "diagrams-js/gcp/compute"` |
| `from diagrams.k8s.compute import Pod` | `import { Pod } from "diagrams-js/k8s/compute"` |
## Full Migration Example[](#full-migration-example "Direct link to Full Migration Example")
**Python:**
```
from diagrams import Diagram, Cluster, Edge
from diagrams.aws.compute import EC2, ECS
from diagrams.aws.database import RDS
from diagrams.aws.network import ELB
with Diagram("Web Services", show=False):
lb = ELB("lb")
with Cluster("Services"):
web1 = ECS("web1")
web2 = ECS("web2")
db = RDS("database")
lb >> [web1, web2]
web1 >> Edge(color="red") >> db
web2 >> Edge(color="red") >> db
```
**TypeScript:**
```
import { Diagram, Edge } from "diagrams-js";
import { EC2, ECS } from "diagrams-js/aws/compute";
import { RDS } from "diagrams-js/aws/database";
import { ELB } from "diagrams-js/aws/network";
const diagram = Diagram("Web Services");
const lb = diagram.add(ELB("lb"));
const services = diagram.cluster("Services");
const web1 = services.add(ECS("web1"));
const web2 = services.add(ECS("web2"));
const db = diagram.add(RDS("database"));
lb.to([web1, web2]);
web1.to(Edge({ color: "red" }), db);
web2.to(Edge({ color: "red" }), db);
const svg = await diagram.render();
diagram.destroy();
```
## Missing Features[](#missing-features "Direct link to Missing Features")
Some Python features are not implemented:
* Automatic file opening (use `save()` instead)
* Multiple output formats at once (call `render()` multiple times)
## New Features[](#new-features "Direct link to New Features")
TypeScript version has some unique features:
* Browser support - runs directly in browsers
* Dependency-free - no extra dependencies needed for browsers and SVG rendering in Node.js
* Render as [Data URL](/docs/guides/rendering#render-as-data-url) - returns base64 data URL for easy embedding in HTML
* Type safety - full TypeScript support with IDE autocompletion
## Getting Help[](#getting-help "Direct link to Getting Help")
* [Documentation](/docs/getting-started/installation) - Full documentation
* [Examples](/docs/getting-started/examples) - More examples
* [API Reference](/docs/guides/diagram) - Complete API
* [GitHub Issues](https://github.com/hatemhosny/diagrams-js/issues) - Report issues
---
# Nodes
`Node` is an object representing a node or system component.
## Basic Usage[](#basic-usage "Direct link to Basic Usage")
A node object consists of three parts: **provider**, **resource type**, and **name**. You create nodes by calling provider functions:
```
import { Diagram } from "diagrams-js";
import { EC2 } from "diagrams-js/aws/compute";
const diagram = Diagram("Simple Diagram");
const server = diagram.add(EC2("web"));
```
In this example, `EC2` is a node of resource type `compute` provided by `aws`.
## Available Providers[](#available-providers "Direct link to Available Providers")
You can use nodes from any supported [provider](/docs/guides/providers):
```
// AWS resources
import { ECS, Lambda } from "diagrams-js/aws/compute";
import { RDS, ElastiCache } from "diagrams-js/aws/database";
import { ELB, Route53, VPC } from "diagrams-js/aws/network";
// Azure resources
import { FunctionApps } from "diagrams-js/azure/compute";
import { BlobStorage } from "diagrams-js/azure/storage";
// GCP resources
import { AppEngine, GKE } from "diagrams-js/gcp/compute";
import { AutoML } from "diagrams-js/gcp/ml";
// Kubernetes resources
import { Pod, StatefulSet } from "diagrams-js/k8s/compute";
import { Service } from "diagrams-js/k8s/network";
import { PV, PVC, StorageClass } from "diagrams-js/k8s/storage";
```
See the [Providers](/docs/guides/providers) section for a complete list.
## Data Flow[](#data-flow "Direct link to Data Flow")
You can represent data flow by connecting nodes with the methods `to()`, `from()`, and `with()`.
### Forward Direction (to)[](#forward-direction-to "Direct link to Forward Direction (to)")
Connect nodes from left to right:
```
web.to(api).to(database);
```
This creates a chain: web → api → database
### Reverse Direction (from)[](#reverse-direction-from "Direct link to Reverse Direction (from)")
Connect nodes from right to left:
```
database.from(api); // Creates: api → database with reverse arrow
database.from([backup1, backup2]); // Multiple sources
```
### Undirected (with)[](#undirected-with "Direct link to Undirected (with)")
Connect nodes with no direction:
```
primary.with(replica);
```
This creates a connection without arrowheads.
## Multiple Connections[](#multiple-connections "Direct link to Multiple Connections")
Connect one node to multiple targets:
```
loadBalancer.to([server1, server2, server3]);
```
## Chaining[](#chaining "Direct link to Chaining")
Chain multiple connections together:
```
client
.to(loadBalancer)
.to([web1, web2])
.forEach((web) => web.to(api));
```
## Direction Control[](#direction-control "Direct link to Direction Control")
Change the overall diagram direction:
```
const diagram = Diagram("Workers", {
direction: "TB", // Top to Bottom
});
const lb = diagram.add(ELB("lb"));
const worker1 = diagram.add(EC2("worker1"));
const worker2 = diagram.add(EC2("worker2"));
const db = diagram.add(RDS("events"));
lb.to(worker1).to(db);
lb.to(worker2).to(db);
```
## Complete Example[](#complete-example "Direct link to Complete Example")
```
import { Diagram } from "diagrams-js";
import { EC2 } from "diagrams-js/aws/compute";
import { RDS } from "diagrams-js/aws/database";
import { ELB } from "diagrams-js/aws/network";
import { S3 } from "diagrams-js/aws/storage";
const diagram = Diagram("Web Services", { direction: "LR" });
const lb = diagram.add(ELB("lb"));
const web = diagram.add(EC2("web"));
const db = diagram.add(RDS("userdb"));
const storage = diagram.add(S3("store"));
// Forward flow
lb.to(web).to(db).to(storage);
// Multiple paths
const stats = diagram.add(EC2("stat"));
web.to(db).from(stats); // stats also connects to db
// Bidirectional
web.with(db); // Undirected connection
const svg = await diagram.render();
```
## Notes[](#notes "Direct link to Notes")
* The order of rendered diagrams is not guaranteed
* Use `direction` option to control the overall layout
* Node connections create directed graph edges
---
# Providers
diagrams-js includes 17 providers with over 2000 node classes.
## Available Providers[](#available-providers "Direct link to Available Providers")
| Provider | Description |
| ---------------------------------------- | ---------------------------------------- |
| [AWS](/docs/nodes/aws) | Amazon Web Services nodes |
| [Azure](/docs/nodes/azure) | Microsoft Azure nodes |
| [GCP](/docs/nodes/gcp) | Google Cloud Platform nodes |
| [Kubernetes](/docs/nodes/k8s) | Kubernetes nodes |
| [OnPrem](/docs/nodes/onprem) | On-premises infrastructure nodes |
| [AlibabaCloud](/docs/nodes/alibabacloud) | Alibaba Cloud nodes |
| [DigitalOcean](/docs/nodes/digitalocean) | DigitalOcean nodes |
| [Elastic](/docs/nodes/elastic) | Elastic Stack nodes |
| [Firebase](/docs/nodes/firebase) | Firebase nodes |
| [Generic](/docs/nodes/generic) | Generic computing nodes |
| [GIS](/docs/nodes/gis) | GIS nodes |
| [IBM](/docs/nodes/ibm) | IBM Cloud nodes |
| [OCI](/docs/nodes/oci) | Oracle Cloud Infrastructure nodes |
| [OpenStack](/docs/nodes/openstack) | OpenStack nodes |
| [Outscale](/docs/nodes/outscale) | Outscale nodes |
| [Programming](/docs/nodes/programming) | Programming language and framework nodes |
| [SaaS](/docs/nodes/saas) | SaaS application nodes |
| [C4 Model](/docs/nodes/c4) | C4 model for software architecture |
## Usage[](#usage "Direct link to Usage")
```
import { EC2, Lambda } from "diagrams-js/aws/compute";
import { RDS } from "diagrams-js/aws/database";
import { GCE } from "diagrams-js/gcp/compute";
```
## Provider Structure[](#provider-structure "Direct link to Provider Structure")
Each provider is organized by service category:
```
providers/aws/
├── compute.ts # EC2, Lambda, ECS, etc.
├── database.ts # RDS, DynamoDB, etc.
├── storage.ts # S3, EBS, etc.
└── ...
```
---
# Rendering
## Render to SVG[](#render-to-svg "Direct link to Render to SVG")
```
const diagram = Diagram("My Diagram");
// ... add nodes
const svg = await diagram.render();
// Returns SVG string
```
## Render to PNG[](#render-to-png "Direct link to Render to PNG")
```
const png = await diagram.render({ format: "png" });
// Returns Uint8Array
```
## Render to JPG[](#render-to-jpg "Direct link to Render to JPG")
```
const jpg = await diagram.render({ format: "jpg" });
// Returns Uint8Array
```
## Render as Data URL[](#render-as-data-url "Direct link to Render as Data URL")
Get the diagram as a base64 data URL for direct use in HTML:
```
// SVG as data URL
const svgDataUrl = await diagram.render({ dataUrl: true });
// Returns: data:image/svg+xml;base64,...
// PNG as data URL
const pngDataUrl = await diagram.render({ format: "png", dataUrl: true });
// Returns: data:image/png;base64,...
// JPG as data URL
const jpgDataUrl = await diagram.render({ format: "jpg", dataUrl: true });
// Returns: data:image/jpeg;base64,...
```
### Browser Usage with Data URLs[](#browser-usage-with-data-urls "Direct link to Browser Usage with Data URLs")
Use data URLs to display diagrams in `
` tags or download them:
```
const dataUrl = await diagram.render({ dataUrl: true });
// Display in an image element
const img = document.createElement("img");
img.src = dataUrl;
document.body.appendChild(img);
// Or create a download link
const link = document.createElement("a");
link.href = dataUrl;
link.download = "diagram.svg";
link.click();
```
## Save to File[](#save-to-file "Direct link to Save to File")
```
// Auto-detects format from extension
await diagram.save("diagram.svg");
await diagram.save("diagram.png");
```
## Render Options[](#render-options "Direct link to Render Options")
```
const svg = await diagram.render({
format: "svg", // 'svg' | 'png' | 'jpg' | 'dot'
width: 800, // Output width (for PNG/JPG)
height: 600, // Output height (for PNG/JPG)
scale: 2, // Scale factor (default: 2 for PNG/JPG)
dataUrl: true, // Return as base64 data URL
});
```
## Browser Usage[](#browser-usage "Direct link to Browser Usage")
```
// Get SVG string
const svg = await diagram.render();
// Insert into DOM
document.getElementById("diagram").innerHTML = svg;
```
## Node.js Usage[](#nodejs-usage "Direct link to Node.js Usage")
```
import { writeFile } from "fs/promises";
const svg = await diagram.render();
await writeFile("output.svg", svg);
const png = await diagram.render({ format: "png" });
await writeFile("output.png", Buffer.from(png));
```
---
# Alibaba Cloud
Node classes list for the Alibaba Cloud provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { AnalyticDb, ClickHouse, DataLakeAnalytics } from "diagrams-js/alibabacloud/analytics";
import { ApiGateway, BeeBot, BlockchainAsAService } from "diagrams-js/alibabacloud/application";
const diagram = Diagram("Alibaba Cloud Architecture", { direction: "TB" });
const node1 = diagram.add(AnalyticDb("Node 1"));
const node2 = diagram.add(ApiGateway("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/alibabacloud) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### alibabacloud/analytics[](#alibabacloudanalytics "Direct link to alibabacloud/analytics")

**AnalyticDb**
```
import { AnalyticDb } from "diagrams-js/alibabacloud/analytics";
```

**ClickHouse**
```
import { ClickHouse } from "diagrams-js/alibabacloud/analytics";
```

**DataLakeAnalytics**
```
import { DataLakeAnalytics } from "diagrams-js/alibabacloud/analytics";
```

**ElaticMapReduce**
```
import { ElaticMapReduce } from "diagrams-js/alibabacloud/analytics";
```

**OpenSearch**
```
import { OpenSearch } from "diagrams-js/alibabacloud/analytics";
```
### alibabacloud/application[](#alibabacloudapplication "Direct link to alibabacloud/application")

**ApiGateway**
```
import { ApiGateway } from "diagrams-js/alibabacloud/application";
```
 **BeeBot**
```
import { BeeBot } from "diagrams-js/alibabacloud/application";
```

**BlockchainAsAService**
```
import { BlockchainAsAService } from "diagrams-js/alibabacloud/application";
```

**CloudCallCenter**
```
import { CloudCallCenter } from "diagrams-js/alibabacloud/application";
```

**CodePipeline**
```
import { CodePipeline } from "diagrams-js/alibabacloud/application";
```

**DirectMail**
```
import { DirectMail } from "diagrams-js/alibabacloud/application";
```

**LogService**
```
import { LogService } from "diagrams-js/alibabacloud/application";
```

**MessageNotificationService**
```
import { MessageNotificationService } from "diagrams-js/alibabacloud/application";
```

**NodeJsPerformancePlatform**
```
import { NodeJsPerformancePlatform } from "diagrams-js/alibabacloud/application";
```

**OpenSearch**
```
import { OpenSearch } from "diagrams-js/alibabacloud/application";
```

**PerformanceTestingService**
```
import { PerformanceTestingService } from "diagrams-js/alibabacloud/application";
```
 **RdCloud**
```
import { RdCloud } from "diagrams-js/alibabacloud/application";
```

**SmartConversationAnalysis**
```
import { SmartConversationAnalysis } from "diagrams-js/alibabacloud/application";
```
 **Yida**
```
import { Yida } from "diagrams-js/alibabacloud/application";
```
### alibabacloud/communication[](#alibabacloudcommunication "Direct link to alibabacloud/communication")

**DirectMail**
```
import { DirectMail } from "diagrams-js/alibabacloud/communication";
```

**MobilePush**
```
import { MobilePush } from "diagrams-js/alibabacloud/communication";
```
### alibabacloud/compute[](#alibabacloudcompute "Direct link to alibabacloud/compute")

**AutoScaling**
```
import { AutoScaling } from "diagrams-js/alibabacloud/compute";
```

**BatchCompute**
```
import { BatchCompute } from "diagrams-js/alibabacloud/compute";
```

**ContainerRegistry**
```
import { ContainerRegistry } from "diagrams-js/alibabacloud/compute";
```

**ContainerService**
```
import { ContainerService } from "diagrams-js/alibabacloud/compute";
```

**ElasticComputeService**
```
import { ElasticComputeService } from "diagrams-js/alibabacloud/compute";
```

**ElasticContainerInstance**
```
import { ElasticContainerInstance } from "diagrams-js/alibabacloud/compute";
```

**ElasticHighPerformanceComputing**
```
import { ElasticHighPerformanceComputing } from "diagrams-js/alibabacloud/compute";
```

**ElasticSearch**
```
import { ElasticSearch } from "diagrams-js/alibabacloud/compute";
```

**FunctionCompute**
```
import { FunctionCompute } from "diagrams-js/alibabacloud/compute";
```

**OperationOrchestrationService**
```
import { OperationOrchestrationService } from "diagrams-js/alibabacloud/compute";
```

**ResourceOrchestrationService**
```
import { ResourceOrchestrationService } from "diagrams-js/alibabacloud/compute";
```

**ServerLoadBalancer**
```
import { ServerLoadBalancer } from "diagrams-js/alibabacloud/compute";
```

**ServerlessAppEngine**
```
import { ServerlessAppEngine } from "diagrams-js/alibabacloud/compute";
```

**SimpleApplicationServer**
```
import { SimpleApplicationServer } from "diagrams-js/alibabacloud/compute";
```

**WebAppService**
```
import { WebAppService } from "diagrams-js/alibabacloud/compute";
```
### alibabacloud/database[](#alibabaclouddatabase "Direct link to alibabacloud/database")

**ApsaradbCassandra**
```
import { ApsaradbCassandra } from "diagrams-js/alibabacloud/database";
```

**ApsaradbHbase**
```
import { ApsaradbHbase } from "diagrams-js/alibabacloud/database";
```

**ApsaradbMemcache**
```
import { ApsaradbMemcache } from "diagrams-js/alibabacloud/database";
```

**ApsaradbMongodb**
```
import { ApsaradbMongodb } from "diagrams-js/alibabacloud/database";
```

**ApsaradbOceanbase**
```
import { ApsaradbOceanbase } from "diagrams-js/alibabacloud/database";
```

**ApsaradbPolardb**
```
import { ApsaradbPolardb } from "diagrams-js/alibabacloud/database";
```

**ApsaradbPostgresql**
```
import { ApsaradbPostgresql } from "diagrams-js/alibabacloud/database";
```

**ApsaradbPpas**
```
import { ApsaradbPpas } from "diagrams-js/alibabacloud/database";
```

**ApsaradbRedis**
```
import { ApsaradbRedis } from "diagrams-js/alibabacloud/database";
```

**ApsaradbSqlserver**
```
import { ApsaradbSqlserver } from "diagrams-js/alibabacloud/database";
```

**DataManagementService**
```
import { DataManagementService } from "diagrams-js/alibabacloud/database";
```

**DataTransmissionService**
```
import { DataTransmissionService } from "diagrams-js/alibabacloud/database";
```

**DatabaseBackupService**
```
import { DatabaseBackupService } from "diagrams-js/alibabacloud/database";
```

**DisributeRelationalDatabaseService**
```
import { DisributeRelationalDatabaseService } from "diagrams-js/alibabacloud/database";
```

**GraphDatabaseService**
```
import { GraphDatabaseService } from "diagrams-js/alibabacloud/database";
```

**HybriddbForMysql**
```
import { HybriddbForMysql } from "diagrams-js/alibabacloud/database";
```

**RelationalDatabaseService**
```
import { RelationalDatabaseService } from "diagrams-js/alibabacloud/database";
```
### alibabacloud/iot[](#alibabacloudiot "Direct link to alibabacloud/iot")

**IotInternetDeviceId**
```
import { IotInternetDeviceId } from "diagrams-js/alibabacloud/iot";
```

**IotLinkWan**
```
import { IotLinkWan } from "diagrams-js/alibabacloud/iot";
```

**IotMobileConnectionPackage**
```
import { IotMobileConnectionPackage } from "diagrams-js/alibabacloud/iot";
```

**IotPlatform**
```
import { IotPlatform } from "diagrams-js/alibabacloud/iot";
```
### alibabacloud/network[](#alibabacloudnetwork "Direct link to alibabacloud/network")
 **Cdn**
```
import { Cdn } from "diagrams-js/alibabacloud/network";
```

**CloudEnterpriseNetwork**
```
import { CloudEnterpriseNetwork } from "diagrams-js/alibabacloud/network";
```

**ElasticIpAddress**
```
import { ElasticIpAddress } from "diagrams-js/alibabacloud/network";
```

**ExpressConnect**
```
import { ExpressConnect } from "diagrams-js/alibabacloud/network";
```

**NatGateway**
```
import { NatGateway } from "diagrams-js/alibabacloud/network";
```

**ServerLoadBalancer**
```
import { ServerLoadBalancer } from "diagrams-js/alibabacloud/network";
```

**SmartAccessGateway**
```
import { SmartAccessGateway } from "diagrams-js/alibabacloud/network";
```

**VirtualPrivateCloud**
```
import { VirtualPrivateCloud } from "diagrams-js/alibabacloud/network";
```

**VpnGateway**
```
import { VpnGateway } from "diagrams-js/alibabacloud/network";
```
### alibabacloud/security[](#alibabacloudsecurity "Direct link to alibabacloud/security")

**AntiBotService**
```
import { AntiBotService } from "diagrams-js/alibabacloud/security";
```

**AntiDdosBasic**
```
import { AntiDdosBasic } from "diagrams-js/alibabacloud/security";
```

**AntiDdosPro**
```
import { AntiDdosPro } from "diagrams-js/alibabacloud/security";
```

**AntifraudService**
```
import { AntifraudService } from "diagrams-js/alibabacloud/security";
```

**BastionHost**
```
import { BastionHost } from "diagrams-js/alibabacloud/security";
```

**CloudFirewall**
```
import { CloudFirewall } from "diagrams-js/alibabacloud/security";
```

**CloudSecurityScanner**
```
import { CloudSecurityScanner } from "diagrams-js/alibabacloud/security";
```

**ContentModeration**
```
import { ContentModeration } from "diagrams-js/alibabacloud/security";
```

**CrowdsourcedSecurityTesting**
```
import { CrowdsourcedSecurityTesting } from "diagrams-js/alibabacloud/security";
```

**DataEncryptionService**
```
import { DataEncryptionService } from "diagrams-js/alibabacloud/security";
```
 **DbAudit**
```
import { DbAudit } from "diagrams-js/alibabacloud/security";
```

**GameShield**
```
import { GameShield } from "diagrams-js/alibabacloud/security";
```

**IdVerification**
```
import { IdVerification } from "diagrams-js/alibabacloud/security";
```

**ManagedSecurityService**
```
import { ManagedSecurityService } from "diagrams-js/alibabacloud/security";
```

**SecurityCenter**
```
import { SecurityCenter } from "diagrams-js/alibabacloud/security";
```

**ServerGuard**
```
import { ServerGuard } from "diagrams-js/alibabacloud/security";
```

**SslCertificates**
```
import { SslCertificates } from "diagrams-js/alibabacloud/security";
```

**WebApplicationFirewall**
```
import { WebApplicationFirewall } from "diagrams-js/alibabacloud/security";
```
### alibabacloud/storage[](#alibabacloudstorage "Direct link to alibabacloud/storage")

**CloudStorageGateway**
```
import { CloudStorageGateway } from "diagrams-js/alibabacloud/storage";
```

**FileStorageHdfs**
```
import { FileStorageHdfs } from "diagrams-js/alibabacloud/storage";
```

**FileStorageNas**
```
import { FileStorageNas } from "diagrams-js/alibabacloud/storage";
```

**HybridBackupRecovery**
```
import { HybridBackupRecovery } from "diagrams-js/alibabacloud/storage";
```

**HybridCloudDisasterRecovery**
```
import { HybridCloudDisasterRecovery } from "diagrams-js/alibabacloud/storage";
```
 **Imm**
```
import { Imm } from "diagrams-js/alibabacloud/storage";
```

**ObjectStorageService**
```
import { ObjectStorageService } from "diagrams-js/alibabacloud/storage";
```

**ObjectTableStore**
```
import { ObjectTableStore } from "diagrams-js/alibabacloud/storage";
```
### alibabacloud/web[](#alibabacloudweb "Direct link to alibabacloud/web")
 **Dns**
```
import { Dns } from "diagrams-js/alibabacloud/web";
```
 **Domain**
```
import { Domain } from "diagrams-js/alibabacloud/web";
```
---
# AWS
Node classes list for the AWS provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { AmazonOpensearchService, Analytics, Athena } from "diagrams-js/aws/analytics";
import { ArVr, Sumerian } from "diagrams-js/aws/ar";
const diagram = Diagram("AWS Architecture", { direction: "TB" });
const node1 = diagram.add(AmazonOpensearchService("Node 1"));
const node2 = diagram.add(ArVr("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/aws) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### aws/analytics[](#awsanalytics "Direct link to aws/analytics")

**AmazonOpensearchService**
```
import { AmazonOpensearchService } from "diagrams-js/aws/analytics";
```
 **Analytics**
```
import { Analytics } from "diagrams-js/aws/analytics";
```
 **Athena**
```
import { Athena } from "diagrams-js/aws/analytics";
```

**CloudsearchSearchDocuments**
```
import { CloudsearchSearchDocuments } from "diagrams-js/aws/analytics";
```
 **Cloudsearch**
```
import { Cloudsearch } from "diagrams-js/aws/analytics";
```

**DataLakeResource**
```
import { DataLakeResource } from "diagrams-js/aws/analytics";
```

**DataPipeline**
```
import { DataPipeline } from "diagrams-js/aws/analytics";
```

**ElasticsearchService**
```
import { ElasticsearchService } from "diagrams-js/aws/analytics";
```
 **EMRCluster**
```
import { EMRCluster } from "diagrams-js/aws/analytics";
```

**EMREngineMaprM3**
```
import { EMREngineMaprM3 } from "diagrams-js/aws/analytics";
```

**EMREngineMaprM5**
```
import { EMREngineMaprM5 } from "diagrams-js/aws/analytics";
```

**EMREngineMaprM7**
```
import { EMREngineMaprM7 } from "diagrams-js/aws/analytics";
```
 **EMREngine**
```
import { EMREngine } from "diagrams-js/aws/analytics";
```

**EMRHdfsCluster**
```
import { EMRHdfsCluster } from "diagrams-js/aws/analytics";
```
 **EMR**
```
import { EMR } from "diagrams-js/aws/analytics";
```

**GlueCrawlers**
```
import { GlueCrawlers } from "diagrams-js/aws/analytics";
```

**GlueDataCatalog**
```
import { GlueDataCatalog } from "diagrams-js/aws/analytics";
```
 **Glue**
```
import { Glue } from "diagrams-js/aws/analytics";
```

**KinesisDataAnalytics**
```
import { KinesisDataAnalytics } from "diagrams-js/aws/analytics";
```

**KinesisDataFirehose**
```
import { KinesisDataFirehose } from "diagrams-js/aws/analytics";
```

**KinesisDataStreams**
```
import { KinesisDataStreams } from "diagrams-js/aws/analytics";
```

**KinesisVideoStreams**
```
import { KinesisVideoStreams } from "diagrams-js/aws/analytics";
```
 **Kinesis**
```
import { Kinesis } from "diagrams-js/aws/analytics";
```

**LakeFormation**
```
import { LakeFormation } from "diagrams-js/aws/analytics";
```

**ManagedStreamingForKafka**
```
import { ManagedStreamingForKafka } from "diagrams-js/aws/analytics";
```
 **Quicksight**
```
import { Quicksight } from "diagrams-js/aws/analytics";
```

**RedshiftDenseComputeNode**
```
import { RedshiftDenseComputeNode } from "diagrams-js/aws/analytics";
```

**RedshiftDenseStorageNode**
```
import { RedshiftDenseStorageNode } from "diagrams-js/aws/analytics";
```
 **Redshift**
```
import { Redshift } from "diagrams-js/aws/analytics";
```
### aws/ar[](#awsar "Direct link to aws/ar")
 **ArVr**
```
import { ArVr } from "diagrams-js/aws/ar";
```
 **Sumerian**
```
import { Sumerian } from "diagrams-js/aws/ar";
```
### aws/blockchain[](#awsblockchain "Direct link to aws/blockchain")

**BlockchainResource**
```
import { BlockchainResource } from "diagrams-js/aws/blockchain";
```
 **Blockchain**
```
import { Blockchain } from "diagrams-js/aws/blockchain";
```

**ManagedBlockchain**
```
import { ManagedBlockchain } from "diagrams-js/aws/blockchain";
```

**QuantumLedgerDatabaseQldb**
```
import { QuantumLedgerDatabaseQldb } from "diagrams-js/aws/blockchain";
```
### aws/business[](#awsbusiness "Direct link to aws/business")

**AlexaForBusiness**
```
import { AlexaForBusiness } from "diagrams-js/aws/business";
```

**BusinessApplications**
```
import { BusinessApplications } from "diagrams-js/aws/business";
```
 **Chime**
```
import { Chime } from "diagrams-js/aws/business";
```
 **Workmail**
```
import { Workmail } from "diagrams-js/aws/business";
```
### aws/compute[](#awscompute "Direct link to aws/compute")
 **AppRunner**
```
import { AppRunner } from "diagrams-js/aws/compute";
```

**ApplicationAutoScaling**
```
import { ApplicationAutoScaling } from "diagrams-js/aws/compute";
```
 **Batch**
```
import { Batch } from "diagrams-js/aws/compute";
```

**ComputeOptimizer**
```
import { ComputeOptimizer } from "diagrams-js/aws/compute";
```
 **Compute**
```
import { Compute } from "diagrams-js/aws/compute";
```
 **EC2Ami**
```
import { EC2Ami } from "diagrams-js/aws/compute";
```

**EC2AutoScaling**
```
import { EC2AutoScaling } from "diagrams-js/aws/compute";
```

**EC2ContainerRegistryImage**
```
import { EC2ContainerRegistryImage } from "diagrams-js/aws/compute";
```

**EC2ContainerRegistryRegistry**
```
import { EC2ContainerRegistryRegistry } from "diagrams-js/aws/compute";
```

**EC2ContainerRegistry**
```
import { EC2ContainerRegistry } from "diagrams-js/aws/compute";
```

**EC2ElasticIpAddress**
```
import { EC2ElasticIpAddress } from "diagrams-js/aws/compute";
```

**EC2ImageBuilder**
```
import { EC2ImageBuilder } from "diagrams-js/aws/compute";
```
 **EC2Instance**
```
import { EC2Instance } from "diagrams-js/aws/compute";
```

**EC2Instances**
```
import { EC2Instances } from "diagrams-js/aws/compute";
```
 **EC2Rescue**
```
import { EC2Rescue } from "diagrams-js/aws/compute";
```

**EC2SpotInstance**
```
import { EC2SpotInstance } from "diagrams-js/aws/compute";
```
 **EC2**
```
import { EC2 } from "diagrams-js/aws/compute";
```

**ElasticBeanstalkApplication**
```
import { ElasticBeanstalkApplication } from "diagrams-js/aws/compute";
```

**ElasticBeanstalkDeployment**
```
import { ElasticBeanstalkDeployment } from "diagrams-js/aws/compute";
```

**ElasticBeanstalk**
```
import { ElasticBeanstalk } from "diagrams-js/aws/compute";
```

**ElasticContainerServiceContainer**
```
import { ElasticContainerServiceContainer } from "diagrams-js/aws/compute";
```

**ElasticContainerServiceServiceConnect**
```
import { ElasticContainerServiceServiceConnect } from "diagrams-js/aws/compute";
```

**ElasticContainerServiceService**
```
import { ElasticContainerServiceService } from "diagrams-js/aws/compute";
```

**ElasticContainerServiceTask**
```
import { ElasticContainerServiceTask } from "diagrams-js/aws/compute";
```

**ElasticContainerService**
```
import { ElasticContainerService } from "diagrams-js/aws/compute";
```

**ElasticKubernetesService**
```
import { ElasticKubernetesService } from "diagrams-js/aws/compute";
```
 **Fargate**
```
import { Fargate } from "diagrams-js/aws/compute";
```

**LambdaFunction**
```
import { LambdaFunction } from "diagrams-js/aws/compute";
```
 **Lambda**
```
import { Lambda } from "diagrams-js/aws/compute";
```
 **Lightsail**
```
import { Lightsail } from "diagrams-js/aws/compute";
```
 **LocalZones**
```
import { LocalZones } from "diagrams-js/aws/compute";
```
 **Outposts**
```
import { Outposts } from "diagrams-js/aws/compute";
```

**ServerlessApplicationRepository**
```
import { ServerlessApplicationRepository } from "diagrams-js/aws/compute";
```

**ThinkboxDeadline**
```
import { ThinkboxDeadline } from "diagrams-js/aws/compute";
```

**ThinkboxDraft**
```
import { ThinkboxDraft } from "diagrams-js/aws/compute";
```

**ThinkboxFrost**
```
import { ThinkboxFrost } from "diagrams-js/aws/compute";
```

**ThinkboxKrakatoa**
```
import { ThinkboxKrakatoa } from "diagrams-js/aws/compute";
```

**ThinkboxSequoia**
```
import { ThinkboxSequoia } from "diagrams-js/aws/compute";
```

**ThinkboxStoke**
```
import { ThinkboxStoke } from "diagrams-js/aws/compute";
```

**ThinkboxXmesh**
```
import { ThinkboxXmesh } from "diagrams-js/aws/compute";
```

**VmwareCloudOnAWS**
```
import { VmwareCloudOnAWS } from "diagrams-js/aws/compute";
```
 **Wavelength**
```
import { Wavelength } from "diagrams-js/aws/compute";
```
### aws/cost[](#awscost "Direct link to aws/cost")
 **Budgets**
```
import { Budgets } from "diagrams-js/aws/cost";
```

**CostAndUsageReport**
```
import { CostAndUsageReport } from "diagrams-js/aws/cost";
```
 **CostExplorer**
```
import { CostExplorer } from "diagrams-js/aws/cost";
```

**CostManagement**
```
import { CostManagement } from "diagrams-js/aws/cost";
```

**ReservedInstanceReporting**
```
import { ReservedInstanceReporting } from "diagrams-js/aws/cost";
```
 **SavingsPlans**
```
import { SavingsPlans } from "diagrams-js/aws/cost";
```
### aws/database[](#awsdatabase "Direct link to aws/database")

**AuroraInstance**
```
import { AuroraInstance } from "diagrams-js/aws/database";
```
 **Aurora**
```
import { Aurora } from "diagrams-js/aws/database";
```

**DatabaseMigrationServiceDatabaseMigrationWorkflow**
```
import { DatabaseMigrationServiceDatabaseMigrationWorkflow } from "diagrams-js/aws/database";
```

**DatabaseMigrationService**
```
import { DatabaseMigrationService } from "diagrams-js/aws/database";
```
 **Database**
```
import { Database } from "diagrams-js/aws/database";
```

**DocumentdbMongodbCompatibility**
```
import { DocumentdbMongodbCompatibility } from "diagrams-js/aws/database";
```

**DynamodbAttribute**
```
import { DynamodbAttribute } from "diagrams-js/aws/database";
```

**DynamodbAttributes**
```
import { DynamodbAttributes } from "diagrams-js/aws/database";
```
 **DynamodbDax**
```
import { DynamodbDax } from "diagrams-js/aws/database";
```

**DynamodbGlobalSecondaryIndex**
```
import { DynamodbGlobalSecondaryIndex } from "diagrams-js/aws/database";
```

**DynamodbItem**
```
import { DynamodbItem } from "diagrams-js/aws/database";
```

**DynamodbItems**
```
import { DynamodbItems } from "diagrams-js/aws/database";
```

**DynamodbStreams**
```
import { DynamodbStreams } from "diagrams-js/aws/database";
```

**DynamodbTable**
```
import { DynamodbTable } from "diagrams-js/aws/database";
```
 **Dynamodb**
```
import { Dynamodb } from "diagrams-js/aws/database";
```

**ElasticacheCacheNode**
```
import { ElasticacheCacheNode } from "diagrams-js/aws/database";
```

**ElasticacheForMemcached**
```
import { ElasticacheForMemcached } from "diagrams-js/aws/database";
```

**ElasticacheForRedis**
```
import { ElasticacheForRedis } from "diagrams-js/aws/database";
```
 **Elasticache**
```
import { Elasticache } from "diagrams-js/aws/database";
```

**KeyspacesManagedApacheCassandraService**
```
import { KeyspacesManagedApacheCassandraService } from "diagrams-js/aws/database";
```
 **Neptune**
```
import { Neptune } from "diagrams-js/aws/database";
```

**QuantumLedgerDatabaseQldb**
```
import { QuantumLedgerDatabaseQldb } from "diagrams-js/aws/database";
```
 **RDSInstance**
```
import { RDSInstance } from "diagrams-js/aws/database";
```

**RDSMariadbInstance**
```
import { RDSMariadbInstance } from "diagrams-js/aws/database";
```

**RDSMysqlInstance**
```
import { RDSMysqlInstance } from "diagrams-js/aws/database";
```
 **RDSOnVmware**
```
import { RDSOnVmware } from "diagrams-js/aws/database";
```

**RDSOracleInstance**
```
import { RDSOracleInstance } from "diagrams-js/aws/database";
```

**RDSPostgresqlInstance**
```
import { RDSPostgresqlInstance } from "diagrams-js/aws/database";
```

**RDSSqlServerInstance**
```
import { RDSSqlServerInstance } from "diagrams-js/aws/database";
```
 **RDS**
```
import { RDS } from "diagrams-js/aws/database";
```

**RedshiftDenseComputeNode**
```
import { RedshiftDenseComputeNode } from "diagrams-js/aws/database";
```

**RedshiftDenseStorageNode**
```
import { RedshiftDenseStorageNode } from "diagrams-js/aws/database";
```
 **Redshift**
```
import { Redshift } from "diagrams-js/aws/database";
```
 **Timestream**
```
import { Timestream } from "diagrams-js/aws/database";
```
### aws/devtools[](#awsdevtools "Direct link to aws/devtools")

**CloudDevelopmentKit**
```
import { CloudDevelopmentKit } from "diagrams-js/aws/devtools";
```

**Cloud9Resource**
```
import { Cloud9Resource } from "diagrams-js/aws/devtools";
```
 **Cloud9**
```
import { Cloud9 } from "diagrams-js/aws/devtools";
```
 **Cloudshell**
```
import { Cloudshell } from "diagrams-js/aws/devtools";
```

**Codeartifact**
```
import { Codeartifact } from "diagrams-js/aws/devtools";
```
 **Codebuild**
```
import { Codebuild } from "diagrams-js/aws/devtools";
```
 **Codecommit**
```
import { Codecommit } from "diagrams-js/aws/devtools";
```
 **Codedeploy**
```
import { Codedeploy } from "diagrams-js/aws/devtools";
```

**Codepipeline**
```
import { Codepipeline } from "diagrams-js/aws/devtools";
```
 **Codestar**
```
import { Codestar } from "diagrams-js/aws/devtools";
```

**CommandLineInterface**
```
import { CommandLineInterface } from "diagrams-js/aws/devtools";
```

**DeveloperTools**
```
import { DeveloperTools } from "diagrams-js/aws/devtools";
```

**ToolsAndSdks**
```
import { ToolsAndSdks } from "diagrams-js/aws/devtools";
```
 **XRay**
```
import { XRay } from "diagrams-js/aws/devtools";
```
### aws/enablement[](#awsenablement "Direct link to aws/enablement")

**CustomerEnablement**
```
import { CustomerEnablement } from "diagrams-js/aws/enablement";
```
 **Iq**
```
import { Iq } from "diagrams-js/aws/enablement";
```

**ManagedServices**
```
import { ManagedServices } from "diagrams-js/aws/enablement";
```

**ProfessionalServices**
```
import { ProfessionalServices } from "diagrams-js/aws/enablement";
```
 **Support**
```
import { Support } from "diagrams-js/aws/enablement";
```
### aws/enduser[](#awsenduser "Direct link to aws/enduser")
 **Appstream20**
```
import { Appstream20 } from "diagrams-js/aws/enduser";
```

**DesktopAndAppStreaming**
```
import { DesktopAndAppStreaming } from "diagrams-js/aws/enduser";
```
 **Workdocs**
```
import { Workdocs } from "diagrams-js/aws/enduser";
```
 **Worklink**
```
import { Worklink } from "diagrams-js/aws/enduser";
```
 **Workspaces**
```
import { Workspaces } from "diagrams-js/aws/enduser";
```
### aws/engagement[](#awsengagement "Direct link to aws/engagement")
 **Connect**
```
import { Connect } from "diagrams-js/aws/engagement";
```

**CustomerEngagement**
```
import { CustomerEngagement } from "diagrams-js/aws/engagement";
```
 **Pinpoint**
```
import { Pinpoint } from "diagrams-js/aws/engagement";
```

**SimpleEmailServiceSesEmail**
```
import { SimpleEmailServiceSesEmail } from "diagrams-js/aws/engagement";
```

**SimpleEmailServiceSes**
```
import { SimpleEmailServiceSes } from "diagrams-js/aws/engagement";
```
### aws/game[](#awsgame "Direct link to aws/game")
 **GameTech**
```
import { GameTech } from "diagrams-js/aws/game";
```
 **Gamelift**
```
import { Gamelift } from "diagrams-js/aws/game";
```
### aws/general[](#awsgeneral "Direct link to aws/general")
 **Client**
```
import { Client } from "diagrams-js/aws/general";
```
 **Disk**
```
import { Disk } from "diagrams-js/aws/general";
```
 **Forums**
```
import { Forums } from "diagrams-js/aws/general";
```
 **General**
```
import { General } from "diagrams-js/aws/general";
```

**GenericDatabase**
```
import { GenericDatabase } from "diagrams-js/aws/general";
```

**GenericFirewall**
```
import { GenericFirewall } from "diagrams-js/aws/general";
```

**GenericOfficeBuilding**
```
import { GenericOfficeBuilding } from "diagrams-js/aws/general";
```

**GenericSamlToken**
```
import { GenericSamlToken } from "diagrams-js/aws/general";
```
 **GenericSDK**
```
import { GenericSDK } from "diagrams-js/aws/general";
```

**InternetAlt1**
```
import { InternetAlt1 } from "diagrams-js/aws/general";
```

**InternetAlt2**
```
import { InternetAlt2 } from "diagrams-js/aws/general";
```

**InternetGateway**
```
import { InternetGateway } from "diagrams-js/aws/general";
```
 **Marketplace**
```
import { Marketplace } from "diagrams-js/aws/general";
```

**MobileClient**
```
import { MobileClient } from "diagrams-js/aws/general";
```
 **Multimedia**
```
import { Multimedia } from "diagrams-js/aws/general";
```

**OfficeBuilding**
```
import { OfficeBuilding } from "diagrams-js/aws/general";
```
 **SamlToken**
```
import { SamlToken } from "diagrams-js/aws/general";
```
 **SDK**
```
import { SDK } from "diagrams-js/aws/general";
```
 **SslPadlock**
```
import { SslPadlock } from "diagrams-js/aws/general";
```
 **TapeStorage**
```
import { TapeStorage } from "diagrams-js/aws/general";
```
 **Toolkit**
```
import { Toolkit } from "diagrams-js/aws/general";
```

**TraditionalServer**
```
import { TraditionalServer } from "diagrams-js/aws/general";
```
 **User**
```
import { User } from "diagrams-js/aws/general";
```
 **Users**
```
import { Users } from "diagrams-js/aws/general";
```
### aws/integration[](#awsintegration "Direct link to aws/integration")

**ApplicationIntegration**
```
import { ApplicationIntegration } from "diagrams-js/aws/integration";
```
 **Appsync**
```
import { Appsync } from "diagrams-js/aws/integration";
```

**ConsoleMobileApplication**
```
import { ConsoleMobileApplication } from "diagrams-js/aws/integration";
```

**EventResource**
```
import { EventResource } from "diagrams-js/aws/integration";
```

**EventbridgeCustomEventBusResource**
```
import { EventbridgeCustomEventBusResource } from "diagrams-js/aws/integration";
```

**EventbridgeDefaultEventBusResource**
```
import { EventbridgeDefaultEventBusResource } from "diagrams-js/aws/integration";
```

**EventbridgeEvent**
```
import { EventbridgeEvent } from "diagrams-js/aws/integration";
```

**EventbridgePipes**
```
import { EventbridgePipes } from "diagrams-js/aws/integration";
```

**EventbridgeRule**
```
import { EventbridgeRule } from "diagrams-js/aws/integration";
```

**EventbridgeSaasPartnerEventBusResource**
```
import { EventbridgeSaasPartnerEventBusResource } from "diagrams-js/aws/integration";
```

**EventbridgeScheduler**
```
import { EventbridgeScheduler } from "diagrams-js/aws/integration";
```

**EventbridgeSchema**
```
import { EventbridgeSchema } from "diagrams-js/aws/integration";
```

**Eventbridge**
```
import { Eventbridge } from "diagrams-js/aws/integration";
```

**ExpressWorkflows**
```
import { ExpressWorkflows } from "diagrams-js/aws/integration";
```
 **MQ**
```
import { MQ } from "diagrams-js/aws/integration";
```

**SimpleNotificationServiceSnsEmailNotification**
```
import { SimpleNotificationServiceSnsEmailNotification } from "diagrams-js/aws/integration";
```

**SimpleNotificationServiceSnsHttpNotification**
```
import { SimpleNotificationServiceSnsHttpNotification } from "diagrams-js/aws/integration";
```

**SimpleNotificationServiceSnsTopic**
```
import { SimpleNotificationServiceSnsTopic } from "diagrams-js/aws/integration";
```

**SimpleNotificationServiceSns**
```
import { SimpleNotificationServiceSns } from "diagrams-js/aws/integration";
```

**SimpleQueueServiceSqsMessage**
```
import { SimpleQueueServiceSqsMessage } from "diagrams-js/aws/integration";
```

**SimpleQueueServiceSqsQueue**
```
import { SimpleQueueServiceSqsQueue } from "diagrams-js/aws/integration";
```

**SimpleQueueServiceSqs**
```
import { SimpleQueueServiceSqs } from "diagrams-js/aws/integration";
```

**StepFunctions**
```
import { StepFunctions } from "diagrams-js/aws/integration";
```
### aws/iot[](#awsiot "Direct link to aws/iot")
 **Freertos**
```
import { Freertos } from "diagrams-js/aws/iot";
```

**InternetOfThings**
```
import { InternetOfThings } from "diagrams-js/aws/iot";
```
 **Iot1Click**
```
import { Iot1Click } from "diagrams-js/aws/iot";
```
 **IotAction**
```
import { IotAction } from "diagrams-js/aws/iot";
```
 **IotActuator**
```
import { IotActuator } from "diagrams-js/aws/iot";
```
 **IotAlexaEcho**
```
import { IotAlexaEcho } from "diagrams-js/aws/iot";
```

**IotAlexaEnabledDevice**
```
import { IotAlexaEnabledDevice } from "diagrams-js/aws/iot";
```

**IotAlexaSkill**
```
import { IotAlexaSkill } from "diagrams-js/aws/iot";
```

**IotAlexaVoiceService**
```
import { IotAlexaVoiceService } from "diagrams-js/aws/iot";
```

**IotAnalyticsChannel**
```
import { IotAnalyticsChannel } from "diagrams-js/aws/iot";
```

**IotAnalyticsDataSet**
```
import { IotAnalyticsDataSet } from "diagrams-js/aws/iot";
```

**IotAnalyticsDataStore**
```
import { IotAnalyticsDataStore } from "diagrams-js/aws/iot";
```

**IotAnalyticsNotebook**
```
import { IotAnalyticsNotebook } from "diagrams-js/aws/iot";
```

**IotAnalyticsPipeline**
```
import { IotAnalyticsPipeline } from "diagrams-js/aws/iot";
```
 **IotAnalytics**
```
import { IotAnalytics } from "diagrams-js/aws/iot";
```
 **IotBank**
```
import { IotBank } from "diagrams-js/aws/iot";
```
 **IotBicycle**
```
import { IotBicycle } from "diagrams-js/aws/iot";
```
 **IotButton**
```
import { IotButton } from "diagrams-js/aws/iot";
```
 **IotCamera**
```
import { IotCamera } from "diagrams-js/aws/iot";
```
 **IotCar**
```
import { IotCar } from "diagrams-js/aws/iot";
```
 **IotCart**
```
import { IotCart } from "diagrams-js/aws/iot";
```

**IotCertificate**
```
import { IotCertificate } from "diagrams-js/aws/iot";
```
 **IotCoffeePot**
```
import { IotCoffeePot } from "diagrams-js/aws/iot";
```
 **IotCore**
```
import { IotCore } from "diagrams-js/aws/iot";
```

**IotDesiredState**
```
import { IotDesiredState } from "diagrams-js/aws/iot";
```

**IotDeviceDefender**
```
import { IotDeviceDefender } from "diagrams-js/aws/iot";
```

**IotDeviceGateway**
```
import { IotDeviceGateway } from "diagrams-js/aws/iot";
```

**IotDeviceManagement**
```
import { IotDeviceManagement } from "diagrams-js/aws/iot";
```
 **IotDoorLock**
```
import { IotDoorLock } from "diagrams-js/aws/iot";
```
 **IotEvents**
```
import { IotEvents } from "diagrams-js/aws/iot";
```
 **IotFactory**
```
import { IotFactory } from "diagrams-js/aws/iot";
```

**IotFireTvStick**
```
import { IotFireTvStick } from "diagrams-js/aws/iot";
```
 **IotFireTv**
```
import { IotFireTv } from "diagrams-js/aws/iot";
```
 **IotGeneric**
```
import { IotGeneric } from "diagrams-js/aws/iot";
```

**IotGreengrassConnector**
```
import { IotGreengrassConnector } from "diagrams-js/aws/iot";
```
 **IotGreengrass**
```
import { IotGreengrass } from "diagrams-js/aws/iot";
```

**IotHardwareBoard**
```
import { IotHardwareBoard } from "diagrams-js/aws/iot";
```
 **IotHouse**
```
import { IotHouse } from "diagrams-js/aws/iot";
```
 **IotHttp**
```
import { IotHttp } from "diagrams-js/aws/iot";
```
 **IotHttp2**
```
import { IotHttp2 } from "diagrams-js/aws/iot";
```
 **IotJobs**
```
import { IotJobs } from "diagrams-js/aws/iot";
```
 **IotLambda**
```
import { IotLambda } from "diagrams-js/aws/iot";
```
 **IotLightbulb**
```
import { IotLightbulb } from "diagrams-js/aws/iot";
```

**IotMedicalEmergency**
```
import { IotMedicalEmergency } from "diagrams-js/aws/iot";
```
 **IotMqtt**
```
import { IotMqtt } from "diagrams-js/aws/iot";
```

**IotOverTheAirUpdate**
```
import { IotOverTheAirUpdate } from "diagrams-js/aws/iot";
```

**IotPolicyEmergency**
```
import { IotPolicyEmergency } from "diagrams-js/aws/iot";
```
 **IotPolicy**
```
import { IotPolicy } from "diagrams-js/aws/iot";
```

**IotReportedState**
```
import { IotReportedState } from "diagrams-js/aws/iot";
```
 **IotRule**
```
import { IotRule } from "diagrams-js/aws/iot";
```
 **IotSensor**
```
import { IotSensor } from "diagrams-js/aws/iot";
```
 **IotServo**
```
import { IotServo } from "diagrams-js/aws/iot";
```
 **IotShadow**
```
import { IotShadow } from "diagrams-js/aws/iot";
```
 **IotSimulator**
```
import { IotSimulator } from "diagrams-js/aws/iot";
```
 **IotSitewise**
```
import { IotSitewise } from "diagrams-js/aws/iot";
```
 **IotThermostat**
```
import { IotThermostat } from "diagrams-js/aws/iot";
```

**IotThingsGraph**
```
import { IotThingsGraph } from "diagrams-js/aws/iot";
```
 **IotTopic**
```
import { IotTopic } from "diagrams-js/aws/iot";
```
 **IotTravel**
```
import { IotTravel } from "diagrams-js/aws/iot";
```
 **IotUtility**
```
import { IotUtility } from "diagrams-js/aws/iot";
```
 **IotWindfarm**
```
import { IotWindfarm } from "diagrams-js/aws/iot";
```
### aws/management[](#awsmanagement "Direct link to aws/management")

**AmazonDevopsGuru**
```
import { AmazonDevopsGuru } from "diagrams-js/aws/management";
```

**AmazonManagedGrafana**
```
import { AmazonManagedGrafana } from "diagrams-js/aws/management";
```

**AmazonManagedPrometheus**
```
import { AmazonManagedPrometheus } from "diagrams-js/aws/management";
```

**AmazonManagedWorkflowsApacheAirflow**
```
import { AmazonManagedWorkflowsApacheAirflow } from "diagrams-js/aws/management";
```

**AutoScaling**
```
import { AutoScaling } from "diagrams-js/aws/management";
```
 **Chatbot**
```
import { Chatbot } from "diagrams-js/aws/management";
```

**CloudformationChangeSet**
```
import { CloudformationChangeSet } from "diagrams-js/aws/management";
```

**CloudformationStack**
```
import { CloudformationStack } from "diagrams-js/aws/management";
```

**CloudformationTemplate**
```
import { CloudformationTemplate } from "diagrams-js/aws/management";
```

**Cloudformation**
```
import { Cloudformation } from "diagrams-js/aws/management";
```
 **Cloudtrail**
```
import { Cloudtrail } from "diagrams-js/aws/management";
```

**CloudwatchAlarm**
```
import { CloudwatchAlarm } from "diagrams-js/aws/management";
```

**CloudwatchEventEventBased**
```
import { CloudwatchEventEventBased } from "diagrams-js/aws/management";
```

**CloudwatchEventTimeBased**
```
import { CloudwatchEventTimeBased } from "diagrams-js/aws/management";
```

**CloudwatchLogs**
```
import { CloudwatchLogs } from "diagrams-js/aws/management";
```

**CloudwatchRule**
```
import { CloudwatchRule } from "diagrams-js/aws/management";
```
 **Cloudwatch**
```
import { Cloudwatch } from "diagrams-js/aws/management";
```
 **Codeguru**
```
import { Codeguru } from "diagrams-js/aws/management";
```

**CommandLineInterface**
```
import { CommandLineInterface } from "diagrams-js/aws/management";
```
 **Config**
```
import { Config } from "diagrams-js/aws/management";
```

**ControlTower**
```
import { ControlTower } from "diagrams-js/aws/management";
```

**LicenseManager**
```
import { LicenseManager } from "diagrams-js/aws/management";
```

**ManagedServices**
```
import { ManagedServices } from "diagrams-js/aws/management";
```

**ManagementAndGovernance**
```
import { ManagementAndGovernance } from "diagrams-js/aws/management";
```

**ManagementConsole**
```
import { ManagementConsole } from "diagrams-js/aws/management";
```

**OpsworksApps**
```
import { OpsworksApps } from "diagrams-js/aws/management";
```

**OpsworksDeployments**
```
import { OpsworksDeployments } from "diagrams-js/aws/management";
```

**OpsworksInstances**
```
import { OpsworksInstances } from "diagrams-js/aws/management";
```

**OpsworksLayers**
```
import { OpsworksLayers } from "diagrams-js/aws/management";
```

**OpsworksMonitoring**
```
import { OpsworksMonitoring } from "diagrams-js/aws/management";
```

**OpsworksPermissions**
```
import { OpsworksPermissions } from "diagrams-js/aws/management";
```

**OpsworksResources**
```
import { OpsworksResources } from "diagrams-js/aws/management";
```

**OpsworksStack**
```
import { OpsworksStack } from "diagrams-js/aws/management";
```
 **Opsworks**
```
import { Opsworks } from "diagrams-js/aws/management";
```

**OrganizationsAccount**
```
import { OrganizationsAccount } from "diagrams-js/aws/management";
```

**OrganizationsOrganizationalUnit**
```
import { OrganizationsOrganizationalUnit } from "diagrams-js/aws/management";
```

**Organizations**
```
import { Organizations } from "diagrams-js/aws/management";
```

**PersonalHealthDashboard**
```
import { PersonalHealthDashboard } from "diagrams-js/aws/management";
```
 **Proton**
```
import { Proton } from "diagrams-js/aws/management";
```

**ServiceCatalog**
```
import { ServiceCatalog } from "diagrams-js/aws/management";
```

**SystemsManagerAppConfig**
```
import { SystemsManagerAppConfig } from "diagrams-js/aws/management";
```

**SystemsManagerAutomation**
```
import { SystemsManagerAutomation } from "diagrams-js/aws/management";
```

**SystemsManagerDocuments**
```
import { SystemsManagerDocuments } from "diagrams-js/aws/management";
```

**SystemsManagerInventory**
```
import { SystemsManagerInventory } from "diagrams-js/aws/management";
```

**SystemsManagerMaintenanceWindows**
```
import { SystemsManagerMaintenanceWindows } from "diagrams-js/aws/management";
```

**SystemsManagerOpscenter**
```
import { SystemsManagerOpscenter } from "diagrams-js/aws/management";
```

**SystemsManagerParameterStore**
```
import { SystemsManagerParameterStore } from "diagrams-js/aws/management";
```

**SystemsManagerPatchManager**
```
import { SystemsManagerPatchManager } from "diagrams-js/aws/management";
```

**SystemsManagerRunCommand**
```
import { SystemsManagerRunCommand } from "diagrams-js/aws/management";
```

**SystemsManagerStateManager**
```
import { SystemsManagerStateManager } from "diagrams-js/aws/management";
```

**SystemsManager**
```
import { SystemsManager } from "diagrams-js/aws/management";
```

**TrustedAdvisorChecklistCost**
```
import { TrustedAdvisorChecklistCost } from "diagrams-js/aws/management";
```

**TrustedAdvisorChecklistFaultTolerant**
```
import { TrustedAdvisorChecklistFaultTolerant } from "diagrams-js/aws/management";
```

**TrustedAdvisorChecklistPerformance**
```
import { TrustedAdvisorChecklistPerformance } from "diagrams-js/aws/management";
```

**TrustedAdvisorChecklistSecurity**
```
import { TrustedAdvisorChecklistSecurity } from "diagrams-js/aws/management";
```

**TrustedAdvisorChecklist**
```
import { TrustedAdvisorChecklist } from "diagrams-js/aws/management";
```

**TrustedAdvisor**
```
import { TrustedAdvisor } from "diagrams-js/aws/management";
```

**UserNotifications**
```
import { UserNotifications } from "diagrams-js/aws/management";
```

**WellArchitectedTool**
```
import { WellArchitectedTool } from "diagrams-js/aws/management";
```
### aws/media[](#awsmedia "Direct link to aws/media")

**ElasticTranscoder**
```
import { ElasticTranscoder } from "diagrams-js/aws/media";
```

**ElementalConductor**
```
import { ElementalConductor } from "diagrams-js/aws/media";
```

**ElementalDelta**
```
import { ElementalDelta } from "diagrams-js/aws/media";
```

**ElementalLive**
```
import { ElementalLive } from "diagrams-js/aws/media";
```

**ElementalMediaconnect**
```
import { ElementalMediaconnect } from "diagrams-js/aws/media";
```

**ElementalMediaconvert**
```
import { ElementalMediaconvert } from "diagrams-js/aws/media";
```

**ElementalMedialive**
```
import { ElementalMedialive } from "diagrams-js/aws/media";
```

**ElementalMediapackage**
```
import { ElementalMediapackage } from "diagrams-js/aws/media";
```

**ElementalMediastore**
```
import { ElementalMediastore } from "diagrams-js/aws/media";
```

**ElementalMediatailor**
```
import { ElementalMediatailor } from "diagrams-js/aws/media";
```

**ElementalServer**
```
import { ElementalServer } from "diagrams-js/aws/media";
```

**KinesisVideoStreams**
```
import { KinesisVideoStreams } from "diagrams-js/aws/media";
```

**MediaServices**
```
import { MediaServices } from "diagrams-js/aws/media";
```
### aws/migration[](#awsmigration "Direct link to aws/migration")

**ApplicationDiscoveryService**
```
import { ApplicationDiscoveryService } from "diagrams-js/aws/migration";
```

**CloudendureMigration**
```
import { CloudendureMigration } from "diagrams-js/aws/migration";
```

**DatabaseMigrationService**
```
import { DatabaseMigrationService } from "diagrams-js/aws/migration";
```

**DatasyncAgent**
```
import { DatasyncAgent } from "diagrams-js/aws/migration";
```
 **Datasync**
```
import { Datasync } from "diagrams-js/aws/migration";
```

**MigrationAndTransfer**
```
import { MigrationAndTransfer } from "diagrams-js/aws/migration";
```

**MigrationHub**
```
import { MigrationHub } from "diagrams-js/aws/migration";
```

**ServerMigrationService**
```
import { ServerMigrationService } from "diagrams-js/aws/migration";
```

**SnowballEdge**
```
import { SnowballEdge } from "diagrams-js/aws/migration";
```
 **Snowball**
```
import { Snowball } from "diagrams-js/aws/migration";
```
 **Snowmobile**
```
import { Snowmobile } from "diagrams-js/aws/migration";
```

**TransferForSftp**
```
import { TransferForSftp } from "diagrams-js/aws/migration";
```
### aws/ml[](#awsml "Direct link to aws/ml")

**ApacheMxnetOnAWS**
```
import { ApacheMxnetOnAWS } from "diagrams-js/aws/ml";
```
 **AugmentedAi**
```
import { AugmentedAi } from "diagrams-js/aws/ml";
```
 **Bedrock**
```
import { Bedrock } from "diagrams-js/aws/ml";
```
 **Comprehend**
```
import { Comprehend } from "diagrams-js/aws/ml";
```

**DeepLearningAmis**
```
import { DeepLearningAmis } from "diagrams-js/aws/ml";
```

**DeepLearningContainers**
```
import { DeepLearningContainers } from "diagrams-js/aws/ml";
```
 **Deepcomposer**
```
import { Deepcomposer } from "diagrams-js/aws/ml";
```
 **Deeplens**
```
import { Deeplens } from "diagrams-js/aws/ml";
```
 **Deepracer**
```
import { Deepracer } from "diagrams-js/aws/ml";
```

**ElasticInference**
```
import { ElasticInference } from "diagrams-js/aws/ml";
```
 **Forecast**
```
import { Forecast } from "diagrams-js/aws/ml";
```
 **FraudDetector**
```
import { FraudDetector } from "diagrams-js/aws/ml";
```
 **Kendra**
```
import { Kendra } from "diagrams-js/aws/ml";
```
 **Lex**
```
import { Lex } from "diagrams-js/aws/ml";
```

**MachineLearning**
```
import { MachineLearning } from "diagrams-js/aws/ml";
```
 **Personalize**
```
import { Personalize } from "diagrams-js/aws/ml";
```
 **Polly**
```
import { Polly } from "diagrams-js/aws/ml";
```
 **Q**
```
import { Q } from "diagrams-js/aws/ml";
```

**RekognitionImage**
```
import { RekognitionImage } from "diagrams-js/aws/ml";
```

**RekognitionVideo**
```
import { RekognitionVideo } from "diagrams-js/aws/ml";
```
 **Rekognition**
```
import { Rekognition } from "diagrams-js/aws/ml";
```

**SagemakerGroundTruth**
```
import { SagemakerGroundTruth } from "diagrams-js/aws/ml";
```

**SagemakerModel**
```
import { SagemakerModel } from "diagrams-js/aws/ml";
```

**SagemakerNotebook**
```
import { SagemakerNotebook } from "diagrams-js/aws/ml";
```

**SagemakerTrainingJob**
```
import { SagemakerTrainingJob } from "diagrams-js/aws/ml";
```
 **Sagemaker**
```
import { Sagemaker } from "diagrams-js/aws/ml";
```

**TensorflowOnAWS**
```
import { TensorflowOnAWS } from "diagrams-js/aws/ml";
```
 **Textract**
```
import { Textract } from "diagrams-js/aws/ml";
```
 **Transcribe**
```
import { Transcribe } from "diagrams-js/aws/ml";
```
 **Transform**
```
import { Transform } from "diagrams-js/aws/ml";
```
 **Translate**
```
import { Translate } from "diagrams-js/aws/ml";
```
### aws/mobile[](#awsmobile "Direct link to aws/mobile")
 **Amplify**
```
import { Amplify } from "diagrams-js/aws/mobile";
```

**APIGatewayEndpoint**
```
import { APIGatewayEndpoint } from "diagrams-js/aws/mobile";
```
 **APIGateway**
```
import { APIGateway } from "diagrams-js/aws/mobile";
```
 **Appsync**
```
import { Appsync } from "diagrams-js/aws/mobile";
```
 **DeviceFarm**
```
import { DeviceFarm } from "diagrams-js/aws/mobile";
```
 **Mobile**
```
import { Mobile } from "diagrams-js/aws/mobile";
```
 **Pinpoint**
```
import { Pinpoint } from "diagrams-js/aws/mobile";
```
### aws/network[](#awsnetwork "Direct link to aws/network")

**APIGatewayEndpoint**
```
import { APIGatewayEndpoint } from "diagrams-js/aws/network";
```
 **APIGateway**
```
import { APIGateway } from "diagrams-js/aws/network";
```
 **AppMesh**
```
import { AppMesh } from "diagrams-js/aws/network";
```
 **ClientVpn**
```
import { ClientVpn } from "diagrams-js/aws/network";
```
 **CloudMap**
```
import { CloudMap } from "diagrams-js/aws/network";
```

**CloudFrontDownloadDistribution**
```
import { CloudFrontDownloadDistribution } from "diagrams-js/aws/network";
```

**CloudFrontEdgeLocation**
```
import { CloudFrontEdgeLocation } from "diagrams-js/aws/network";
```

**CloudFrontStreamingDistribution**
```
import { CloudFrontStreamingDistribution } from "diagrams-js/aws/network";
```
 **CloudFront**
```
import { CloudFront } from "diagrams-js/aws/network";
```

**DirectConnect**
```
import { DirectConnect } from "diagrams-js/aws/network";
```

**ElasticLoadBalancing**
```
import { ElasticLoadBalancing } from "diagrams-js/aws/network";
```

**ElbApplicationLoadBalancer**
```
import { ElbApplicationLoadBalancer } from "diagrams-js/aws/network";
```

**ElbClassicLoadBalancer**
```
import { ElbClassicLoadBalancer } from "diagrams-js/aws/network";
```

**ElbNetworkLoadBalancer**
```
import { ElbNetworkLoadBalancer } from "diagrams-js/aws/network";
```
 **Endpoint**
```
import { Endpoint } from "diagrams-js/aws/network";
```

**GlobalAccelerator**
```
import { GlobalAccelerator } from "diagrams-js/aws/network";
```

**InternetGateway**
```
import { InternetGateway } from "diagrams-js/aws/network";
```
 **Nacl**
```
import { Nacl } from "diagrams-js/aws/network";
```
 **NATGateway**
```
import { NATGateway } from "diagrams-js/aws/network";
```

**NetworkFirewall**
```
import { NetworkFirewall } from "diagrams-js/aws/network";
```

**NetworkingAndContentDelivery**
```
import { NetworkingAndContentDelivery } from "diagrams-js/aws/network";
```

**PrivateSubnet**
```
import { PrivateSubnet } from "diagrams-js/aws/network";
```
 **Privatelink**
```
import { Privatelink } from "diagrams-js/aws/network";
```

**PublicSubnet**
```
import { PublicSubnet } from "diagrams-js/aws/network";
```

**Route53HostedZone**
```
import { Route53HostedZone } from "diagrams-js/aws/network";
```
 **Route53**
```
import { Route53 } from "diagrams-js/aws/network";
```
 **RouteTable**
```
import { RouteTable } from "diagrams-js/aws/network";
```

**SiteToSiteVpn**
```
import { SiteToSiteVpn } from "diagrams-js/aws/network";
```

**TransitGatewayAttachment**
```
import { TransitGatewayAttachment } from "diagrams-js/aws/network";
```

**TransitGateway**
```
import { TransitGateway } from "diagrams-js/aws/network";
```

**VPCCustomerGateway**
```
import { VPCCustomerGateway } from "diagrams-js/aws/network";
```

**VPCElasticNetworkAdapter**
```
import { VPCElasticNetworkAdapter } from "diagrams-js/aws/network";
```

**VPCElasticNetworkInterface**
```
import { VPCElasticNetworkInterface } from "diagrams-js/aws/network";
```
 **VPCFlowLogs**
```
import { VPCFlowLogs } from "diagrams-js/aws/network";
```
 **VPCPeering**
```
import { VPCPeering } from "diagrams-js/aws/network";
```
 **VPCRouter**
```
import { VPCRouter } from "diagrams-js/aws/network";
```

**VPCTrafficMirroring**
```
import { VPCTrafficMirroring } from "diagrams-js/aws/network";
```
 **VPC**
```
import { VPC } from "diagrams-js/aws/network";
```

**VpnConnection**
```
import { VpnConnection } from "diagrams-js/aws/network";
```
 **VpnGateway**
```
import { VpnGateway } from "diagrams-js/aws/network";
```
### aws/quantum[](#awsquantum "Direct link to aws/quantum")
 **Braket**
```
import { Braket } from "diagrams-js/aws/quantum";
```

**QuantumTechnologies**
```
import { QuantumTechnologies } from "diagrams-js/aws/quantum";
```
### aws/robotics[](#awsrobotics "Direct link to aws/robotics")

**RobomakerCloudExtensionRos**
```
import { RobomakerCloudExtensionRos } from "diagrams-js/aws/robotics";
```

**RobomakerDevelopmentEnvironment**
```
import { RobomakerDevelopmentEnvironment } from "diagrams-js/aws/robotics";
```

**RobomakerFleetManagement**
```
import { RobomakerFleetManagement } from "diagrams-js/aws/robotics";
```

**RobomakerSimulator**
```
import { RobomakerSimulator } from "diagrams-js/aws/robotics";
```
 **Robomaker**
```
import { Robomaker } from "diagrams-js/aws/robotics";
```
 **Robotics**
```
import { Robotics } from "diagrams-js/aws/robotics";
```
### aws/satellite[](#awssatellite "Direct link to aws/satellite")

**GroundStation**
```
import { GroundStation } from "diagrams-js/aws/satellite";
```
 **Satellite**
```
import { Satellite } from "diagrams-js/aws/satellite";
```
### aws/security[](#awssecurity "Direct link to aws/security")
 **AdConnector**
```
import { AdConnector } from "diagrams-js/aws/security";
```
 **Artifact**
```
import { Artifact } from "diagrams-js/aws/security";
```

**CertificateAuthority**
```
import { CertificateAuthority } from "diagrams-js/aws/security";
```

**CertificateManager**
```
import { CertificateManager } from "diagrams-js/aws/security";
```

**CloudDirectory**
```
import { CloudDirectory } from "diagrams-js/aws/security";
```
 **Cloudhsm**
```
import { Cloudhsm } from "diagrams-js/aws/security";
```
 **Cognito**
```
import { Cognito } from "diagrams-js/aws/security";
```
 **Detective**
```
import { Detective } from "diagrams-js/aws/security";
```

**DirectoryService**
```
import { DirectoryService } from "diagrams-js/aws/security";
```

**FirewallManager**
```
import { FirewallManager } from "diagrams-js/aws/security";
```
 **Guardduty**
```
import { Guardduty } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIamAccessAnalyzer**
```
import { IdentityAndAccessManagementIamAccessAnalyzer } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIamAddOn**
```
import { IdentityAndAccessManagementIamAddOn } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIamAWSStsAlternate**
```
import { IdentityAndAccessManagementIamAWSStsAlternate } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIamAWSSts**
```
import { IdentityAndAccessManagementIamAWSSts } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIamDataEncryptionKey**
```
import { IdentityAndAccessManagementIamDataEncryptionKey } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIamEncryptedData**
```
import { IdentityAndAccessManagementIamEncryptedData } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIamLongTermSecurityCredential**
```
import { IdentityAndAccessManagementIamLongTermSecurityCredential } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIamMfaToken**
```
import { IdentityAndAccessManagementIamMfaToken } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIamPermissions**
```
import { IdentityAndAccessManagementIamPermissions } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIamRole**
```
import { IdentityAndAccessManagementIamRole } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIamTemporarySecurityCredential**
```
import { IdentityAndAccessManagementIamTemporarySecurityCredential } from "diagrams-js/aws/security";
```

**IdentityAndAccessManagementIam**
```
import { IdentityAndAccessManagementIam } from "diagrams-js/aws/security";
```

**InspectorAgent**
```
import { InspectorAgent } from "diagrams-js/aws/security";
```
 **Inspector**
```
import { Inspector } from "diagrams-js/aws/security";
```

**KeyManagementService**
```
import { KeyManagementService } from "diagrams-js/aws/security";
```
 **Macie**
```
import { Macie } from "diagrams-js/aws/security";
```

**ManagedMicrosoftAd**
```
import { ManagedMicrosoftAd } from "diagrams-js/aws/security";
```

**ResourceAccessManager**
```
import { ResourceAccessManager } from "diagrams-js/aws/security";
```

**SecretsManager**
```
import { SecretsManager } from "diagrams-js/aws/security";
```

**SecurityHubFinding**
```
import { SecurityHubFinding } from "diagrams-js/aws/security";
```
 **SecurityHub**
```
import { SecurityHub } from "diagrams-js/aws/security";
```

**SecurityIdentityAndCompliance**
```
import { SecurityIdentityAndCompliance } from "diagrams-js/aws/security";
```

**SecurityLake**
```
import { SecurityLake } from "diagrams-js/aws/security";
```

**ShieldAdvanced**
```
import { ShieldAdvanced } from "diagrams-js/aws/security";
```
 **Shield**
```
import { Shield } from "diagrams-js/aws/security";
```
 **SimpleAd**
```
import { SimpleAd } from "diagrams-js/aws/security";
```

**SingleSignOn**
```
import { SingleSignOn } from "diagrams-js/aws/security";
```

**WAFFilteringRule**
```
import { WAFFilteringRule } from "diagrams-js/aws/security";
```
 **WAF**
```
import { WAF } from "diagrams-js/aws/security";
```
### aws/storage[](#awsstorage "Direct link to aws/storage")
 **Backup**
```
import { Backup } from "diagrams-js/aws/storage";
```

**CloudendureDisasterRecovery**
```
import { CloudendureDisasterRecovery } from "diagrams-js/aws/storage";
```

**EFSInfrequentaccessPrimaryBg**
```
import { EFSInfrequentaccessPrimaryBg } from "diagrams-js/aws/storage";
```

**EFSStandardPrimaryBg**
```
import { EFSStandardPrimaryBg } from "diagrams-js/aws/storage";
```

**ElasticBlockStoreEBSSnapshot**
```
import { ElasticBlockStoreEBSSnapshot } from "diagrams-js/aws/storage";
```

**ElasticBlockStoreEBSVolume**
```
import { ElasticBlockStoreEBSVolume } from "diagrams-js/aws/storage";
```

**ElasticBlockStoreEBS**
```
import { ElasticBlockStoreEBS } from "diagrams-js/aws/storage";
```

**ElasticFileSystemEFSFileSystem**
```
import { ElasticFileSystemEFSFileSystem } from "diagrams-js/aws/storage";
```

**ElasticFileSystemEFS**
```
import { ElasticFileSystemEFS } from "diagrams-js/aws/storage";
```

**FsxForLustre**
```
import { FsxForLustre } from "diagrams-js/aws/storage";
```

**FsxForWindowsFileServer**
```
import { FsxForWindowsFileServer } from "diagrams-js/aws/storage";
```
 **Fsx**
```
import { Fsx } from "diagrams-js/aws/storage";
```

**MultipleVolumesResource**
```
import { MultipleVolumesResource } from "diagrams-js/aws/storage";
```

**S3AccessPoints**
```
import { S3AccessPoints } from "diagrams-js/aws/storage";
```

**S3GlacierArchive**
```
import { S3GlacierArchive } from "diagrams-js/aws/storage";
```

**S3GlacierVault**
```
import { S3GlacierVault } from "diagrams-js/aws/storage";
```
 **S3Glacier**
```
import { S3Glacier } from "diagrams-js/aws/storage";
```

**S3ObjectLambdaAccessPoints**
```
import { S3ObjectLambdaAccessPoints } from "diagrams-js/aws/storage";
```

**SimpleStorageServiceS3BucketWithObjects**
```
import { SimpleStorageServiceS3BucketWithObjects } from "diagrams-js/aws/storage";
```

**SimpleStorageServiceS3Bucket**
```
import { SimpleStorageServiceS3Bucket } from "diagrams-js/aws/storage";
```

**SimpleStorageServiceS3Object**
```
import { SimpleStorageServiceS3Object } from "diagrams-js/aws/storage";
```

**SimpleStorageServiceS3**
```
import { SimpleStorageServiceS3 } from "diagrams-js/aws/storage";
```

**SnowFamilySnowballImportExport**
```
import { SnowFamilySnowballImportExport } from "diagrams-js/aws/storage";
```

**SnowballEdge**
```
import { SnowballEdge } from "diagrams-js/aws/storage";
```
 **Snowball**
```
import { Snowball } from "diagrams-js/aws/storage";
```
 **Snowmobile**
```
import { Snowmobile } from "diagrams-js/aws/storage";
```

**StorageGatewayCachedVolume**
```
import { StorageGatewayCachedVolume } from "diagrams-js/aws/storage";
```

**StorageGatewayNonCachedVolume**
```
import { StorageGatewayNonCachedVolume } from "diagrams-js/aws/storage";
```

**StorageGatewayVirtualTapeLibrary**
```
import { StorageGatewayVirtualTapeLibrary } from "diagrams-js/aws/storage";
```

**StorageGateway**
```
import { StorageGateway } from "diagrams-js/aws/storage";
```
 **Storage**
```
import { Storage } from "diagrams-js/aws/storage";
```
---
# Azure
Node classes list for the Azure provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import {
AIStudio,
AnomalyDetector,
AzureAppliedAIServices,
} from "diagrams-js/azure/aimachinelearning";
import {
AnalysisServices,
AzureDataExplorerClusters,
AzureDatabricks,
} from "diagrams-js/azure/analytics";
const diagram = Diagram("Azure Architecture", { direction: "TB" });
const node1 = diagram.add(AIStudio("Node 1"));
const node2 = diagram.add(AnalysisServices("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/azure) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### azure/aimachinelearning[](#azureaimachinelearning "Direct link to azure/aimachinelearning")

**AIStudio**
```
import { AIStudio } from "diagrams-js/azure/aimachinelearning";
```

**AnomalyDetector**
```
import { AnomalyDetector } from "diagrams-js/azure/aimachinelearning";
```

**AzureAppliedAIServices**
```
import { AzureAppliedAIServices } from "diagrams-js/azure/aimachinelearning";
```

**AzureExperimentationStudio**
```
import { AzureExperimentationStudio } from "diagrams-js/azure/aimachinelearning";
```

**AzureObjectUnderstanding**
```
import { AzureObjectUnderstanding } from "diagrams-js/azure/aimachinelearning";
```

**AzureOpenai**
```
import { AzureOpenai } from "diagrams-js/azure/aimachinelearning";
```
 **BatchAI**
```
import { BatchAI } from "diagrams-js/azure/aimachinelearning";
```
 **Bonsai**
```
import { Bonsai } from "diagrams-js/azure/aimachinelearning";
```

**BotServices**
```
import { BotServices } from "diagrams-js/azure/aimachinelearning";
```

**CognitiveSearch**
```
import { CognitiveSearch } from "diagrams-js/azure/aimachinelearning";
```

**CognitiveServicesDecisions**
```
import { CognitiveServicesDecisions } from "diagrams-js/azure/aimachinelearning";
```

**CognitiveServices**
```
import { CognitiveServices } from "diagrams-js/azure/aimachinelearning";
```

**ComputerVision**
```
import { ComputerVision } from "diagrams-js/azure/aimachinelearning";
```

**ContentModerators**
```
import { ContentModerators } from "diagrams-js/azure/aimachinelearning";
```

**CustomVision**
```
import { CustomVision } from "diagrams-js/azure/aimachinelearning";
```

**FaceApis**
```
import { FaceApis } from "diagrams-js/azure/aimachinelearning";
```

**FormRecognizers**
```
import { FormRecognizers } from "diagrams-js/azure/aimachinelearning";
```

**GenomicsAccounts**
```
import { GenomicsAccounts } from "diagrams-js/azure/aimachinelearning";
```
 **Genomics**
```
import { Genomics } from "diagrams-js/azure/aimachinelearning";
```

**ImmersiveReaders**
```
import { ImmersiveReaders } from "diagrams-js/azure/aimachinelearning";
```

**LanguageUnderstanding**
```
import { LanguageUnderstanding } from "diagrams-js/azure/aimachinelearning";
```
 **Language**
```
import { Language } from "diagrams-js/azure/aimachinelearning";
```

**MachineLearningStudioClassicWebServices**
```
import { MachineLearningStudioClassicWebServices } from "diagrams-js/azure/aimachinelearning";
```

**MachineLearningStudioWebServicePlans**
```
import { MachineLearningStudioWebServicePlans } from "diagrams-js/azure/aimachinelearning";
```

**MachineLearningStudioWorkspaces**
```
import { MachineLearningStudioWorkspaces } from "diagrams-js/azure/aimachinelearning";
```

**MachineLearning**
```
import { MachineLearning } from "diagrams-js/azure/aimachinelearning";
```

**MetricsAdvisor**
```
import { MetricsAdvisor } from "diagrams-js/azure/aimachinelearning";
```

**Personalizers**
```
import { Personalizers } from "diagrams-js/azure/aimachinelearning";
```

**QnaMakers**
```
import { QnaMakers } from "diagrams-js/azure/aimachinelearning";
```

**ServerlessSearch**
```
import { ServerlessSearch } from "diagrams-js/azure/aimachinelearning";
```

**SpeechServices**
```
import { SpeechServices } from "diagrams-js/azure/aimachinelearning";
```

**TranslatorText**
```
import { TranslatorText } from "diagrams-js/azure/aimachinelearning";
```
### azure/analytics[](#azureanalytics "Direct link to azure/analytics")

**AnalysisServices**
```
import { AnalysisServices } from "diagrams-js/azure/analytics";
```

**AzureDataExplorerClusters**
```
import { AzureDataExplorerClusters } from "diagrams-js/azure/analytics";
```

**AzureDatabricks**
```
import { AzureDatabricks } from "diagrams-js/azure/analytics";
```

**AzureSynapseAnalytics**
```
import { AzureSynapseAnalytics } from "diagrams-js/azure/analytics";
```

**AzureWorkbooks**
```
import { AzureWorkbooks } from "diagrams-js/azure/analytics";
```

**DataExplorerClusters**
```
import { DataExplorerClusters } from "diagrams-js/azure/analytics";
```

**DataFactories**
```
import { DataFactories } from "diagrams-js/azure/analytics";
```

**DataLakeAnalytics**
```
import { DataLakeAnalytics } from "diagrams-js/azure/analytics";
```

**DataLakeStoreGen1**
```
import { DataLakeStoreGen1 } from "diagrams-js/azure/analytics";
```
 **Databricks**
```
import { Databricks } from "diagrams-js/azure/analytics";
```

**EndpointAnalytics**
```
import { EndpointAnalytics } from "diagrams-js/azure/analytics";
```

**EventHubClusters**
```
import { EventHubClusters } from "diagrams-js/azure/analytics";
```
 **EventHubs**
```
import { EventHubs } from "diagrams-js/azure/analytics";
```

**HDInsightClusters**
```
import { HDInsightClusters } from "diagrams-js/azure/analytics";
```

**LogAnalyticsWorkspaces**
```
import { LogAnalyticsWorkspaces } from "diagrams-js/azure/analytics";
```

**PowerBiEmbedded**
```
import { PowerBiEmbedded } from "diagrams-js/azure/analytics";
```

**PowerPlatform**
```
import { PowerPlatform } from "diagrams-js/azure/analytics";
```

**PrivateLinkServices**
```
import { PrivateLinkServices } from "diagrams-js/azure/analytics";
```

**StreamAnalyticsJobs**
```
import { StreamAnalyticsJobs } from "diagrams-js/azure/analytics";
```

**SynapseAnalytics**
```
import { SynapseAnalytics } from "diagrams-js/azure/analytics";
```
### azure/appservices[](#azureappservices "Direct link to azure/appservices")

**AppServiceCertificates**
```
import { AppServiceCertificates } from "diagrams-js/azure/appservices";
```

**AppServiceDomains**
```
import { AppServiceDomains } from "diagrams-js/azure/appservices";
```

**AppServiceEnvironments**
```
import { AppServiceEnvironments } from "diagrams-js/azure/appservices";
```

**AppServicePlans**
```
import { AppServicePlans } from "diagrams-js/azure/appservices";
```

**AppServices**
```
import { AppServices } from "diagrams-js/azure/appservices";
```

**CDNProfiles**
```
import { CDNProfiles } from "diagrams-js/azure/appservices";
```

**CognitiveSearch**
```
import { CognitiveSearch } from "diagrams-js/azure/appservices";
```

**NotificationHubs**
```
import { NotificationHubs } from "diagrams-js/azure/appservices";
```
### azure/azureecosystem[](#azureazureecosystem "Direct link to azure/azureecosystem")
 **Applens**
```
import { Applens } from "diagrams-js/azure/azureecosystem";
```

**AzureHybridCenter**
```
import { AzureHybridCenter } from "diagrams-js/azure/azureecosystem";
```

**CollaborativeService**
```
import { CollaborativeService } from "diagrams-js/azure/azureecosystem";
```
### azure/azurestack[](#azureazurestack "Direct link to azure/azurestack")
 **Capacity**
```
import { Capacity } from "diagrams-js/azure/azurestack";
```

**InfrastructureBackup**
```
import { InfrastructureBackup } from "diagrams-js/azure/azurestack";
```

**MultiTenancy**
```
import { MultiTenancy } from "diagrams-js/azure/azurestack";
```
 **Offers**
```
import { Offers } from "diagrams-js/azure/azurestack";
```
 **Plans**
```
import { Plans } from "diagrams-js/azure/azurestack";
```
 **Updates**
```
import { Updates } from "diagrams-js/azure/azurestack";
```

**UserSubscriptions**
```
import { UserSubscriptions } from "diagrams-js/azure/azurestack";
```
### azure/blockchain[](#azureblockchain "Direct link to azure/blockchain")
 **AbsMember**
```
import { AbsMember } from "diagrams-js/azure/blockchain";
```

**AzureBlockchainService**
```
import { AzureBlockchainService } from "diagrams-js/azure/blockchain";
```

**AzureTokenService**
```
import { AzureTokenService } from "diagrams-js/azure/blockchain";
```

**BlockchainApplications**
```
import { BlockchainApplications } from "diagrams-js/azure/blockchain";
```
 **Consortium**
```
import { Consortium } from "diagrams-js/azure/blockchain";
```

**OutboundConnection**
```
import { OutboundConnection } from "diagrams-js/azure/blockchain";
```
### azure/compute[](#azurecompute "Direct link to azure/compute")
 **AppServices**
```
import { AppServices } from "diagrams-js/azure/compute";
```

**ApplicationGroup**
```
import { ApplicationGroup } from "diagrams-js/azure/compute";
```

**AutomanagedVM**
```
import { AutomanagedVM } from "diagrams-js/azure/compute";
```

**AvailabilitySets**
```
import { AvailabilitySets } from "diagrams-js/azure/compute";
```

**AzureComputeGalleries**
```
import { AzureComputeGalleries } from "diagrams-js/azure/compute";
```

**AzureSpringApps**
```
import { AzureSpringApps } from "diagrams-js/azure/compute";
```

**BatchAccounts**
```
import { BatchAccounts } from "diagrams-js/azure/compute";
```

**CitrixVirtualDesktopsEssentials**
```
import { CitrixVirtualDesktopsEssentials } from "diagrams-js/azure/compute";
```

**CloudServicesClassic**
```
import { CloudServicesClassic } from "diagrams-js/azure/compute";
```

**CloudServices**
```
import { CloudServices } from "diagrams-js/azure/compute";
```

**CloudsimpleVirtualMachines**
```
import { CloudsimpleVirtualMachines } from "diagrams-js/azure/compute";
```

**ContainerApps**
```
import { ContainerApps } from "diagrams-js/azure/compute";
```

**ContainerInstances**
```
import { ContainerInstances } from "diagrams-js/azure/compute";
```

**ContainerRegistries**
```
import { ContainerRegistries } from "diagrams-js/azure/compute";
```

**ContainerServicesDeprecated**
```
import { ContainerServicesDeprecated } from "diagrams-js/azure/compute";
```

**DiskEncryptionSets**
```
import { DiskEncryptionSets } from "diagrams-js/azure/compute";
```

**DiskSnapshots**
```
import { DiskSnapshots } from "diagrams-js/azure/compute";
```

**DisksClassic**
```
import { DisksClassic } from "diagrams-js/azure/compute";
```

**DisksSnapshots**
```
import { DisksSnapshots } from "diagrams-js/azure/compute";
```
 **Disks**
```
import { Disks } from "diagrams-js/azure/compute";
```

**FunctionApps**
```
import { FunctionApps } from "diagrams-js/azure/compute";
```
 **HostGroups**
```
import { HostGroups } from "diagrams-js/azure/compute";
```
 **HostPools**
```
import { HostPools } from "diagrams-js/azure/compute";
```
 **Hosts**
```
import { Hosts } from "diagrams-js/azure/compute";
```

**ImageDefinitions**
```
import { ImageDefinitions } from "diagrams-js/azure/compute";
```

**ImageTemplates**
```
import { ImageTemplates } from "diagrams-js/azure/compute";
```

**ImageVersions**
```
import { ImageVersions } from "diagrams-js/azure/compute";
```
 **Images**
```
import { Images } from "diagrams-js/azure/compute";
```

**KubernetesServices**
```
import { KubernetesServices } from "diagrams-js/azure/compute";
```

**MaintenanceConfiguration**
```
import { MaintenanceConfiguration } from "diagrams-js/azure/compute";
```

**ManagedServiceFabric**
```
import { ManagedServiceFabric } from "diagrams-js/azure/compute";
```

**MeshApplications**
```
import { MeshApplications } from "diagrams-js/azure/compute";
```

**MetricsAdvisor**
```
import { MetricsAdvisor } from "diagrams-js/azure/compute";
```

**OsImagesClassic**
```
import { OsImagesClassic } from "diagrams-js/azure/compute";
```
 **OsImages**
```
import { OsImages } from "diagrams-js/azure/compute";
```

**RestorePointsCollections**
```
import { RestorePointsCollections } from "diagrams-js/azure/compute";
```

**RestorePoints**
```
import { RestorePoints } from "diagrams-js/azure/compute";
```

**SAPHANAOnAzure**
```
import { SAPHANAOnAzure } from "diagrams-js/azure/compute";
```

**ServiceFabricClusters**
```
import { ServiceFabricClusters } from "diagrams-js/azure/compute";
```

**SharedImageGalleries**
```
import { SharedImageGalleries } from "diagrams-js/azure/compute";
```
 **SpringCloud**
```
import { SpringCloud } from "diagrams-js/azure/compute";
```

**VirtualMachine**
```
import { VirtualMachine } from "diagrams-js/azure/compute";
```

**VirtualMachinesClassic**
```
import { VirtualMachinesClassic } from "diagrams-js/azure/compute";
```
 **VMClassic**
```
import { VMClassic } from "diagrams-js/azure/compute";
```

**VMImagesClassic**
```
import { VMImagesClassic } from "diagrams-js/azure/compute";
```
 **VMImages**
```
import { VMImages } from "diagrams-js/azure/compute";
```
 **VMLinux**
```
import { VMLinux } from "diagrams-js/azure/compute";
```
 **VMScaleSet**
```
import { VMScaleSet } from "diagrams-js/azure/compute";
```

**VMScaleSets**
```
import { VMScaleSets } from "diagrams-js/azure/compute";
```
 **VMWindows**
```
import { VMWindows } from "diagrams-js/azure/compute";
```
 **VM**
```
import { VM } from "diagrams-js/azure/compute";
```
 **Workspaces2**
```
import { Workspaces2 } from "diagrams-js/azure/compute";
```
 **Workspaces**
```
import { Workspaces } from "diagrams-js/azure/compute";
```
### azure/containers[](#azurecontainers "Direct link to azure/containers")

**AppServices**
```
import { AppServices } from "diagrams-js/azure/containers";
```

**AzureRedHatOpenshift**
```
import { AzureRedHatOpenshift } from "diagrams-js/azure/containers";
```

**BatchAccounts**
```
import { BatchAccounts } from "diagrams-js/azure/containers";
```

**ContainerInstances**
```
import { ContainerInstances } from "diagrams-js/azure/containers";
```

**ContainerRegistries**
```
import { ContainerRegistries } from "diagrams-js/azure/containers";
```

**KubernetesServices**
```
import { KubernetesServices } from "diagrams-js/azure/containers";
```

**ServiceFabricClusters**
```
import { ServiceFabricClusters } from "diagrams-js/azure/containers";
```
### azure/database[](#azuredatabase "Direct link to azure/database")

**BlobStorage**
```
import { BlobStorage } from "diagrams-js/azure/database";
```

**CacheForRedis**
```
import { CacheForRedis } from "diagrams-js/azure/database";
```
 **CosmosDb**
```
import { CosmosDb } from "diagrams-js/azure/database";
```

**DataExplorerClusters**
```
import { DataExplorerClusters } from "diagrams-js/azure/database";
```

**DataFactory**
```
import { DataFactory } from "diagrams-js/azure/database";
```
 **DataLake**
```
import { DataLake } from "diagrams-js/azure/database";
```

**DatabaseForMariadbServers**
```
import { DatabaseForMariadbServers } from "diagrams-js/azure/database";
```

**DatabaseForMysqlServers**
```
import { DatabaseForMysqlServers } from "diagrams-js/azure/database";
```

**DatabaseForPostgresqlServers**
```
import { DatabaseForPostgresqlServers } from "diagrams-js/azure/database";
```

**ElasticDatabasePools**
```
import { ElasticDatabasePools } from "diagrams-js/azure/database";
```

**ElasticJobAgents**
```
import { ElasticJobAgents } from "diagrams-js/azure/database";
```

**InstancePools**
```
import { InstancePools } from "diagrams-js/azure/database";
```

**ManagedDatabases**
```
import { ManagedDatabases } from "diagrams-js/azure/database";
```

**SQLDatabases**
```
import { SQLDatabases } from "diagrams-js/azure/database";
```

**SQLDatawarehouse**
```
import { SQLDatawarehouse } from "diagrams-js/azure/database";
```

**SQLManagedInstances**
```
import { SQLManagedInstances } from "diagrams-js/azure/database";
```

**SQLServerStretchDatabases**
```
import { SQLServerStretchDatabases } from "diagrams-js/azure/database";
```
 **SQLServers**
```
import { SQLServers } from "diagrams-js/azure/database";
```
 **SQLVM**
```
import { SQLVM } from "diagrams-js/azure/database";
```
 **SQL**
```
import { SQL } from "diagrams-js/azure/database";
```

**SsisLiftAndShiftIr**
```
import { SsisLiftAndShiftIr } from "diagrams-js/azure/database";
```

**SynapseAnalytics**
```
import { SynapseAnalytics } from "diagrams-js/azure/database";
```

**VirtualClusters**
```
import { VirtualClusters } from "diagrams-js/azure/database";
```

**VirtualDatacenter**
```
import { VirtualDatacenter } from "diagrams-js/azure/database";
```
### azure/databases[](#azuredatabases "Direct link to azure/databases")

**AzureCosmosDb**
```
import { AzureCosmosDb } from "diagrams-js/azure/databases";
```

**AzureDataExplorerClusters**
```
import { AzureDataExplorerClusters } from "diagrams-js/azure/databases";
```

**AzureDatabaseMariadbServer**
```
import { AzureDatabaseMariadbServer } from "diagrams-js/azure/databases";
```

**AzureDatabaseMigrationServices**
```
import { AzureDatabaseMigrationServices } from "diagrams-js/azure/databases";
```

**AzureDatabaseMysqlServer**
```
import { AzureDatabaseMysqlServer } from "diagrams-js/azure/databases";
```

**AzureDatabasePostgresqlServerGroup**
```
import { AzureDatabasePostgresqlServerGroup } from "diagrams-js/azure/databases";
```

**AzureDatabasePostgresqlServer**
```
import { AzureDatabasePostgresqlServer } from "diagrams-js/azure/databases";
```

**AzurePurviewAccounts**
```
import { AzurePurviewAccounts } from "diagrams-js/azure/databases";
```

**AzureSQLEdge**
```
import { AzureSQLEdge } from "diagrams-js/azure/databases";
```

**AzureSQLServerStretchDatabases**
```
import { AzureSQLServerStretchDatabases } from "diagrams-js/azure/databases";
```
 **AzureSQLVM**
```
import { AzureSQLVM } from "diagrams-js/azure/databases";
```
 **AzureSQL**
```
import { AzureSQL } from "diagrams-js/azure/databases";
```

**AzureSynapseAnalytics**
```
import { AzureSynapseAnalytics } from "diagrams-js/azure/databases";
```
 **CacheRedis**
```
import { CacheRedis } from "diagrams-js/azure/databases";
```

**DataFactories**
```
import { DataFactories } from "diagrams-js/azure/databases";
```

**ElasticJobAgents**
```
import { ElasticJobAgents } from "diagrams-js/azure/databases";
```

**InstancePools**
```
import { InstancePools } from "diagrams-js/azure/databases";
```

**ManagedDatabase**
```
import { ManagedDatabase } from "diagrams-js/azure/databases";
```

**OracleDatabase**
```
import { OracleDatabase } from "diagrams-js/azure/databases";
```

**SQLDataWarehouses**
```
import { SQLDataWarehouses } from "diagrams-js/azure/databases";
```

**SQLDatabase**
```
import { SQLDatabase } from "diagrams-js/azure/databases";
```

**SQLElasticPools**
```
import { SQLElasticPools } from "diagrams-js/azure/databases";
```

**SQLManagedInstance**
```
import { SQLManagedInstance } from "diagrams-js/azure/databases";
```

**SQLServerRegistries**
```
import { SQLServerRegistries } from "diagrams-js/azure/databases";
```
 **SQLServer**
```
import { SQLServer } from "diagrams-js/azure/databases";
```

**SsisLiftAndShiftIr**
```
import { SsisLiftAndShiftIr } from "diagrams-js/azure/databases";
```

**VirtualClusters**
```
import { VirtualClusters } from "diagrams-js/azure/databases";
```
### azure/devops[](#azuredevops "Direct link to azure/devops")

**APIConnections**
```
import { APIConnections } from "diagrams-js/azure/devops";
```

**APIManagementServices**
```
import { APIManagementServices } from "diagrams-js/azure/devops";
```

**ApplicationInsights**
```
import { ApplicationInsights } from "diagrams-js/azure/devops";
```
 **Artifacts**
```
import { Artifacts } from "diagrams-js/azure/devops";
```
 **AzureDevops**
```
import { AzureDevops } from "diagrams-js/azure/devops";
```
 **Boards**
```
import { Boards } from "diagrams-js/azure/devops";
```

**ChangeAnalysis**
```
import { ChangeAnalysis } from "diagrams-js/azure/devops";
```
 **Cloudtest**
```
import { Cloudtest } from "diagrams-js/azure/devops";
```

**CodeOptimization**
```
import { CodeOptimization } from "diagrams-js/azure/devops";
```

**DevopsStarter**
```
import { DevopsStarter } from "diagrams-js/azure/devops";
```
 **Devops**
```
import { Devops } from "diagrams-js/azure/devops";
```
 **DevtestLabs**
```
import { DevtestLabs } from "diagrams-js/azure/devops";
```
 **LabAccounts**
```
import { LabAccounts } from "diagrams-js/azure/devops";
```
 **LabServices**
```
import { LabServices } from "diagrams-js/azure/devops";
```
 **LoadTesting**
```
import { LoadTesting } from "diagrams-js/azure/devops";
```
 **Pipelines**
```
import { Pipelines } from "diagrams-js/azure/devops";
```
 **Repos**
```
import { Repos } from "diagrams-js/azure/devops";
```
 **TestPlans**
```
import { TestPlans } from "diagrams-js/azure/devops";
```
### azure/general[](#azuregeneral "Direct link to azure/general")

**AllResources**
```
import { AllResources } from "diagrams-js/azure/general";
```

**Allresources**
```
import { Allresources } from "diagrams-js/azure/general";
```
 **Azurehome**
```
import { Azurehome } from "diagrams-js/azure/general";
```
 **Backlog**
```
import { Backlog } from "diagrams-js/azure/general";
```
 **BizTalk**
```
import { BizTalk } from "diagrams-js/azure/general";
```
 **BlobBlock**
```
import { BlobBlock } from "diagrams-js/azure/general";
```
 **BlobPage**
```
import { BlobPage } from "diagrams-js/azure/general";
```
 **Branch**
```
import { Branch } from "diagrams-js/azure/general";
```
 **Browser**
```
import { Browser } from "diagrams-js/azure/general";
```
 **Bug**
```
import { Bug } from "diagrams-js/azure/general";
```
 **Builds**
```
import { Builds } from "diagrams-js/azure/general";
```
 **Cache**
```
import { Cache } from "diagrams-js/azure/general";
```
 **Code**
```
import { Code } from "diagrams-js/azure/general";
```
 **Commit**
```
import { Commit } from "diagrams-js/azure/general";
```

**ControlsHorizontal**
```
import { ControlsHorizontal } from "diagrams-js/azure/general";
```
 **Controls**
```
import { Controls } from "diagrams-js/azure/general";
```
 **CostAlerts**
```
import { CostAlerts } from "diagrams-js/azure/general";
```

**CostAnalysis**
```
import { CostAnalysis } from "diagrams-js/azure/general";
```
 **CostBudgets**
```
import { CostBudgets } from "diagrams-js/azure/general";
```

**CostManagementAndBilling**
```
import { CostManagementAndBilling } from "diagrams-js/azure/general";
```

**CostManagement**
```
import { CostManagement } from "diagrams-js/azure/general";
```
 **Counter**
```
import { Counter } from "diagrams-js/azure/general";
```
 **Cubes**
```
import { Cubes } from "diagrams-js/azure/general";
```
 **Dashboard**
```
import { Dashboard } from "diagrams-js/azure/general";
```
 **DevConsole**
```
import { DevConsole } from "diagrams-js/azure/general";
```

**Developertools**
```
import { Developertools } from "diagrams-js/azure/general";
```
 **Download**
```
import { Download } from "diagrams-js/azure/general";
```
 **Error**
```
import { Error } from "diagrams-js/azure/general";
```
 **Extensions**
```
import { Extensions } from "diagrams-js/azure/general";
```

**FeaturePreviews**
```
import { FeaturePreviews } from "diagrams-js/azure/general";
```
 **File**
```
import { File } from "diagrams-js/azure/general";
```
 **Files**
```
import { Files } from "diagrams-js/azure/general";
```
 **FolderBlank**
```
import { FolderBlank } from "diagrams-js/azure/general";
```

**FolderWebsite**
```
import { FolderWebsite } from "diagrams-js/azure/general";
```

**FreeServices**
```
import { FreeServices } from "diagrams-js/azure/general";
```
 **Ftp**
```
import { Ftp } from "diagrams-js/azure/general";
```
 **Gear**
```
import { Gear } from "diagrams-js/azure/general";
```
 **GlobeError**
```
import { GlobeError } from "diagrams-js/azure/general";
```

**GlobeSuccess**
```
import { GlobeSuccess } from "diagrams-js/azure/general";
```

**GlobeWarning**
```
import { GlobeWarning } from "diagrams-js/azure/general";
```
 **Guide**
```
import { Guide } from "diagrams-js/azure/general";
```
 **Heart**
```
import { Heart } from "diagrams-js/azure/general";
```

**HelpAndSupport**
```
import { HelpAndSupport } from "diagrams-js/azure/general";
```
 **Helpsupport**
```
import { Helpsupport } from "diagrams-js/azure/general";
```
 **Image**
```
import { Image } from "diagrams-js/azure/general";
```
 **Information**
```
import { Information } from "diagrams-js/azure/general";
```
 **InputOutput**
```
import { InputOutput } from "diagrams-js/azure/general";
```
 **JourneyHub**
```
import { JourneyHub } from "diagrams-js/azure/general";
```

**LaunchPortal**
```
import { LaunchPortal } from "diagrams-js/azure/general";
```
 **Learn**
```
import { Learn } from "diagrams-js/azure/general";
```
 **LoadTest**
```
import { LoadTest } from "diagrams-js/azure/general";
```
 **Location**
```
import { Location } from "diagrams-js/azure/general";
```

**LogStreaming**
```
import { LogStreaming } from "diagrams-js/azure/general";
```

**ManagementGroups**
```
import { ManagementGroups } from "diagrams-js/azure/general";
```

**ManagementPortal**
```
import { ManagementPortal } from "diagrams-js/azure/general";
```

**Managementgroups**
```
import { Managementgroups } from "diagrams-js/azure/general";
```

**MarketplaceManagement**
```
import { MarketplaceManagement } from "diagrams-js/azure/general";
```
 **Marketplace**
```
import { Marketplace } from "diagrams-js/azure/general";
```
 **MediaFile**
```
import { MediaFile } from "diagrams-js/azure/general";
```
 **Media**
```
import { Media } from "diagrams-js/azure/general";
```

**MobileEngagement**
```
import { MobileEngagement } from "diagrams-js/azure/general";
```
 **Mobile**
```
import { Mobile } from "diagrams-js/azure/general";
```
 **Module**
```
import { Module } from "diagrams-js/azure/general";
```
 **PowerUp**
```
import { PowerUp } from "diagrams-js/azure/general";
```
 **Power**
```
import { Power } from "diagrams-js/azure/general";
```
 **Powershell**
```
import { Powershell } from "diagrams-js/azure/general";
```

**PreviewFeatures**
```
import { PreviewFeatures } from "diagrams-js/azure/general";
```

**ProcessExplorer**
```
import { ProcessExplorer } from "diagrams-js/azure/general";
```

**ProductionReadyDatabase**
```
import { ProductionReadyDatabase } from "diagrams-js/azure/general";
```

**QuickstartCenter**
```
import { QuickstartCenter } from "diagrams-js/azure/general";
```

**Quickstartcenter**
```
import { Quickstartcenter } from "diagrams-js/azure/general";
```
 **Recent**
```
import { Recent } from "diagrams-js/azure/general";
```

**RegionManagement**
```
import { RegionManagement } from "diagrams-js/azure/general";
```

**Reservations**
```
import { Reservations } from "diagrams-js/azure/general";
```

**ResourceExplorer**
```
import { ResourceExplorer } from "diagrams-js/azure/general";
```

**ResourceGroupList**
```
import { ResourceGroupList } from "diagrams-js/azure/general";
```

**ResourceGroups**
```
import { ResourceGroups } from "diagrams-js/azure/general";
```

**ResourceLinked**
```
import { ResourceLinked } from "diagrams-js/azure/general";
```
 **Resource**
```
import { Resource } from "diagrams-js/azure/general";
```

**Resourcegroups**
```
import { Resourcegroups } from "diagrams-js/azure/general";
```
 **Scheduler**
```
import { Scheduler } from "diagrams-js/azure/general";
```
 **SearchGrid**
```
import { SearchGrid } from "diagrams-js/azure/general";
```
 **Search**
```
import { Search } from "diagrams-js/azure/general";
```
 **ServerFarm**
```
import { ServerFarm } from "diagrams-js/azure/general";
```

**ServiceHealth**
```
import { ServiceHealth } from "diagrams-js/azure/general";
```

**Servicehealth**
```
import { Servicehealth } from "diagrams-js/azure/general";
```

**Shareddashboard**
```
import { Shareddashboard } from "diagrams-js/azure/general";
```
 **Ssd**
```
import { Ssd } from "diagrams-js/azure/general";
```

**StorageAzureFiles**
```
import { StorageAzureFiles } from "diagrams-js/azure/general";
```

**StorageContainer**
```
import { StorageContainer } from "diagrams-js/azure/general";
```

**StorageQueue**
```
import { StorageQueue } from "diagrams-js/azure/general";
```

**Subscriptions**
```
import { Subscriptions } from "diagrams-js/azure/general";
```
 **Support**
```
import { Support } from "diagrams-js/azure/general";
```

**Supportrequests**
```
import { Supportrequests } from "diagrams-js/azure/general";
```
 **Table**
```
import { Table } from "diagrams-js/azure/general";
```
 **Tag**
```
import { Tag } from "diagrams-js/azure/general";
```
 **Tags**
```
import { Tags } from "diagrams-js/azure/general";
```
 **Templates**
```
import { Templates } from "diagrams-js/azure/general";
```

**TfsVcRepository**
```
import { TfsVcRepository } from "diagrams-js/azure/general";
```
 **Toolbox**
```
import { Toolbox } from "diagrams-js/azure/general";
```

**Troubleshoot**
```
import { Troubleshoot } from "diagrams-js/azure/general";
```
 **Twousericon**
```
import { Twousericon } from "diagrams-js/azure/general";
```

**Userhealthicon**
```
import { Userhealthicon } from "diagrams-js/azure/general";
```
 **Usericon**
```
import { Usericon } from "diagrams-js/azure/general";
```
 **Userprivacy**
```
import { Userprivacy } from "diagrams-js/azure/general";
```

**Userresource**
```
import { Userresource } from "diagrams-js/azure/general";
```
 **Versions**
```
import { Versions } from "diagrams-js/azure/general";
```
 **WebSlots**
```
import { WebSlots } from "diagrams-js/azure/general";
```
 **WebTest**
```
import { WebTest } from "diagrams-js/azure/general";
```

**WebsitePower**
```
import { WebsitePower } from "diagrams-js/azure/general";
```

**WebsiteStaging**
```
import { WebsiteStaging } from "diagrams-js/azure/general";
```
 **Whatsnew**
```
import { Whatsnew } from "diagrams-js/azure/general";
```
 **Workbooks**
```
import { Workbooks } from "diagrams-js/azure/general";
```
 **Workflow**
```
import { Workflow } from "diagrams-js/azure/general";
```
### azure/hybridmulticloud[](#azurehybridmulticloud "Direct link to azure/hybridmulticloud")

**AzureOperator5gCore**
```
import { AzureOperator5gCore } from "diagrams-js/azure/hybridmulticloud";
```

**AzureOperatorInsights**
```
import { AzureOperatorInsights } from "diagrams-js/azure/hybridmulticloud";
```

**AzureOperatorNexus**
```
import { AzureOperatorNexus } from "diagrams-js/azure/hybridmulticloud";
```

**AzureOperatorServiceManager**
```
import { AzureOperatorServiceManager } from "diagrams-js/azure/hybridmulticloud";
```

**AzureProgrammableConnectivity**
```
import { AzureProgrammableConnectivity } from "diagrams-js/azure/hybridmulticloud";
```
### azure/identity[](#azureidentity "Direct link to azure/identity")

**AadLicenses**
```
import { AadLicenses } from "diagrams-js/azure/identity";
```

**AccessReview**
```
import { AccessReview } from "diagrams-js/azure/identity";
```

**ActiveDirectoryConnectHealth**
```
import { ActiveDirectoryConnectHealth } from "diagrams-js/azure/identity";
```

**ActiveDirectory**
```
import { ActiveDirectory } from "diagrams-js/azure/identity";
```
 **ADB2C**
```
import { ADB2C } from "diagrams-js/azure/identity";
```

**ADDomainServices**
```
import { ADDomainServices } from "diagrams-js/azure/identity";
```

**ADIdentityProtection**
```
import { ADIdentityProtection } from "diagrams-js/azure/identity";
```

**ADPrivilegedIdentityManagement**
```
import { ADPrivilegedIdentityManagement } from "diagrams-js/azure/identity";
```

**AdministrativeUnits**
```
import { AdministrativeUnits } from "diagrams-js/azure/identity";
```
 **APIProxy**
```
import { APIProxy } from "diagrams-js/azure/identity";
```

**AppRegistrations**
```
import { AppRegistrations } from "diagrams-js/azure/identity";
```

**AzureActiveDirectory**
```
import { AzureActiveDirectory } from "diagrams-js/azure/identity";
```
 **AzureADB2C**
```
import { AzureADB2C } from "diagrams-js/azure/identity";
```

**AzureADDomainServices**
```
import { AzureADDomainServices } from "diagrams-js/azure/identity";
```

**AzureADIdentityProtection**
```
import { AzureADIdentityProtection } from "diagrams-js/azure/identity";
```

**AzureADPrivilegeIdentityManagement**
```
import { AzureADPrivilegeIdentityManagement } from "diagrams-js/azure/identity";
```

**AzureADPrivlegedIdentityManagement**
```
import { AzureADPrivlegedIdentityManagement } from "diagrams-js/azure/identity";
```

**AzureADRolesAndAdministrators**
```
import { AzureADRolesAndAdministrators } from "diagrams-js/azure/identity";
```

**AzureInformationProtection**
```
import { AzureInformationProtection } from "diagrams-js/azure/identity";
```

**ConditionalAccess**
```
import { ConditionalAccess } from "diagrams-js/azure/identity";
```

**CustomAzureADRoles**
```
import { CustomAzureADRoles } from "diagrams-js/azure/identity";
```

**EnterpriseApplications**
```
import { EnterpriseApplications } from "diagrams-js/azure/identity";
```

**EntraConnect**
```
import { EntraConnect } from "diagrams-js/azure/identity";
```

**EntraDomainServices**
```
import { EntraDomainServices } from "diagrams-js/azure/identity";
```

**EntraIDProtection**
```
import { EntraIDProtection } from "diagrams-js/azure/identity";
```

**EntraManagedIdentities**
```
import { EntraManagedIdentities } from "diagrams-js/azure/identity";
```

**EntraPrivlegedIdentityManagement**
```
import { EntraPrivlegedIdentityManagement } from "diagrams-js/azure/identity";
```

**EntraVerifiedID**
```
import { EntraVerifiedID } from "diagrams-js/azure/identity";
```

**ExternalIdentities**
```
import { ExternalIdentities } from "diagrams-js/azure/identity";
```

**GlobalSecureAccess**
```
import { GlobalSecureAccess } from "diagrams-js/azure/identity";
```
 **Groups**
```
import { Groups } from "diagrams-js/azure/identity";
```

**IdentityGovernance**
```
import { IdentityGovernance } from "diagrams-js/azure/identity";
```

**InformationProtection**
```
import { InformationProtection } from "diagrams-js/azure/identity";
```

**InternetAccess**
```
import { InternetAccess } from "diagrams-js/azure/identity";
```

**ManagedIdentities**
```
import { ManagedIdentities } from "diagrams-js/azure/identity";
```

**PrivateAccess**
```
import { PrivateAccess } from "diagrams-js/azure/identity";
```
 **Security**
```
import { Security } from "diagrams-js/azure/identity";
```

**TenantProperties**
```
import { TenantProperties } from "diagrams-js/azure/identity";
```

**UserSettings**
```
import { UserSettings } from "diagrams-js/azure/identity";
```
 **Users**
```
import { Users } from "diagrams-js/azure/identity";
```

**VerifiableCredentials**
```
import { VerifiableCredentials } from "diagrams-js/azure/identity";
```
### azure/integration[](#azureintegration "Direct link to azure/integration")

**APIConnections**
```
import { APIConnections } from "diagrams-js/azure/integration";
```

**APIForFhir**
```
import { APIForFhir } from "diagrams-js/azure/integration";
```

**APIManagementServices**
```
import { APIManagementServices } from "diagrams-js/azure/integration";
```

**APIManagement**
```
import { APIManagement } from "diagrams-js/azure/integration";
```

**AppConfiguration**
```
import { AppConfiguration } from "diagrams-js/azure/integration";
```

**AzureAPIForFhir**
```
import { AzureAPIForFhir } from "diagrams-js/azure/integration";
```

**AzureDataCatalog**
```
import { AzureDataCatalog } from "diagrams-js/azure/integration";
```

**AzureDataboxGateway**
```
import { AzureDataboxGateway } from "diagrams-js/azure/integration";
```

**AzureServiceBus**
```
import { AzureServiceBus } from "diagrams-js/azure/integration";
```

**AzureSQLServerStretchDatabases**
```
import { AzureSQLServerStretchDatabases } from "diagrams-js/azure/integration";
```

**AzureStackEdge**
```
import { AzureStackEdge } from "diagrams-js/azure/integration";
```

**DataCatalog**
```
import { DataCatalog } from "diagrams-js/azure/integration";
```

**DataFactories**
```
import { DataFactories } from "diagrams-js/azure/integration";
```

**EventGridDomains**
```
import { EventGridDomains } from "diagrams-js/azure/integration";
```

**EventGridSubscriptions**
```
import { EventGridSubscriptions } from "diagrams-js/azure/integration";
```

**EventGridTopics**
```
import { EventGridTopics } from "diagrams-js/azure/integration";
```

**IntegrationAccounts**
```
import { IntegrationAccounts } from "diagrams-js/azure/integration";
```

**IntegrationEnvironments**
```
import { IntegrationEnvironments } from "diagrams-js/azure/integration";
```

**IntegrationServiceEnvironments**
```
import { IntegrationServiceEnvironments } from "diagrams-js/azure/integration";
```

**LogicAppsCustomConnector**
```
import { LogicAppsCustomConnector } from "diagrams-js/azure/integration";
```
 **LogicApps**
```
import { LogicApps } from "diagrams-js/azure/integration";
```

**PartnerNamespace**
```
import { PartnerNamespace } from "diagrams-js/azure/integration";
```

**PartnerRegistration**
```
import { PartnerRegistration } from "diagrams-js/azure/integration";
```

**PartnerTopic**
```
import { PartnerTopic } from "diagrams-js/azure/integration";
```

**PowerPlatform**
```
import { PowerPlatform } from "diagrams-js/azure/integration";
```
 **Relays**
```
import { Relays } from "diagrams-js/azure/integration";
```

**SendgridAccounts**
```
import { SendgridAccounts } from "diagrams-js/azure/integration";
```

**ServiceBusRelays**
```
import { ServiceBusRelays } from "diagrams-js/azure/integration";
```

**ServiceBus**
```
import { ServiceBus } from "diagrams-js/azure/integration";
```

**ServiceCatalogManagedApplicationDefinitions**
```
import { ServiceCatalogManagedApplicationDefinitions } from "diagrams-js/azure/integration";
```

**SoftwareAsAService**
```
import { SoftwareAsAService } from "diagrams-js/azure/integration";
```

**SQLDataWarehouses**
```
import { SQLDataWarehouses } from "diagrams-js/azure/integration";
```

**StorsimpleDeviceManagers**
```
import { StorsimpleDeviceManagers } from "diagrams-js/azure/integration";
```

**SystemTopic**
```
import { SystemTopic } from "diagrams-js/azure/integration";
```
### azure/intune[](#azureintune "Direct link to azure/intune")

**AzureADRolesAndAdministrators**
```
import { AzureADRolesAndAdministrators } from "diagrams-js/azure/intune";
```
 **ClientApps**
```
import { ClientApps } from "diagrams-js/azure/intune";
```

**DeviceCompliance**
```
import { DeviceCompliance } from "diagrams-js/azure/intune";
```

**DeviceConfiguration**
```
import { DeviceConfiguration } from "diagrams-js/azure/intune";
```

**DeviceEnrollment**
```
import { DeviceEnrollment } from "diagrams-js/azure/intune";
```

**DeviceSecurityApple**
```
import { DeviceSecurityApple } from "diagrams-js/azure/intune";
```

**DeviceSecurityGoogle**
```
import { DeviceSecurityGoogle } from "diagrams-js/azure/intune";
```

**DeviceSecurityWindows**
```
import { DeviceSecurityWindows } from "diagrams-js/azure/intune";
```
 **Devices**
```
import { Devices } from "diagrams-js/azure/intune";
```
 **Ebooks**
```
import { Ebooks } from "diagrams-js/azure/intune";
```

**ExchangeAccess**
```
import { ExchangeAccess } from "diagrams-js/azure/intune";
```

**IntuneAppProtection**
```
import { IntuneAppProtection } from "diagrams-js/azure/intune";
```

**IntuneForEducation**
```
import { IntuneForEducation } from "diagrams-js/azure/intune";
```
 **Intune**
```
import { Intune } from "diagrams-js/azure/intune";
```
 **Mindaro**
```
import { Mindaro } from "diagrams-js/azure/intune";
```

**SecurityBaselines**
```
import { SecurityBaselines } from "diagrams-js/azure/intune";
```

**SoftwareUpdates**
```
import { SoftwareUpdates } from "diagrams-js/azure/intune";
```

**TenantStatus**
```
import { TenantStatus } from "diagrams-js/azure/intune";
```
### azure/iot[](#azureiot "Direct link to azure/iot")

**AzureCosmosDb**
```
import { AzureCosmosDb } from "diagrams-js/azure/iot";
```

**AzureDataboxGateway**
```
import { AzureDataboxGateway } from "diagrams-js/azure/iot";
```

**AzureIotOperations**
```
import { AzureIotOperations } from "diagrams-js/azure/iot";
```

**AzureMapsAccounts**
```
import { AzureMapsAccounts } from "diagrams-js/azure/iot";
```
 **AzureStack**
```
import { AzureStack } from "diagrams-js/azure/iot";
```

**DeviceProvisioningServices**
```
import { DeviceProvisioningServices } from "diagrams-js/azure/iot";
```
 **DigitalTwins**
```
import { DigitalTwins } from "diagrams-js/azure/iot";
```

**EventGridSubscriptions**
```
import { EventGridSubscriptions } from "diagrams-js/azure/iot";
```

**EventHubClusters**
```
import { EventHubClusters } from "diagrams-js/azure/iot";
```
 **EventHubs**
```
import { EventHubs } from "diagrams-js/azure/iot";
```
 **FunctionApps**
```
import { FunctionApps } from "diagrams-js/azure/iot";
```

**IndustrialIot**
```
import { IndustrialIot } from "diagrams-js/azure/iot";
```

**IotCentralApplications**
```
import { IotCentralApplications } from "diagrams-js/azure/iot";
```
 **IotEdge**
```
import { IotEdge } from "diagrams-js/azure/iot";
```

**IotHubSecurity**
```
import { IotHubSecurity } from "diagrams-js/azure/iot";
```
 **IotHub**
```
import { IotHub } from "diagrams-js/azure/iot";
```
 **LogicApps**
```
import { LogicApps } from "diagrams-js/azure/iot";
```

**MachineLearningStudioClassicWebServices**
```
import { MachineLearningStudioClassicWebServices } from "diagrams-js/azure/iot";
```

**MachineLearningStudioWebServicePlans**
```
import { MachineLearningStudioWebServicePlans } from "diagrams-js/azure/iot";
```

**MachineLearningStudioWorkspaces**
```
import { MachineLearningStudioWorkspaces } from "diagrams-js/azure/iot";
```
 **Maps**
```
import { Maps } from "diagrams-js/azure/iot";
```

**NotificationHubNamespaces**
```
import { NotificationHubNamespaces } from "diagrams-js/azure/iot";
```

**NotificationHubs**
```
import { NotificationHubs } from "diagrams-js/azure/iot";
```
 **Sphere**
```
import { Sphere } from "diagrams-js/azure/iot";
```

**StackHciPremium**
```
import { StackHciPremium } from "diagrams-js/azure/iot";
```

**StreamAnalyticsJobs**
```
import { StreamAnalyticsJobs } from "diagrams-js/azure/iot";
```

**TimeSeriesDataSets**
```
import { TimeSeriesDataSets } from "diagrams-js/azure/iot";
```

**TimeSeriesInsightsAccessPolicies**
```
import { TimeSeriesInsightsAccessPolicies } from "diagrams-js/azure/iot";
```

**TimeSeriesInsightsEnvironments**
```
import { TimeSeriesInsightsEnvironments } from "diagrams-js/azure/iot";
```

**TimeSeriesInsightsEventSources**
```
import { TimeSeriesInsightsEventSources } from "diagrams-js/azure/iot";
```

**TimeSeriesInsightsEventsSources**
```
import { TimeSeriesInsightsEventsSources } from "diagrams-js/azure/iot";
```

**Windows10IotCoreServices**
```
import { Windows10IotCoreServices } from "diagrams-js/azure/iot";
```

**Windows10CoreServices**
```
import { Windows10CoreServices } from "diagrams-js/azure/iot";
```
### azure/managementgovernance[](#azuremanagementgovernance "Direct link to azure/managementgovernance")

**ActivityLog**
```
import { ActivityLog } from "diagrams-js/azure/managementgovernance";
```
 **Advisor**
```
import { Advisor } from "diagrams-js/azure/managementgovernance";
```
 **Alerts**
```
import { Alerts } from "diagrams-js/azure/managementgovernance";
```

**ApplicationInsights**
```
import { ApplicationInsights } from "diagrams-js/azure/managementgovernance";
```

**ArcMachines**
```
import { ArcMachines } from "diagrams-js/azure/managementgovernance";
```

**AutomationAccounts**
```
import { AutomationAccounts } from "diagrams-js/azure/managementgovernance";
```

**AzureArc**
```
import { AzureArc } from "diagrams-js/azure/managementgovernance";
```

**AzureLighthouse**
```
import { AzureLighthouse } from "diagrams-js/azure/managementgovernance";
```

**Blueprints**
```
import { Blueprints } from "diagrams-js/azure/managementgovernance";
```

**Compliance**
```
import { Compliance } from "diagrams-js/azure/managementgovernance";
```

**CostManagementAndBilling**
```
import { CostManagementAndBilling } from "diagrams-js/azure/managementgovernance";
```

**CustomerLockboxForMicrosoftAzure**
```
import { CustomerLockboxForMicrosoftAzure } from "diagrams-js/azure/managementgovernance";
```

**DiagnosticsSettings**
```
import { DiagnosticsSettings } from "diagrams-js/azure/managementgovernance";
```

**Education**
```
import { Education } from "diagrams-js/azure/managementgovernance";
```

**IntuneTrends**
```
import { IntuneTrends } from "diagrams-js/azure/managementgovernance";
```

**LogAnalyticsWorkspaces**
```
import { LogAnalyticsWorkspaces } from "diagrams-js/azure/managementgovernance";
```

**Machinesazurearc**
```
import { Machinesazurearc } from "diagrams-js/azure/managementgovernance";
```

**ManagedApplicationsCenter**
```
import { ManagedApplicationsCenter } from "diagrams-js/azure/managementgovernance";
```

**ManagedDesktop**
```
import { ManagedDesktop } from "diagrams-js/azure/managementgovernance";
```
 **Metrics**
```
import { Metrics } from "diagrams-js/azure/managementgovernance";
```
 **Monitor**
```
import { Monitor } from "diagrams-js/azure/managementgovernance";
```

**MyCustomers**
```
import { MyCustomers } from "diagrams-js/azure/managementgovernance";
```

**OperationLogClassic**
```
import { OperationLogClassic } from "diagrams-js/azure/managementgovernance";
```
 **Policy**
```
import { Policy } from "diagrams-js/azure/managementgovernance";
```

**RecoveryServicesVaults**
```
import { RecoveryServicesVaults } from "diagrams-js/azure/managementgovernance";
```

**ResourceGraphExplorer**
```
import { ResourceGraphExplorer } from "diagrams-js/azure/managementgovernance";
```

**ResourcesProvider**
```
import { ResourcesProvider } from "diagrams-js/azure/managementgovernance";
```

**SchedulerJobCollections**
```
import { SchedulerJobCollections } from "diagrams-js/azure/managementgovernance";
```

**ServiceCatalogMad**
```
import { ServiceCatalogMad } from "diagrams-js/azure/managementgovernance";
```

**ServiceProviders**
```
import { ServiceProviders } from "diagrams-js/azure/managementgovernance";
```

**Solutions**
```
import { Solutions } from "diagrams-js/azure/managementgovernance";
```

**UniversalPrint**
```
import { UniversalPrint } from "diagrams-js/azure/managementgovernance";
```

**UserPrivacy**
```
import { UserPrivacy } from "diagrams-js/azure/managementgovernance";
```
### azure/menu[](#azuremenu "Direct link to azure/menu")
 **Keys**
```
import { Keys } from "diagrams-js/azure/menu";
```
### azure/migrate[](#azuremigrate "Direct link to azure/migrate")

**AzureDataboxGateway**
```
import { AzureDataboxGateway } from "diagrams-js/azure/migrate";
```

**AzureMigrate**
```
import { AzureMigrate } from "diagrams-js/azure/migrate";
```

**AzureStackEdge**
```
import { AzureStackEdge } from "diagrams-js/azure/migrate";
```

**CostManagementAndBilling**
```
import { CostManagementAndBilling } from "diagrams-js/azure/migrate";
```
 **DataBox**
```
import { DataBox } from "diagrams-js/azure/migrate";
```

**RecoveryServicesVaults**
```
import { RecoveryServicesVaults } from "diagrams-js/azure/migrate";
```
### azure/migration[](#azuremigration "Direct link to azure/migration")

**AzureDatabaseMigrationServices**
```
import { AzureDatabaseMigrationServices } from "diagrams-js/azure/migration";
```

**DataBoxEdge**
```
import { DataBoxEdge } from "diagrams-js/azure/migration";
```
 **DataBox**
```
import { DataBox } from "diagrams-js/azure/migration";
```

**DatabaseMigrationServices**
```
import { DatabaseMigrationServices } from "diagrams-js/azure/migration";
```

**MigrationProjects**
```
import { MigrationProjects } from "diagrams-js/azure/migration";
```

**RecoveryServicesVaults**
```
import { RecoveryServicesVaults } from "diagrams-js/azure/migration";
```
### azure/mixedreality[](#azuremixedreality "Direct link to azure/mixedreality")

**RemoteRendering**
```
import { RemoteRendering } from "diagrams-js/azure/mixedreality";
```

**SpatialAnchorAccounts**
```
import { SpatialAnchorAccounts } from "diagrams-js/azure/mixedreality";
```
### azure/ml[](#azureml "Direct link to azure/ml")
 **AzureOpenAI**
```
import { AzureOpenAI } from "diagrams-js/azure/ml";
```

**AzureSpeechService**
```
import { AzureSpeechService } from "diagrams-js/azure/ml";
```
 **BatchAI**
```
import { BatchAI } from "diagrams-js/azure/ml";
```
 **BotServices**
```
import { BotServices } from "diagrams-js/azure/ml";
```

**CognitiveServices**
```
import { CognitiveServices } from "diagrams-js/azure/ml";
```

**GenomicsAccounts**
```
import { GenomicsAccounts } from "diagrams-js/azure/ml";
```

**MachineLearningServiceWorkspaces**
```
import { MachineLearningServiceWorkspaces } from "diagrams-js/azure/ml";
```

**MachineLearningStudioWebServicePlans**
```
import { MachineLearningStudioWebServicePlans } from "diagrams-js/azure/ml";
```

**MachineLearningStudioWebServices**
```
import { MachineLearningStudioWebServices } from "diagrams-js/azure/ml";
```

**MachineLearningStudioWorkspaces**
```
import { MachineLearningStudioWorkspaces } from "diagrams-js/azure/ml";
```
### azure/mobile[](#azuremobile "Direct link to azure/mobile")

**AppServiceMobile**
```
import { AppServiceMobile } from "diagrams-js/azure/mobile";
```
 **AppServices**
```
import { AppServices } from "diagrams-js/azure/mobile";
```

**MobileEngagement**
```
import { MobileEngagement } from "diagrams-js/azure/mobile";
```

**NotificationHubs**
```
import { NotificationHubs } from "diagrams-js/azure/mobile";
```

**PowerPlatform**
```
import { PowerPlatform } from "diagrams-js/azure/mobile";
```
### azure/monitor[](#azuremonitor "Direct link to azure/monitor")
 **ActivityLog**
```
import { ActivityLog } from "diagrams-js/azure/monitor";
```

**ApplicationInsights**
```
import { ApplicationInsights } from "diagrams-js/azure/monitor";
```
 **AutoScale**
```
import { AutoScale } from "diagrams-js/azure/monitor";
```

**AzureMonitorsForSAPSolutions**
```
import { AzureMonitorsForSAPSolutions } from "diagrams-js/azure/monitor";
```

**AzureWorkbooks**
```
import { AzureWorkbooks } from "diagrams-js/azure/monitor";
```

**ChangeAnalysis**
```
import { ChangeAnalysis } from "diagrams-js/azure/monitor";
```

**DiagnosticsSettings**
```
import { DiagnosticsSettings } from "diagrams-js/azure/monitor";
```

**LogAnalyticsWorkspaces**
```
import { LogAnalyticsWorkspaces } from "diagrams-js/azure/monitor";
```
 **Logs**
```
import { Logs } from "diagrams-js/azure/monitor";
```
 **Metrics**
```
import { Metrics } from "diagrams-js/azure/monitor";
```
 **Monitor**
```
import { Monitor } from "diagrams-js/azure/monitor";
```

**NetworkWatcher**
```
import { NetworkWatcher } from "diagrams-js/azure/monitor";
```
### azure/network[](#azurenetwork "Direct link to azure/network")

**ApplicationGateway**
```
import { ApplicationGateway } from "diagrams-js/azure/network";
```

**ApplicationSecurityGroups**
```
import { ApplicationSecurityGroups } from "diagrams-js/azure/network";
```
 **CDNProfiles**
```
import { CDNProfiles } from "diagrams-js/azure/network";
```
 **Connections**
```
import { Connections } from "diagrams-js/azure/network";
```

**DDOSProtectionPlans**
```
import { DDOSProtectionPlans } from "diagrams-js/azure/network";
```

**DNSPrivateZones**
```
import { DNSPrivateZones } from "diagrams-js/azure/network";
```
 **DNSZones**
```
import { DNSZones } from "diagrams-js/azure/network";
```

**ExpressrouteCircuits**
```
import { ExpressrouteCircuits } from "diagrams-js/azure/network";
```
 **Firewall**
```
import { Firewall } from "diagrams-js/azure/network";
```
 **FrontDoors**
```
import { FrontDoors } from "diagrams-js/azure/network";
```

**LoadBalancers**
```
import { LoadBalancers } from "diagrams-js/azure/network";
```

**LocalNetworkGateways**
```
import { LocalNetworkGateways } from "diagrams-js/azure/network";
```

**NetworkInterfaces**
```
import { NetworkInterfaces } from "diagrams-js/azure/network";
```

**NetworkSecurityGroupsClassic**
```
import { NetworkSecurityGroupsClassic } from "diagrams-js/azure/network";
```

**NetworkWatcher**
```
import { NetworkWatcher } from "diagrams-js/azure/network";
```

**OnPremisesDataGateways**
```
import { OnPremisesDataGateways } from "diagrams-js/azure/network";
```

**PrivateEndpoint**
```
import { PrivateEndpoint } from "diagrams-js/azure/network";
```

**PublicIpAddresses**
```
import { PublicIpAddresses } from "diagrams-js/azure/network";
```

**ReservedIpAddressesClassic**
```
import { ReservedIpAddressesClassic } from "diagrams-js/azure/network";
```

**RouteFilters**
```
import { RouteFilters } from "diagrams-js/azure/network";
```
 **RouteTables**
```
import { RouteTables } from "diagrams-js/azure/network";
```

**ServiceEndpointPolicies**
```
import { ServiceEndpointPolicies } from "diagrams-js/azure/network";
```
 **Subnets**
```
import { Subnets } from "diagrams-js/azure/network";
```

**TrafficManagerProfiles**
```
import { TrafficManagerProfiles } from "diagrams-js/azure/network";
```

**VirtualNetworkClassic**
```
import { VirtualNetworkClassic } from "diagrams-js/azure/network";
```

**VirtualNetworkGateways**
```
import { VirtualNetworkGateways } from "diagrams-js/azure/network";
```

**VirtualNetworks**
```
import { VirtualNetworks } from "diagrams-js/azure/network";
```
 **VirtualWans**
```
import { VirtualWans } from "diagrams-js/azure/network";
```
### azure/networking[](#azurenetworking "Direct link to azure/networking")

**ApplicationGateways**
```
import { ApplicationGateways } from "diagrams-js/azure/networking";
```

**AtmMultistack**
```
import { AtmMultistack } from "diagrams-js/azure/networking";
```

**AzureCommunicationsGateway**
```
import { AzureCommunicationsGateway } from "diagrams-js/azure/networking";
```

**AzureFirewallManager**
```
import { AzureFirewallManager } from "diagrams-js/azure/networking";
```

**AzureFirewallPolicy**
```
import { AzureFirewallPolicy } from "diagrams-js/azure/networking";
```
 **Bastions**
```
import { Bastions } from "diagrams-js/azure/networking";
```

**CDNProfiles**
```
import { CDNProfiles } from "diagrams-js/azure/networking";
```

**ConnectedCache**
```
import { ConnectedCache } from "diagrams-js/azure/networking";
```

**Connections**
```
import { Connections } from "diagrams-js/azure/networking";
```

**DDOSProtectionPlans**
```
import { DDOSProtectionPlans } from "diagrams-js/azure/networking";
```

**DNSMultistack**
```
import { DNSMultistack } from "diagrams-js/azure/networking";
```

**DNSPrivateResolver**
```
import { DNSPrivateResolver } from "diagrams-js/azure/networking";
```

**DNSSecurityPolicy**
```
import { DNSSecurityPolicy } from "diagrams-js/azure/networking";
```
 **DNSZones**
```
import { DNSZones } from "diagrams-js/azure/networking";
```

**ExpressrouteCircuits**
```
import { ExpressrouteCircuits } from "diagrams-js/azure/networking";
```
 **Firewalls**
```
import { Firewalls } from "diagrams-js/azure/networking";
```

**FrontDoorAndCDNProfiles**
```
import { FrontDoorAndCDNProfiles } from "diagrams-js/azure/networking";
```

**IpAddressManager**
```
import { IpAddressManager } from "diagrams-js/azure/networking";
```
 **IpGroups**
```
import { IpGroups } from "diagrams-js/azure/networking";
```

**LoadBalancerHub**
```
import { LoadBalancerHub } from "diagrams-js/azure/networking";
```

**LoadBalancers**
```
import { LoadBalancers } from "diagrams-js/azure/networking";
```

**LocalNetworkGateways**
```
import { LocalNetworkGateways } from "diagrams-js/azure/networking";
```
 **Nat**
```
import { Nat } from "diagrams-js/azure/networking";
```

**NetworkInterfaces**
```
import { NetworkInterfaces } from "diagrams-js/azure/networking";
```

**NetworkSecurityGroups**
```
import { NetworkSecurityGroups } from "diagrams-js/azure/networking";
```

**NetworkWatcher**
```
import { NetworkWatcher } from "diagrams-js/azure/networking";
```

**OnPremisesDataGateways**
```
import { OnPremisesDataGateways } from "diagrams-js/azure/networking";
```

**PrivateLinkService**
```
import { PrivateLinkService } from "diagrams-js/azure/networking";
```

**PrivateLinkServices**
```
import { PrivateLinkServices } from "diagrams-js/azure/networking";
```

**PrivateLink**
```
import { PrivateLink } from "diagrams-js/azure/networking";
```

**ProximityPlacementGroups**
```
import { ProximityPlacementGroups } from "diagrams-js/azure/networking";
```

**PublicIpAddressesClassic**
```
import { PublicIpAddressesClassic } from "diagrams-js/azure/networking";
```

**PublicIpAddresses**
```
import { PublicIpAddresses } from "diagrams-js/azure/networking";
```

**PublicIpPrefixes**
```
import { PublicIpPrefixes } from "diagrams-js/azure/networking";
```

**ReservedIpAddressesClassic**
```
import { ReservedIpAddressesClassic } from "diagrams-js/azure/networking";
```

**ResourceManagementPrivateLink**
```
import { ResourceManagementPrivateLink } from "diagrams-js/azure/networking";
```

**RouteFilters**
```
import { RouteFilters } from "diagrams-js/azure/networking";
```

**RouteTables**
```
import { RouteTables } from "diagrams-js/azure/networking";
```

**ServiceEndpointPolicies**
```
import { ServiceEndpointPolicies } from "diagrams-js/azure/networking";
```
 **SpotVM**
```
import { SpotVM } from "diagrams-js/azure/networking";
```
 **SpotVmss**
```
import { SpotVmss } from "diagrams-js/azure/networking";
```
 **Subnet**
```
import { Subnet } from "diagrams-js/azure/networking";
```

**TrafficController**
```
import { TrafficController } from "diagrams-js/azure/networking";
```

**TrafficManagerProfiles**
```
import { TrafficManagerProfiles } from "diagrams-js/azure/networking";
```

**VirtualNetworkGateways**
```
import { VirtualNetworkGateways } from "diagrams-js/azure/networking";
```

**VirtualNetworksClassic**
```
import { VirtualNetworksClassic } from "diagrams-js/azure/networking";
```

**VirtualNetworks**
```
import { VirtualNetworks } from "diagrams-js/azure/networking";
```

**VirtualRouter**
```
import { VirtualRouter } from "diagrams-js/azure/networking";
```

**VirtualWanHub**
```
import { VirtualWanHub } from "diagrams-js/azure/networking";
```

**VirtualWans**
```
import { VirtualWans } from "diagrams-js/azure/networking";
```

**WebApplicationFirewallPolicieswaf**
```
import { WebApplicationFirewallPolicieswaf } from "diagrams-js/azure/networking";
```
### azure/newicons[](#azurenewicons "Direct link to azure/newicons")

**AzureSustainability**
```
import { AzureSustainability } from "diagrams-js/azure/newicons";
```

**ConnectedVehiclePlatform**
```
import { ConnectedVehiclePlatform } from "diagrams-js/azure/newicons";
```

**EntraConnectHealth**
```
import { EntraConnectHealth } from "diagrams-js/azure/newicons";
```

**EntraConnectSync**
```
import { EntraConnectSync } from "diagrams-js/azure/newicons";
```

**IcmTroubleshooting**
```
import { IcmTroubleshooting } from "diagrams-js/azure/newicons";
```
 **Osconfig**
```
import { Osconfig } from "diagrams-js/azure/newicons";
```

**StorageActions**
```
import { StorageActions } from "diagrams-js/azure/newicons";
```
### azure/other[](#azureother "Direct link to azure/other")
 **AadLicenses**
```
import { AadLicenses } from "diagrams-js/azure/other";
```
 **AksIstio**
```
import { AksIstio } from "diagrams-js/azure/other";
```

**AppComplianceAutomation**
```
import { AppComplianceAutomation } from "diagrams-js/azure/other";
```

**AppRegistrations**
```
import { AppRegistrations } from "diagrams-js/azure/other";
```
 **Aquila**
```
import { Aquila } from "diagrams-js/azure/other";
```

**ArcDataServices**
```
import { ArcDataServices } from "diagrams-js/azure/other";
```

**ArcKubernetes**
```
import { ArcKubernetes } from "diagrams-js/azure/other";
```

**ArcPostgresql**
```
import { ArcPostgresql } from "diagrams-js/azure/other";
```

**ArcSQLManagedInstance**
```
import { ArcSQLManagedInstance } from "diagrams-js/azure/other";
```

**ArcSQLServer**
```
import { ArcSQLServer } from "diagrams-js/azure/other";
```
 **AvsVM**
```
import { AvsVM } from "diagrams-js/azure/other";
```
 **AzureA**
```
import { AzureA } from "diagrams-js/azure/other";
```

**AzureBackupCenter**
```
import { AzureBackupCenter } from "diagrams-js/azure/other";
```

**AzureCenterForSAP**
```
import { AzureCenterForSAP } from "diagrams-js/azure/other";
```

**AzureChaosStudio**
```
import { AzureChaosStudio } from "diagrams-js/azure/other";
```

**AzureCloudShell**
```
import { AzureCloudShell } from "diagrams-js/azure/other";
```

**AzureCommunicationServices**
```
import { AzureCommunicationServices } from "diagrams-js/azure/other";
```

**AzureComputeGalleries**
```
import { AzureComputeGalleries } from "diagrams-js/azure/other";
```

**AzureDeploymentEnvironments**
```
import { AzureDeploymentEnvironments } from "diagrams-js/azure/other";
```

**AzureDevTunnels**
```
import { AzureDevTunnels } from "diagrams-js/azure/other";
```

**AzureEdgeHardwareCenter**
```
import { AzureEdgeHardwareCenter } from "diagrams-js/azure/other";
```

**AzureHpcWorkbenches**
```
import { AzureHpcWorkbenches } from "diagrams-js/azure/other";
```

**AzureLoadTesting**
```
import { AzureLoadTesting } from "diagrams-js/azure/other";
```

**AzureManagedGrafana**
```
import { AzureManagedGrafana } from "diagrams-js/azure/other";
```

**AzureMonitorDashboard**
```
import { AzureMonitorDashboard } from "diagrams-js/azure/other";
```

**AzureNetworkFunctionManagerFunctions**
```
import { AzureNetworkFunctionManagerFunctions } from "diagrams-js/azure/other";
```

**AzureNetworkFunctionManager**
```
import { AzureNetworkFunctionManager } from "diagrams-js/azure/other";
```

**AzureOrbital**
```
import { AzureOrbital } from "diagrams-js/azure/other";
```
 **AzureQuotas**
```
import { AzureQuotas } from "diagrams-js/azure/other";
```
 **AzureSphere**
```
import { AzureSphere } from "diagrams-js/azure/other";
```

**AzureStorageMover**
```
import { AzureStorageMover } from "diagrams-js/azure/other";
```

**AzureSupportCenterBlue**
```
import { AzureSupportCenterBlue } from "diagrams-js/azure/other";
```

**AzureVideoIndexer**
```
import { AzureVideoIndexer } from "diagrams-js/azure/other";
```

**AzureVirtualDesktop**
```
import { AzureVirtualDesktop } from "diagrams-js/azure/other";
```

**AzureVmwareSolution**
```
import { AzureVmwareSolution } from "diagrams-js/azure/other";
```

**Azureattestation**
```
import { Azureattestation } from "diagrams-js/azure/other";
```
 **Azurite**
```
import { Azurite } from "diagrams-js/azure/other";
```
 **BackupVault**
```
import { BackupVault } from "diagrams-js/azure/other";
```

**BareMetalInfrastructure**
```
import { BareMetalInfrastructure } from "diagrams-js/azure/other";
```

**CapacityReservationGroups**
```
import { CapacityReservationGroups } from "diagrams-js/azure/other";
```

**CentralServiceInstanceForSAP**
```
import { CentralServiceInstanceForSAP } from "diagrams-js/azure/other";
```
 **Ceres**
```
import { Ceres } from "diagrams-js/azure/other";
```

**CloudServicesExtendedSupport**
```
import { CloudServicesExtendedSupport } from "diagrams-js/azure/other";
```

**CommunityImages**
```
import { CommunityImages } from "diagrams-js/azure/other";
```

**ComplianceCenter**
```
import { ComplianceCenter } from "diagrams-js/azure/other";
```

**ConfidentialLedgers**
```
import { ConfidentialLedgers } from "diagrams-js/azure/other";
```

**ContainerAppsEnvironments**
```
import { ContainerAppsEnvironments } from "diagrams-js/azure/other";
```
 **CostExport**
```
import { CostExport } from "diagrams-js/azure/other";
```

**CustomIpPrefix**
```
import { CustomIpPrefix } from "diagrams-js/azure/other";
```

**DashboardHub**
```
import { DashboardHub } from "diagrams-js/azure/other";
```

**DataCollectionRules**
```
import { DataCollectionRules } from "diagrams-js/azure/other";
```

**DatabaseInstanceForSAP**
```
import { DatabaseInstanceForSAP } from "diagrams-js/azure/other";
```

**DedicatedHsm**
```
import { DedicatedHsm } from "diagrams-js/azure/other";
```

**DefenderCmLocalManager**
```
import { DefenderCmLocalManager } from "diagrams-js/azure/other";
```

**DefenderDcsController**
```
import { DefenderDcsController } from "diagrams-js/azure/other";
```

**DefenderDistributerControlSystem**
```
import { DefenderDistributerControlSystem } from "diagrams-js/azure/other";
```

**DefenderEngineeringStation**
```
import { DefenderEngineeringStation } from "diagrams-js/azure/other";
```

**DefenderExternalManagement**
```
import { DefenderExternalManagement } from "diagrams-js/azure/other";
```

**DefenderFreezerMonitor**
```
import { DefenderFreezerMonitor } from "diagrams-js/azure/other";
```

**DefenderHistorian**
```
import { DefenderHistorian } from "diagrams-js/azure/other";
```
 **DefenderHmi**
```
import { DefenderHmi } from "diagrams-js/azure/other";
```

**DefenderIndustrialPackagingSystem**
```
import { DefenderIndustrialPackagingSystem } from "diagrams-js/azure/other";
```

**DefenderIndustrialPrinter**
```
import { DefenderIndustrialPrinter } from "diagrams-js/azure/other";
```

**DefenderIndustrialRobot**
```
import { DefenderIndustrialRobot } from "diagrams-js/azure/other";
```

**DefenderIndustrialScaleSystem**
```
import { DefenderIndustrialScaleSystem } from "diagrams-js/azure/other";
```

**DefenderMarquee**
```
import { DefenderMarquee } from "diagrams-js/azure/other";
```

**DefenderMeter**
```
import { DefenderMeter } from "diagrams-js/azure/other";
```
 **DefenderPlc**
```
import { DefenderPlc } from "diagrams-js/azure/other";
```

**DefenderPneumaticDevice**
```
import { DefenderPneumaticDevice } from "diagrams-js/azure/other";
```

**DefenderProgramableBoard**
```
import { DefenderProgramableBoard } from "diagrams-js/azure/other";
```

**DefenderRelay**
```
import { DefenderRelay } from "diagrams-js/azure/other";
```

**DefenderRobotController**
```
import { DefenderRobotController } from "diagrams-js/azure/other";
```
 **DefenderRtu**
```
import { DefenderRtu } from "diagrams-js/azure/other";
```

**DefenderSensor**
```
import { DefenderSensor } from "diagrams-js/azure/other";
```

**DefenderSlot**
```
import { DefenderSlot } from "diagrams-js/azure/other";
```

**DefenderWebGuidingSystem**
```
import { DefenderWebGuidingSystem } from "diagrams-js/azure/other";
```

**DeviceUpdateIotHub**
```
import { DeviceUpdateIotHub } from "diagrams-js/azure/other";
```
 **DiskPool**
```
import { DiskPool } from "diagrams-js/azure/other";
```

**EdgeManagement**
```
import { EdgeManagement } from "diagrams-js/azure/other";
```
 **ElasticSan**
```
import { ElasticSan } from "diagrams-js/azure/other";
```

**ExchangeOnPremisesAccess**
```
import { ExchangeOnPremisesAccess } from "diagrams-js/azure/other";
```

**ExpressRouteTrafficCollector**
```
import { ExpressRouteTrafficCollector } from "diagrams-js/azure/other";
```

**ExpressrouteDirect**
```
import { ExpressrouteDirect } from "diagrams-js/azure/other";
```
 **FhirService**
```
import { FhirService } from "diagrams-js/azure/other";
```
 **Fiji**
```
import { Fiji } from "diagrams-js/azure/other";
```

**HdiAksCluster**
```
import { HdiAksCluster } from "diagrams-js/azure/other";
```

**InstancePools**
```
import { InstancePools } from "diagrams-js/azure/other";
```

**InternetAnalyzerProfiles**
```
import { InternetAnalyzerProfiles } from "diagrams-js/azure/other";
```

**KubernetesFleetManager**
```
import { KubernetesFleetManager } from "diagrams-js/azure/other";
```

**LocalNetworkGateways**
```
import { LocalNetworkGateways } from "diagrams-js/azure/other";
```

**LogAnalyticsQueryPack**
```
import { LogAnalyticsQueryPack } from "diagrams-js/azure/other";
```

**ManagedInstanceApacheCassandra**
```
import { ManagedInstanceApacheCassandra } from "diagrams-js/azure/other";
```

**MedtechService**
```
import { MedtechService } from "diagrams-js/azure/other";
```

**MicrosoftDevBox**
```
import { MicrosoftDevBox } from "diagrams-js/azure/other";
```

**MissionLandingZone**
```
import { MissionLandingZone } from "diagrams-js/azure/other";
```

**MobileNetworks**
```
import { MobileNetworks } from "diagrams-js/azure/other";
```

**ModularDataCenter**
```
import { ModularDataCenter } from "diagrams-js/azure/other";
```

**NetworkManagers**
```
import { NetworkManagers } from "diagrams-js/azure/other";
```

**NetworkSecurityPerimeters**
```
import { NetworkSecurityPerimeters } from "diagrams-js/azure/other";
```

**OpenSupplyChainPlatform**
```
import { OpenSupplyChainPlatform } from "diagrams-js/azure/other";
```

**PeeringService**
```
import { PeeringService } from "diagrams-js/azure/other";
```
 **Peerings**
```
import { Peerings } from "diagrams-js/azure/other";
```

**PrivateEndpoints**
```
import { PrivateEndpoints } from "diagrams-js/azure/other";
```

**ReservedCapacity**
```
import { ReservedCapacity } from "diagrams-js/azure/other";
```

**ResourceGuard**
```
import { ResourceGuard } from "diagrams-js/azure/other";
```

**ResourceMover**
```
import { ResourceMover } from "diagrams-js/azure/other";
```
 **Rtos**
```
import { Rtos } from "diagrams-js/azure/other";
```

**SavingsPlans**
```
import { SavingsPlans } from "diagrams-js/azure/other";
```

**ScvmmManagementServers**
```
import { ScvmmManagementServers } from "diagrams-js/azure/other";
```
 **SonicDash**
```
import { SonicDash } from "diagrams-js/azure/other";
```
 **SshKeys**
```
import { SshKeys } from "diagrams-js/azure/other";
```

**StorageFunctions**
```
import { StorageFunctions } from "diagrams-js/azure/other";
```

**TargetsManagement**
```
import { TargetsManagement } from "diagrams-js/azure/other";
```

**TemplateSpecs**
```
import { TemplateSpecs } from "diagrams-js/azure/other";
```
 **TestBase**
```
import { TestBase } from "diagrams-js/azure/other";
```

**UpdateManagementCenter**
```
import { UpdateManagementCenter } from "diagrams-js/azure/other";
```

**VideoAnalyzers**
```
import { VideoAnalyzers } from "diagrams-js/azure/other";
```

**VirtualEnclaves**
```
import { VirtualEnclaves } from "diagrams-js/azure/other";
```

**VirtualInstanceForSAP**
```
import { VirtualInstanceForSAP } from "diagrams-js/azure/other";
```

**VirtualVisitsBuilder**
```
import { VirtualVisitsBuilder } from "diagrams-js/azure/other";
```

**VMAppDefinitions**
```
import { VMAppDefinitions } from "diagrams-js/azure/other";
```

**VMAppVersions**
```
import { VMAppVersions } from "diagrams-js/azure/other";
```

**VMImageVersion**
```
import { VMImageVersion } from "diagrams-js/azure/other";
```
 **Wac**
```
import { Wac } from "diagrams-js/azure/other";
```

**WebAppDatabase**
```
import { WebAppDatabase } from "diagrams-js/azure/other";
```
 **WebJobs**
```
import { WebJobs } from "diagrams-js/azure/other";
```

**WindowsNotificationServices**
```
import { WindowsNotificationServices } from "diagrams-js/azure/other";
```

**WorkerContainerApp**
```
import { WorkerContainerApp } from "diagrams-js/azure/other";
```
### azure/security[](#azuresecurity "Direct link to azure/security")

**ApplicationSecurityGroups**
```
import { ApplicationSecurityGroups } from "diagrams-js/azure/security";
```

**AzureADAuthenticationMethods**
```
import { AzureADAuthenticationMethods } from "diagrams-js/azure/security";
```

**AzureADIdentityProtection**
```
import { AzureADIdentityProtection } from "diagrams-js/azure/security";
```

**AzureADPrivlegedIdentityManagement**
```
import { AzureADPrivlegedIdentityManagement } from "diagrams-js/azure/security";
```

**AzureADRiskySignins**
```
import { AzureADRiskySignins } from "diagrams-js/azure/security";
```

**AzureADRiskyUsers**
```
import { AzureADRiskyUsers } from "diagrams-js/azure/security";
```

**AzureInformationProtection**
```
import { AzureInformationProtection } from "diagrams-js/azure/security";
```

**AzureSentinel**
```
import { AzureSentinel } from "diagrams-js/azure/security";
```

**ConditionalAccess**
```
import { ConditionalAccess } from "diagrams-js/azure/security";
```
 **Defender**
```
import { Defender } from "diagrams-js/azure/security";
```
 **Detonation**
```
import { Detonation } from "diagrams-js/azure/security";
```

**ExtendedSecurityUpdates**
```
import { ExtendedSecurityUpdates } from "diagrams-js/azure/security";
```

**Extendedsecurityupdates**
```
import { Extendedsecurityupdates } from "diagrams-js/azure/security";
```

**IdentitySecureScore**
```
import { IdentitySecureScore } from "diagrams-js/azure/security";
```
 **KeyVaults**
```
import { KeyVaults } from "diagrams-js/azure/security";
```

**MicrosoftDefenderEasm**
```
import { MicrosoftDefenderEasm } from "diagrams-js/azure/security";
```

**MicrosoftDefenderForCloud**
```
import { MicrosoftDefenderForCloud } from "diagrams-js/azure/security";
```

**MicrosoftDefenderForIot**
```
import { MicrosoftDefenderForIot } from "diagrams-js/azure/security";
```

**MultifactorAuthentication**
```
import { MultifactorAuthentication } from "diagrams-js/azure/security";
```

**SecurityCenter**
```
import { SecurityCenter } from "diagrams-js/azure/security";
```
 **Sentinel**
```
import { Sentinel } from "diagrams-js/azure/security";
```

**UserSettings**
```
import { UserSettings } from "diagrams-js/azure/security";
```
### azure/storage[](#azurestorage "Direct link to azure/storage")

**ArchiveStorage**
```
import { ArchiveStorage } from "diagrams-js/azure/storage";
```

**AzureDataboxGateway**
```
import { AzureDataboxGateway } from "diagrams-js/azure/storage";
```

**AzureFileshares**
```
import { AzureFileshares } from "diagrams-js/azure/storage";
```

**AzureHcpCache**
```
import { AzureHcpCache } from "diagrams-js/azure/storage";
```

**AzureNetappFiles**
```
import { AzureNetappFiles } from "diagrams-js/azure/storage";
```

**AzureStackEdge**
```
import { AzureStackEdge } from "diagrams-js/azure/storage";
```

**Azurefxtedgefiler**
```
import { Azurefxtedgefiler } from "diagrams-js/azure/storage";
```
 **BlobStorage**
```
import { BlobStorage } from "diagrams-js/azure/storage";
```

**DataBoxEdgeDataBoxGateway**
```
import { DataBoxEdgeDataBoxGateway } from "diagrams-js/azure/storage";
```
 **DataBox**
```
import { DataBox } from "diagrams-js/azure/storage";
```

**DataLakeStorageGen1**
```
import { DataLakeStorageGen1 } from "diagrams-js/azure/storage";
```

**DataLakeStorage**
```
import { DataLakeStorage } from "diagrams-js/azure/storage";
```

**DataShareInvitations**
```
import { DataShareInvitations } from "diagrams-js/azure/storage";
```
 **DataShares**
```
import { DataShares } from "diagrams-js/azure/storage";
```

**GeneralStorage**
```
import { GeneralStorage } from "diagrams-js/azure/storage";
```

**ImportExportJobs**
```
import { ImportExportJobs } from "diagrams-js/azure/storage";
```
 **NetappFiles**
```
import { NetappFiles } from "diagrams-js/azure/storage";
```

**QueuesStorage**
```
import { QueuesStorage } from "diagrams-js/azure/storage";
```

**RecoveryServicesVaults**
```
import { RecoveryServicesVaults } from "diagrams-js/azure/storage";
```

**StorageAccountsClassic**
```
import { StorageAccountsClassic } from "diagrams-js/azure/storage";
```

**StorageAccounts**
```
import { StorageAccounts } from "diagrams-js/azure/storage";
```

**StorageExplorer**
```
import { StorageExplorer } from "diagrams-js/azure/storage";
```

**StorageSyncServices**
```
import { StorageSyncServices } from "diagrams-js/azure/storage";
```

**StorsimpleDataManagers**
```
import { StorsimpleDataManagers } from "diagrams-js/azure/storage";
```

**StorsimpleDeviceManagers**
```
import { StorsimpleDeviceManagers } from "diagrams-js/azure/storage";
```

**TableStorage**
```
import { TableStorage } from "diagrams-js/azure/storage";
```
### azure/web[](#azureweb "Direct link to azure/web")
 **APICenter**
```
import { APICenter } from "diagrams-js/azure/web";
```

**APIConnections**
```
import { APIConnections } from "diagrams-js/azure/web";
```

**APIManagementServices**
```
import { APIManagementServices } from "diagrams-js/azure/web";
```

**AppServiceCertificates**
```
import { AppServiceCertificates } from "diagrams-js/azure/web";
```

**AppServiceDomains**
```
import { AppServiceDomains } from "diagrams-js/azure/web";
```

**AppServiceEnvironments**
```
import { AppServiceEnvironments } from "diagrams-js/azure/web";
```

**AppServicePlans**
```
import { AppServicePlans } from "diagrams-js/azure/web";
```
 **AppServices**
```
import { AppServices } from "diagrams-js/azure/web";
```
 **AppSpace**
```
import { AppSpace } from "diagrams-js/azure/web";
```

**AzureMediaService**
```
import { AzureMediaService } from "diagrams-js/azure/web";
```

**AzureSpringApps**
```
import { AzureSpringApps } from "diagrams-js/azure/web";
```

**CognitiveSearch**
```
import { CognitiveSearch } from "diagrams-js/azure/web";
```

**CognitiveServices**
```
import { CognitiveServices } from "diagrams-js/azure/web";
```

**FrontDoorAndCDNProfiles**
```
import { FrontDoorAndCDNProfiles } from "diagrams-js/azure/web";
```

**MediaServices**
```
import { MediaServices } from "diagrams-js/azure/web";
```

**NotificationHubNamespaces**
```
import { NotificationHubNamespaces } from "diagrams-js/azure/web";
```

**PowerPlatform**
```
import { PowerPlatform } from "diagrams-js/azure/web";
```
 **Search**
```
import { Search } from "diagrams-js/azure/web";
```
 **Signalr**
```
import { Signalr } from "diagrams-js/azure/web";
```
 **StaticApps**
```
import { StaticApps } from "diagrams-js/azure/web";
```
---
# C4 Model
The C4 model is a simple way to visualize software architecture at different levels of detail. diagrams-js provides support for creating C4 diagrams including Context, Container, Component, and Code diagrams.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Person, Container, Database, System, Relationship, SystemBoundary } from "diagrams-js/c4";
const diagram = Diagram("Container Diagram", { direction: "TB" });
// External user
const user = diagram.add(Person("User", "System user", true));
// System boundary containing internal containers
const system = SystemBoundary("My Application", diagram);
const webApp = system.add(Container("Web App", "React", "User interface"));
const api = system.add(Container("API", "Node.js", "Business logic"));
const db = system.add(Database("Database", "PostgreSQL", "Data storage"));
// Relationships
user.to(Relationship("Uses"), webApp);
webApp.to(Relationship("Calls"), api);
api.to(Relationship("Reads/Writes"), db);
const svg = await diagram.render();
diagram.destroy();
```
## Node Reference[](#node-reference "Direct link to Node Reference")
### Person[](#person "Direct link to Person")
Represents a person (user, actor, role, or persona).
```
import { Person } from "diagrams-js/c4";
// Internal person (blue)
const user = diagram.add(Person("User", "Description"));
// External person (gray)
const externalUser = diagram.add(Person("External User", "Description", true));
```
**Parameters:**
* `name` - The name of the person
* `description` - Optional description text
* `external` - Whether this is an external person (default: false)
* `options` - Additional Graphviz node attributes
### Container[](#container "Direct link to Container")
Represents a software container (applications, web apps, microservices, etc.).
```
import { Container } from "diagrams-js/c4";
const webApp = diagram.add(Container("Web App", "React", "User interface"));
const api = diagram.add(Container("API", "Node.js"));
```
**Parameters:**
* `name` - The name of the container
* `technology` - Optional technology (e.g., "Java", "Node.js", "React")
* `description` - Optional description text
* `options` - Additional Graphviz node attributes
### Database[](#database "Direct link to Database")
Represents a data storage container (databases, file systems, etc.).
```
import { Database } from "diagrams-js/c4";
const db = diagram.add(Database("Main DB", "PostgreSQL", "Primary data store"));
```
**Parameters:**
* `name` - The name of the database
* `technology` - Optional technology (e.g., "PostgreSQL", "MongoDB")
* `description` - Optional description text
* `options` - Additional Graphviz node attributes
### System[](#system "Direct link to System")
Represents a software system.
```
import { System } from "diagrams-js/c4";
// Internal system (blue)
const core = diagram.add(System("Core System", "Main business logic"));
// External system (gray)
const external = diagram.add(System("Payment Gateway", "External service", true));
```
**Parameters:**
* `name` - The name of the system
* `description` - Optional description text
* `external` - Whether this is an external system (default: false)
* `options` - Additional Graphviz node attributes
### SystemBoundary[](#systemboundary "Direct link to SystemBoundary")
Creates a boundary (cluster) to group related containers or components.
```
import { SystemBoundary, Container } from "diagrams-js/c4";
const boundary = SystemBoundary("My System", diagram);
const container = boundary.add(Container("Web App"));
```
**Parameters:**
* `label` - The name/label of the boundary
* `diagram` - The diagram instance
* `options` - Additional Graphviz graph attributes
### Relationship[](#relationship "Direct link to Relationship")
Creates a relationship (edge) between C4 elements.
```
import { Relationship } from "diagrams-js/c4";
node1.to(Relationship("Uses"), node2);
node1.to(Relationship(), node3); // Unlabeled relationship
```
**Parameters:**
* `label` - Optional relationship label/description
* `options` - Additional Graphviz edge attributes
## Styling[](#styling "Direct link to Styling")
C4 nodes use the following default styling:
* **Internal elements** (Person, System, Container): Dodger blue (`dodgerblue4` for Person/System, `dodgerblue3` for Container)
* **External elements**: Gray (`gray60`)
* **Database**: Cylinder shape with bottom-aligned label
* **Person**: Rounded rectangle
* **Relationships**: Dashed lines in gray (`gray60`)
* **System Boundaries**: Dashed borders with white background
All elements support custom Graphviz attributes through the `options` parameter.
## Complete Example[](#complete-example "Direct link to Complete Example")
Here's a complete C4 Container diagram example:
```
import { Diagram } from "diagrams-js";
import { Person, Container, Database, System, Relationship, SystemBoundary } from "diagrams-js/c4";
const diagram = Diagram("Container diagram for Internet Banking System", {
direction: "TB",
curvestyle: "spline",
});
const customer = diagram.add(Person("Personal Banking Customer", "A customer of the bank, with personal bank accounts."));
const bankingSystem = SystemBoundary("Internet Banking System", diagram);
const webApp = bankingSystem.add(Container(
"Web Application",
"Java and Spring MVC",
"Delivers the static content and the Internet banking single page application."
));
const spa = bankingSystem.add(Container(
"Single-Page Application",
"Javascript and Angular",
"Provides all of the Internet banking functionality to customers via their web browser."
));
const mobile = bankingSystem.add(Container(
"Mobile App",
"Xamarin",
"Provides a limited subset of the Internet banking functionality to customers via their mobile device."
));
const api = bankingSystem.add(Container(
"API Application",
"Java and Spring MVC",
"Provides Internet banking functionality via a JSON/HTTPS API."
));
const db = bankingSystem.add(Database(
"Database",
"Oracle Database Schema",
"Stores user registration information, hashed authentication credentials, access logs, etc."
));
const email = diagram.add(System(
"E-mail System",
"The internal Microsoft Exchange e-mail system.",
true
));
const mainframe = diagram.add(System(
"Mainframe Banking System",
"Stores all of the core banking information about customers, accounts, transactions, etc.",
true
));
customer.to(Relationship("Visits bigbank.com/ib using [HTTPS]"), webApp);
customer.to(Relationship("Views account balances, and makes payments using"), [spa, mobile]);
webApp.to(Relationship("Delivers to the customer's web browser"), spa);
spa.to(Relationship("Make API calls to [JSON/HTTPS]"), api);
mobile.to(Relationship("Make API calls to [JSON/HTTPS]"), api);
api.to(Relationship("reads from and writes to"), db);
api.to(Relationship("Sends email using [SMTP]"), email);
api.to(Relationship("Makes API calls to [XML/HTTPS]"), mainframe);
customer.from(Relationship("Sends e-mails to"), email);
const svg = await diagram.render();
diagram.destroy();
```
---
# DigitalOcean
Node classes list for the DigitalOcean provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Containers, Docker, DropletConnect } from "diagrams-js/digitalocean/compute";
import {
DbaasPrimaryStandbyMore,
DbaasPrimary,
DbaasReadOnly,
} from "diagrams-js/digitalocean/database";
const diagram = Diagram("DigitalOcean Architecture", { direction: "TB" });
const node1 = diagram.add(Containers("Node 1"));
const node2 = diagram.add(DbaasPrimaryStandbyMore("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/digitalocean) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### digitalocean/compute[](#digitaloceancompute "Direct link to digitalocean/compute")

**Containers**
```
import { Containers } from "diagrams-js/digitalocean/compute";
```
 **Docker**
```
import { Docker } from "diagrams-js/digitalocean/compute";
```

**DropletConnect**
```
import { DropletConnect } from "diagrams-js/digitalocean/compute";
```

**DropletSnapshot**
```
import { DropletSnapshot } from "diagrams-js/digitalocean/compute";
```
 **Droplet**
```
import { Droplet } from "diagrams-js/digitalocean/compute";
```

**K8sCluster**
```
import { K8sCluster } from "diagrams-js/digitalocean/compute";
```

**K8sNodePool**
```
import { K8sNodePool } from "diagrams-js/digitalocean/compute";
```
 **K8sNode**
```
import { K8sNode } from "diagrams-js/digitalocean/compute";
```
### digitalocean/database[](#digitaloceandatabase "Direct link to digitalocean/database")

**DbaasPrimaryStandbyMore**
```
import { DbaasPrimaryStandbyMore } from "diagrams-js/digitalocean/database";
```

**DbaasPrimary**
```
import { DbaasPrimary } from "diagrams-js/digitalocean/database";
```

**DbaasReadOnly**
```
import { DbaasReadOnly } from "diagrams-js/digitalocean/database";
```

**DbaasStandby**
```
import { DbaasStandby } from "diagrams-js/digitalocean/database";
```
### digitalocean/network[](#digitaloceannetwork "Direct link to digitalocean/network")

**Certificate**
```
import { Certificate } from "diagrams-js/digitalocean/network";
```

**DomainRegistration**
```
import { DomainRegistration } from "diagrams-js/digitalocean/network";
```
 **Domain**
```
import { Domain } from "diagrams-js/digitalocean/network";
```
 **Firewall**
```
import { Firewall } from "diagrams-js/digitalocean/network";
```

**FloatingIp**
```
import { FloatingIp } from "diagrams-js/digitalocean/network";
```

**InternetGateway**
```
import { InternetGateway } from "diagrams-js/digitalocean/network";
```

**LoadBalancer**
```
import { LoadBalancer } from "diagrams-js/digitalocean/network";
```

**ManagedVpn**
```
import { ManagedVpn } from "diagrams-js/digitalocean/network";
```
 **Vpc**
```
import { Vpc } from "diagrams-js/digitalocean/network";
```
### digitalocean/storage[](#digitaloceanstorage "Direct link to digitalocean/storage")
 **Folder**
```
import { Folder } from "diagrams-js/digitalocean/storage";
```
 **Space**
```
import { Space } from "diagrams-js/digitalocean/storage";
```

**VolumeSnapshot**
```
import { VolumeSnapshot } from "diagrams-js/digitalocean/storage";
```
 **Volume**
```
import { Volume } from "diagrams-js/digitalocean/storage";
```
---
# Elastic
Node classes list for the Elastic provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Agent, Endpoint, Fleet } from "diagrams-js/elastic/agent";
import { APM, Auditbeat, Filebeat } from "diagrams-js/elastic/beats";
const diagram = Diagram("Elastic Architecture", { direction: "TB" });
const node1 = diagram.add(Agent("Node 1"));
const node2 = diagram.add(APM("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/elastic) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### elastic/agent[](#elasticagent "Direct link to elastic/agent")
 **Agent**
```
import { Agent } from "diagrams-js/elastic/agent";
```
 **Endpoint**
```
import { Endpoint } from "diagrams-js/elastic/agent";
```
 **Fleet**
```
import { Fleet } from "diagrams-js/elastic/agent";
```

**Integrations**
```
import { Integrations } from "diagrams-js/elastic/agent";
```
### elastic/beats[](#elasticbeats "Direct link to elastic/beats")
 **APM**
```
import { APM } from "diagrams-js/elastic/beats";
```
 **Auditbeat**
```
import { Auditbeat } from "diagrams-js/elastic/beats";
```
 **Filebeat**
```
import { Filebeat } from "diagrams-js/elastic/beats";
```

**Functionbeat**
```
import { Functionbeat } from "diagrams-js/elastic/beats";
```
 **Heartbeat**
```
import { Heartbeat } from "diagrams-js/elastic/beats";
```
 **Metricbeat**
```
import { Metricbeat } from "diagrams-js/elastic/beats";
```
 **Packetbeat**
```
import { Packetbeat } from "diagrams-js/elastic/beats";
```
 **Winlogbeat**
```
import { Winlogbeat } from "diagrams-js/elastic/beats";
```
### elastic/elasticsearch[](#elasticelasticsearch "Direct link to elastic/elasticsearch")
 **Alerting**
```
import { Alerting } from "diagrams-js/elastic/elasticsearch";
```
 **Beats**
```
import { Beats } from "diagrams-js/elastic/elasticsearch";
```

**Elasticsearch**
```
import { Elasticsearch } from "diagrams-js/elastic/elasticsearch";
```
 **Kibana**
```
import { Kibana } from "diagrams-js/elastic/elasticsearch";
```

**LogstashPipeline**
```
import { LogstashPipeline } from "diagrams-js/elastic/elasticsearch";
```
 **Logstash**
```
import { Logstash } from "diagrams-js/elastic/elasticsearch";
```

**MachineLearning**
```
import { MachineLearning } from "diagrams-js/elastic/elasticsearch";
```

**MapServices**
```
import { MapServices } from "diagrams-js/elastic/elasticsearch";
```
 **Maps**
```
import { Maps } from "diagrams-js/elastic/elasticsearch";
```

**Monitoring**
```
import { Monitoring } from "diagrams-js/elastic/elasticsearch";
```

**SearchableSnapshots**
```
import { SearchableSnapshots } from "diagrams-js/elastic/elasticsearch";
```

**SecuritySettings**
```
import { SecuritySettings } from "diagrams-js/elastic/elasticsearch";
```
 **SQL**
```
import { SQL } from "diagrams-js/elastic/elasticsearch";
```
 **Stack**
```
import { Stack } from "diagrams-js/elastic/elasticsearch";
```
### elastic/enterprisesearch[](#elasticenterprisesearch "Direct link to elastic/enterprisesearch")

**AppSearch**
```
import { AppSearch } from "diagrams-js/elastic/enterprisesearch";
```
 **Crawler**
```
import { Crawler } from "diagrams-js/elastic/enterprisesearch";
```

**EnterpriseSearch**
```
import { EnterpriseSearch } from "diagrams-js/elastic/enterprisesearch";
```

**SiteSearch**
```
import { SiteSearch } from "diagrams-js/elastic/enterprisesearch";
```

**WorkplaceSearch**
```
import { WorkplaceSearch } from "diagrams-js/elastic/enterprisesearch";
```
### elastic/observability[](#elasticobservability "Direct link to elastic/observability")
 **APM**
```
import { APM } from "diagrams-js/elastic/observability";
```
 **Logs**
```
import { Logs } from "diagrams-js/elastic/observability";
```
 **Metrics**
```
import { Metrics } from "diagrams-js/elastic/observability";
```

**Observability**
```
import { Observability } from "diagrams-js/elastic/observability";
```
 **Uptime**
```
import { Uptime } from "diagrams-js/elastic/observability";
```
### elastic/orchestration[](#elasticorchestration "Direct link to elastic/orchestration")
 **ECE**
```
import { ECE } from "diagrams-js/elastic/orchestration";
```
 **ECK**
```
import { ECK } from "diagrams-js/elastic/orchestration";
```
### elastic/saas[](#elasticsaas "Direct link to elastic/saas")
 **Cloud**
```
import { Cloud } from "diagrams-js/elastic/saas";
```
 **Elastic**
```
import { Elastic } from "diagrams-js/elastic/saas";
```
### elastic/security[](#elasticsecurity "Direct link to elastic/security")
 **Endpoint**
```
import { Endpoint } from "diagrams-js/elastic/security";
```
 **Security**
```
import { Security } from "diagrams-js/elastic/security";
```
 **SIEM**
```
import { SIEM } from "diagrams-js/elastic/security";
```
 **Xdr**
```
import { Xdr } from "diagrams-js/elastic/security";
```
---
# Firebase
Node classes list for the Firebase provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Firebase } from "diagrams-js/firebase/base";
import { Authentication, Firestore, Functions } from "diagrams-js/firebase/develop";
const diagram = Diagram("Firebase Architecture", { direction: "TB" });
const node1 = diagram.add(Firebase("Node 1"));
const node2 = diagram.add(Authentication("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/firebase) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### firebase/base[](#firebasebase "Direct link to firebase/base")
 **Firebase**
```
import { Firebase } from "diagrams-js/firebase/base";
```
### firebase/develop[](#firebasedevelop "Direct link to firebase/develop")

**Authentication**
```
import { Authentication } from "diagrams-js/firebase/develop";
```
 **Firestore**
```
import { Firestore } from "diagrams-js/firebase/develop";
```
 **Functions**
```
import { Functions } from "diagrams-js/firebase/develop";
```
 **Hosting**
```
import { Hosting } from "diagrams-js/firebase/develop";
```
 **MLKit**
```
import { MLKit } from "diagrams-js/firebase/develop";
```

**RealtimeDatabase**
```
import { RealtimeDatabase } from "diagrams-js/firebase/develop";
```
 **Storage**
```
import { Storage } from "diagrams-js/firebase/develop";
```
### firebase/extentions[](#firebaseextentions "Direct link to firebase/extentions")

**Extensions**
```
import { Extensions } from "diagrams-js/firebase/extentions";
```
### firebase/grow[](#firebasegrow "Direct link to firebase/grow")
 **ABTesting**
```
import { ABTesting } from "diagrams-js/firebase/grow";
```
 **AppIndexing**
```
import { AppIndexing } from "diagrams-js/firebase/grow";
```

**DynamicLinks**
```
import { DynamicLinks } from "diagrams-js/firebase/grow";
```

**InAppMessaging**
```
import { InAppMessaging } from "diagrams-js/firebase/grow";
```
 **Invites**
```
import { Invites } from "diagrams-js/firebase/grow";
```
 **Messaging**
```
import { Messaging } from "diagrams-js/firebase/grow";
```
 **Predictions**
```
import { Predictions } from "diagrams-js/firebase/grow";
```

**RemoteConfig**
```
import { RemoteConfig } from "diagrams-js/firebase/grow";
```
### firebase/quality[](#firebasequality "Direct link to firebase/quality")

**AppDistribution**
```
import { AppDistribution } from "diagrams-js/firebase/quality";
```

**CrashReporting**
```
import { CrashReporting } from "diagrams-js/firebase/quality";
```

**Crashlytics**
```
import { Crashlytics } from "diagrams-js/firebase/quality";
```

**PerformanceMonitoring**
```
import { PerformanceMonitoring } from "diagrams-js/firebase/quality";
```
 **TestLab**
```
import { TestLab } from "diagrams-js/firebase/quality";
```
---
# GCP
Node classes list for the GCP provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Bigquery, Composer, DataCatalog } from "diagrams-js/gcp/analytics";
import { APIGateway, Apigee, Endpoints } from "diagrams-js/gcp/api";
const diagram = Diagram("GCP Architecture", { direction: "TB" });
const node1 = diagram.add(Bigquery("Node 1"));
const node2 = diagram.add(APIGateway("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/gcp) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### gcp/analytics[](#gcpanalytics "Direct link to gcp/analytics")
 **Bigquery**
```
import { Bigquery } from "diagrams-js/gcp/analytics";
```
 **Composer**
```
import { Composer } from "diagrams-js/gcp/analytics";
```
 **DataCatalog**
```
import { DataCatalog } from "diagrams-js/gcp/analytics";
```
 **DataFusion**
```
import { DataFusion } from "diagrams-js/gcp/analytics";
```
 **Dataflow**
```
import { Dataflow } from "diagrams-js/gcp/analytics";
```
 **Datalab**
```
import { Datalab } from "diagrams-js/gcp/analytics";
```
 **Dataprep**
```
import { Dataprep } from "diagrams-js/gcp/analytics";
```
 **Dataproc**
```
import { Dataproc } from "diagrams-js/gcp/analytics";
```
 **Genomics**
```
import { Genomics } from "diagrams-js/gcp/analytics";
```
 **Looker**
```
import { Looker } from "diagrams-js/gcp/analytics";
```
 **Pubsub**
```
import { Pubsub } from "diagrams-js/gcp/analytics";
```
### gcp/api[](#gcpapi "Direct link to gcp/api")
 **APIGateway**
```
import { APIGateway } from "diagrams-js/gcp/api";
```
 **Apigee**
```
import { Apigee } from "diagrams-js/gcp/api";
```
 **Endpoints**
```
import { Endpoints } from "diagrams-js/gcp/api";
```
### gcp/compute[](#gcpcompute "Direct link to gcp/compute")
 **AppEngine**
```
import { AppEngine } from "diagrams-js/gcp/compute";
```

**BinaryAuthorization**
```
import { BinaryAuthorization } from "diagrams-js/gcp/compute";
```

**ComputeEngine**
```
import { ComputeEngine } from "diagrams-js/gcp/compute";
```

**ContainerOptimizedOS**
```
import { ContainerOptimizedOS } from "diagrams-js/gcp/compute";
```
 **Functions**
```
import { Functions } from "diagrams-js/gcp/compute";
```
 **GKEOnPrem**
```
import { GKEOnPrem } from "diagrams-js/gcp/compute";
```
 **GPU**
```
import { GPU } from "diagrams-js/gcp/compute";
```

**KubernetesEngine**
```
import { KubernetesEngine } from "diagrams-js/gcp/compute";
```

**OSConfigurationManagement**
```
import { OSConfigurationManagement } from "diagrams-js/gcp/compute";
```

**OSInventoryManagement**
```
import { OSInventoryManagement } from "diagrams-js/gcp/compute";
```

**OSPatchManagement**
```
import { OSPatchManagement } from "diagrams-js/gcp/compute";
```
 **Run**
```
import { Run } from "diagrams-js/gcp/compute";
```
### gcp/database[](#gcpdatabase "Direct link to gcp/database")
 **Bigtable**
```
import { Bigtable } from "diagrams-js/gcp/database";
```
 **Datastore**
```
import { Datastore } from "diagrams-js/gcp/database";
```
 **Firestore**
```
import { Firestore } from "diagrams-js/gcp/database";
```
 **Memorystore**
```
import { Memorystore } from "diagrams-js/gcp/database";
```
 **Spanner**
```
import { Spanner } from "diagrams-js/gcp/database";
```
 **SQL**
```
import { SQL } from "diagrams-js/gcp/database";
```
### gcp/devtools[](#gcpdevtools "Direct link to gcp/devtools")
 **Build**
```
import { Build } from "diagrams-js/gcp/devtools";
```
 **CloudShell**
```
import { CloudShell } from "diagrams-js/gcp/devtools";
```

**CodeForIntellij**
```
import { CodeForIntellij } from "diagrams-js/gcp/devtools";
```
 **Code**
```
import { Code } from "diagrams-js/gcp/devtools";
```

**ContainerRegistry**
```
import { ContainerRegistry } from "diagrams-js/gcp/devtools";
```

**GradleAppEnginePlugin**
```
import { GradleAppEnginePlugin } from "diagrams-js/gcp/devtools";
```
 **IdePlugins**
```
import { IdePlugins } from "diagrams-js/gcp/devtools";
```

**MavenAppEnginePlugin**
```
import { MavenAppEnginePlugin } from "diagrams-js/gcp/devtools";
```
 **Scheduler**
```
import { Scheduler } from "diagrams-js/gcp/devtools";
```
 **SDK**
```
import { SDK } from "diagrams-js/gcp/devtools";
```

**ServiceCatalog**
```
import { ServiceCatalog } from "diagrams-js/gcp/devtools";
```

**SourceRepositories**
```
import { SourceRepositories } from "diagrams-js/gcp/devtools";
```
 **Tasks**
```
import { Tasks } from "diagrams-js/gcp/devtools";
```
 **TestLab**
```
import { TestLab } from "diagrams-js/gcp/devtools";
```

**ToolsForEclipse**
```
import { ToolsForEclipse } from "diagrams-js/gcp/devtools";
```

**ToolsForPowershell**
```
import { ToolsForPowershell } from "diagrams-js/gcp/devtools";
```

**ToolsForVisualStudio**
```
import { ToolsForVisualStudio } from "diagrams-js/gcp/devtools";
```
### gcp/iot[](#gcpiot "Direct link to gcp/iot")
 **IotCore**
```
import { IotCore } from "diagrams-js/gcp/iot";
```
### gcp/management[](#gcpmanagement "Direct link to gcp/management")
 **Billing**
```
import { Billing } from "diagrams-js/gcp/management";
```
 **Project**
```
import { Project } from "diagrams-js/gcp/management";
```
 **Quotas**
```
import { Quotas } from "diagrams-js/gcp/management";
```
 **Support**
```
import { Support } from "diagrams-js/gcp/management";
```
### gcp/migration[](#gcpmigration "Direct link to gcp/migration")

**MigrateComputeEngine**
```
import { MigrateComputeEngine } from "diagrams-js/gcp/migration";
```

**TransferAppliance**
```
import { TransferAppliance } from "diagrams-js/gcp/migration";
```
### gcp/ml[](#gcpml "Direct link to gcp/ml")

**AdvancedSolutionsLab**
```
import { AdvancedSolutionsLab } from "diagrams-js/gcp/ml";
```
 **AIHub**
```
import { AIHub } from "diagrams-js/gcp/ml";
```

**AIPlatformDataLabelingService**
```
import { AIPlatformDataLabelingService } from "diagrams-js/gcp/ml";
```
 **AIPlatform**
```
import { AIPlatform } from "diagrams-js/gcp/ml";
```

**AutomlNaturalLanguage**
```
import { AutomlNaturalLanguage } from "diagrams-js/gcp/ml";
```
 **AutomlTables**
```
import { AutomlTables } from "diagrams-js/gcp/ml";
```

**AutomlTranslation**
```
import { AutomlTranslation } from "diagrams-js/gcp/ml";
```

**AutomlVideoIntelligence**
```
import { AutomlVideoIntelligence } from "diagrams-js/gcp/ml";
```
 **AutomlVision**
```
import { AutomlVision } from "diagrams-js/gcp/ml";
```
 **Automl**
```
import { Automl } from "diagrams-js/gcp/ml";
```

**DialogFlowEnterpriseEdition**
```
import { DialogFlowEnterpriseEdition } from "diagrams-js/gcp/ml";
```
 **InferenceAPI**
```
import { InferenceAPI } from "diagrams-js/gcp/ml";
```
 **JobsAPI**
```
import { JobsAPI } from "diagrams-js/gcp/ml";
```

**NaturalLanguageAPI**
```
import { NaturalLanguageAPI } from "diagrams-js/gcp/ml";
```

**RecommendationsAI**
```
import { RecommendationsAI } from "diagrams-js/gcp/ml";
```
 **SpeechToText**
```
import { SpeechToText } from "diagrams-js/gcp/ml";
```
 **TextToSpeech**
```
import { TextToSpeech } from "diagrams-js/gcp/ml";
```
 **TPU**
```
import { TPU } from "diagrams-js/gcp/ml";
```

**TranslationAPI**
```
import { TranslationAPI } from "diagrams-js/gcp/ml";
```
 **VertexAI**
```
import { VertexAI } from "diagrams-js/gcp/ml";
```

**VideoIntelligenceAPI**
```
import { VideoIntelligenceAPI } from "diagrams-js/gcp/ml";
```
 **VisionAPI**
```
import { VisionAPI } from "diagrams-js/gcp/ml";
```
### gcp/network[](#gcpnetwork "Direct link to gcp/network")
 **Armor**
```
import { Armor } from "diagrams-js/gcp/network";
```
 **CDN**
```
import { CDN } from "diagrams-js/gcp/network";
```
 **CloudIDS**
```
import { CloudIDS } from "diagrams-js/gcp/network";
```

**DedicatedInterconnect**
```
import { DedicatedInterconnect } from "diagrams-js/gcp/network";
```
 **DNS**
```
import { DNS } from "diagrams-js/gcp/network";
```

**ExternalIpAddresses**
```
import { ExternalIpAddresses } from "diagrams-js/gcp/network";
```

**FirewallRules**
```
import { FirewallRules } from "diagrams-js/gcp/network";
```

**LoadBalancing**
```
import { LoadBalancing } from "diagrams-js/gcp/network";
```
 **NAT**
```
import { NAT } from "diagrams-js/gcp/network";
```

**NetworkConnectivityCenter**
```
import { NetworkConnectivityCenter } from "diagrams-js/gcp/network";
```

**NetworkIntelligenceCenter**
```
import { NetworkIntelligenceCenter } from "diagrams-js/gcp/network";
```

**NetworkSecurity**
```
import { NetworkSecurity } from "diagrams-js/gcp/network";
```

**NetworkTiers**
```
import { NetworkTiers } from "diagrams-js/gcp/network";
```

**NetworkTopology**
```
import { NetworkTopology } from "diagrams-js/gcp/network";
```
 **Network**
```
import { Network } from "diagrams-js/gcp/network";
```

**PartnerInterconnect**
```
import { PartnerInterconnect } from "diagrams-js/gcp/network";
```

**PremiumNetworkTier**
```
import { PremiumNetworkTier } from "diagrams-js/gcp/network";
```

**PrivateServiceConnect**
```
import { PrivateServiceConnect } from "diagrams-js/gcp/network";
```
 **Router**
```
import { Router } from "diagrams-js/gcp/network";
```
 **Routes**
```
import { Routes } from "diagrams-js/gcp/network";
```
 **ServiceMesh**
```
import { ServiceMesh } from "diagrams-js/gcp/network";
```

**StandardNetworkTier**
```
import { StandardNetworkTier } from "diagrams-js/gcp/network";
```

**TrafficDirector**
```
import { TrafficDirector } from "diagrams-js/gcp/network";
```

**VirtualPrivateCloud**
```
import { VirtualPrivateCloud } from "diagrams-js/gcp/network";
```
 **VPN**
```
import { VPN } from "diagrams-js/gcp/network";
```
### gcp/operations[](#gcpoperations "Direct link to gcp/operations")
 **Logging**
```
import { Logging } from "diagrams-js/gcp/operations";
```
 **Monitoring**
```
import { Monitoring } from "diagrams-js/gcp/operations";
```
### gcp/security[](#gcpsecurity "Direct link to gcp/security")

**AccessContextManager**
```
import { AccessContextManager } from "diagrams-js/gcp/security";
```

**AssuredWorkloads**
```
import { AssuredWorkloads } from "diagrams-js/gcp/security";
```

**CertificateAuthorityService**
```
import { CertificateAuthorityService } from "diagrams-js/gcp/security";
```

**CertificateManager**
```
import { CertificateManager } from "diagrams-js/gcp/security";
```

**CloudAssetInventory**
```
import { CloudAssetInventory } from "diagrams-js/gcp/security";
```
 **Iam**
```
import { Iam } from "diagrams-js/gcp/security";
```
 **IAP**
```
import { IAP } from "diagrams-js/gcp/security";
```

**KeyManagementService**
```
import { KeyManagementService } from "diagrams-js/gcp/security";
```

**ResourceManager**
```
import { ResourceManager } from "diagrams-js/gcp/security";
```

**SecretManager**
```
import { SecretManager } from "diagrams-js/gcp/security";
```

**SecurityCommandCenter**
```
import { SecurityCommandCenter } from "diagrams-js/gcp/security";
```

**SecurityHealthAdvisor**
```
import { SecurityHealthAdvisor } from "diagrams-js/gcp/security";
```

**SecurityScanner**
```
import { SecurityScanner } from "diagrams-js/gcp/security";
```
### gcp/storage[](#gcpstorage "Direct link to gcp/storage")
 **Filestore**
```
import { Filestore } from "diagrams-js/gcp/storage";
```
 **LocalSSD**
```
import { LocalSSD } from "diagrams-js/gcp/storage";
```

**PersistentDisk**
```
import { PersistentDisk } from "diagrams-js/gcp/storage";
```
 **Storage**
```
import { Storage } from "diagrams-js/gcp/storage";
```
---
# Generic
Node classes list for the Generic provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Blank } from "diagrams-js/generic/blank";
import { Rack } from "diagrams-js/generic/compute";
const diagram = Diagram("Generic Architecture", { direction: "TB" });
const node1 = diagram.add(Blank("Node 1"));
const node2 = diagram.add(Rack("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/generic) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### generic/blank[](#genericblank "Direct link to generic/blank")
 **Blank**
```
import { Blank } from "diagrams-js/generic/blank";
```
### generic/compute[](#genericcompute "Direct link to generic/compute")
 **Rack**
```
import { Rack } from "diagrams-js/generic/compute";
```
### generic/database[](#genericdatabase "Direct link to generic/database")
 **SQL**
```
import { SQL } from "diagrams-js/generic/database";
```
### generic/device[](#genericdevice "Direct link to generic/device")
 **Mobile**
```
import { Mobile } from "diagrams-js/generic/device";
```
 **Tablet**
```
import { Tablet } from "diagrams-js/generic/device";
```
### generic/network[](#genericnetwork "Direct link to generic/network")
 **Firewall**
```
import { Firewall } from "diagrams-js/generic/network";
```
 **Router**
```
import { Router } from "diagrams-js/generic/network";
```
 **Subnet**
```
import { Subnet } from "diagrams-js/generic/network";
```
 **Switch**
```
import { Switch } from "diagrams-js/generic/network";
```
 **VPN**
```
import { VPN } from "diagrams-js/generic/network";
```
### generic/os[](#genericos "Direct link to generic/os")
 **Android**
```
import { Android } from "diagrams-js/generic/os";
```
 **Centos**
```
import { Centos } from "diagrams-js/generic/os";
```
 **Debian**
```
import { Debian } from "diagrams-js/generic/os";
```
 **IOS**
```
import { IOS } from "diagrams-js/generic/os";
```
 **LinuxGeneral**
```
import { LinuxGeneral } from "diagrams-js/generic/os";
```
 **Raspbian**
```
import { Raspbian } from "diagrams-js/generic/os";
```
 **RedHat**
```
import { RedHat } from "diagrams-js/generic/os";
```
 **Suse**
```
import { Suse } from "diagrams-js/generic/os";
```
 **Ubuntu**
```
import { Ubuntu } from "diagrams-js/generic/os";
```
 **Windows**
```
import { Windows } from "diagrams-js/generic/os";
```
### generic/place[](#genericplace "Direct link to generic/place")
 **Datacenter**
```
import { Datacenter } from "diagrams-js/generic/place";
```
### generic/storage[](#genericstorage "Direct link to generic/storage")
 **Storage**
```
import { Storage } from "diagrams-js/generic/storage";
```
### generic/virtualization[](#genericvirtualization "Direct link to generic/virtualization")
 **Qemu**
```
import { Qemu } from "diagrams-js/generic/virtualization";
```

**Virtualbox**
```
import { Virtualbox } from "diagrams-js/generic/virtualization";
```
 **Vmware**
```
import { Vmware } from "diagrams-js/generic/virtualization";
```
 **XEN**
```
import { XEN } from "diagrams-js/generic/virtualization";
```
---
# GIS
Node classes list for the GIS provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Gdal, Imposm, Lastools } from "diagrams-js/gis/cli";
import { BAN, Here, IGN } from "diagrams-js/gis/data";
const diagram = Diagram("GIS Architecture", { direction: "TB" });
const node1 = diagram.add(Gdal("Node 1"));
const node2 = diagram.add(BAN("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/gis) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### gis/cli[](#giscli "Direct link to gis/cli")
 **Gdal**
```
import { Gdal } from "diagrams-js/gis/cli";
```
 **Imposm**
```
import { Imposm } from "diagrams-js/gis/cli";
```
 **Lastools**
```
import { Lastools } from "diagrams-js/gis/cli";
```
 **Mapnik**
```
import { Mapnik } from "diagrams-js/gis/cli";
```
 **Mdal**
```
import { Mdal } from "diagrams-js/gis/cli";
```
 **Pdal**
```
import { Pdal } from "diagrams-js/gis/cli";
```
### gis/data[](#gisdata "Direct link to gis/data")
 **BAN**
```
import { BAN } from "diagrams-js/gis/data";
```
 **Here**
```
import { Here } from "diagrams-js/gis/data";
```
 **IGN**
```
import { IGN } from "diagrams-js/gis/data";
```
 **Openstreetmap**
```
import { Openstreetmap } from "diagrams-js/gis/data";
```
 **Overturemaps**
```
import { Overturemaps } from "diagrams-js/gis/data";
```
### gis/database[](#gisdatabase "Direct link to gis/database")
 **Postgis**
```
import { Postgis } from "diagrams-js/gis/database";
```
### gis/desktop[](#gisdesktop "Direct link to gis/desktop")
 **Maptunik**
```
import { Maptunik } from "diagrams-js/gis/desktop";
```
 **QGIS**
```
import { QGIS } from "diagrams-js/gis/desktop";
```
### gis/format[](#gisformat "Direct link to gis/format")
 **Geopackage**
```
import { Geopackage } from "diagrams-js/gis/format";
```
 **Geoparquet**
```
import { Geoparquet } from "diagrams-js/gis/format";
```
### gis/geocoding[](#gisgeocoding "Direct link to gis/geocoding")
 **Addok**
```
import { Addok } from "diagrams-js/gis/geocoding";
```
 **Gisgraphy**
```
import { Gisgraphy } from "diagrams-js/gis/geocoding";
```
 **Nominatim**
```
import { Nominatim } from "diagrams-js/gis/geocoding";
```
 **Pelias**
```
import { Pelias } from "diagrams-js/gis/geocoding";
```
### gis/java[](#gisjava "Direct link to gis/java")
 **Geotools**
```
import { Geotools } from "diagrams-js/gis/java";
```
### gis/javascript[](#gisjavascript "Direct link to gis/javascript")
 **Cesium**
```
import { Cesium } from "diagrams-js/gis/javascript";
```
 **Geostyler**
```
import { Geostyler } from "diagrams-js/gis/javascript";
```
 **Keplerjs**
```
import { Keplerjs } from "diagrams-js/gis/javascript";
```
 **Leaflet**
```
import { Leaflet } from "diagrams-js/gis/javascript";
```
 **Maplibre**
```
import { Maplibre } from "diagrams-js/gis/javascript";
```
 **OlExt**
```
import { OlExt } from "diagrams-js/gis/javascript";
```
 **Openlayers**
```
import { Openlayers } from "diagrams-js/gis/javascript";
```
 **Turfjs**
```
import { Turfjs } from "diagrams-js/gis/javascript";
```
### gis/mobile[](#gismobile "Direct link to gis/mobile")
 **Mergin**
```
import { Mergin } from "diagrams-js/gis/mobile";
```
 **Qfield**
```
import { Qfield } from "diagrams-js/gis/mobile";
```
 **Smash**
```
import { Smash } from "diagrams-js/gis/mobile";
```
### gis/ogc[](#gisogc "Direct link to gis/ogc")
 **OGC**
```
import { OGC } from "diagrams-js/gis/ogc";
```
 **WFS**
```
import { WFS } from "diagrams-js/gis/ogc";
```
 **WMS**
```
import { WMS } from "diagrams-js/gis/ogc";
```
### gis/organization[](#gisorganization "Direct link to gis/organization")
 **Osgeo**
```
import { Osgeo } from "diagrams-js/gis/organization";
```
### gis/python[](#gispython "Direct link to gis/python")
 **Geopandas**
```
import { Geopandas } from "diagrams-js/gis/python";
```
 **Pysal**
```
import { Pysal } from "diagrams-js/gis/python";
```
### gis/routing[](#gisrouting "Direct link to gis/routing")
 **Graphhopper**
```
import { Graphhopper } from "diagrams-js/gis/routing";
```
 **Osrm**
```
import { Osrm } from "diagrams-js/gis/routing";
```
 **Pgrouting**
```
import { Pgrouting } from "diagrams-js/gis/routing";
```
 **Valhalla**
```
import { Valhalla } from "diagrams-js/gis/routing";
```
### gis/server[](#gisserver "Direct link to gis/server")
 **Actinia**
```
import { Actinia } from "diagrams-js/gis/server";
```
 **Baremaps**
```
import { Baremaps } from "diagrams-js/gis/server";
```
 **Deegree**
```
import { Deegree } from "diagrams-js/gis/server";
```
 **G3wSuite**
```
import { G3wSuite } from "diagrams-js/gis/server";
```

**Geohealthcheck**
```
import { Geohealthcheck } from "diagrams-js/gis/server";
```
 **Geomapfish**
```
import { Geomapfish } from "diagrams-js/gis/server";
```
 **Geomesa**
```
import { Geomesa } from "diagrams-js/gis/server";
```
 **Geonetwork**
```
import { Geonetwork } from "diagrams-js/gis/server";
```
 **Geonode**
```
import { Geonode } from "diagrams-js/gis/server";
```
 **Georchestra**
```
import { Georchestra } from "diagrams-js/gis/server";
```
 **Geoserver**
```
import { Geoserver } from "diagrams-js/gis/server";
```
 **Geowebcache**
```
import { Geowebcache } from "diagrams-js/gis/server";
```
 **Kepler**
```
import { Kepler } from "diagrams-js/gis/server";
```
 **Mapproxy**
```
import { Mapproxy } from "diagrams-js/gis/server";
```
 **Mapserver**
```
import { Mapserver } from "diagrams-js/gis/server";
```
 **Mapstore**
```
import { Mapstore } from "diagrams-js/gis/server";
```
 **Mviewer**
```
import { Mviewer } from "diagrams-js/gis/server";
```
 **Pg\_tileserv**
```
import { Pg_tileserv } from "diagrams-js/gis/server";
```
 **Pycsw**
```
import { Pycsw } from "diagrams-js/gis/server";
```
 **Pygeoapi**
```
import { Pygeoapi } from "diagrams-js/gis/server";
```
 **QGISServer**
```
import { QGISServer } from "diagrams-js/gis/server";
```
 **Zooproject**
```
import { Zooproject } from "diagrams-js/gis/server";
```
---
# IBM
Node classes list for the IBM provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Analytics, DataIntegration, DataRepositories } from "diagrams-js/ibm/analytics";
import { ActionableInsight, Annotate, ApiDeveloperPortal } from "diagrams-js/ibm/applications";
const diagram = Diagram("IBM Architecture", { direction: "TB" });
const node1 = diagram.add(Analytics("Node 1"));
const node2 = diagram.add(ActionableInsight("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/ibm) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### ibm/analytics[](#ibmanalytics "Direct link to ibm/analytics")
 **Analytics**
```
import { Analytics } from "diagrams-js/ibm/analytics";
```

**DataIntegration**
```
import { DataIntegration } from "diagrams-js/ibm/analytics";
```

**DataRepositories**
```
import { DataRepositories } from "diagrams-js/ibm/analytics";
```

**DeviceAnalytics**
```
import { DeviceAnalytics } from "diagrams-js/ibm/analytics";
```

**StreamingComputing**
```
import { StreamingComputing } from "diagrams-js/ibm/analytics";
```
### ibm/applications[](#ibmapplications "Direct link to ibm/applications")

**ActionableInsight**
```
import { ActionableInsight } from "diagrams-js/ibm/applications";
```
 **Annotate**
```
import { Annotate } from "diagrams-js/ibm/applications";
```

**ApiDeveloperPortal**
```
import { ApiDeveloperPortal } from "diagrams-js/ibm/applications";
```

**ApiPolyglotRuntimes**
```
import { ApiPolyglotRuntimes } from "diagrams-js/ibm/applications";
```
 **AppServer**
```
import { AppServer } from "diagrams-js/ibm/applications";
```

**ApplicationLogic**
```
import { ApplicationLogic } from "diagrams-js/ibm/applications";
```

**EnterpriseApplications**
```
import { EnterpriseApplications } from "diagrams-js/ibm/applications";
```
 **Index**
```
import { Index } from "diagrams-js/ibm/applications";
```

**IotApplication**
```
import { IotApplication } from "diagrams-js/ibm/applications";
```

**Microservice**
```
import { Microservice } from "diagrams-js/ibm/applications";
```
 **MobileApp**
```
import { MobileApp } from "diagrams-js/ibm/applications";
```
 **Ontology**
```
import { Ontology } from "diagrams-js/ibm/applications";
```

**OpenSourceTools**
```
import { OpenSourceTools } from "diagrams-js/ibm/applications";
```

**RuntimeServices**
```
import { RuntimeServices } from "diagrams-js/ibm/applications";
```

**SaasApplications**
```
import { SaasApplications } from "diagrams-js/ibm/applications";
```

**ServiceBroker**
```
import { ServiceBroker } from "diagrams-js/ibm/applications";
```

**SpeechToText**
```
import { SpeechToText } from "diagrams-js/ibm/applications";
```

**VisualRecognition**
```
import { VisualRecognition } from "diagrams-js/ibm/applications";
```

**Visualization**
```
import { Visualization } from "diagrams-js/ibm/applications";
```
### ibm/blockchain[](#ibmblockchain "Direct link to ibm/blockchain")

**BlockchainDeveloper**
```
import { BlockchainDeveloper } from "diagrams-js/ibm/blockchain";
```
 **Blockchain**
```
import { Blockchain } from "diagrams-js/ibm/blockchain";
```

**CertificateAuthority**
```
import { CertificateAuthority } from "diagrams-js/ibm/blockchain";
```

**ClientApplication**
```
import { ClientApplication } from "diagrams-js/ibm/blockchain";
```

**Communication**
```
import { Communication } from "diagrams-js/ibm/blockchain";
```
 **Consensus**
```
import { Consensus } from "diagrams-js/ibm/blockchain";
```

**EventListener**
```
import { EventListener } from "diagrams-js/ibm/blockchain";
```
 **Event**
```
import { Event } from "diagrams-js/ibm/blockchain";
```

**ExistingEnterpriseSystems**
```
import { ExistingEnterpriseSystems } from "diagrams-js/ibm/blockchain";
```

**HyperledgerFabric**
```
import { HyperledgerFabric } from "diagrams-js/ibm/blockchain";
```

**KeyManagement**
```
import { KeyManagement } from "diagrams-js/ibm/blockchain";
```
 **Ledger**
```
import { Ledger } from "diagrams-js/ibm/blockchain";
```

**MembershipServicesProviderApi**
```
import { MembershipServicesProviderApi } from "diagrams-js/ibm/blockchain";
```
 **Membership**
```
import { Membership } from "diagrams-js/ibm/blockchain";
```
 **MessageBus**
```
import { MessageBus } from "diagrams-js/ibm/blockchain";
```
 **Node**
```
import { Node } from "diagrams-js/ibm/blockchain";
```
 **Services**
```
import { Services } from "diagrams-js/ibm/blockchain";
```

**SmartContract**
```
import { SmartContract } from "diagrams-js/ibm/blockchain";
```

**TransactionManager**
```
import { TransactionManager } from "diagrams-js/ibm/blockchain";
```
 **Wallet**
```
import { Wallet } from "diagrams-js/ibm/blockchain";
```
### ibm/compute[](#ibmcompute "Direct link to ibm/compute")

**BareMetalServer**
```
import { BareMetalServer } from "diagrams-js/ibm/compute";
```

**ImageService**
```
import { ImageService } from "diagrams-js/ibm/compute";
```
 **Instance**
```
import { Instance } from "diagrams-js/ibm/compute";
```
 **Key**
```
import { Key } from "diagrams-js/ibm/compute";
```

**PowerInstance**
```
import { PowerInstance } from "diagrams-js/ibm/compute";
```
### ibm/data[](#ibmdata "Direct link to ibm/data")
 **Caches**
```
import { Caches } from "diagrams-js/ibm/data";
```
 **Cloud**
```
import { Cloud } from "diagrams-js/ibm/data";
```

**ConversationTrainedDeployed**
```
import { ConversationTrainedDeployed } from "diagrams-js/ibm/data";
```
 **DataServices**
```
import { DataServices } from "diagrams-js/ibm/data";
```
 **DataSources**
```
import { DataSources } from "diagrams-js/ibm/data";
```

**DeviceIdentityService**
```
import { DeviceIdentityService } from "diagrams-js/ibm/data";
```

**DeviceRegistry**
```
import { DeviceRegistry } from "diagrams-js/ibm/data";
```

**EnterpriseData**
```
import { EnterpriseData } from "diagrams-js/ibm/data";
```

**EnterpriseUserDirectory**
```
import { EnterpriseUserDirectory } from "diagrams-js/ibm/data";
```

**FileRepository**
```
import { FileRepository } from "diagrams-js/ibm/data";
```
 **GroundTruth**
```
import { GroundTruth } from "diagrams-js/ibm/data";
```
 **Model**
```
import { Model } from "diagrams-js/ibm/data";
```

**TmsDataInterface**
```
import { TmsDataInterface } from "diagrams-js/ibm/data";
```
### ibm/devops[](#ibmdevops "Direct link to ibm/devops")

**ArtifactManagement**
```
import { ArtifactManagement } from "diagrams-js/ibm/devops";
```
 **BuildTest**
```
import { BuildTest } from "diagrams-js/ibm/devops";
```
 **CodeEditor**
```
import { CodeEditor } from "diagrams-js/ibm/devops";
```

**CollaborativeDevelopment**
```
import { CollaborativeDevelopment } from "diagrams-js/ibm/devops";
```

**ConfigurationManagement**
```
import { ConfigurationManagement } from "diagrams-js/ibm/devops";
```

**ContinuousDeploy**
```
import { ContinuousDeploy } from "diagrams-js/ibm/devops";
```

**ContinuousTesting**
```
import { ContinuousTesting } from "diagrams-js/ibm/devops";
```
 **Devops**
```
import { Devops } from "diagrams-js/ibm/devops";
```
 **Provision**
```
import { Provision } from "diagrams-js/ibm/devops";
```

**ReleaseManagement**
```
import { ReleaseManagement } from "diagrams-js/ibm/devops";
```
### ibm/general[](#ibmgeneral "Direct link to ibm/general")

**CloudMessaging**
```
import { CloudMessaging } from "diagrams-js/ibm/general";
```

**CloudServices**
```
import { CloudServices } from "diagrams-js/ibm/general";
```
 **Cloudant**
```
import { Cloudant } from "diagrams-js/ibm/general";
```

**CognitiveServices**
```
import { CognitiveServices } from "diagrams-js/ibm/general";
```

**DataSecurity**
```
import { DataSecurity } from "diagrams-js/ibm/general";
```
 **Enterprise**
```
import { Enterprise } from "diagrams-js/ibm/general";
```

**GovernanceRiskCompliance**
```
import { GovernanceRiskCompliance } from "diagrams-js/ibm/general";
```

**IBMContainers**
```
import { IBMContainers } from "diagrams-js/ibm/general";
```

**IBMPublicCloud**
```
import { IBMPublicCloud } from "diagrams-js/ibm/general";
```

**IdentityAccessManagement**
```
import { IdentityAccessManagement } from "diagrams-js/ibm/general";
```

**IdentityProvider**
```
import { IdentityProvider } from "diagrams-js/ibm/general";
```

**InfrastructureSecurity**
```
import { InfrastructureSecurity } from "diagrams-js/ibm/general";
```
 **Internet**
```
import { Internet } from "diagrams-js/ibm/general";
```
 **IotCloud**
```
import { IotCloud } from "diagrams-js/ibm/general";
```

**MicroservicesApplication**
```
import { MicroservicesApplication } from "diagrams-js/ibm/general";
```

**MicroservicesMesh**
```
import { MicroservicesMesh } from "diagrams-js/ibm/general";
```

**MonitoringLogging**
```
import { MonitoringLogging } from "diagrams-js/ibm/general";
```
 **Monitoring**
```
import { Monitoring } from "diagrams-js/ibm/general";
```

**ObjectStorage**
```
import { ObjectStorage } from "diagrams-js/ibm/general";
```

**OfflineCapabilities**
```
import { OfflineCapabilities } from "diagrams-js/ibm/general";
```
 **Openwhisk**
```
import { Openwhisk } from "diagrams-js/ibm/general";
```
 **PeerCloud**
```
import { PeerCloud } from "diagrams-js/ibm/general";
```

**RetrieveRank**
```
import { RetrieveRank } from "diagrams-js/ibm/general";
```
 **Scalable**
```
import { Scalable } from "diagrams-js/ibm/general";
```

**ServiceDiscoveryConfiguration**
```
import { ServiceDiscoveryConfiguration } from "diagrams-js/ibm/general";
```

**TextToSpeech**
```
import { TextToSpeech } from "diagrams-js/ibm/general";
```

**TransformationConnectivity**
```
import { TransformationConnectivity } from "diagrams-js/ibm/general";
```
### ibm/infrastructure[](#ibminfrastructure "Direct link to ibm/infrastructure")
 **Channels**
```
import { Channels } from "diagrams-js/ibm/infrastructure";
```

**CloudMessaging**
```
import { CloudMessaging } from "diagrams-js/ibm/infrastructure";
```
 **Dashboard**
```
import { Dashboard } from "diagrams-js/ibm/infrastructure";
```

**Diagnostics**
```
import { Diagnostics } from "diagrams-js/ibm/infrastructure";
```

**EdgeServices**
```
import { EdgeServices } from "diagrams-js/ibm/infrastructure";
```

**EnterpriseMessaging**
```
import { EnterpriseMessaging } from "diagrams-js/ibm/infrastructure";
```
 **EventFeed**
```
import { EventFeed } from "diagrams-js/ibm/infrastructure";
```

**InfrastructureServices**
```
import { InfrastructureServices } from "diagrams-js/ibm/infrastructure";
```

**InterserviceCommunication**
```
import { InterserviceCommunication } from "diagrams-js/ibm/infrastructure";
```

**LoadBalancingRouting**
```
import { LoadBalancingRouting } from "diagrams-js/ibm/infrastructure";
```

**MicroservicesMesh**
```
import { MicroservicesMesh } from "diagrams-js/ibm/infrastructure";
```

**MobileBackend**
```
import { MobileBackend } from "diagrams-js/ibm/infrastructure";
```

**MobileProviderNetwork**
```
import { MobileProviderNetwork } from "diagrams-js/ibm/infrastructure";
```

**MonitoringLogging**
```
import { MonitoringLogging } from "diagrams-js/ibm/infrastructure";
```

**Monitoring**
```
import { Monitoring } from "diagrams-js/ibm/infrastructure";
```

**PeerServices**
```
import { PeerServices } from "diagrams-js/ibm/infrastructure";
```

**ServiceDiscoveryConfiguration**
```
import { ServiceDiscoveryConfiguration } from "diagrams-js/ibm/infrastructure";
```

**TransformationConnectivity**
```
import { TransformationConnectivity } from "diagrams-js/ibm/infrastructure";
```
### ibm/management[](#ibmmanagement "Direct link to ibm/management")

**AlertNotification**
```
import { AlertNotification } from "diagrams-js/ibm/management";
```

**ApiManagement**
```
import { ApiManagement } from "diagrams-js/ibm/management";
```

**CloudManagement**
```
import { CloudManagement } from "diagrams-js/ibm/management";
```

**ClusterManagement**
```
import { ClusterManagement } from "diagrams-js/ibm/management";
```

**ContentManagement**
```
import { ContentManagement } from "diagrams-js/ibm/management";
```

**DataServices**
```
import { DataServices } from "diagrams-js/ibm/management";
```

**DeviceManagement**
```
import { DeviceManagement } from "diagrams-js/ibm/management";
```

**InformationGovernance**
```
import { InformationGovernance } from "diagrams-js/ibm/management";
```

**ItServiceManagement**
```
import { ItServiceManagement } from "diagrams-js/ibm/management";
```
 **Management**
```
import { Management } from "diagrams-js/ibm/management";
```

**MonitoringMetrics**
```
import { MonitoringMetrics } from "diagrams-js/ibm/management";
```

**ProcessManagement**
```
import { ProcessManagement } from "diagrams-js/ibm/management";
```

**ProviderCloudPortalService**
```
import { ProviderCloudPortalService } from "diagrams-js/ibm/management";
```

**PushNotifications**
```
import { PushNotifications } from "diagrams-js/ibm/management";
```

**ServiceManagementTools**
```
import { ServiceManagementTools } from "diagrams-js/ibm/management";
```
### ibm/network[](#ibmnetwork "Direct link to ibm/network")
 **Bridge**
```
import { Bridge } from "diagrams-js/ibm/network";
```
 **DirectLink**
```
import { DirectLink } from "diagrams-js/ibm/network";
```
 **Enterprise**
```
import { Enterprise } from "diagrams-js/ibm/network";
```
 **Firewall**
```
import { Firewall } from "diagrams-js/ibm/network";
```
 **FloatingIp**
```
import { FloatingIp } from "diagrams-js/ibm/network";
```
 **Gateway**
```
import { Gateway } from "diagrams-js/ibm/network";
```

**InternetServices**
```
import { InternetServices } from "diagrams-js/ibm/network";
```

**LoadBalancerListener**
```
import { LoadBalancerListener } from "diagrams-js/ibm/network";
```

**LoadBalancerPool**
```
import { LoadBalancerPool } from "diagrams-js/ibm/network";
```

**LoadBalancer**
```
import { LoadBalancer } from "diagrams-js/ibm/network";
```

**LoadBalancingRouting**
```
import { LoadBalancingRouting } from "diagrams-js/ibm/network";
```

**PublicGateway**
```
import { PublicGateway } from "diagrams-js/ibm/network";
```
 **Region**
```
import { Region } from "diagrams-js/ibm/network";
```
 **Router**
```
import { Router } from "diagrams-js/ibm/network";
```
 **Rules**
```
import { Rules } from "diagrams-js/ibm/network";
```
 **Subnet**
```
import { Subnet } from "diagrams-js/ibm/network";
```

**TransitGateway**
```
import { TransitGateway } from "diagrams-js/ibm/network";
```
 **Vpc**
```
import { Vpc } from "diagrams-js/ibm/network";
```

**VpnConnection**
```
import { VpnConnection } from "diagrams-js/ibm/network";
```
 **VpnGateway**
```
import { VpnGateway } from "diagrams-js/ibm/network";
```
 **VpnPolicy**
```
import { VpnPolicy } from "diagrams-js/ibm/network";
```
### ibm/security[](#ibmsecurity "Direct link to ibm/security")
 **ApiSecurity**
```
import { ApiSecurity } from "diagrams-js/ibm/security";
```

**BlockchainSecurityService**
```
import { BlockchainSecurityService } from "diagrams-js/ibm/security";
```

**DataSecurity**
```
import { DataSecurity } from "diagrams-js/ibm/security";
```
 **Firewall**
```
import { Firewall } from "diagrams-js/ibm/security";
```
 **Gateway**
```
import { Gateway } from "diagrams-js/ibm/security";
```

**GovernanceRiskCompliance**
```
import { GovernanceRiskCompliance } from "diagrams-js/ibm/security";
```

**IdentityAccessManagement**
```
import { IdentityAccessManagement } from "diagrams-js/ibm/security";
```

**IdentityProvider**
```
import { IdentityProvider } from "diagrams-js/ibm/security";
```

**InfrastructureSecurity**
```
import { InfrastructureSecurity } from "diagrams-js/ibm/security";
```

**PhysicalSecurity**
```
import { PhysicalSecurity } from "diagrams-js/ibm/security";
```

**SecurityMonitoringIntelligence**
```
import { SecurityMonitoringIntelligence } from "diagrams-js/ibm/security";
```

**SecurityServices**
```
import { SecurityServices } from "diagrams-js/ibm/security";
```

**TrustendComputing**
```
import { TrustendComputing } from "diagrams-js/ibm/security";
```
 **Vpn**
```
import { Vpn } from "diagrams-js/ibm/security";
```
### ibm/social[](#ibmsocial "Direct link to ibm/social")
 **Communities**
```
import { Communities } from "diagrams-js/ibm/social";
```
 **FileSync**
```
import { FileSync } from "diagrams-js/ibm/social";
```

**LiveCollaboration**
```
import { LiveCollaboration } from "diagrams-js/ibm/social";
```
 **Messaging**
```
import { Messaging } from "diagrams-js/ibm/social";
```
 **Networking**
```
import { Networking } from "diagrams-js/ibm/social";
```
### ibm/storage[](#ibmstorage "Direct link to ibm/storage")

**BlockStorage**
```
import { BlockStorage } from "diagrams-js/ibm/storage";
```

**ObjectStorage**
```
import { ObjectStorage } from "diagrams-js/ibm/storage";
```
### ibm/user[](#ibmuser "Direct link to ibm/user")
 **Browser**
```
import { Browser } from "diagrams-js/ibm/user";
```
 **Device**
```
import { Device } from "diagrams-js/ibm/user";
```

**IntegratedDigitalExperiences**
```
import { IntegratedDigitalExperiences } from "diagrams-js/ibm/user";
```

**PhysicalEntity**
```
import { PhysicalEntity } from "diagrams-js/ibm/user";
```
 **Sensor**
```
import { Sensor } from "diagrams-js/ibm/user";
```
 **User**
```
import { User } from "diagrams-js/ibm/user";
```
---
# Kubernetes
Node classes list for the Kubernetes provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { ChaosMesh, LitmusChaos } from "diagrams-js/k8s/chaos";
import { HPA, Limits, Quota } from "diagrams-js/k8s/clusterconfig";
const diagram = Diagram("Kubernetes Architecture", { direction: "TB" });
const node1 = diagram.add(ChaosMesh("Node 1"));
const node2 = diagram.add(HPA("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/k8s) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### k8s/chaos[](#k8schaos "Direct link to k8s/chaos")
 **ChaosMesh**
```
import { ChaosMesh } from "diagrams-js/k8s/chaos";
```
 **LitmusChaos**
```
import { LitmusChaos } from "diagrams-js/k8s/chaos";
```
### k8s/clusterconfig[](#k8sclusterconfig "Direct link to k8s/clusterconfig")
 **HPA**
```
import { HPA } from "diagrams-js/k8s/clusterconfig";
```
 **Limits**
```
import { Limits } from "diagrams-js/k8s/clusterconfig";
```
 **Quota**
```
import { Quota } from "diagrams-js/k8s/clusterconfig";
```
### k8s/compute[](#k8scompute "Direct link to k8s/compute")
 **Cronjob**
```
import { Cronjob } from "diagrams-js/k8s/compute";
```
 **Deploy**
```
import { Deploy } from "diagrams-js/k8s/compute";
```
 **DS**
```
import { DS } from "diagrams-js/k8s/compute";
```
 **Job**
```
import { Job } from "diagrams-js/k8s/compute";
```
 **Pod**
```
import { Pod } from "diagrams-js/k8s/compute";
```
 **RS**
```
import { RS } from "diagrams-js/k8s/compute";
```
 **STS**
```
import { STS } from "diagrams-js/k8s/compute";
```
### k8s/controlplane[](#k8scontrolplane "Direct link to k8s/controlplane")
 **API**
```
import { API } from "diagrams-js/k8s/controlplane";
```
**CCM**
```
import { CCM } from "diagrams-js/k8s/controlplane";
```
**CM**
```
import { CM } from "diagrams-js/k8s/controlplane";
```
 **KProxy**
```
import { KProxy } from "diagrams-js/k8s/controlplane";
```
 **Kubelet**
```
import { Kubelet } from "diagrams-js/k8s/controlplane";
```
 **Sched**
```
import { Sched } from "diagrams-js/k8s/controlplane";
```
### k8s/ecosystem[](#k8secosystem "Direct link to k8s/ecosystem")
 **ExternalDns**
```
import { ExternalDns } from "diagrams-js/k8s/ecosystem";
```
 **Helm**
```
import { Helm } from "diagrams-js/k8s/ecosystem";
```
 **Krew**
```
import { Krew } from "diagrams-js/k8s/ecosystem";
```
 **Kustomize**
```
import { Kustomize } from "diagrams-js/k8s/ecosystem";
```
### k8s/group[](#k8sgroup "Direct link to k8s/group")
 **NS**
```
import { NS } from "diagrams-js/k8s/group";
```
### k8s/infra[](#k8sinfra "Direct link to k8s/infra")
 **ETCD**
```
import { ETCD } from "diagrams-js/k8s/infra";
```
 **Master**
```
import { Master } from "diagrams-js/k8s/infra";
```
 **Node**
```
import { Node } from "diagrams-js/k8s/infra";
```
### k8s/network[](#k8snetwork "Direct link to k8s/network")
 **Ep**
```
import { Ep } from "diagrams-js/k8s/network";
```
 **Ing**
```
import { Ing } from "diagrams-js/k8s/network";
```
 **Netpol**
```
import { Netpol } from "diagrams-js/k8s/network";
```
 **SVC**
```
import { SVC } from "diagrams-js/k8s/network";
```
### k8s/others[](#k8sothers "Direct link to k8s/others")
 **CRD**
```
import { CRD } from "diagrams-js/k8s/others";
```
 **PSP**
```
import { PSP } from "diagrams-js/k8s/others";
```
### k8s/podconfig[](#k8spodconfig "Direct link to k8s/podconfig")
 **CM**
```
import { CM } from "diagrams-js/k8s/podconfig";
```
 **Secret**
```
import { Secret } from "diagrams-js/k8s/podconfig";
```
### k8s/rbac[](#k8srbac "Direct link to k8s/rbac")
 **CRole**
```
import { CRole } from "diagrams-js/k8s/rbac";
```
 **CRB**
```
import { CRB } from "diagrams-js/k8s/rbac";
```
 **Group**
```
import { Group } from "diagrams-js/k8s/rbac";
```
 **RB**
```
import { RB } from "diagrams-js/k8s/rbac";
```
 **Role**
```
import { Role } from "diagrams-js/k8s/rbac";
```
 **SA**
```
import { SA } from "diagrams-js/k8s/rbac";
```
 **User**
```
import { User } from "diagrams-js/k8s/rbac";
```
### k8s/storage[](#k8sstorage "Direct link to k8s/storage")
 **PV**
```
import { PV } from "diagrams-js/k8s/storage";
```
 **PVC**
```
import { PVC } from "diagrams-js/k8s/storage";
```
 **SC**
```
import { SC } from "diagrams-js/k8s/storage";
```
 **Vol**
```
import { Vol } from "diagrams-js/k8s/storage";
```
---
# OCI
Node classes list for the OCI provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { AutoscaleWhite, Autoscale, BMWhite } from "diagrams-js/oci/compute";
import { BackboneWhite, Backbone, CDNWhite } from "diagrams-js/oci/connectivity";
const diagram = Diagram("OCI Architecture", { direction: "TB" });
const node1 = diagram.add(AutoscaleWhite("Node 1"));
const node2 = diagram.add(BackboneWhite("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/oci) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### oci/compute[](#ocicompute "Direct link to oci/compute")

**AutoscaleWhite**
```
import { AutoscaleWhite } from "diagrams-js/oci/compute";
```
 **Autoscale**
```
import { Autoscale } from "diagrams-js/oci/compute";
```
 **BMWhite**
```
import { BMWhite } from "diagrams-js/oci/compute";
```
 **BM**
```
import { BM } from "diagrams-js/oci/compute";
```

**ContainerWhite**
```
import { ContainerWhite } from "diagrams-js/oci/compute";
```
 **Container**
```
import { Container } from "diagrams-js/oci/compute";
```

**FunctionsWhite**
```
import { FunctionsWhite } from "diagrams-js/oci/compute";
```
 **Functions**
```
import { Functions } from "diagrams-js/oci/compute";
```

**InstancePoolsWhite**
```
import { InstancePoolsWhite } from "diagrams-js/oci/compute";
```

**InstancePools**
```
import { InstancePools } from "diagrams-js/oci/compute";
```
 **OCIRWhite**
```
import { OCIRWhite } from "diagrams-js/oci/compute";
```
 **OCIR**
```
import { OCIR } from "diagrams-js/oci/compute";
```
 **OKEWhite**
```
import { OKEWhite } from "diagrams-js/oci/compute";
```
 **OKE**
```
import { OKE } from "diagrams-js/oci/compute";
```
 **VMWhite**
```
import { VMWhite } from "diagrams-js/oci/compute";
```
 **VM**
```
import { VM } from "diagrams-js/oci/compute";
```
### oci/connectivity[](#ociconnectivity "Direct link to oci/connectivity")

**BackboneWhite**
```
import { BackboneWhite } from "diagrams-js/oci/connectivity";
```
 **Backbone**
```
import { Backbone } from "diagrams-js/oci/connectivity";
```
 **CDNWhite**
```
import { CDNWhite } from "diagrams-js/oci/connectivity";
```
 **CDN**
```
import { CDN } from "diagrams-js/oci/connectivity";
```

**CustomerDatacenter**
```
import { CustomerDatacenter } from "diagrams-js/oci/connectivity";
```

**CustomerDatacntrWhite**
```
import { CustomerDatacntrWhite } from "diagrams-js/oci/connectivity";
```

**CustomerPremisesWhite**
```
import { CustomerPremisesWhite } from "diagrams-js/oci/connectivity";
```

**CustomerPremises**
```
import { CustomerPremises } from "diagrams-js/oci/connectivity";
```

**DisconnectedRegionsWhite**
```
import { DisconnectedRegionsWhite } from "diagrams-js/oci/connectivity";
```

**DisconnectedRegions**
```
import { DisconnectedRegions } from "diagrams-js/oci/connectivity";
```
 **DNSWhite**
```
import { DNSWhite } from "diagrams-js/oci/connectivity";
```
 **DNS**
```
import { DNS } from "diagrams-js/oci/connectivity";
```

**FastConnectWhite**
```
import { FastConnectWhite } from "diagrams-js/oci/connectivity";
```

**FastConnect**
```
import { FastConnect } from "diagrams-js/oci/connectivity";
```

**NATGatewayWhite**
```
import { NATGatewayWhite } from "diagrams-js/oci/connectivity";
```
 **NATGateway**
```
import { NATGateway } from "diagrams-js/oci/connectivity";
```
 **VPNWhite**
```
import { VPNWhite } from "diagrams-js/oci/connectivity";
```
 **VPN**
```
import { VPN } from "diagrams-js/oci/connectivity";
```
### oci/database[](#ocidatabase "Direct link to oci/database")

**AutonomousWhite**
```
import { AutonomousWhite } from "diagrams-js/oci/database";
```
 **Autonomous**
```
import { Autonomous } from "diagrams-js/oci/database";
```

**BigdataServiceWhite**
```
import { BigdataServiceWhite } from "diagrams-js/oci/database";
```

**BigdataService**
```
import { BigdataService } from "diagrams-js/oci/database";
```

**DatabaseServiceWhite**
```
import { DatabaseServiceWhite } from "diagrams-js/oci/database";
```

**DatabaseService**
```
import { DatabaseService } from "diagrams-js/oci/database";
```

**DataflowApacheWhite**
```
import { DataflowApacheWhite } from "diagrams-js/oci/database";
```

**DataflowApache**
```
import { DataflowApache } from "diagrams-js/oci/database";
```
 **DcatWhite**
```
import { DcatWhite } from "diagrams-js/oci/database";
```
 **Dcat**
```
import { Dcat } from "diagrams-js/oci/database";
```
 **DisWhite**
```
import { DisWhite } from "diagrams-js/oci/database";
```
 **Dis**
```
import { Dis } from "diagrams-js/oci/database";
```
 **DMSWhite**
```
import { DMSWhite } from "diagrams-js/oci/database";
```
 **DMS**
```
import { DMS } from "diagrams-js/oci/database";
```

**ScienceWhite**
```
import { ScienceWhite } from "diagrams-js/oci/database";
```
 **Science**
```
import { Science } from "diagrams-js/oci/database";
```
 **StreamWhite**
```
import { StreamWhite } from "diagrams-js/oci/database";
```
 **Stream**
```
import { Stream } from "diagrams-js/oci/database";
```
### oci/devops[](#ocidevops "Direct link to oci/devops")

**APIGatewayWhite**
```
import { APIGatewayWhite } from "diagrams-js/oci/devops";
```
 **APIGateway**
```
import { APIGateway } from "diagrams-js/oci/devops";
```

**APIServiceWhite**
```
import { APIServiceWhite } from "diagrams-js/oci/devops";
```
 **APIService**
```
import { APIService } from "diagrams-js/oci/devops";
```

**ResourceMgmtWhite**
```
import { ResourceMgmtWhite } from "diagrams-js/oci/devops";
```
 **ResourceMgmt**
```
import { ResourceMgmt } from "diagrams-js/oci/devops";
```
### oci/governance[](#ocigovernance "Direct link to oci/governance")
 **AuditWhite**
```
import { AuditWhite } from "diagrams-js/oci/governance";
```
 **Audit**
```
import { Audit } from "diagrams-js/oci/governance";
```

**CompartmentsWhite**
```
import { CompartmentsWhite } from "diagrams-js/oci/governance";
```

**Compartments**
```
import { Compartments } from "diagrams-js/oci/governance";
```

**GroupsWhite**
```
import { GroupsWhite } from "diagrams-js/oci/governance";
```
 **Groups**
```
import { Groups } from "diagrams-js/oci/governance";
```

**LoggingWhite**
```
import { LoggingWhite } from "diagrams-js/oci/governance";
```
 **Logging**
```
import { Logging } from "diagrams-js/oci/governance";
```
 **OCIDWhite**
```
import { OCIDWhite } from "diagrams-js/oci/governance";
```
 **OCID**
```
import { OCID } from "diagrams-js/oci/governance";
```

**PoliciesWhite**
```
import { PoliciesWhite } from "diagrams-js/oci/governance";
```
 **Policies**
```
import { Policies } from "diagrams-js/oci/governance";
```

**TaggingWhite**
```
import { TaggingWhite } from "diagrams-js/oci/governance";
```
 **Tagging**
```
import { Tagging } from "diagrams-js/oci/governance";
```
### oci/monitoring[](#ocimonitoring "Direct link to oci/monitoring")
 **AlarmWhite**
```
import { AlarmWhite } from "diagrams-js/oci/monitoring";
```
 **Alarm**
```
import { Alarm } from "diagrams-js/oci/monitoring";
```
 **EmailWhite**
```
import { EmailWhite } from "diagrams-js/oci/monitoring";
```
 **Email**
```
import { Email } from "diagrams-js/oci/monitoring";
```

**EventsWhite**
```
import { EventsWhite } from "diagrams-js/oci/monitoring";
```
 **Events**
```
import { Events } from "diagrams-js/oci/monitoring";
```

**HealthCheckWhite**
```
import { HealthCheckWhite } from "diagrams-js/oci/monitoring";
```

**HealthCheck**
```
import { HealthCheck } from "diagrams-js/oci/monitoring";
```

**NotificationsWhite**
```
import { NotificationsWhite } from "diagrams-js/oci/monitoring";
```

**Notifications**
```
import { Notifications } from "diagrams-js/oci/monitoring";
```
 **QueueWhite**
```
import { QueueWhite } from "diagrams-js/oci/monitoring";
```
 **Queue**
```
import { Queue } from "diagrams-js/oci/monitoring";
```

**SearchWhite**
```
import { SearchWhite } from "diagrams-js/oci/monitoring";
```
 **Search**
```
import { Search } from "diagrams-js/oci/monitoring";
```

**TelemetryWhite**
```
import { TelemetryWhite } from "diagrams-js/oci/monitoring";
```
 **Telemetry**
```
import { Telemetry } from "diagrams-js/oci/monitoring";
```

**WorkflowWhite**
```
import { WorkflowWhite } from "diagrams-js/oci/monitoring";
```
 **Workflow**
```
import { Workflow } from "diagrams-js/oci/monitoring";
```
### oci/network[](#ocinetwork "Direct link to oci/network")
 **DrgWhite**
```
import { DrgWhite } from "diagrams-js/oci/network";
```
 **Drg**
```
import { Drg } from "diagrams-js/oci/network";
```

**FirewallWhite**
```
import { FirewallWhite } from "diagrams-js/oci/network";
```
 **Firewall**
```
import { Firewall } from "diagrams-js/oci/network";
```

**InternetGatewayWhite**
```
import { InternetGatewayWhite } from "diagrams-js/oci/network";
```

**InternetGateway**
```
import { InternetGateway } from "diagrams-js/oci/network";
```

**LoadBalancerWhite**
```
import { LoadBalancerWhite } from "diagrams-js/oci/network";
```

**LoadBalancer**
```
import { LoadBalancer } from "diagrams-js/oci/network";
```

**RouteTableWhite**
```
import { RouteTableWhite } from "diagrams-js/oci/network";
```
 **RouteTable**
```
import { RouteTable } from "diagrams-js/oci/network";
```

**SecurityListsWhite**
```
import { SecurityListsWhite } from "diagrams-js/oci/network";
```

**SecurityLists**
```
import { SecurityLists } from "diagrams-js/oci/network";
```

**ServiceGatewayWhite**
```
import { ServiceGatewayWhite } from "diagrams-js/oci/network";
```

**ServiceGateway**
```
import { ServiceGateway } from "diagrams-js/oci/network";
```
 **VcnWhite**
```
import { VcnWhite } from "diagrams-js/oci/network";
```
 **Vcn**
```
import { Vcn } from "diagrams-js/oci/network";
```
### oci/security[](#ocisecurity "Direct link to oci/security")

**CloudGuardWhite**
```
import { CloudGuardWhite } from "diagrams-js/oci/security";
```
 **CloudGuard**
```
import { CloudGuard } from "diagrams-js/oci/security";
```
 **DDOSWhite**
```
import { DDOSWhite } from "diagrams-js/oci/security";
```
 **DDOS**
```
import { DDOS } from "diagrams-js/oci/security";
```

**EncryptionWhite**
```
import { EncryptionWhite } from "diagrams-js/oci/security";
```
 **Encryption**
```
import { Encryption } from "diagrams-js/oci/security";
```

**IDAccessWhite**
```
import { IDAccessWhite } from "diagrams-js/oci/security";
```
 **IDAccess**
```
import { IDAccess } from "diagrams-js/oci/security";
```

**KeyManagementWhite**
```
import { KeyManagementWhite } from "diagrams-js/oci/security";
```

**KeyManagement**
```
import { KeyManagement } from "diagrams-js/oci/security";
```

**MaxSecurityZoneWhite**
```
import { MaxSecurityZoneWhite } from "diagrams-js/oci/security";
```

**MaxSecurityZone**
```
import { MaxSecurityZone } from "diagrams-js/oci/security";
```
 **VaultWhite**
```
import { VaultWhite } from "diagrams-js/oci/security";
```
 **Vault**
```
import { Vault } from "diagrams-js/oci/security";
```
 **WAFWhite**
```
import { WAFWhite } from "diagrams-js/oci/security";
```
 **WAF**
```
import { WAF } from "diagrams-js/oci/security";
```
### oci/storage[](#ocistorage "Direct link to oci/storage")

**BackupRestoreWhite**
```
import { BackupRestoreWhite } from "diagrams-js/oci/storage";
```

**BackupRestore**
```
import { BackupRestore } from "diagrams-js/oci/storage";
```

**BlockStorageCloneWhite**
```
import { BlockStorageCloneWhite } from "diagrams-js/oci/storage";
```

**BlockStorageClone**
```
import { BlockStorageClone } from "diagrams-js/oci/storage";
```

**BlockStorageWhite**
```
import { BlockStorageWhite } from "diagrams-js/oci/storage";
```

**BlockStorage**
```
import { BlockStorage } from "diagrams-js/oci/storage";
```

**BucketsWhite**
```
import { BucketsWhite } from "diagrams-js/oci/storage";
```
 **Buckets**
```
import { Buckets } from "diagrams-js/oci/storage";
```

**DataTransferWhite**
```
import { DataTransferWhite } from "diagrams-js/oci/storage";
```

**DataTransfer**
```
import { DataTransfer } from "diagrams-js/oci/storage";
```

**ElasticPerformanceWhite**
```
import { ElasticPerformanceWhite } from "diagrams-js/oci/storage";
```

**ElasticPerformance**
```
import { ElasticPerformance } from "diagrams-js/oci/storage";
```

**FileStorageWhite**
```
import { FileStorageWhite } from "diagrams-js/oci/storage";
```
 **FileStorage**
```
import { FileStorage } from "diagrams-js/oci/storage";
```

**ObjectStorageWhite**
```
import { ObjectStorageWhite } from "diagrams-js/oci/storage";
```

**ObjectStorage**
```
import { ObjectStorage } from "diagrams-js/oci/storage";
```

**StorageGatewayWhite**
```
import { StorageGatewayWhite } from "diagrams-js/oci/storage";
```

**StorageGateway**
```
import { StorageGateway } from "diagrams-js/oci/storage";
```
---
# On-Premises
Node classes list for the On-Premises provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Fluentd, Vector } from "diagrams-js/onprem/aggregator";
import { Beam, Databricks, Dbt } from "diagrams-js/onprem/analytics";
const diagram = Diagram("On-Premises Architecture", { direction: "TB" });
const node1 = diagram.add(Fluentd("Node 1"));
const node2 = diagram.add(Beam("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/onprem) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### onprem/aggregator[](#onpremaggregator "Direct link to onprem/aggregator")
 **Fluentd**
```
import { Fluentd } from "diagrams-js/onprem/aggregator";
```
 **Vector**
```
import { Vector } from "diagrams-js/onprem/aggregator";
```
### onprem/analytics[](#onpremanalytics "Direct link to onprem/analytics")
 **Beam**
```
import { Beam } from "diagrams-js/onprem/analytics";
```
 **Databricks**
```
import { Databricks } from "diagrams-js/onprem/analytics";
```
 **Dbt**
```
import { Dbt } from "diagrams-js/onprem/analytics";
```
 **Dremio**
```
import { Dremio } from "diagrams-js/onprem/analytics";
```
 **Flink**
```
import { Flink } from "diagrams-js/onprem/analytics";
```
 **Hadoop**
```
import { Hadoop } from "diagrams-js/onprem/analytics";
```
 **Hive**
```
import { Hive } from "diagrams-js/onprem/analytics";
```
 **Metabase**
```
import { Metabase } from "diagrams-js/onprem/analytics";
```
 **Norikra**
```
import { Norikra } from "diagrams-js/onprem/analytics";
```
 **Powerbi**
```
import { Powerbi } from "diagrams-js/onprem/analytics";
```
 **Presto**
```
import { Presto } from "diagrams-js/onprem/analytics";
```
 **Singer**
```
import { Singer } from "diagrams-js/onprem/analytics";
```
 **Spark**
```
import { Spark } from "diagrams-js/onprem/analytics";
```
 **Storm**
```
import { Storm } from "diagrams-js/onprem/analytics";
```
 **Superset**
```
import { Superset } from "diagrams-js/onprem/analytics";
```
 **Tableau**
```
import { Tableau } from "diagrams-js/onprem/analytics";
```
 **Trino**
```
import { Trino } from "diagrams-js/onprem/analytics";
```
### onprem/auth[](#onpremauth "Direct link to onprem/auth")
 **Boundary**
```
import { Boundary } from "diagrams-js/onprem/auth";
```
 **BuzzfeedSso**
```
import { BuzzfeedSso } from "diagrams-js/onprem/auth";
```
 **Oauth2Proxy**
```
import { Oauth2Proxy } from "diagrams-js/onprem/auth";
```
### onprem/cd[](#onpremcd "Direct link to onprem/cd")
 **Spinnaker**
```
import { Spinnaker } from "diagrams-js/onprem/cd";
```
 **TektonCli**
```
import { TektonCli } from "diagrams-js/onprem/cd";
```
 **Tekton**
```
import { Tekton } from "diagrams-js/onprem/cd";
```
### onprem/certificates[](#onpremcertificates "Direct link to onprem/certificates")

**CertManager**
```
import { CertManager } from "diagrams-js/onprem/certificates";
```

**LetsEncrypt**
```
import { LetsEncrypt } from "diagrams-js/onprem/certificates";
```
### onprem/ci[](#onpremci "Direct link to onprem/ci")
 **Circleci**
```
import { Circleci } from "diagrams-js/onprem/ci";
```
 **Concourseci**
```
import { Concourseci } from "diagrams-js/onprem/ci";
```
 **Droneci**
```
import { Droneci } from "diagrams-js/onprem/ci";
```

**GithubActions**
```
import { GithubActions } from "diagrams-js/onprem/ci";
```
 **Gitlabci**
```
import { Gitlabci } from "diagrams-js/onprem/ci";
```
 **Jenkins**
```
import { Jenkins } from "diagrams-js/onprem/ci";
```
 **Teamcity**
```
import { Teamcity } from "diagrams-js/onprem/ci";
```
 **Travisci**
```
import { Travisci } from "diagrams-js/onprem/ci";
```
 **Zuulci**
```
import { Zuulci } from "diagrams-js/onprem/ci";
```
### onprem/client[](#onpremclient "Direct link to onprem/client")
 **Client**
```
import { Client } from "diagrams-js/onprem/client";
```
 **User**
```
import { User } from "diagrams-js/onprem/client";
```
 **Users**
```
import { Users } from "diagrams-js/onprem/client";
```
### onprem/compute[](#onpremcompute "Direct link to onprem/compute")
 **Nomad**
```
import { Nomad } from "diagrams-js/onprem/compute";
```
 **Server**
```
import { Server } from "diagrams-js/onprem/compute";
```
### onprem/container[](#onpremcontainer "Direct link to onprem/container")
 **Containerd**
```
import { Containerd } from "diagrams-js/onprem/container";
```
 **Crio**
```
import { Crio } from "diagrams-js/onprem/container";
```
 **Docker**
```
import { Docker } from "diagrams-js/onprem/container";
```

**Firecracker**
```
import { Firecracker } from "diagrams-js/onprem/container";
```
 **Gvisor**
```
import { Gvisor } from "diagrams-js/onprem/container";
```
 **K3s**
```
import { K3s } from "diagrams-js/onprem/container";
```
 **Lxc**
```
import { Lxc } from "diagrams-js/onprem/container";
```
 **Rkt**
```
import { Rkt } from "diagrams-js/onprem/container";
```
### onprem/database[](#onpremdatabase "Direct link to onprem/database")
 **Cassandra**
```
import { Cassandra } from "diagrams-js/onprem/database";
```
 **Clickhouse**
```
import { Clickhouse } from "diagrams-js/onprem/database";
```

**Cockroachdb**
```
import { Cockroachdb } from "diagrams-js/onprem/database";
```
 **Couchbase**
```
import { Couchbase } from "diagrams-js/onprem/database";
```
 **Couchdb**
```
import { Couchdb } from "diagrams-js/onprem/database";
```
 **Dgraph**
```
import { Dgraph } from "diagrams-js/onprem/database";
```
 **Druid**
```
import { Druid } from "diagrams-js/onprem/database";
```
 **Duckdb**
```
import { Duckdb } from "diagrams-js/onprem/database";
```
 **Hbase**
```
import { Hbase } from "diagrams-js/onprem/database";
```
 **Influxdb**
```
import { Influxdb } from "diagrams-js/onprem/database";
```
 **Janusgraph**
```
import { Janusgraph } from "diagrams-js/onprem/database";
```
 **Mariadb**
```
import { Mariadb } from "diagrams-js/onprem/database";
```
 **Mongodb**
```
import { Mongodb } from "diagrams-js/onprem/database";
```
 **Mssql**
```
import { Mssql } from "diagrams-js/onprem/database";
```
 **Mysql**
```
import { Mysql } from "diagrams-js/onprem/database";
```
 **Neo4j**
```
import { Neo4j } from "diagrams-js/onprem/database";
```
 **Oracle**
```
import { Oracle } from "diagrams-js/onprem/database";
```
 **Postgresql**
```
import { Postgresql } from "diagrams-js/onprem/database";
```
 **Qdrant**
```
import { Qdrant } from "diagrams-js/onprem/database";
```
 **Scylla**
```
import { Scylla } from "diagrams-js/onprem/database";
```
### onprem/dns[](#onpremdns "Direct link to onprem/dns")
 **Coredns**
```
import { Coredns } from "diagrams-js/onprem/dns";
```
 **Powerdns**
```
import { Powerdns } from "diagrams-js/onprem/dns";
```
### onprem/etl[](#onpremetl "Direct link to onprem/etl")
 **Embulk**
```
import { Embulk } from "diagrams-js/onprem/etl";
```
### onprem/gitops[](#onpremgitops "Direct link to onprem/gitops")
 **Argocd**
```
import { Argocd } from "diagrams-js/onprem/gitops";
```
 **Flagger**
```
import { Flagger } from "diagrams-js/onprem/gitops";
```
 **Flux**
```
import { Flux } from "diagrams-js/onprem/gitops";
```
### onprem/groupware[](#onpremgroupware "Direct link to onprem/groupware")
 **Nextcloud**
```
import { Nextcloud } from "diagrams-js/onprem/groupware";
```
### onprem/iac[](#onpremiac "Direct link to onprem/iac")
 **Ansible**
```
import { Ansible } from "diagrams-js/onprem/iac";
```
 **Atlantis**
```
import { Atlantis } from "diagrams-js/onprem/iac";
```
 **Awx**
```
import { Awx } from "diagrams-js/onprem/iac";
```
 **Pulumi**
```
import { Pulumi } from "diagrams-js/onprem/iac";
```
 **Puppet**
```
import { Puppet } from "diagrams-js/onprem/iac";
```
 **Terraform**
```
import { Terraform } from "diagrams-js/onprem/iac";
```
### onprem/identity[](#onpremidentity "Direct link to onprem/identity")
 **Dex**
```
import { Dex } from "diagrams-js/onprem/identity";
```
### onprem/inmemory[](#onpreminmemory "Direct link to onprem/inmemory")
 **Aerospike**
```
import { Aerospike } from "diagrams-js/onprem/inmemory";
```
 **Hazelcast**
```
import { Hazelcast } from "diagrams-js/onprem/inmemory";
```
 **Memcached**
```
import { Memcached } from "diagrams-js/onprem/inmemory";
```
 **Redis**
```
import { Redis } from "diagrams-js/onprem/inmemory";
```
### onprem/logging[](#onpremlogging "Direct link to onprem/logging")
 **Fluentbit**
```
import { Fluentbit } from "diagrams-js/onprem/logging";
```
 **Graylog**
```
import { Graylog } from "diagrams-js/onprem/logging";
```
 **Loki**
```
import { Loki } from "diagrams-js/onprem/logging";
```
 **Rsyslog**
```
import { Rsyslog } from "diagrams-js/onprem/logging";
```
 **SyslogNg**
```
import { SyslogNg } from "diagrams-js/onprem/logging";
```
### onprem/messaging[](#onpremmessaging "Direct link to onprem/messaging")
 **Centrifugo**
```
import { Centrifugo } from "diagrams-js/onprem/messaging";
```
### onprem/mlops[](#onpremmlops "Direct link to onprem/mlops")
 **Mlflow**
```
import { Mlflow } from "diagrams-js/onprem/mlops";
```
 **Polyaxon**
```
import { Polyaxon } from "diagrams-js/onprem/mlops";
```
### onprem/monitoring[](#onpremmonitoring "Direct link to onprem/monitoring")
 **Cortex**
```
import { Cortex } from "diagrams-js/onprem/monitoring";
```
 **Datadog**
```
import { Datadog } from "diagrams-js/onprem/monitoring";
```
 **Dynatrace**
```
import { Dynatrace } from "diagrams-js/onprem/monitoring";
```
 **Grafana**
```
import { Grafana } from "diagrams-js/onprem/monitoring";
```
 **Humio**
```
import { Humio } from "diagrams-js/onprem/monitoring";
```
 **Mimir**
```
import { Mimir } from "diagrams-js/onprem/monitoring";
```
 **Nagios**
```
import { Nagios } from "diagrams-js/onprem/monitoring";
```
 **Newrelic**
```
import { Newrelic } from "diagrams-js/onprem/monitoring";
```

**PrometheusOperator**
```
import { PrometheusOperator } from "diagrams-js/onprem/monitoring";
```
 **Prometheus**
```
import { Prometheus } from "diagrams-js/onprem/monitoring";
```
 **Sentry**
```
import { Sentry } from "diagrams-js/onprem/monitoring";
```
 **Splunk**
```
import { Splunk } from "diagrams-js/onprem/monitoring";
```
 **Thanos**
```
import { Thanos } from "diagrams-js/onprem/monitoring";
```
 **Zabbix**
```
import { Zabbix } from "diagrams-js/onprem/monitoring";
```
### onprem/network[](#onpremnetwork "Direct link to onprem/network")
 **Ambassador**
```
import { Ambassador } from "diagrams-js/onprem/network";
```
 **Apache**
```
import { Apache } from "diagrams-js/onprem/network";
```
**Bind9**
```
import { Bind9 } from "diagrams-js/onprem/network";
```
 **Caddy**
```
import { Caddy } from "diagrams-js/onprem/network";
```

**CiscoRouter**
```
import { CiscoRouter } from "diagrams-js/onprem/network";
```

**CiscoSwitchL2**
```
import { CiscoSwitchL2 } from "diagrams-js/onprem/network";
```

**CiscoSwitchL3**
```
import { CiscoSwitchL3 } from "diagrams-js/onprem/network";
```
 **Consul**
```
import { Consul } from "diagrams-js/onprem/network";
```
 **Envoy**
```
import { Envoy } from "diagrams-js/onprem/network";
```
 **Etcd**
```
import { Etcd } from "diagrams-js/onprem/network";
```
 **Glassfish**
```
import { Glassfish } from "diagrams-js/onprem/network";
```
 **Gunicorn**
```
import { Gunicorn } from "diagrams-js/onprem/network";
```
 **Haproxy**
```
import { Haproxy } from "diagrams-js/onprem/network";
```
 **Internet**
```
import { Internet } from "diagrams-js/onprem/network";
```
 **Istio**
```
import { Istio } from "diagrams-js/onprem/network";
```
 **Jbossas**
```
import { Jbossas } from "diagrams-js/onprem/network";
```
 **Jetty**
```
import { Jetty } from "diagrams-js/onprem/network";
```
 **Kong**
```
import { Kong } from "diagrams-js/onprem/network";
```
 **Linkerd**
```
import { Linkerd } from "diagrams-js/onprem/network";
```
 **Mikrotik**
```
import { Mikrotik } from "diagrams-js/onprem/network";
```
 **Nginx**
```
import { Nginx } from "diagrams-js/onprem/network";
```
 **Ocelot**
```
import { Ocelot } from "diagrams-js/onprem/network";
```

**OpenServiceMesh**
```
import { OpenServiceMesh } from "diagrams-js/onprem/network";
```
 **Opnsense**
```
import { Opnsense } from "diagrams-js/onprem/network";
```
 **Pfsense**
```
import { Pfsense } from "diagrams-js/onprem/network";
```
 **Pomerium**
```
import { Pomerium } from "diagrams-js/onprem/network";
```
 **Powerdns**
```
import { Powerdns } from "diagrams-js/onprem/network";
```
 **Tomcat**
```
import { Tomcat } from "diagrams-js/onprem/network";
```
 **Traefik**
```
import { Traefik } from "diagrams-js/onprem/network";
```
 **Tyk**
```
import { Tyk } from "diagrams-js/onprem/network";
```
 **Vyos**
```
import { Vyos } from "diagrams-js/onprem/network";
```
 **Wildfly**
```
import { Wildfly } from "diagrams-js/onprem/network";
```
 **Yarp**
```
import { Yarp } from "diagrams-js/onprem/network";
```
 **Zookeeper**
```
import { Zookeeper } from "diagrams-js/onprem/network";
```
### onprem/proxmox[](#onpremproxmox "Direct link to onprem/proxmox")
 **Pve**
```
import { Pve } from "diagrams-js/onprem/proxmox";
```
### onprem/queue[](#onpremqueue "Direct link to onprem/queue")
 **Activemq**
```
import { Activemq } from "diagrams-js/onprem/queue";
```
 **Celery**
```
import { Celery } from "diagrams-js/onprem/queue";
```
 **Emqx**
```
import { Emqx } from "diagrams-js/onprem/queue";
```
 **Kafka**
```
import { Kafka } from "diagrams-js/onprem/queue";
```
 **Nats**
```
import { Nats } from "diagrams-js/onprem/queue";
```
 **Rabbitmq**
```
import { Rabbitmq } from "diagrams-js/onprem/queue";
```
 **Zeromq**
```
import { Zeromq } from "diagrams-js/onprem/queue";
```
### onprem/registry[](#onpremregistry "Direct link to onprem/registry")
 **Harbor**
```
import { Harbor } from "diagrams-js/onprem/registry";
```
 **Jfrog**
```
import { Jfrog } from "diagrams-js/onprem/registry";
```
### onprem/search[](#onpremsearch "Direct link to onprem/search")
 **Solr**
```
import { Solr } from "diagrams-js/onprem/search";
```
### onprem/security[](#onpremsecurity "Direct link to onprem/security")
 **Bitwarden**
```
import { Bitwarden } from "diagrams-js/onprem/security";
```
 **Trivy**
```
import { Trivy } from "diagrams-js/onprem/security";
```
 **Vault**
```
import { Vault } from "diagrams-js/onprem/security";
```
### onprem/storage[](#onpremstorage "Direct link to onprem/storage")
 **CephOsd**
```
import { CephOsd } from "diagrams-js/onprem/storage";
```
 **Ceph**
```
import { Ceph } from "diagrams-js/onprem/storage";
```
 **Glusterfs**
```
import { Glusterfs } from "diagrams-js/onprem/storage";
```
 **Portworx**
```
import { Portworx } from "diagrams-js/onprem/storage";
```
### onprem/tracing[](#onpremtracing "Direct link to onprem/tracing")
 **Jaeger**
```
import { Jaeger } from "diagrams-js/onprem/tracing";
```
 **Tempo**
```
import { Tempo } from "diagrams-js/onprem/tracing";
```
### onprem/vcs[](#onpremvcs "Direct link to onprem/vcs")
 **Git**
```
import { Git } from "diagrams-js/onprem/vcs";
```
 **Gitea**
```
import { Gitea } from "diagrams-js/onprem/vcs";
```
 **Github**
```
import { Github } from "diagrams-js/onprem/vcs";
```
 **Gitlab**
```
import { Gitlab } from "diagrams-js/onprem/vcs";
```
 **Svn**
```
import { Svn } from "diagrams-js/onprem/vcs";
```
### onprem/workflow[](#onpremworkflow "Direct link to onprem/workflow")
 **Airflow**
```
import { Airflow } from "diagrams-js/onprem/workflow";
```
 **Digdag**
```
import { Digdag } from "diagrams-js/onprem/workflow";
```
 **Kubeflow**
```
import { Kubeflow } from "diagrams-js/onprem/workflow";
```
 **Nifi**
```
import { Nifi } from "diagrams-js/onprem/workflow";
```
---
# OpenStack
Node classes list for the OpenStack provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { EC2API } from "diagrams-js/openstack/apiproxies";
import { Freezer, Masakari, Murano } from "diagrams-js/openstack/applicationlifecycle";
const diagram = Diagram("OpenStack Architecture", { direction: "TB" });
const node1 = diagram.add(EC2API("Node 1"));
const node2 = diagram.add(Freezer("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/openstack) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### openstack/apiproxies[](#openstackapiproxies "Direct link to openstack/apiproxies")
 **EC2API**
```
import { EC2API } from "diagrams-js/openstack/apiproxies";
```
### openstack/applicationlifecycle[](#openstackapplicationlifecycle "Direct link to openstack/applicationlifecycle")

**Freezer**
```
import { Freezer } from "diagrams-js/openstack/applicationlifecycle";
```

**Masakari**
```
import { Masakari } from "diagrams-js/openstack/applicationlifecycle";
```

**Murano**
```
import { Murano } from "diagrams-js/openstack/applicationlifecycle";
```
 **Solum**
```
import { Solum } from "diagrams-js/openstack/applicationlifecycle";
```
### openstack/baremetal[](#openstackbaremetal "Direct link to openstack/baremetal")
 **Cyborg**
```
import { Cyborg } from "diagrams-js/openstack/baremetal";
```
 **Ironic**
```
import { Ironic } from "diagrams-js/openstack/baremetal";
```
### openstack/billing[](#openstackbilling "Direct link to openstack/billing")
 **Cloudkitty**
```
import { Cloudkitty } from "diagrams-js/openstack/billing";
```
### openstack/compute[](#openstackcompute "Direct link to openstack/compute")
 **Nova**
```
import { Nova } from "diagrams-js/openstack/compute";
```
 **Qinling**
```
import { Qinling } from "diagrams-js/openstack/compute";
```
 **Zun**
```
import { Zun } from "diagrams-js/openstack/compute";
```
### openstack/containerservices[](#openstackcontainerservices "Direct link to openstack/containerservices")
 **Kuryr**
```
import { Kuryr } from "diagrams-js/openstack/containerservices";
```
### openstack/deployment[](#openstackdeployment "Direct link to openstack/deployment")
 **Ansible**
```
import { Ansible } from "diagrams-js/openstack/deployment";
```
 **Charms**
```
import { Charms } from "diagrams-js/openstack/deployment";
```
 **Chef**
```
import { Chef } from "diagrams-js/openstack/deployment";
```
 **Helm**
```
import { Helm } from "diagrams-js/openstack/deployment";
```
 **Kolla**
```
import { Kolla } from "diagrams-js/openstack/deployment";
```
 **Tripleo**
```
import { Tripleo } from "diagrams-js/openstack/deployment";
```
### openstack/frontend[](#openstackfrontend "Direct link to openstack/frontend")
 **Horizon**
```
import { Horizon } from "diagrams-js/openstack/frontend";
```
### openstack/monitoring[](#openstackmonitoring "Direct link to openstack/monitoring")
 **Monasca**
```
import { Monasca } from "diagrams-js/openstack/monitoring";
```
 **Telemetry**
```
import { Telemetry } from "diagrams-js/openstack/monitoring";
```
### openstack/multiregion[](#openstackmultiregion "Direct link to openstack/multiregion")

**Tricircle**
```
import { Tricircle } from "diagrams-js/openstack/multiregion";
```
### openstack/networking[](#openstacknetworking "Direct link to openstack/networking")
 **Designate**
```
import { Designate } from "diagrams-js/openstack/networking";
```
 **Neutron**
```
import { Neutron } from "diagrams-js/openstack/networking";
```
 **Octavia**
```
import { Octavia } from "diagrams-js/openstack/networking";
```
### openstack/nfv[](#openstacknfv "Direct link to openstack/nfv")
 **Tacker**
```
import { Tacker } from "diagrams-js/openstack/nfv";
```
### openstack/optimization[](#openstackoptimization "Direct link to openstack/optimization")
 **Congress**
```
import { Congress } from "diagrams-js/openstack/optimization";
```
 **Rally**
```
import { Rally } from "diagrams-js/openstack/optimization";
```
 **Vitrage**
```
import { Vitrage } from "diagrams-js/openstack/optimization";
```
 **Watcher**
```
import { Watcher } from "diagrams-js/openstack/optimization";
```
### openstack/orchestration[](#openstackorchestration "Direct link to openstack/orchestration")
 **Blazar**
```
import { Blazar } from "diagrams-js/openstack/orchestration";
```
 **Heat**
```
import { Heat } from "diagrams-js/openstack/orchestration";
```
 **Mistral**
```
import { Mistral } from "diagrams-js/openstack/orchestration";
```
 **Senlin**
```
import { Senlin } from "diagrams-js/openstack/orchestration";
```
 **Zaqar**
```
import { Zaqar } from "diagrams-js/openstack/orchestration";
```
### openstack/packaging[](#openstackpackaging "Direct link to openstack/packaging")
 **LOCI**
```
import { LOCI } from "diagrams-js/openstack/packaging";
```
 **Puppet**
```
import { Puppet } from "diagrams-js/openstack/packaging";
```
 **RPM**
```
import { RPM } from "diagrams-js/openstack/packaging";
```
### openstack/sharedservices[](#openstacksharedservices "Direct link to openstack/sharedservices")

**Barbican**
```
import { Barbican } from "diagrams-js/openstack/sharedservices";
```
 **Glance**
```
import { Glance } from "diagrams-js/openstack/sharedservices";
```
 **Karbor**
```
import { Karbor } from "diagrams-js/openstack/sharedservices";
```

**Keystone**
```
import { Keystone } from "diagrams-js/openstack/sharedservices";
```

**Searchlight**
```
import { Searchlight } from "diagrams-js/openstack/sharedservices";
```
### openstack/storage[](#openstackstorage "Direct link to openstack/storage")
 **Cinder**
```
import { Cinder } from "diagrams-js/openstack/storage";
```
 **Manila**
```
import { Manila } from "diagrams-js/openstack/storage";
```
 **Swift**
```
import { Swift } from "diagrams-js/openstack/storage";
```
### openstack/user[](#openstackuser "Direct link to openstack/user")

**Openstackclient**
```
import { Openstackclient } from "diagrams-js/openstack/user";
```
### openstack/workloadprovisioning[](#openstackworkloadprovisioning "Direct link to openstack/workloadprovisioning")

**Magnum**
```
import { Magnum } from "diagrams-js/openstack/workloadprovisioning";
```

**Sahara**
```
import { Sahara } from "diagrams-js/openstack/workloadprovisioning";
```
 **Trove**
```
import { Trove } from "diagrams-js/openstack/workloadprovisioning";
```
---
# Outscale
Node classes list for the Outscale provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Compute, DirectConnect } from "diagrams-js/outscale/compute";
import { ClientVpn, InternetService, LoadBalancer } from "diagrams-js/outscale/network";
const diagram = Diagram("Outscale Architecture", { direction: "TB" });
const node1 = diagram.add(Compute("Node 1"));
const node2 = diagram.add(ClientVpn("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/outscale) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### outscale/compute[](#outscalecompute "Direct link to outscale/compute")
 **Compute**
```
import { Compute } from "diagrams-js/outscale/compute";
```

**DirectConnect**
```
import { DirectConnect } from "diagrams-js/outscale/compute";
```
### outscale/network[](#outscalenetwork "Direct link to outscale/network")
 **ClientVpn**
```
import { ClientVpn } from "diagrams-js/outscale/network";
```

**InternetService**
```
import { InternetService } from "diagrams-js/outscale/network";
```

**LoadBalancer**
```
import { LoadBalancer } from "diagrams-js/outscale/network";
```
 **NatService**
```
import { NatService } from "diagrams-js/outscale/network";
```
 **Net**
```
import { Net } from "diagrams-js/outscale/network";
```

**SiteToSiteVpng**
```
import { SiteToSiteVpng } from "diagrams-js/outscale/network";
```
### outscale/security[](#outscalesecurity "Direct link to outscale/security")
 **Firewall**
```
import { Firewall } from "diagrams-js/outscale/security";
```

**IdentityAndAccessManagement**
```
import { IdentityAndAccessManagement } from "diagrams-js/outscale/security";
```
### outscale/storage[](#outscalestorage "Direct link to outscale/storage")

**SimpleStorageService**
```
import { SimpleStorageService } from "diagrams-js/outscale/storage";
```
 **Storage**
```
import { Storage } from "diagrams-js/outscale/storage";
```
---
# Programming
Node classes list for the Programming provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Action, Collate, Database } from "diagrams-js/programming/flowchart";
import { Angular, Backbone, Camel } from "diagrams-js/programming/framework";
const diagram = Diagram("Programming Architecture", { direction: "TB" });
const node1 = diagram.add(Action("Node 1"));
const node2 = diagram.add(Angular("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/programming) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### programming/flowchart[](#programmingflowchart "Direct link to programming/flowchart")
 **Action**
```
import { Action } from "diagrams-js/programming/flowchart";
```
 **Collate**
```
import { Collate } from "diagrams-js/programming/flowchart";
```
 **Database**
```
import { Database } from "diagrams-js/programming/flowchart";
```
 **Decision**
```
import { Decision } from "diagrams-js/programming/flowchart";
```
 **Delay**
```
import { Delay } from "diagrams-js/programming/flowchart";
```
 **Display**
```
import { Display } from "diagrams-js/programming/flowchart";
```
 **Document**
```
import { Document } from "diagrams-js/programming/flowchart";
```

**InputOutput**
```
import { InputOutput } from "diagrams-js/programming/flowchart";
```

**Inspection**
```
import { Inspection } from "diagrams-js/programming/flowchart";
```

**InternalStorage**
```
import { InternalStorage } from "diagrams-js/programming/flowchart";
```

**LoopLimit**
```
import { LoopLimit } from "diagrams-js/programming/flowchart";
```

**ManualInput**
```
import { ManualInput } from "diagrams-js/programming/flowchart";
```

**ManualLoop**
```
import { ManualLoop } from "diagrams-js/programming/flowchart";
```
 **Merge**
```
import { Merge } from "diagrams-js/programming/flowchart";
```

**MultipleDocuments**
```
import { MultipleDocuments } from "diagrams-js/programming/flowchart";
```

**OffPageConnectorLeft**
```
import { OffPageConnectorLeft } from "diagrams-js/programming/flowchart";
```

**OffPageConnectorRight**
```
import { OffPageConnectorRight } from "diagrams-js/programming/flowchart";
```
 **Or**
```
import { Or } from "diagrams-js/programming/flowchart";
```

**PredefinedProcess**
```
import { PredefinedProcess } from "diagrams-js/programming/flowchart";
```

**Preparation**
```
import { Preparation } from "diagrams-js/programming/flowchart";
```
 **Sort**
```
import { Sort } from "diagrams-js/programming/flowchart";
```
 **StartEnd**
```
import { StartEnd } from "diagrams-js/programming/flowchart";
```

**StoredData**
```
import { StoredData } from "diagrams-js/programming/flowchart";
```

**SummingJunction**
```
import { SummingJunction } from "diagrams-js/programming/flowchart";
```
### programming/framework[](#programmingframework "Direct link to programming/framework")
 **Angular**
```
import { Angular } from "diagrams-js/programming/framework";
```
 **Backbone**
```
import { Backbone } from "diagrams-js/programming/framework";
```
 **Camel**
```
import { Camel } from "diagrams-js/programming/framework";
```
 **Django**
```
import { Django } from "diagrams-js/programming/framework";
```
 **Dotnet**
```
import { Dotnet } from "diagrams-js/programming/framework";
```
 **Ember**
```
import { Ember } from "diagrams-js/programming/framework";
```
 **Fastapi**
```
import { Fastapi } from "diagrams-js/programming/framework";
```
 **Flask**
```
import { Flask } from "diagrams-js/programming/framework";
```
 **Flutter**
```
import { Flutter } from "diagrams-js/programming/framework";
```
 **Graphql**
```
import { Graphql } from "diagrams-js/programming/framework";
```

**Hibernate**
```
import { Hibernate } from "diagrams-js/programming/framework";
```
 **Jhipster**
```
import { Jhipster } from "diagrams-js/programming/framework";
```
 **Laravel**
```
import { Laravel } from "diagrams-js/programming/framework";
```

**Micronaut**
```
import { Micronaut } from "diagrams-js/programming/framework";
```
 **Nextjs**
```
import { Nextjs } from "diagrams-js/programming/framework";
```
 **Phoenix**
```
import { Phoenix } from "diagrams-js/programming/framework";
```
 **Quarkus**
```
import { Quarkus } from "diagrams-js/programming/framework";
```
 **Rails**
```
import { Rails } from "diagrams-js/programming/framework";
```
 **React**
```
import { React } from "diagrams-js/programming/framework";
```
 **Spring**
```
import { Spring } from "diagrams-js/programming/framework";
```
 **Sqlpage**
```
import { Sqlpage } from "diagrams-js/programming/framework";
```

**Starlette**
```
import { Starlette } from "diagrams-js/programming/framework";
```
 **Svelte**
```
import { Svelte } from "diagrams-js/programming/framework";
```
 **Vercel**
```
import { Vercel } from "diagrams-js/programming/framework";
```
 **Vue**
```
import { Vue } from "diagrams-js/programming/framework";
```
### programming/language[](#programminglanguage "Direct link to programming/language")
 **Bash**
```
import { Bash } from "diagrams-js/programming/language";
```
 **C**
```
import { C } from "diagrams-js/programming/language";
```
 **Cpp**
```
import { Cpp } from "diagrams-js/programming/language";
```
 **Csharp**
```
import { Csharp } from "diagrams-js/programming/language";
```
 **Dart**
```
import { Dart } from "diagrams-js/programming/language";
```
 **Elixir**
```
import { Elixir } from "diagrams-js/programming/language";
```
 **Erlang**
```
import { Erlang } from "diagrams-js/programming/language";
```
 **Go**
```
import { Go } from "diagrams-js/programming/language";
```
 **Java**
```
import { Java } from "diagrams-js/programming/language";
```

**Javascript**
```
import { Javascript } from "diagrams-js/programming/language";
```
 **Kotlin**
```
import { Kotlin } from "diagrams-js/programming/language";
```
 **Latex**
```
import { Latex } from "diagrams-js/programming/language";
```
 **Matlab**
```
import { Matlab } from "diagrams-js/programming/language";
```
 **Nodejs**
```
import { Nodejs } from "diagrams-js/programming/language";
```
 **Php**
```
import { Php } from "diagrams-js/programming/language";
```
 **Python**
```
import { Python } from "diagrams-js/programming/language";
```
 **R**
```
import { R } from "diagrams-js/programming/language";
```
 **Ruby**
```
import { Ruby } from "diagrams-js/programming/language";
```
 **Rust**
```
import { Rust } from "diagrams-js/programming/language";
```
 **Scala**
```
import { Scala } from "diagrams-js/programming/language";
```
 **Sql**
```
import { Sql } from "diagrams-js/programming/language";
```
 **Swift**
```
import { Swift } from "diagrams-js/programming/language";
```

**Typescript**
```
import { Typescript } from "diagrams-js/programming/language";
```
### programming/runtime[](#programmingruntime "Direct link to programming/runtime")
 **Dapr**
```
import { Dapr } from "diagrams-js/programming/runtime";
```
---
# SaaS
Node classes list for the SaaS provider.
## Example Usage[](#example-usage "Direct link to Example Usage")
```
import { Diagram } from "diagrams-js";
import { Newrelic, Opsgenie, Pagerduty } from "diagrams-js/saas/alerting";
import { Dataform, Snowflake, Stitch } from "diagrams-js/saas/analytics";
const diagram = Diagram("SaaS Architecture", { direction: "TB" });
const node1 = diagram.add(Newrelic("Node 1"));
const node2 = diagram.add(Dataform("Node 2"));
node1.to(node2);
const svg = await diagram.render();
diagram.destroy();
```
note
All node classes available in the [Python diagrams library](https://diagrams.mingrammer.com/docs/nodes/saas) are also available in diagrams-js with the same class names and structure.
## Node Reference[](#node-reference "Direct link to Node Reference")
### saas/alerting[](#saasalerting "Direct link to saas/alerting")
 **Newrelic**
```
import { Newrelic } from "diagrams-js/saas/alerting";
```
 **Opsgenie**
```
import { Opsgenie } from "diagrams-js/saas/alerting";
```
 **Pagerduty**
```
import { Pagerduty } from "diagrams-js/saas/alerting";
```
 **Pushover**
```
import { Pushover } from "diagrams-js/saas/alerting";
```
 **Xmatters**
```
import { Xmatters } from "diagrams-js/saas/alerting";
```
### saas/analytics[](#saasanalytics "Direct link to saas/analytics")
 **Dataform**
```
import { Dataform } from "diagrams-js/saas/analytics";
```
 **Snowflake**
```
import { Snowflake } from "diagrams-js/saas/analytics";
```
 **Stitch**
```
import { Stitch } from "diagrams-js/saas/analytics";
```
### saas/automation[](#saasautomation "Direct link to saas/automation")
 **N8n**
```
import { N8n } from "diagrams-js/saas/automation";
```
### saas/cdn[](#saascdn "Direct link to saas/cdn")
 **Akamai**
```
import { Akamai } from "diagrams-js/saas/cdn";
```
 **Cloudflare**
```
import { Cloudflare } from "diagrams-js/saas/cdn";
```
 **Fastly**
```
import { Fastly } from "diagrams-js/saas/cdn";
```
 **Imperva**
```
import { Imperva } from "diagrams-js/saas/cdn";
```
### saas/chat[](#saaschat "Direct link to saas/chat")
 **Discord**
```
import { Discord } from "diagrams-js/saas/chat";
```
 **Line**
```
import { Line } from "diagrams-js/saas/chat";
```
 **Mattermost**
```
import { Mattermost } from "diagrams-js/saas/chat";
```
 **Messenger**
```
import { Messenger } from "diagrams-js/saas/chat";
```
 **RocketChat**
```
import { RocketChat } from "diagrams-js/saas/chat";
```
 **Slack**
```
import { Slack } from "diagrams-js/saas/chat";
```
 **Teams**
```
import { Teams } from "diagrams-js/saas/chat";
```
 **Telegram**
```
import { Telegram } from "diagrams-js/saas/chat";
```
### saas/communication[](#saascommunication "Direct link to saas/communication")
 **Twilio**
```
import { Twilio } from "diagrams-js/saas/communication";
```
### saas/crm[](#saascrm "Direct link to saas/crm")
 **Intercom**
```
import { Intercom } from "diagrams-js/saas/crm";
```
 **Zendesk**
```
import { Zendesk } from "diagrams-js/saas/crm";
```
### saas/filesharing[](#saasfilesharing "Direct link to saas/filesharing")
 **Nextcloud**
```
import { Nextcloud } from "diagrams-js/saas/filesharing";
```
### saas/identity[](#saasidentity "Direct link to saas/identity")
 **Auth0**
```
import { Auth0 } from "diagrams-js/saas/identity";
```
 **Okta**
```
import { Okta } from "diagrams-js/saas/identity";
```
### saas/logging[](#saaslogging "Direct link to saas/logging")
 **Datadog**
```
import { Datadog } from "diagrams-js/saas/logging";
```
 **Newrelic**
```
import { Newrelic } from "diagrams-js/saas/logging";
```
 **Papertrail**
```
import { Papertrail } from "diagrams-js/saas/logging";
```
### saas/media[](#saasmedia "Direct link to saas/media")
 **Cloudinary**
```
import { Cloudinary } from "diagrams-js/saas/media";
```
### saas/payment[](#saaspayment "Direct link to saas/payment")
 **Adyen**
```
import { Adyen } from "diagrams-js/saas/payment";
```
 **AmazonPay**
```
import { AmazonPay } from "diagrams-js/saas/payment";
```
 **Paypal**
```
import { Paypal } from "diagrams-js/saas/payment";
```
 **Stripe**
```
import { Stripe } from "diagrams-js/saas/payment";
```
### saas/recommendation[](#saasrecommendation "Direct link to saas/recommendation")
 **Recombee**
```
import { Recombee } from "diagrams-js/saas/recommendation";
```
### saas/security[](#saassecurity "Direct link to saas/security")
 **Crowdstrike**
```
import { Crowdstrike } from "diagrams-js/saas/security";
```
 **Sonarqube**
```
import { Sonarqube } from "diagrams-js/saas/security";
```
### saas/social[](#saassocial "Direct link to saas/social")
 **Facebook**
```
import { Facebook } from "diagrams-js/saas/social";
```
 **Twitter**
```
import { Twitter } from "diagrams-js/saas/social";
```
---