From a16160b4abcc4c5968ad77a8b8bd7a1a9d4514fc Mon Sep 17 00:00:00 2001 From: Matteo Ruina Date: Fri, 29 May 2020 09:37:53 +0200 Subject: [PATCH 01/10] Add flux and flagger (#147) --- diagrams/onprem/gitops.py | 8 + docs/nodes/alibabacloud.md | 140 +++++------ docs/nodes/aws.md | 364 ++++++++++++++-------------- docs/nodes/gcp.md | 118 ++++----- docs/nodes/k8s.md | 80 +++--- docs/nodes/oci.md | 144 +++++------ docs/nodes/onprem.md | 124 ++++++---- resources/onprem/gitops/flagger.png | Bin 0 -> 27435 bytes resources/onprem/gitops/flux.png | Bin 0 -> 30310 bytes 9 files changed, 514 insertions(+), 464 deletions(-) create mode 100644 resources/onprem/gitops/flagger.png create mode 100644 resources/onprem/gitops/flux.png diff --git a/diagrams/onprem/gitops.py b/diagrams/onprem/gitops.py index 670bd2c5..c4702c62 100644 --- a/diagrams/onprem/gitops.py +++ b/diagrams/onprem/gitops.py @@ -12,6 +12,14 @@ class Argocd(_Gitops): _icon = "argocd.png" +class Flagger(_Gitops): + _icon = "flagger.png" + + +class Flux(_Gitops): + _icon = "flux.png" + + # Aliases ArgoCD = Argocd diff --git a/docs/nodes/alibabacloud.md b/docs/nodes/alibabacloud.md index cc274c24..eb62f5d2 100644 --- a/docs/nodes/alibabacloud.md +++ b/docs/nodes/alibabacloud.md @@ -5,54 +5,6 @@ title: AlibabaCloud Node classes list of alibabacloud provider. -## alibabacloud.analytics - -- **diagrams.alibabacloud.analytics.AnalyticDb** -- **diagrams.alibabacloud.analytics.ClickHouse** -- **diagrams.alibabacloud.analytics.DataLakeAnalytics** -- **diagrams.alibabacloud.analytics.ElaticMapReduce** -- **diagrams.alibabacloud.analytics.OpenSearch** - -## alibabacloud.application - -- **diagrams.alibabacloud.application.ApiGateway** -- **diagrams.alibabacloud.application.BeeBot** -- **diagrams.alibabacloud.application.BlockchainAsAService** -- **diagrams.alibabacloud.application.CloudCallCenter** -- **diagrams.alibabacloud.application.CodePipeline** -- **diagrams.alibabacloud.application.DirectMail** -- **diagrams.alibabacloud.application.LogService**, **SLS** (alias) -- **diagrams.alibabacloud.application.MessageNotificationService**, **MNS** (alias) -- **diagrams.alibabacloud.application.NodeJsPerformancePlatform** -- **diagrams.alibabacloud.application.OpenSearch** -- **diagrams.alibabacloud.application.PerformanceTestingService**, **PTS** (alias) -- **diagrams.alibabacloud.application.RdCloud** -- **diagrams.alibabacloud.application.SmartConversationAnalysis**, **SCA** (alias) -- **diagrams.alibabacloud.application.Yida** - -## alibabacloud.communication - -- **diagrams.alibabacloud.communication.DirectMail** -- **diagrams.alibabacloud.communication.MobilePush** - -## alibabacloud.compute - -- **diagrams.alibabacloud.compute.AutoScaling**, **ESS** (alias) -- **diagrams.alibabacloud.compute.BatchCompute** -- **diagrams.alibabacloud.compute.ContainerRegistry** -- **diagrams.alibabacloud.compute.ContainerService** -- **diagrams.alibabacloud.compute.ElasticComputeService**, **ECS** (alias) -- **diagrams.alibabacloud.compute.ElasticContainerInstance**, **ECI** (alias) -- **diagrams.alibabacloud.compute.ElasticHighPerformanceComputing**, **EHPC** (alias) -- **diagrams.alibabacloud.compute.ElasticSearch** -- **diagrams.alibabacloud.compute.FunctionCompute**, **FC** (alias) -- **diagrams.alibabacloud.compute.OperationOrchestrationService**, **OOS** (alias) -- **diagrams.alibabacloud.compute.ResourceOrchestrationService**, **ROS** (alias) -- **diagrams.alibabacloud.compute.ServerLoadBalancer**, **SLB** (alias) -- **diagrams.alibabacloud.compute.ServerlessAppEngine**, **SAE** (alias) -- **diagrams.alibabacloud.compute.SimpleApplicationServer**, **SAS** (alias) -- **diagrams.alibabacloud.compute.WebAppService**, **WAS** (alias) - ## alibabacloud.database - **diagrams.alibabacloud.database.ApsaradbCassandra** @@ -73,25 +25,6 @@ Node classes list of alibabacloud provider. - **diagrams.alibabacloud.database.HybriddbForMysql** - **diagrams.alibabacloud.database.RelationalDatabaseService**, **RDS** (alias) -## alibabacloud.iot - -- **diagrams.alibabacloud.iot.IotInternetDeviceId** -- **diagrams.alibabacloud.iot.IotLinkWan** -- **diagrams.alibabacloud.iot.IotMobileConnectionPackage** -- **diagrams.alibabacloud.iot.IotPlatform** - -## alibabacloud.network - -- **diagrams.alibabacloud.network.Cdn** -- **diagrams.alibabacloud.network.CloudEnterpriseNetwork**, **CEN** (alias) -- **diagrams.alibabacloud.network.ElasticIpAddress**, **EIP** (alias) -- **diagrams.alibabacloud.network.ExpressConnect** -- **diagrams.alibabacloud.network.NatGateway** -- **diagrams.alibabacloud.network.ServerLoadBalancer**, **SLB** (alias) -- **diagrams.alibabacloud.network.SmartAccessGateway** -- **diagrams.alibabacloud.network.VirtualPrivateCloud**, **VPC** (alias) -- **diagrams.alibabacloud.network.VpnGateway** - ## alibabacloud.security - **diagrams.alibabacloud.security.AntiBotService**, **ABS** (alias) @@ -113,6 +46,23 @@ Node classes list of alibabacloud provider. - **diagrams.alibabacloud.security.SslCertificates** - **diagrams.alibabacloud.security.WebApplicationFirewall**, **WAF** (alias) +## alibabacloud.web + +- **diagrams.alibabacloud.web.Dns** +- **diagrams.alibabacloud.web.Domain** + +## alibabacloud.network + +- **diagrams.alibabacloud.network.Cdn** +- **diagrams.alibabacloud.network.CloudEnterpriseNetwork**, **CEN** (alias) +- **diagrams.alibabacloud.network.ElasticIpAddress**, **EIP** (alias) +- **diagrams.alibabacloud.network.ExpressConnect** +- **diagrams.alibabacloud.network.NatGateway** +- **diagrams.alibabacloud.network.ServerLoadBalancer**, **SLB** (alias) +- **diagrams.alibabacloud.network.SmartAccessGateway** +- **diagrams.alibabacloud.network.VirtualPrivateCloud**, **VPC** (alias) +- **diagrams.alibabacloud.network.VpnGateway** + ## alibabacloud.storage - **diagrams.alibabacloud.storage.CloudStorageGateway** @@ -124,7 +74,57 @@ Node classes list of alibabacloud provider. - **diagrams.alibabacloud.storage.ObjectStorageService**, **OSS** (alias) - **diagrams.alibabacloud.storage.ObjectTableStore**, **OTS** (alias) -## alibabacloud.web +## alibabacloud.iot -- **diagrams.alibabacloud.web.Dns** -- **diagrams.alibabacloud.web.Domain** +- **diagrams.alibabacloud.iot.IotInternetDeviceId** +- **diagrams.alibabacloud.iot.IotLinkWan** +- **diagrams.alibabacloud.iot.IotMobileConnectionPackage** +- **diagrams.alibabacloud.iot.IotPlatform** + +## alibabacloud.compute + +- **diagrams.alibabacloud.compute.AutoScaling**, **ESS** (alias) +- **diagrams.alibabacloud.compute.BatchCompute** +- **diagrams.alibabacloud.compute.ContainerRegistry** +- **diagrams.alibabacloud.compute.ContainerService** +- **diagrams.alibabacloud.compute.ElasticComputeService**, **ECS** (alias) +- **diagrams.alibabacloud.compute.ElasticContainerInstance**, **ECI** (alias) +- **diagrams.alibabacloud.compute.ElasticHighPerformanceComputing**, **EHPC** (alias) +- **diagrams.alibabacloud.compute.ElasticSearch** +- **diagrams.alibabacloud.compute.FunctionCompute**, **FC** (alias) +- **diagrams.alibabacloud.compute.OperationOrchestrationService**, **OOS** (alias) +- **diagrams.alibabacloud.compute.ResourceOrchestrationService**, **ROS** (alias) +- **diagrams.alibabacloud.compute.ServerLoadBalancer**, **SLB** (alias) +- **diagrams.alibabacloud.compute.ServerlessAppEngine**, **SAE** (alias) +- **diagrams.alibabacloud.compute.SimpleApplicationServer**, **SAS** (alias) +- **diagrams.alibabacloud.compute.WebAppService**, **WAS** (alias) + +## alibabacloud.application + +- **diagrams.alibabacloud.application.ApiGateway** +- **diagrams.alibabacloud.application.BeeBot** +- **diagrams.alibabacloud.application.BlockchainAsAService** +- **diagrams.alibabacloud.application.CloudCallCenter** +- **diagrams.alibabacloud.application.CodePipeline** +- **diagrams.alibabacloud.application.DirectMail** +- **diagrams.alibabacloud.application.LogService**, **SLS** (alias) +- **diagrams.alibabacloud.application.MessageNotificationService**, **MNS** (alias) +- **diagrams.alibabacloud.application.NodeJsPerformancePlatform** +- **diagrams.alibabacloud.application.OpenSearch** +- **diagrams.alibabacloud.application.PerformanceTestingService**, **PTS** (alias) +- **diagrams.alibabacloud.application.RdCloud** +- **diagrams.alibabacloud.application.SmartConversationAnalysis**, **SCA** (alias) +- **diagrams.alibabacloud.application.Yida** + +## alibabacloud.communication + +- **diagrams.alibabacloud.communication.DirectMail** +- **diagrams.alibabacloud.communication.MobilePush** + +## alibabacloud.analytics + +- **diagrams.alibabacloud.analytics.AnalyticDb** +- **diagrams.alibabacloud.analytics.ClickHouse** +- **diagrams.alibabacloud.analytics.DataLakeAnalytics** +- **diagrams.alibabacloud.analytics.ElaticMapReduce** +- **diagrams.alibabacloud.analytics.OpenSearch** diff --git a/docs/nodes/aws.md b/docs/nodes/aws.md index 1c8feb3f..e5eff58d 100644 --- a/docs/nodes/aws.md +++ b/docs/nodes/aws.md @@ -5,56 +5,6 @@ title: AWS Node classes list of aws provider. -## aws.analytics - -- **diagrams.aws.analytics.Analytics** -- **diagrams.aws.analytics.Athena** -- **diagrams.aws.analytics.CloudsearchSearchDocuments** -- **diagrams.aws.analytics.Cloudsearch** -- **diagrams.aws.analytics.DataPipeline** -- **diagrams.aws.analytics.ElasticsearchService**, **ES** (alias) -- **diagrams.aws.analytics.EMRCluster** -- **diagrams.aws.analytics.EMRHdfsCluster** -- **diagrams.aws.analytics.EMR** -- **diagrams.aws.analytics.GlueCrawlers** -- **diagrams.aws.analytics.GlueDataCatalog** -- **diagrams.aws.analytics.Glue** -- **diagrams.aws.analytics.KinesisDataAnalytics** -- **diagrams.aws.analytics.KinesisDataFirehose** -- **diagrams.aws.analytics.KinesisDataStreams** -- **diagrams.aws.analytics.KinesisVideoStreams** -- **diagrams.aws.analytics.Kinesis** -- **diagrams.aws.analytics.LakeFormation** -- **diagrams.aws.analytics.ManagedStreamingForKafka** -- **diagrams.aws.analytics.Quicksight** -- **diagrams.aws.analytics.RedshiftDenseComputeNode** -- **diagrams.aws.analytics.RedshiftDenseStorageNode** -- **diagrams.aws.analytics.Redshift** - -## aws.compute - -- **diagrams.aws.compute.ApplicationAutoScaling**, **AutoScaling** (alias) -- **diagrams.aws.compute.Batch** -- **diagrams.aws.compute.Compute** -- **diagrams.aws.compute.EC2ContainerRegistry**, **ECR** (alias) -- **diagrams.aws.compute.EC2** -- **diagrams.aws.compute.ElasticBeanstalk**, **EB** (alias) -- **diagrams.aws.compute.ElasticContainerService**, **ECS** (alias) -- **diagrams.aws.compute.ElasticKubernetesService**, **EKS** (alias) -- **diagrams.aws.compute.Fargate** -- **diagrams.aws.compute.Lambda** -- **diagrams.aws.compute.Lightsail** -- **diagrams.aws.compute.Outposts** -- **diagrams.aws.compute.ServerlessApplicationRepository**, **SAR** (alias) -- **diagrams.aws.compute.ThinkboxDeadline** -- **diagrams.aws.compute.ThinkboxDraft** -- **diagrams.aws.compute.ThinkboxFrost** -- **diagrams.aws.compute.ThinkboxKrakatoa** -- **diagrams.aws.compute.ThinkboxSequoia** -- **diagrams.aws.compute.ThinkboxStoke** -- **diagrams.aws.compute.ThinkboxXmesh** -- **diagrams.aws.compute.VmwareCloudOnAWS** - ## aws.database - **diagrams.aws.database.Aurora** @@ -70,29 +20,27 @@ Node classes list of aws provider. - **diagrams.aws.database.Redshift** - **diagrams.aws.database.Timestream** -## aws.devtools - -- **diagrams.aws.devtools.CloudDevelopmentKit** -- **diagrams.aws.devtools.Cloud9** -- **diagrams.aws.devtools.Codebuild** -- **diagrams.aws.devtools.Codecommit** -- **diagrams.aws.devtools.Codedeploy** -- **diagrams.aws.devtools.Codepipeline** -- **diagrams.aws.devtools.Codestar** -- **diagrams.aws.devtools.CommandLineInterface**, **CLI** (alias) -- **diagrams.aws.devtools.DeveloperTools**, **DevTools** (alias) -- **diagrams.aws.devtools.ToolsAndSdks** -- **diagrams.aws.devtools.XRay** - -## aws.engagement - -- **diagrams.aws.engagement.Connect** -- **diagrams.aws.engagement.Pinpoint** -- **diagrams.aws.engagement.SimpleEmailServiceSes**, **SES** (alias) - -## aws.game +## aws.security -- **diagrams.aws.game.Gamelift** +- **diagrams.aws.security.Artifact** +- **diagrams.aws.security.CertificateManager**, **ACM** (alias) +- **diagrams.aws.security.CloudDirectory** +- **diagrams.aws.security.Cloudhsm**, **CloudHSM** (alias) +- **diagrams.aws.security.Cognito** +- **diagrams.aws.security.DirectoryService**, **DS** (alias) +- **diagrams.aws.security.FirewallManager**, **FMS** (alias) +- **diagrams.aws.security.Guardduty** +- **diagrams.aws.security.IdentityAndAccessManagementIam**, **IAM** (alias) +- **diagrams.aws.security.Inspector** +- **diagrams.aws.security.KeyManagementService**, **KMS** (alias) +- **diagrams.aws.security.Macie** +- **diagrams.aws.security.ResourceAccessManager**, **RAM** (alias) +- **diagrams.aws.security.SecretsManager** +- **diagrams.aws.security.SecurityHub** +- **diagrams.aws.security.SecurityIdentityAndCompliance** +- **diagrams.aws.security.Shield** +- **diagrams.aws.security.SingleSignOn** +- **diagrams.aws.security.WAF** ## aws.general @@ -119,6 +67,82 @@ Node classes list of aws provider. - **diagrams.aws.integration.SimpleQueueServiceSqs**, **SQS** (alias) - **diagrams.aws.integration.StepFunctions**, **SF** (alias) +## aws.robotics + +- **diagrams.aws.robotics.RobomakerSimulator** +- **diagrams.aws.robotics.Robomaker** +- **diagrams.aws.robotics.Robotics** + +## aws.network + +- **diagrams.aws.network.APIGateway** +- **diagrams.aws.network.AppMesh** +- **diagrams.aws.network.ClientVpn** +- **diagrams.aws.network.CloudMap** +- **diagrams.aws.network.CloudFront**, **CF** (alias) +- **diagrams.aws.network.DirectConnect** +- **diagrams.aws.network.ElasticLoadBalancing**, **ELB** (alias) +- **diagrams.aws.network.Endpoint** +- **diagrams.aws.network.GlobalAccelerator**, **GAX** (alias) +- **diagrams.aws.network.InternetGateway** +- **diagrams.aws.network.Nacl** +- **diagrams.aws.network.NATGateway** +- **diagrams.aws.network.NetworkingAndContentDelivery** +- **diagrams.aws.network.PrivateSubnet** +- **diagrams.aws.network.Privatelink** +- **diagrams.aws.network.PublicSubnet** +- **diagrams.aws.network.Route53** +- **diagrams.aws.network.RouteTable** +- **diagrams.aws.network.SiteToSiteVpn** +- **diagrams.aws.network.TransitGateway** +- **diagrams.aws.network.VPCPeering** +- **diagrams.aws.network.VPCRouter** +- **diagrams.aws.network.VPC** + +## aws.management + +- **diagrams.aws.management.AutoScaling** +- **diagrams.aws.management.Cloudformation** +- **diagrams.aws.management.Cloudtrail** +- **diagrams.aws.management.Cloudwatch** +- **diagrams.aws.management.Codeguru** +- **diagrams.aws.management.CommandLineInterface** +- **diagrams.aws.management.Config** +- **diagrams.aws.management.ControlTower** +- **diagrams.aws.management.LicenseManager** +- **diagrams.aws.management.ManagedServices** +- **diagrams.aws.management.ManagementConsole** +- **diagrams.aws.management.Opsworks** +- **diagrams.aws.management.Organizations** +- **diagrams.aws.management.ServiceCatalog** +- **diagrams.aws.management.SystemsManagerParameterStore**, **ParameterStore** (alias) +- **diagrams.aws.management.SystemsManager**, **SSM** (alias) +- **diagrams.aws.management.TrustedAdvisor** +- **diagrams.aws.management.WellArchitectedTool** + +## aws.game + +- **diagrams.aws.game.Gamelift** + +## aws.storage + +- **diagrams.aws.storage.Backup** +- **diagrams.aws.storage.CloudendureDisasterRecovery**, **CDR** (alias) +- **diagrams.aws.storage.EFSInfrequentaccessPrimaryBg** +- **diagrams.aws.storage.EFSStandardPrimaryBg** +- **diagrams.aws.storage.ElasticBlockStoreEBS**, **EBS** (alias) +- **diagrams.aws.storage.ElasticFileSystemEFS**, **EFS** (alias) +- **diagrams.aws.storage.FsxForLustre** +- **diagrams.aws.storage.FsxForWindowsFileServer** +- **diagrams.aws.storage.Fsx**, **FSx** (alias) +- **diagrams.aws.storage.S3Glacier** +- **diagrams.aws.storage.SimpleStorageServiceS3**, **S3** (alias) +- **diagrams.aws.storage.SnowballEdge** +- **diagrams.aws.storage.Snowball** +- **diagrams.aws.storage.Snowmobile** +- **diagrams.aws.storage.StorageGateway** +- **diagrams.aws.storage.Storage** + ## aws.iot - **diagrams.aws.iot.Freertos**, **FreeRTOS** (alias) @@ -144,54 +168,49 @@ Node classes list of aws provider. - **diagrams.aws.iot.IotThingsGraph** - **diagrams.aws.iot.IotTopic** -## aws.management +## aws.engagement -- **diagrams.aws.management.AutoScaling** -- **diagrams.aws.management.Cloudformation** -- **diagrams.aws.management.Cloudtrail** -- **diagrams.aws.management.Cloudwatch** -- **diagrams.aws.management.Codeguru** -- **diagrams.aws.management.CommandLineInterface** -- **diagrams.aws.management.Config** -- **diagrams.aws.management.ControlTower** -- **diagrams.aws.management.LicenseManager** -- **diagrams.aws.management.ManagedServices** -- **diagrams.aws.management.ManagementConsole** -- **diagrams.aws.management.Opsworks** -- **diagrams.aws.management.Organizations** -- **diagrams.aws.management.ServiceCatalog** -- **diagrams.aws.management.SystemsManagerParameterStore**, **ParameterStore** (alias) -- **diagrams.aws.management.SystemsManager**, **SSM** (alias) -- **diagrams.aws.management.TrustedAdvisor** -- **diagrams.aws.management.WellArchitectedTool** +- **diagrams.aws.engagement.Connect** +- **diagrams.aws.engagement.Pinpoint** +- **diagrams.aws.engagement.SimpleEmailServiceSes**, **SES** (alias) -## aws.media +## aws.compute -- **diagrams.aws.media.ElasticTranscoder** -- **diagrams.aws.media.ElementalConductor** -- **diagrams.aws.media.ElementalDelta** -- **diagrams.aws.media.ElementalLive** -- **diagrams.aws.media.ElementalMediaconnect** -- **diagrams.aws.media.ElementalMediaconvert** -- **diagrams.aws.media.ElementalMedialive** -- **diagrams.aws.media.ElementalMediapackage** -- **diagrams.aws.media.ElementalMediastore** -- **diagrams.aws.media.ElementalMediatailor** -- **diagrams.aws.media.ElementalServer** +- **diagrams.aws.compute.ApplicationAutoScaling**, **AutoScaling** (alias) +- **diagrams.aws.compute.Batch** +- **diagrams.aws.compute.Compute** +- **diagrams.aws.compute.EC2ContainerRegistry**, **ECR** (alias) +- **diagrams.aws.compute.EC2** +- **diagrams.aws.compute.ElasticBeanstalk**, **EB** (alias) +- **diagrams.aws.compute.ElasticContainerService**, **ECS** (alias) +- **diagrams.aws.compute.ElasticKubernetesService**, **EKS** (alias) +- **diagrams.aws.compute.Fargate** +- **diagrams.aws.compute.Lambda** +- **diagrams.aws.compute.Lightsail** +- **diagrams.aws.compute.Outposts** +- **diagrams.aws.compute.ServerlessApplicationRepository**, **SAR** (alias) +- **diagrams.aws.compute.ThinkboxDeadline** +- **diagrams.aws.compute.ThinkboxDraft** +- **diagrams.aws.compute.ThinkboxFrost** +- **diagrams.aws.compute.ThinkboxKrakatoa** +- **diagrams.aws.compute.ThinkboxSequoia** +- **diagrams.aws.compute.ThinkboxStoke** +- **diagrams.aws.compute.ThinkboxXmesh** +- **diagrams.aws.compute.VmwareCloudOnAWS** -## aws.migration +## aws.devtools -- **diagrams.aws.migration.ApplicationDiscoveryService**, **ADS** (alias) -- **diagrams.aws.migration.CloudendureMigration**, **CEM** (alias) -- **diagrams.aws.migration.DatabaseMigrationService**, **DMS** (alias) -- **diagrams.aws.migration.Datasync** -- **diagrams.aws.migration.MigrationAndTransfer**, **MAT** (alias) -- **diagrams.aws.migration.MigrationHub** -- **diagrams.aws.migration.ServerMigrationService**, **SMS** (alias) -- **diagrams.aws.migration.SnowballEdge** -- **diagrams.aws.migration.Snowball** -- **diagrams.aws.migration.Snowmobile** -- **diagrams.aws.migration.TransferForSftp** +- **diagrams.aws.devtools.CloudDevelopmentKit** +- **diagrams.aws.devtools.Cloud9** +- **diagrams.aws.devtools.Codebuild** +- **diagrams.aws.devtools.Codecommit** +- **diagrams.aws.devtools.Codedeploy** +- **diagrams.aws.devtools.Codepipeline** +- **diagrams.aws.devtools.Codestar** +- **diagrams.aws.devtools.CommandLineInterface**, **CLI** (alias) +- **diagrams.aws.devtools.DeveloperTools**, **DevTools** (alias) +- **diagrams.aws.devtools.ToolsAndSdks** +- **diagrams.aws.devtools.XRay** ## aws.ml @@ -215,75 +234,56 @@ Node classes list of aws provider. - **diagrams.aws.ml.Transcribe** - **diagrams.aws.ml.Translate** -## aws.network - -- **diagrams.aws.network.APIGateway** -- **diagrams.aws.network.AppMesh** -- **diagrams.aws.network.ClientVpn** -- **diagrams.aws.network.CloudMap** -- **diagrams.aws.network.CloudFront**, **CF** (alias) -- **diagrams.aws.network.DirectConnect** -- **diagrams.aws.network.ElasticLoadBalancing**, **ELB** (alias) -- **diagrams.aws.network.Endpoint** -- **diagrams.aws.network.GlobalAccelerator**, **GAX** (alias) -- **diagrams.aws.network.InternetGateway** -- **diagrams.aws.network.Nacl** -- **diagrams.aws.network.NATGateway** -- **diagrams.aws.network.NetworkingAndContentDelivery** -- **diagrams.aws.network.PrivateSubnet** -- **diagrams.aws.network.Privatelink** -- **diagrams.aws.network.PublicSubnet** -- **diagrams.aws.network.Route53** -- **diagrams.aws.network.RouteTable** -- **diagrams.aws.network.SiteToSiteVpn** -- **diagrams.aws.network.TransitGateway** -- **diagrams.aws.network.VPCPeering** -- **diagrams.aws.network.VPCRouter** -- **diagrams.aws.network.VPC** - -## aws.robotics +## aws.migration -- **diagrams.aws.robotics.RobomakerSimulator** -- **diagrams.aws.robotics.Robomaker** -- **diagrams.aws.robotics.Robotics** +- **diagrams.aws.migration.ApplicationDiscoveryService**, **ADS** (alias) +- **diagrams.aws.migration.CloudendureMigration**, **CEM** (alias) +- **diagrams.aws.migration.DatabaseMigrationService**, **DMS** (alias) +- **diagrams.aws.migration.Datasync** +- **diagrams.aws.migration.MigrationAndTransfer**, **MAT** (alias) +- **diagrams.aws.migration.MigrationHub** +- **diagrams.aws.migration.ServerMigrationService**, **SMS** (alias) +- **diagrams.aws.migration.SnowballEdge** +- **diagrams.aws.migration.Snowball** +- **diagrams.aws.migration.Snowmobile** +- **diagrams.aws.migration.TransferForSftp** -## aws.security +## aws.analytics -- **diagrams.aws.security.Artifact** -- **diagrams.aws.security.CertificateManager**, **ACM** (alias) -- **diagrams.aws.security.CloudDirectory** -- **diagrams.aws.security.Cloudhsm**, **CloudHSM** (alias) -- **diagrams.aws.security.Cognito** -- **diagrams.aws.security.DirectoryService**, **DS** (alias) -- **diagrams.aws.security.FirewallManager**, **FMS** (alias) -- **diagrams.aws.security.Guardduty** -- **diagrams.aws.security.IdentityAndAccessManagementIam**, **IAM** (alias) -- **diagrams.aws.security.Inspector** -- **diagrams.aws.security.KeyManagementService**, **KMS** (alias) -- **diagrams.aws.security.Macie** -- **diagrams.aws.security.ResourceAccessManager**, **RAM** (alias) -- **diagrams.aws.security.SecretsManager** -- **diagrams.aws.security.SecurityHub** -- **diagrams.aws.security.SecurityIdentityAndCompliance** -- **diagrams.aws.security.Shield** -- **diagrams.aws.security.SingleSignOn** -- **diagrams.aws.security.WAF** +- **diagrams.aws.analytics.Analytics** +- **diagrams.aws.analytics.Athena** +- **diagrams.aws.analytics.CloudsearchSearchDocuments** +- **diagrams.aws.analytics.Cloudsearch** +- **diagrams.aws.analytics.DataPipeline** +- **diagrams.aws.analytics.ElasticsearchService**, **ES** (alias) +- **diagrams.aws.analytics.EMRCluster** +- **diagrams.aws.analytics.EMRHdfsCluster** +- **diagrams.aws.analytics.EMR** +- **diagrams.aws.analytics.GlueCrawlers** +- **diagrams.aws.analytics.GlueDataCatalog** +- **diagrams.aws.analytics.Glue** +- **diagrams.aws.analytics.KinesisDataAnalytics** +- **diagrams.aws.analytics.KinesisDataFirehose** +- **diagrams.aws.analytics.KinesisDataStreams** +- **diagrams.aws.analytics.KinesisVideoStreams** +- **diagrams.aws.analytics.Kinesis** +- **diagrams.aws.analytics.LakeFormation** +- **diagrams.aws.analytics.ManagedStreamingForKafka** +- **diagrams.aws.analytics.Quicksight** +- **diagrams.aws.analytics.RedshiftDenseComputeNode** +- **diagrams.aws.analytics.RedshiftDenseStorageNode** +- **diagrams.aws.analytics.Redshift** -## aws.storage +## aws.media -- **diagrams.aws.storage.Backup** -- **diagrams.aws.storage.CloudendureDisasterRecovery**, **CDR** (alias) -- **diagrams.aws.storage.EFSInfrequentaccessPrimaryBg** -- **diagrams.aws.storage.EFSStandardPrimaryBg** -- **diagrams.aws.storage.ElasticBlockStoreEBS**, **EBS** (alias) -- **diagrams.aws.storage.ElasticFileSystemEFS**, **EFS** (alias) -- **diagrams.aws.storage.FsxForLustre** -- **diagrams.aws.storage.FsxForWindowsFileServer** -- **diagrams.aws.storage.Fsx**, **FSx** (alias) -- **diagrams.aws.storage.S3Glacier** -- **diagrams.aws.storage.SimpleStorageServiceS3**, **S3** (alias) -- **diagrams.aws.storage.SnowballEdge** -- **diagrams.aws.storage.Snowball** -- **diagrams.aws.storage.Snowmobile** -- **diagrams.aws.storage.StorageGateway** -- **diagrams.aws.storage.Storage** +- **diagrams.aws.media.ElasticTranscoder** +- **diagrams.aws.media.ElementalConductor** +- **diagrams.aws.media.ElementalDelta** +- **diagrams.aws.media.ElementalLive** +- **diagrams.aws.media.ElementalMediaconnect** +- **diagrams.aws.media.ElementalMediaconvert** +- **diagrams.aws.media.ElementalMedialive** +- **diagrams.aws.media.ElementalMediapackage** +- **diagrams.aws.media.ElementalMediastore** +- **diagrams.aws.media.ElementalMediatailor** +- **diagrams.aws.media.ElementalServer** diff --git a/docs/nodes/gcp.md b/docs/nodes/gcp.md index 91032ce3..20c56453 100644 --- a/docs/nodes/gcp.md +++ b/docs/nodes/gcp.md @@ -5,18 +5,53 @@ title: GCP Node classes list of gcp provider. -## gcp.analytics +## gcp.database -- **diagrams.gcp.analytics.Bigquery**, **BigQuery** (alias) -- **diagrams.gcp.analytics.Composer** -- **diagrams.gcp.analytics.DataCatalog** -- **diagrams.gcp.analytics.DataFusion** -- **diagrams.gcp.analytics.Dataflow** -- **diagrams.gcp.analytics.Datalab** -- **diagrams.gcp.analytics.Dataprep** -- **diagrams.gcp.analytics.Dataproc** -- **diagrams.gcp.analytics.Genomics** -- **diagrams.gcp.analytics.Pubsub**, **PubSub** (alias) +- **diagrams.gcp.database.Bigtable**, **BigTable** (alias) +- **diagrams.gcp.database.Datastore** +- **diagrams.gcp.database.Firestore** +- **diagrams.gcp.database.Memorystore** +- **diagrams.gcp.database.Spanner** +- **diagrams.gcp.database.SQL** + +## gcp.security + +- **diagrams.gcp.security.Iam** +- **diagrams.gcp.security.IAP** +- **diagrams.gcp.security.KeyManagementService**, **KMS** (alias) +- **diagrams.gcp.security.ResourceManager** +- **diagrams.gcp.security.SecurityCommandCenter**, **SCC** (alias) +- **diagrams.gcp.security.SecurityScanner** + +## gcp.network + +- **diagrams.gcp.network.Armor** +- **diagrams.gcp.network.CDN** +- **diagrams.gcp.network.DedicatedInterconnect** +- **diagrams.gcp.network.DNS** +- **diagrams.gcp.network.ExternalIpAddresses** +- **diagrams.gcp.network.FirewallRules** +- **diagrams.gcp.network.LoadBalancing** +- **diagrams.gcp.network.NAT** +- **diagrams.gcp.network.Network** +- **diagrams.gcp.network.PartnerInterconnect** +- **diagrams.gcp.network.PremiumNetworkTier** +- **diagrams.gcp.network.Router** +- **diagrams.gcp.network.Routes** +- **diagrams.gcp.network.StandardNetworkTier** +- **diagrams.gcp.network.TrafficDirector** +- **diagrams.gcp.network.VirtualPrivateCloud**, **VPC** (alias) +- **diagrams.gcp.network.VPN** + +## gcp.storage + +- **diagrams.gcp.storage.Filestore** +- **diagrams.gcp.storage.PersistentDisk** +- **diagrams.gcp.storage.Storage**, **GCS** (alias) + +## gcp.iot + +- **diagrams.gcp.iot.IotCore** ## gcp.compute @@ -29,15 +64,6 @@ Node classes list of gcp provider. - **diagrams.gcp.compute.KubernetesEngine**, **GKE** (alias) - **diagrams.gcp.compute.Run** -## gcp.database - -- **diagrams.gcp.database.Bigtable**, **BigTable** (alias) -- **diagrams.gcp.database.Datastore** -- **diagrams.gcp.database.Firestore** -- **diagrams.gcp.database.Memorystore** -- **diagrams.gcp.database.Spanner** -- **diagrams.gcp.database.SQL** - ## gcp.devtools - **diagrams.gcp.devtools.Build** @@ -56,14 +82,6 @@ Node classes list of gcp provider. - **diagrams.gcp.devtools.ToolsForPowershell** - **diagrams.gcp.devtools.ToolsForVisualStudio** -## gcp.iot - -- **diagrams.gcp.iot.IotCore** - -## gcp.migration - -- **diagrams.gcp.migration.TransferAppliance** - ## gcp.ml - **diagrams.gcp.ml.AdvancedSolutionsLab** @@ -88,37 +106,19 @@ Node classes list of gcp provider. - **diagrams.gcp.ml.VideoIntelligenceAPI** - **diagrams.gcp.ml.VisionAPI** -## gcp.network - -- **diagrams.gcp.network.Armor** -- **diagrams.gcp.network.CDN** -- **diagrams.gcp.network.DedicatedInterconnect** -- **diagrams.gcp.network.DNS** -- **diagrams.gcp.network.ExternalIpAddresses** -- **diagrams.gcp.network.FirewallRules** -- **diagrams.gcp.network.LoadBalancing** -- **diagrams.gcp.network.NAT** -- **diagrams.gcp.network.Network** -- **diagrams.gcp.network.PartnerInterconnect** -- **diagrams.gcp.network.PremiumNetworkTier** -- **diagrams.gcp.network.Router** -- **diagrams.gcp.network.Routes** -- **diagrams.gcp.network.StandardNetworkTier** -- **diagrams.gcp.network.TrafficDirector** -- **diagrams.gcp.network.VirtualPrivateCloud**, **VPC** (alias) -- **diagrams.gcp.network.VPN** - -## gcp.security +## gcp.migration -- **diagrams.gcp.security.Iam** -- **diagrams.gcp.security.IAP** -- **diagrams.gcp.security.KeyManagementService**, **KMS** (alias) -- **diagrams.gcp.security.ResourceManager** -- **diagrams.gcp.security.SecurityCommandCenter**, **SCC** (alias) -- **diagrams.gcp.security.SecurityScanner** +- **diagrams.gcp.migration.TransferAppliance** -## gcp.storage +## gcp.analytics -- **diagrams.gcp.storage.Filestore** -- **diagrams.gcp.storage.PersistentDisk** -- **diagrams.gcp.storage.Storage**, **GCS** (alias) +- **diagrams.gcp.analytics.Bigquery**, **BigQuery** (alias) +- **diagrams.gcp.analytics.Composer** +- **diagrams.gcp.analytics.DataCatalog** +- **diagrams.gcp.analytics.DataFusion** +- **diagrams.gcp.analytics.Dataflow** +- **diagrams.gcp.analytics.Datalab** +- **diagrams.gcp.analytics.Dataprep** +- **diagrams.gcp.analytics.Dataproc** +- **diagrams.gcp.analytics.Genomics** +- **diagrams.gcp.analytics.Pubsub**, **PubSub** (alias) diff --git a/docs/nodes/k8s.md b/docs/nodes/k8s.md index d52584d0..b0050cbc 100644 --- a/docs/nodes/k8s.md +++ b/docs/nodes/k8s.md @@ -5,41 +5,31 @@ title: K8S Node classes list of k8s provider. -## k8s.clusterconfig +## k8s.rbac -- **diagrams.k8s.clusterconfig.HPA**, **HorizontalPodAutoscaler** (alias) -- **diagrams.k8s.clusterconfig.Limits**, **LimitRange** (alias) -- **diagrams.k8s.clusterconfig.Quota** +- **diagrams.k8s.rbac.CRole**, **ClusterRole** (alias) +- **diagrams.k8s.rbac.CRB**, **ClusterRoleBinding** (alias) +- **diagrams.k8s.rbac.Group** +- **diagrams.k8s.rbac.RB**, **RoleBinding** (alias) +- **diagrams.k8s.rbac.Role** +- **diagrams.k8s.rbac.SA**, **ServiceAccount** (alias) +- **diagrams.k8s.rbac.User** -## k8s.compute +## k8s.infra -- **diagrams.k8s.compute.Cronjob** -- **diagrams.k8s.compute.Deploy**, **Deployment** (alias) -- **diagrams.k8s.compute.DS**, **DaemonSet** (alias) -- **diagrams.k8s.compute.Job** -- **diagrams.k8s.compute.Pod** -- **diagrams.k8s.compute.RS**, **ReplicaSet** (alias) -- **diagrams.k8s.compute.STS**, **StatefulSet** (alias) +- **diagrams.k8s.infra.ETCD** +- **diagrams.k8s.infra.Master** +- **diagrams.k8s.infra.Node** -## k8s.controlplane +## k8s.podconfig -- **diagrams.k8s.controlplane.API**, **APIServer** (alias) -- **diagrams.k8s.controlplane.CCM** -- **diagrams.k8s.controlplane.CM**, **ControllerManager** (alias) -- **diagrams.k8s.controlplane.KProxy**, **KubeProxy** (alias) -- **diagrams.k8s.controlplane.Kubelet** -- **diagrams.k8s.controlplane.Sched**, **Scheduler** (alias) +- **diagrams.k8s.podconfig.CM**, **ConfigMap** (alias) +- **diagrams.k8s.podconfig.Secret** ## k8s.group - **diagrams.k8s.group.NS**, **Namespace** (alias) -## k8s.infra - -- **diagrams.k8s.infra.ETCD** -- **diagrams.k8s.infra.Master** -- **diagrams.k8s.infra.Node** - ## k8s.network - **diagrams.k8s.network.Ep**, **Endpoint** (alias) @@ -52,24 +42,34 @@ Node classes list of k8s provider. - **diagrams.k8s.others.CRD** - **diagrams.k8s.others.PSP** -## k8s.podconfig - -- **diagrams.k8s.podconfig.CM**, **ConfigMap** (alias) -- **diagrams.k8s.podconfig.Secret** - -## k8s.rbac - -- **diagrams.k8s.rbac.CRole**, **ClusterRole** (alias) -- **diagrams.k8s.rbac.CRB**, **ClusterRoleBinding** (alias) -- **diagrams.k8s.rbac.Group** -- **diagrams.k8s.rbac.RB**, **RoleBinding** (alias) -- **diagrams.k8s.rbac.Role** -- **diagrams.k8s.rbac.SA**, **ServiceAccount** (alias) -- **diagrams.k8s.rbac.User** - ## k8s.storage - **diagrams.k8s.storage.PV**, **PersistnetVolume** (alias) - **diagrams.k8s.storage.PVC**, **PersistentVolumeClaim** (alias) - **diagrams.k8s.storage.SC**, **StorageClass** (alias) - **diagrams.k8s.storage.Vol**, **Volume** (alias) + +## k8s.clusterconfig + +- **diagrams.k8s.clusterconfig.HPA**, **HorizontalPodAutoscaler** (alias) +- **diagrams.k8s.clusterconfig.Limits**, **LimitRange** (alias) +- **diagrams.k8s.clusterconfig.Quota** + +## k8s.controlplane + +- **diagrams.k8s.controlplane.API**, **APIServer** (alias) +- **diagrams.k8s.controlplane.CCM** +- **diagrams.k8s.controlplane.CM**, **ControllerManager** (alias) +- **diagrams.k8s.controlplane.KProxy**, **KubeProxy** (alias) +- **diagrams.k8s.controlplane.Kubelet** +- **diagrams.k8s.controlplane.Sched**, **Scheduler** (alias) + +## k8s.compute + +- **diagrams.k8s.compute.Cronjob** +- **diagrams.k8s.compute.Deploy**, **Deployment** (alias) +- **diagrams.k8s.compute.DS**, **DaemonSet** (alias) +- **diagrams.k8s.compute.Job** +- **diagrams.k8s.compute.Pod** +- **diagrams.k8s.compute.RS**, **ReplicaSet** (alias) +- **diagrams.k8s.compute.STS**, **StatefulSet** (alias) diff --git a/docs/nodes/oci.md b/docs/nodes/oci.md index 568fe9ab..8f30f99f 100644 --- a/docs/nodes/oci.md +++ b/docs/nodes/oci.md @@ -5,14 +5,17 @@ title: OCI Node classes list of oci provider. -## oci.compute +## oci.database -- **diagrams.oci.compute.BmGrey**, **BareMetalGrey** (alias) -- **diagrams.oci.compute.Bm**, **BareMetal** (alias) -- **diagrams.oci.compute.ContainerGrey** -- **diagrams.oci.compute.Container** -- **diagrams.oci.compute.VmGrey**, **VirtualMachineGrey** (alias) -- **diagrams.oci.compute.Vm**, **VirtualMachine** (alias) +- **diagrams.oci.database.DatabaseserviceGrey**, **DBServiceGrey** (alias) +- **diagrams.oci.database.Databaseservice**, **DBService** (alias) + +## oci.devops + +- **diagrams.oci.devops.ApiserviceGrey** +- **diagrams.oci.devops.Apiservice** +- **diagrams.oci.devops.ResourcemgmtGrey** +- **diagrams.oci.devops.Resourcemgmt** ## oci.connectivity @@ -27,71 +30,6 @@ Node classes list of oci provider. - **diagrams.oci.connectivity.VpnGrey** - **diagrams.oci.connectivity.Vpn** -## oci.database - -- **diagrams.oci.database.DatabaseserviceGrey**, **DBServiceGrey** (alias) -- **diagrams.oci.database.Databaseservice**, **DBService** (alias) - -## oci.devops - -- **diagrams.oci.devops.ApiserviceGrey** -- **diagrams.oci.devops.Apiservice** -- **diagrams.oci.devops.ResourcemgmtGrey** -- **diagrams.oci.devops.Resourcemgmt** - -## oci.edge - -- **diagrams.oci.edge.CdnGrey** -- **diagrams.oci.edge.Cdn** -- **diagrams.oci.edge.DnsGrey** -- **diagrams.oci.edge.Dns** -- **diagrams.oci.edge.EmaildeliveryGrey** -- **diagrams.oci.edge.Emaildelivery** -- **diagrams.oci.edge.WafGrey** -- **diagrams.oci.edge.Waf** - -## oci.monitoring - -- **diagrams.oci.monitoring.AlarmGrey** -- **diagrams.oci.monitoring.Alarm** -- **diagrams.oci.monitoring.EventGrey** -- **diagrams.oci.monitoring.Event** -- **diagrams.oci.monitoring.HealthcheckGrey** -- **diagrams.oci.monitoring.Healthcheck** -- **diagrams.oci.monitoring.LoggingGrey** -- **diagrams.oci.monitoring.Logging** -- **diagrams.oci.monitoring.NotificationsGrey** -- **diagrams.oci.monitoring.Notifications** -- **diagrams.oci.monitoring.QueuingGrey** -- **diagrams.oci.monitoring.Queuing** -- **diagrams.oci.monitoring.SearchGrey** -- **diagrams.oci.monitoring.Search** -- **diagrams.oci.monitoring.StreamingGrey** -- **diagrams.oci.monitoring.Streaming** -- **diagrams.oci.monitoring.TelemetryGrey** -- **diagrams.oci.monitoring.Telemetry** -- **diagrams.oci.monitoring.WorkflowGrey** -- **diagrams.oci.monitoring.Workflow** - -## oci.network - -- **diagrams.oci.network.DrgGrey** -- **diagrams.oci.network.Drg** -- **diagrams.oci.network.FirewallGrey** -- **diagrams.oci.network.Firewall** -- **diagrams.oci.network.InternetgatewayGrey** -- **diagrams.oci.network.Internetgateway** -- **diagrams.oci.network.LoadbalanceGrey** -- **diagrams.oci.network.Loadbalance** -- **diagrams.oci.network.RoutetableGrey** -- **diagrams.oci.network.Routetable** -- **diagrams.oci.network.SecuritylistsGrey** -- **diagrams.oci.network.Securitylists** -- **diagrams.oci.network.ServiceGatewayGrey** -- **diagrams.oci.network.ServiceGateway** -- **diagrams.oci.network.VcloudnetworkGrey** -- **diagrams.oci.network.Vcloudnetwork** - ## oci.security - **diagrams.oci.security.AuditGrey** @@ -115,6 +53,36 @@ Node classes list of oci provider. - **diagrams.oci.security.TaggingGrey** - **diagrams.oci.security.Tagging** +## oci.network + +- **diagrams.oci.network.DrgGrey** +- **diagrams.oci.network.Drg** +- **diagrams.oci.network.FirewallGrey** +- **diagrams.oci.network.Firewall** +- **diagrams.oci.network.InternetgatewayGrey** +- **diagrams.oci.network.Internetgateway** +- **diagrams.oci.network.LoadbalanceGrey** +- **diagrams.oci.network.Loadbalance** +- **diagrams.oci.network.RoutetableGrey** +- **diagrams.oci.network.Routetable** +- **diagrams.oci.network.SecuritylistsGrey** +- **diagrams.oci.network.Securitylists** +- **diagrams.oci.network.ServiceGatewayGrey** +- **diagrams.oci.network.ServiceGateway** +- **diagrams.oci.network.VcloudnetworkGrey** +- **diagrams.oci.network.Vcloudnetwork** + +## oci.edge + +- **diagrams.oci.edge.CdnGrey** +- **diagrams.oci.edge.Cdn** +- **diagrams.oci.edge.DnsGrey** +- **diagrams.oci.edge.Dns** +- **diagrams.oci.edge.EmaildeliveryGrey** +- **diagrams.oci.edge.Emaildelivery** +- **diagrams.oci.edge.WafGrey** +- **diagrams.oci.edge.Waf** + ## oci.storage - **diagrams.oci.storage.BackuprestoreGrey** @@ -131,3 +99,35 @@ Node classes list of oci provider. - **diagrams.oci.storage.Objectstorage** - **diagrams.oci.storage.StoragegatewayGrey** - **diagrams.oci.storage.Storagegateway** + +## oci.compute + +- **diagrams.oci.compute.BmGrey**, **BareMetalGrey** (alias) +- **diagrams.oci.compute.Bm**, **BareMetal** (alias) +- **diagrams.oci.compute.ContainerGrey** +- **diagrams.oci.compute.Container** +- **diagrams.oci.compute.VmGrey**, **VirtualMachineGrey** (alias) +- **diagrams.oci.compute.Vm**, **VirtualMachine** (alias) + +## oci.monitoring + +- **diagrams.oci.monitoring.AlarmGrey** +- **diagrams.oci.monitoring.Alarm** +- **diagrams.oci.monitoring.EventGrey** +- **diagrams.oci.monitoring.Event** +- **diagrams.oci.monitoring.HealthcheckGrey** +- **diagrams.oci.monitoring.Healthcheck** +- **diagrams.oci.monitoring.LoggingGrey** +- **diagrams.oci.monitoring.Logging** +- **diagrams.oci.monitoring.NotificationsGrey** +- **diagrams.oci.monitoring.Notifications** +- **diagrams.oci.monitoring.QueuingGrey** +- **diagrams.oci.monitoring.Queuing** +- **diagrams.oci.monitoring.SearchGrey** +- **diagrams.oci.monitoring.Search** +- **diagrams.oci.monitoring.StreamingGrey** +- **diagrams.oci.monitoring.Streaming** +- **diagrams.oci.monitoring.TelemetryGrey** +- **diagrams.oci.monitoring.Telemetry** +- **diagrams.oci.monitoring.WorkflowGrey** +- **diagrams.oci.monitoring.Workflow** diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index aedecdf3..1100283b 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -66,48 +66,27 @@ Node classes list of onprem provider. - **diagrams.onprem.database.Postgresql**, **PostgreSQL** (alias) - **diagrams.onprem.database.Scylla** -## onprem.etl - -- **diagrams.onprem.etl.Embulk** - -## onprem.gitops - -- **diagrams.onprem.gitops.Argocd**, **ArgoCD** (alias) - -## onprem.iac +## onprem.security -- **diagrams.onprem.iac.Ansible** -- **diagrams.onprem.iac.Awx** -- **diagrams.onprem.iac.Terraform** +- **diagrams.onprem.security.Trivy** +- **diagrams.onprem.security.Vault** -## onprem.inmemory +## onprem.ci -- **diagrams.onprem.inmemory.Aerospike** -- **diagrams.onprem.inmemory.Hazelcast** -- **diagrams.onprem.inmemory.Memcached** -- **diagrams.onprem.inmemory.Redis** +- **diagrams.onprem.ci.Circleci**, **CircleCI** (alias) +- **diagrams.onprem.ci.Gitlabci**, **GitlabCI** (alias) +- **diagrams.onprem.ci.Jenkins** +- **diagrams.onprem.ci.Teamcity**, **TC** (alias) +- **diagrams.onprem.ci.Travisci**, **TravisCI** (alias) -## onprem.logging +## onprem.etl -- **diagrams.onprem.logging.Fluentbit**, **FluentBit** (alias) -- **diagrams.onprem.logging.Fluentd** -- **diagrams.onprem.logging.Logstash**, **LogStash** (alias) -- **diagrams.onprem.logging.Loki** +- **diagrams.onprem.etl.Embulk** ## onprem.mlops - **diagrams.onprem.mlops.Polyaxon** -## onprem.monitoring - -- **diagrams.onprem.monitoring.Datadog** -- **diagrams.onprem.monitoring.Grafana** -- **diagrams.onprem.monitoring.Kibana** -- **diagrams.onprem.monitoring.Prometheus** -- **diagrams.onprem.monitoring.Sentry** -- **diagrams.onprem.monitoring.Splunk** -- **diagrams.onprem.monitoring.Thanos** - ## onprem.network - **diagrams.onprem.network.Apache** @@ -128,23 +107,33 @@ Node classes list of onprem provider. - **diagrams.onprem.network.Vyos**, **VyOS** (alias) - **diagrams.onprem.network.Zookeeper** -## onprem.queue +## onprem.inmemory -- **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias) -- **diagrams.onprem.queue.Celery** -- **diagrams.onprem.queue.Kafka** -- **diagrams.onprem.queue.Rabbitmq**, **RabbitMQ** (alias) -- **diagrams.onprem.queue.Zeromq**, **ZeroMQ** (alias) +- **diagrams.onprem.inmemory.Aerospike** +- **diagrams.onprem.inmemory.Hazelcast** +- **diagrams.onprem.inmemory.Memcached** +- **diagrams.onprem.inmemory.Redis** ## onprem.search - **diagrams.onprem.search.Elasticsearch** - **diagrams.onprem.search.Solr** -## onprem.security +## onprem.container -- **diagrams.onprem.security.Trivy** -- **diagrams.onprem.security.Vault** +- **diagrams.onprem.container.Docker** +- **diagrams.onprem.container.Rkt**, **RKT** (alias) + +## onprem.iac + +- **diagrams.onprem.iac.Ansible** +- **diagrams.onprem.iac.Awx** +- **diagrams.onprem.iac.Terraform** + +## onprem.compute + +- **diagrams.onprem.compute.Nomad** +- **diagrams.onprem.compute.Server** ## onprem.vcs @@ -158,3 +147,56 @@ Node classes list of onprem provider. - **diagrams.onprem.workflow.Digdag** - **diagrams.onprem.workflow.Kubeflow**, **KubeFlow** (alias) - **diagrams.onprem.workflow.Nifi**, **NiFi** (alias) + +## onprem.queue + +- **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias) +- **diagrams.onprem.queue.Celery** +- **diagrams.onprem.queue.Kafka** +- **diagrams.onprem.queue.Rabbitmq**, **RabbitMQ** (alias) +- **diagrams.onprem.queue.Zeromq**, **ZeroMQ** (alias) + +## onprem.cd + +- **diagrams.onprem.cd.Spinnaker** + +## onprem.gitops + +- **diagrams.onprem.gitops.Argocd**, **ArgoCD** (alias) +- **diagrams.onprem.gitops.Flagger** +- **diagrams.onprem.gitops.Flux** + +## onprem.monitoring + +- **diagrams.onprem.monitoring.Datadog** +- **diagrams.onprem.monitoring.Grafana** +- **diagrams.onprem.monitoring.Kibana** +- **diagrams.onprem.monitoring.Prometheus** +- **diagrams.onprem.monitoring.Sentry** +- **diagrams.onprem.monitoring.Splunk** +- **diagrams.onprem.monitoring.Thanos** + +## onprem.client + +- **diagrams.onprem.client.Client** +- **diagrams.onprem.client.User** +- **diagrams.onprem.client.Users** + +## onprem.logging + +- **diagrams.onprem.logging.Fluentbit**, **FluentBit** (alias) +- **diagrams.onprem.logging.Fluentd** +- **diagrams.onprem.logging.Logstash**, **LogStash** (alias) +- **diagrams.onprem.logging.Loki** + +## onprem.analytics + +- **diagrams.onprem.analytics.Beam** +- **diagrams.onprem.analytics.Flink** +- **diagrams.onprem.analytics.Hadoop** +- **diagrams.onprem.analytics.Hive** +- **diagrams.onprem.analytics.Metabase** +- **diagrams.onprem.analytics.Norikra** +- **diagrams.onprem.analytics.Spark** +- **diagrams.onprem.analytics.Storm** +- **diagrams.onprem.analytics.Tableau** diff --git a/resources/onprem/gitops/flagger.png b/resources/onprem/gitops/flagger.png new file mode 100644 index 0000000000000000000000000000000000000000..de8835dfe82e91b6617ff65da5017ad9bef805f7 GIT binary patch literal 27435 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

3scV#Nt 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 m)#$xte^z|AR)dY0YE^+>61&DCE|o?C95h6 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 FO@gd9V|MP=evUR-(J10cnh`}N81`%# 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 Date: Fri, 29 May 2020 08:38:17 +0100 Subject: [PATCH 02/10] Add Rust programming language (#179) --- diagrams/programming/language.py | 4 ++++ docs/nodes/programming.md | 1 + resources/programming/language/rust.png | Bin 0 -> 9211 bytes 3 files changed, 5 insertions(+) create mode 100644 resources/programming/language/rust.png diff --git a/diagrams/programming/language.py b/diagrams/programming/language.py index 60de2215..36c3d4c0 100644 --- a/diagrams/programming/language.py +++ b/diagrams/programming/language.py @@ -68,6 +68,10 @@ class Ruby(_Language): _icon = "ruby.png" +class Rust(_Language): + _icon = "rust.png" + + class Swift(_Language): _icon = "swift.png" diff --git a/docs/nodes/programming.md b/docs/nodes/programming.md index b2843ec4..60c8a0e3 100644 --- a/docs/nodes/programming.md +++ b/docs/nodes/programming.md @@ -36,5 +36,6 @@ Node classes list of programming provider. - **diagrams.programming.language.Python** - **diagrams.programming.language.R** - **diagrams.programming.language.Ruby** +- **diagrams.programming.language.Rust** - **diagrams.programming.language.Swift** - **diagrams.programming.language.Typescript**, **TypeScript** (alias) diff --git a/resources/programming/language/rust.png b/resources/programming/language/rust.png new file mode 100644 index 0000000000000000000000000000000000000000..a9f7fa152fa7b69f638d3b19b9ef4eb6dfef08c1 GIT binary patch literal 9211 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 literal 0 HcmV?d00001 From 1eed33692a5d7bbe02babd91f503d923335331aa Mon Sep 17 00:00:00 2001 From: gabriel-tessier Date: Sun, 31 May 2020 12:39:16 +0900 Subject: [PATCH 03/10] Add elastic stack (#134) (#174) * Add elastic stack (#134) * (#134) Fix Upper case --- autogen.sh | 2 +- config.py | 9 +++- diagrams/elastic/__init__.py | 12 +++++ diagrams/elastic/elasticsearch.py | 49 ++++++++++++++++++ diagrams/elastic/enterprisesearch.py | 27 ++++++++++ diagrams/elastic/observability.py | 31 +++++++++++ diagrams/elastic/orchestration.py | 19 +++++++ diagrams/elastic/security.py | 23 ++++++++ docs/nodes/elastic.md | 44 ++++++++++++++++ resources/elastic/cloud.png | Bin 0 -> 8131 bytes resources/elastic/elasticsearch/alerting.png | Bin 0 -> 12821 bytes .../elastic/elasticsearch/elasticsearch.png | Bin 0 -> 4707 bytes resources/elastic/elasticsearch/kibana.png | Bin 0 -> 5324 bytes resources/elastic/elasticsearch/logstash.png | Bin 0 -> 2523 bytes .../elasticsearch/machine-learning.png | Bin 0 -> 8100 bytes resources/elastic/elasticsearch/maps.png | Bin 0 -> 6666 bytes .../elastic/elasticsearch/monitoring.png | Bin 0 -> 10480 bytes .../elasticsearch/security-settings.png | Bin 0 -> 9224 bytes resources/elastic/elasticsearch/sql.png | Bin 0 -> 2337 bytes .../elastic/enterprisesearch/app-search.png | Bin 0 -> 7492 bytes .../enterprisesearch/enterprise-search.png | Bin 0 -> 7822 bytes .../elastic/enterprisesearch/site-search.png | Bin 0 -> 4438 bytes .../enterprisesearch/workplace-search.png | Bin 0 -> 6811 bytes resources/elastic/observability/apm.png | Bin 0 -> 1430 bytes resources/elastic/observability/logs.png | Bin 0 -> 5091 bytes resources/elastic/observability/metrics.png | Bin 0 -> 4689 bytes .../elastic/observability/observability.png | Bin 0 -> 1973 bytes resources/elastic/observability/uptime.png | Bin 0 -> 6646 bytes resources/elastic/orchestration/ece.png | Bin 0 -> 8963 bytes resources/elastic/orchestration/eck.png | Bin 0 -> 10381 bytes resources/elastic/security/endpoint.png | Bin 0 -> 5098 bytes resources/elastic/security/security.png | Bin 0 -> 3307 bytes resources/elastic/security/siem.png | Bin 0 -> 5302 bytes scripts/generate.py | 2 +- scripts/resource.py | 5 ++ 35 files changed, 220 insertions(+), 3 deletions(-) create mode 100644 diagrams/elastic/__init__.py create mode 100644 diagrams/elastic/elasticsearch.py create mode 100644 diagrams/elastic/enterprisesearch.py create mode 100644 diagrams/elastic/observability.py create mode 100644 diagrams/elastic/orchestration.py create mode 100644 diagrams/elastic/security.py create mode 100644 docs/nodes/elastic.md create mode 100644 resources/elastic/cloud.png create mode 100644 resources/elastic/elasticsearch/alerting.png create mode 100644 resources/elastic/elasticsearch/elasticsearch.png create mode 100644 resources/elastic/elasticsearch/kibana.png create mode 100644 resources/elastic/elasticsearch/logstash.png create mode 100644 resources/elastic/elasticsearch/machine-learning.png create mode 100644 resources/elastic/elasticsearch/maps.png create mode 100644 resources/elastic/elasticsearch/monitoring.png create mode 100644 resources/elastic/elasticsearch/security-settings.png create mode 100644 resources/elastic/elasticsearch/sql.png create mode 100644 resources/elastic/enterprisesearch/app-search.png create mode 100644 resources/elastic/enterprisesearch/enterprise-search.png create mode 100644 resources/elastic/enterprisesearch/site-search.png create mode 100644 resources/elastic/enterprisesearch/workplace-search.png create mode 100644 resources/elastic/observability/apm.png create mode 100644 resources/elastic/observability/logs.png create mode 100644 resources/elastic/observability/metrics.png create mode 100644 resources/elastic/observability/observability.png create mode 100644 resources/elastic/observability/uptime.png create mode 100644 resources/elastic/orchestration/ece.png create mode 100644 resources/elastic/orchestration/eck.png create mode 100644 resources/elastic/security/endpoint.png create mode 100644 resources/elastic/security/security.png create mode 100644 resources/elastic/security/siem.png diff --git a/autogen.sh b/autogen.sh index b5dc831d..d331cde5 100755 --- a/autogen.sh +++ b/autogen.sh @@ -4,7 +4,7 @@ set -e app_root_dir="diagrams" # NOTE: azure icon set is not latest version -providers=("onprem" "aws" "azure" "gcp" "firebase" "k8s" "alibabacloud" "oci" "programming" "saas") +providers=("onprem" "aws" "azure" "gcp" "firebase" "k8s" "alibabacloud" "oci" "programming" "saas" "elastic") if ! [ -x "$(command -v round)" ]; then echo 'round is not installed' diff --git a/config.py b/config.py index 275baaab..ab971c6d 100644 --- a/config.py +++ b/config.py @@ -11,7 +11,7 @@ DIR_APP_ROOT = "diagrams" DIR_RESOURCE = "resources" DIR_TEMPLATE = "templates" -PROVIDERS = ("base", "onprem", "aws", "azure", "gcp", "firebase", "k8s", "alibabacloud", "oci", "programming", "saas") +PROVIDERS = ("base", "onprem", "aws", "azure", "gcp", "firebase", "k8s", "alibabacloud", "oci", "programming", "saas", "elastic") ######################### # Resource Processing # @@ -35,6 +35,7 @@ FILE_PREFIXES = { "oci": ("OCI-",), "programming": (), "saas": (), + "elastic": (), } ######################### @@ -59,6 +60,7 @@ UPPER_WORDS = { "sa", "sc", "sts", "svc", ), "oci": ("oci",), + "elastic": ("apm", "siem", "ece", "eck"), } TITLE_WORDS = { @@ -356,4 +358,9 @@ ALIASES = { }, }, "saas": {}, + "elastic": { + "elasticsearch": { + "Logstash": "LogStash", + } + }, } diff --git a/diagrams/elastic/__init__.py b/diagrams/elastic/__init__.py new file mode 100644 index 00000000..786fa60e --- /dev/null +++ b/diagrams/elastic/__init__.py @@ -0,0 +1,12 @@ +""" +Elastic provides a set of general elastic services. +""" + +from diagrams import Node + + +class _Elastic(Node): + _provider = "elastic" + _icon_dir = "resources/elastic" + + fontcolor = "#ffffff" diff --git a/diagrams/elastic/elasticsearch.py b/diagrams/elastic/elasticsearch.py new file mode 100644 index 00000000..a903a42b --- /dev/null +++ b/diagrams/elastic/elasticsearch.py @@ -0,0 +1,49 @@ +# This module is automatically generated by autogen.sh. DO NOT EDIT. + +from . import _Elastic + + +class _Elasticsearch(_Elastic): + _type = "elasticsearch" + _icon_dir = "resources/elastic/elasticsearch" + + +class Alerting(_Elasticsearch): + _icon = "alerting.png" + + +class Elasticsearch(_Elasticsearch): + _icon = "elasticsearch.png" + + +class Kibana(_Elasticsearch): + _icon = "kibana.png" + + +class Logstash(_Elasticsearch): + _icon = "logstash.png" + + +class MachineLearning(_Elasticsearch): + _icon = "machine-learning.png" + + +class Maps(_Elasticsearch): + _icon = "maps.png" + + +class Monitoring(_Elasticsearch): + _icon = "monitoring.png" + + +class SecuritySettings(_Elasticsearch): + _icon = "security-settings.png" + + +class Sql(_Elasticsearch): + _icon = "sql.png" + + +# Aliases + +LogStash = Logstash diff --git a/diagrams/elastic/enterprisesearch.py b/diagrams/elastic/enterprisesearch.py new file mode 100644 index 00000000..d5e19459 --- /dev/null +++ b/diagrams/elastic/enterprisesearch.py @@ -0,0 +1,27 @@ +# This module is automatically generated by autogen.sh. DO NOT EDIT. + +from . import _Elastic + + +class _Enterprisesearch(_Elastic): + _type = "enterprisesearch" + _icon_dir = "resources/elastic/enterprisesearch" + + +class AppSearch(_Enterprisesearch): + _icon = "app-search.png" + + +class EnterpriseSearch(_Enterprisesearch): + _icon = "enterprise-search.png" + + +class SiteSearch(_Enterprisesearch): + _icon = "site-search.png" + + +class WorkplaceSearch(_Enterprisesearch): + _icon = "workplace-search.png" + + +# Aliases diff --git a/diagrams/elastic/observability.py b/diagrams/elastic/observability.py new file mode 100644 index 00000000..3001340d --- /dev/null +++ b/diagrams/elastic/observability.py @@ -0,0 +1,31 @@ +# This module is automatically generated by autogen.sh. DO NOT EDIT. + +from . import _Elastic + + +class _Observability(_Elastic): + _type = "observability" + _icon_dir = "resources/elastic/observability" + + +class APM(_Observability): + _icon = "apm.png" + + +class Logs(_Observability): + _icon = "logs.png" + + +class Metrics(_Observability): + _icon = "metrics.png" + + +class Observability(_Observability): + _icon = "observability.png" + + +class Uptime(_Observability): + _icon = "uptime.png" + + +# Aliases diff --git a/diagrams/elastic/orchestration.py b/diagrams/elastic/orchestration.py new file mode 100644 index 00000000..99084cc7 --- /dev/null +++ b/diagrams/elastic/orchestration.py @@ -0,0 +1,19 @@ +# This module is automatically generated by autogen.sh. DO NOT EDIT. + +from . import _Elastic + + +class _Orchestration(_Elastic): + _type = "orchestration" + _icon_dir = "resources/elastic/orchestration" + + +class ECE(_Orchestration): + _icon = "ece.png" + + +class ECK(_Orchestration): + _icon = "eck.png" + + +# Aliases diff --git a/diagrams/elastic/security.py b/diagrams/elastic/security.py new file mode 100644 index 00000000..34afe3e0 --- /dev/null +++ b/diagrams/elastic/security.py @@ -0,0 +1,23 @@ +# This module is automatically generated by autogen.sh. DO NOT EDIT. + +from . import _Elastic + + +class _Security(_Elastic): + _type = "security" + _icon_dir = "resources/elastic/security" + + +class Endpoint(_Security): + _icon = "endpoint.png" + + +class Security(_Security): + _icon = "security.png" + + +class SIEM(_Security): + _icon = "siem.png" + + +# Aliases diff --git a/docs/nodes/elastic.md b/docs/nodes/elastic.md new file mode 100644 index 00000000..ce5d3c7a --- /dev/null +++ b/docs/nodes/elastic.md @@ -0,0 +1,44 @@ +--- +id: elastic +title: Elastic +--- + +Node classes list of elastic provider. + +## elastic.elasticsearch + +- **diagrams.elastic.elasticsearch.Alerting** +- **diagrams.elastic.elasticsearch.Elasticsearch** +- **diagrams.elastic.elasticsearch.Kibana** +- **diagrams.elastic.elasticsearch.Logstash**, **LogStash** (alias) +- **diagrams.elastic.elasticsearch.MachineLearning** +- **diagrams.elastic.elasticsearch.Maps** +- **diagrams.elastic.elasticsearch.Monitoring** +- **diagrams.elastic.elasticsearch.SecuritySettings** +- **diagrams.elastic.elasticsearch.Sql** + +## elastic.enterprisesearch + +- **diagrams.elastic.enterprisesearch.AppSearch** +- **diagrams.elastic.enterprisesearch.EnterpriseSearch** +- **diagrams.elastic.enterprisesearch.SiteSearch** +- **diagrams.elastic.enterprisesearch.WorkplaceSearch** + +## elastic.observability + +- **diagrams.elastic.observability.APM** +- **diagrams.elastic.observability.Logs** +- **diagrams.elastic.observability.Metrics** +- **diagrams.elastic.observability.Observability** +- **diagrams.elastic.observability.Uptime** + +## elastic.orchestration + +- **diagrams.elastic.orchestration.ECE** +- **diagrams.elastic.orchestration.ECK** + +## elastic.security + +- **diagrams.elastic.security.Endpoint** +- **diagrams.elastic.security.Security** +- **diagrams.elastic.security.SIEM** diff --git a/resources/elastic/cloud.png b/resources/elastic/cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..92ee1c925b924e0542f7752c13294a0267d5c804 GIT binary patch literal 8131 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 literal 0 HcmV?d00001 diff --git a/resources/elastic/elasticsearch/alerting.png b/resources/elastic/elasticsearch/alerting.png new file mode 100644 index 0000000000000000000000000000000000000000..eb8c7c711f10a2f5b67dd0235d304fb8ec785d68 GIT binary patch literal 12821 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 KT(ykl`~L_1#17s7 literal 0 HcmV?d00001 diff --git a/resources/elastic/elasticsearch/elasticsearch.png b/resources/elastic/elasticsearch/elasticsearch.png new file mode 100644 index 0000000000000000000000000000000000000000..10188c30e5af2a8e0308063f8b72320865669a18 GIT binary patch literal 4707 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 MwG1ECYTCd49|+y6*Z=?k literal 0 HcmV?d00001 diff --git a/resources/elastic/elasticsearch/kibana.png b/resources/elastic/elasticsearch/kibana.png new file mode 100644 index 0000000000000000000000000000000000000000..b856e29b8a45d6914108f64abff162fcf6ffe55c GIT binary patch literal 5324 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 literal 0 HcmV?d00001 diff --git a/resources/elastic/elasticsearch/machine-learning.png b/resources/elastic/elasticsearch/machine-learning.png new file mode 100644 index 0000000000000000000000000000000000000000..d69926ce99fc84c00ac42bffc1e2289b921cee58 GIT binary patch literal 8100 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 literal 0 HcmV?d00001 diff --git a/resources/elastic/elasticsearch/monitoring.png b/resources/elastic/elasticsearch/monitoring.png new file mode 100644 index 0000000000000000000000000000000000000000..00c9665c12b1a04542862177bca9c2de2a3b1013 GIT binary patch literal 10480 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 Hunzk#`%Dww literal 0 HcmV?d00001 diff --git a/resources/elastic/elasticsearch/sql.png b/resources/elastic/elasticsearch/sql.png new file mode 100644 index 0000000000000000000000000000000000000000..ebb7fc3e9755a7b390005a6e7a6a6a6d4fa5569c GIT binary patch literal 2337 zcmbVNcTm&W7XG0iO^FeZqKGf-A{ZYmiUmUqYN8+lK9GRO5*8j!3@y@2U|k>vL|IWm zRxn5rL=c3H^q?fTL}?C&76J(+L_#PDEg@`}dE@wp<9qY&ojd27bMN`?DKqEXx@3QT zhl;KW0028|tdWiYASZ)zfYLUZa1VRtD-+wiY|kTsxy@atc5POsQ4X=bf|FS=HjmsH zqueN&Qt^h39ZGRrL0dsl^^HcxT>wz3utA=_95u*iV$$86^(gbKx>rNH+;ju~)!O2} z)0Sl9sKH4y`dvGz@Ml9IUa4kikhY>2wUDg%6l5OXU6b{IS~w(hNcq!7e_W2UX6QxU zb+x|$ne?0We(a8Q^&w_myJ8&0zc*)OAfi~jYAG1WvG5Z_c0JCC4VITVw7Ej+thG3& zd7^NJd7wJ$A}a1EWb&L&ewqdj;^m7J=58x~IZrsDX_0{f>VJ!PPU5WM?7GcGB%!kB2P>vu>0h*z(eUpvs}qhMz_C?bv?k3jETsTt&Vlq$jS_sJ9iB=3-i2PjV~b ztQS4kznJ;w`8Lf-d6Tkf<0A1CvvKrsmBCX*(->eDbNIC(1kSwWEFY2tUC~$`K7ntY zmtC5A)Bu~TJ2Mk}rc!N9QN!?HDHgvEb~r}3C4meVO@J_%V}Vb>X7ui}j1!t*vVd7z z`$DNkq~GXK=>W~G_2Wyr!+p=Sb+)#)N^MlF29Ar{$CwFRGn8O^zq3%{LNv zxEOe)gr>~GHQv>}{)LtCVuQ<7c``%4Gq6e$gA^Q(AO?FhDR1t7p3+d~1g`}lgui|C z!EgAvStLCx(zFTD;a@4*rh@1Dl z{Bx$^MWgZwGS6&7QpX57`l6fG2}@xAMTn|n`%a=kRvDk6@Z_x2y^C)Z_Nt9*m(|P# z{ldcfD9n+r(eJXOKPvN~IBNU>>WsbolR?pXXWxkV{qE+;bX@S|;kNfOWp6w9Hf_?W zc-LU$XpWyfdbmw!FAu!Fs0=6p`+-CN*z$ja?uzC-yn=z^LRMZYOkhjHtK4bP{3hvF zA5kXCmMayzIaA(y@a3D`L>|})Sp669)hm<0COjrFb8Ga4uF;}qla_hGv>4(lmw5L3 zB#9M$V#ZeP{9@H@1p0pr`|IR9tQ~1FrMyeBEb^Ok#5`oJEDPho z{#j1Avf5A6hkoC~FRAz{8Hsc^0ZYqs+$yj4NK|PhJy;UE)~tjEMt6QcX-@)0QV|d% ziM!6Z^X-a!@$d`yx<*+bO5H(F2{`NiTs|Z2 zyqJ!!?+{E8?mbqb+&bt`@P2}9_oF*y!P0ps(lG-cu^*VOy-*1$aTdii`JN<&%fxPD zw6i5;BTxhsO0H2EVYn-~O`o#P?14@V&WONfm28#KKAzmW>Ew<|Ln=+IRk`{gAbD|* zYyDbBSXlBj*48w8#IE?+VKY zFQYyccAY?wmWlBLE@I~D#&NP^A@!!|IpPpZcoLJb_pFaeo&cK0*mL_s$wjzRWC`Xt zuE3}gN{ov{CcNfVZ`_0~H#Ow1xlL$N#6uU}8i$o^32`dycP%{JQIMYW<4vhbc76Mr znVB(*MlanPG%@8CGc(L0AA#8CnsAj%a2qvnJynX7pPNxcz|u79F~t6Aytvp~Pt^*E zl+6NH1uF(D$8gO}Do>g)cj@0qy+FP&>#4cZtZtlwu{=A+F>UzJ& zfbEc?Qy<31b9v9%TG)LiH6_iGvCnj0tU1J2CzPvOLUhBP_HMt2jmMGs4*PXsDIRnS zgf_VO{Z=L^2j}r=wv+WK7SK1381L?hCLfA|L1vFGg#>`aPHm5x8p!I?q6*e@)4-=*a*faRVkslH=y1-71U%d8xN@l>;|wIGme5<^yrM9 zA7Ktfpa-mZZAWxm>n9g87xM_O`x+@f*oHncdIU0$*xrN=chal7)ZRbV!_jY88zDjc znj$SB@yu(0p-(&Fo};8(Rz*+m<%~$!tH0E)*2K*XUZ#0xdjACR%|7~U<_0pMESrlj z*qp!DuNJ@3&zdCDS&4pf Wwhjr$X6K~Srp5+kkE}T3`Rm^xnga#^ literal 0 HcmV?d00001 diff --git a/resources/elastic/enterprisesearch/app-search.png b/resources/elastic/enterprisesearch/app-search.png new file mode 100644 index 0000000000000000000000000000000000000000..a7217232d4e5176bbd2128282d014725375e3b8f GIT binary patch literal 7492 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 MDrzcJ$y-MJ4@|+@6#xJL literal 0 HcmV?d00001 diff --git a/resources/elastic/enterprisesearch/site-search.png b/resources/elastic/enterprisesearch/site-search.png new file mode 100644 index 0000000000000000000000000000000000000000..eb41bb9c7ae74c597f272b0e68dc2e3239846cc1 GIT binary patch literal 4438 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 DL6`z6 literal 0 HcmV?d00001 diff --git a/resources/elastic/enterprisesearch/workplace-search.png b/resources/elastic/enterprisesearch/workplace-search.png new file mode 100644 index 0000000000000000000000000000000000000000..5e38b5e608eeaafe00a44407f250657bcc4de453 GIT binary patch literal 6811 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 CD6Lii literal 0 HcmV?d00001 diff --git a/resources/elastic/observability/apm.png b/resources/elastic/observability/apm.png new file mode 100644 index 0000000000000000000000000000000000000000..3b1ba2844420f44bfd9ac54f9ddacc066dfdcd88 GIT binary patch literal 1430 zcmb_cYfO`86h5u3&=LtKQUcK`D4@YICOQzZm&9+%MBLi+gET6riScuK;zF`qd_1a{;dCzsZ7PKjzpqRD<7y=PZ(&fpE~ngBya z`N54}r;pb4-Y@*VX!bzflttUOds_+8{=MV9^~?g+c;~F2I=*SxE7hnO->trVlSM)y z^f2HAVXHj<7Z3*7D0|of0su687znwR;n3Wvn;>)~r&VUp%UU@bpo*jMf~sJN161v# zwcrqlZn0l|E#AN)Z2*@Ll*JQR5)m3Mou*2+1FPvc;~*MNO1tG!^JNID7%LkZ(k7z> z>#uzIAmLVz1o~aSp>a|`92YzA4k=`7OsoMfaGA-LX*T1bY8lsG(k$@<*5V8D}LgNa){J)g6VIC1BkZ!US$M&U|e?$hu-XoUk|X69OBX2KBws6?gWlW0Nn&cm>_O$Cl56q4xLl! zo$YA($qh7UdO5E<(Wh|WF6=iQu%O{ct+n{mKBhU0DqG0f2&#~Q+DGyW>&ONIG(F)n zmOG_IN`GK=){^$5FFl|X%xdEkrCik1%09V%`eB}fL!$AG2&V38O73x^-?l9yL_U^J zJd9Fin+CXO!Aj=#h&xa9UFFKVu3fF|b&$zwEgorLD7PQ)(^r z|8$?X^;OVs`cAo8;U5cA^*$@=K!&i}e3t-Azp@ztm65!R?^eQM?2>lEQ)_Dqe*c=vi5`h%7EZ+aGh3jLp! d$Un>qj5j`^9ouZ!36pv?O^;wwC6u(U{syv24t@Xt literal 0 HcmV?d00001 diff --git a/resources/elastic/observability/logs.png b/resources/elastic/observability/logs.png new file mode 100644 index 0000000000000000000000000000000000000000..2976ae2100e9c053e9d403154eb7b86d43a7bdb3 GIT binary patch literal 5091 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 O@X}J#Q!Q0NhyNdxLJZUZ literal 0 HcmV?d00001 diff --git a/resources/elastic/observability/metrics.png b/resources/elastic/observability/metrics.png new file mode 100644 index 0000000000000000000000000000000000000000..bb354a076f2eff950a784fdcb4fc9cc05940df5b GIT binary patch literal 4689 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 literal 0 HcmV?d00001 diff --git a/resources/elastic/observability/observability.png b/resources/elastic/observability/observability.png new file mode 100644 index 0000000000000000000000000000000000000000..5844caa98ef9dd29ccb48791dd458a2a45afae33 GIT binary patch literal 1973 zcmbu9c~sL^7RPVGrmRi{qKL={g-oT&8g>j@CBv3h#sUVh5=jYAK#)~Q5JzSxovA@& zr=g=5Xa$QX1q_RhU?yRah$(B(q7flsUm{@U#dBuPoHM6?`FrPg-aYqx-}ip*J?Fi@ zl7o)uXc}n(fDXye=Q98d3Nf%v9c`2|oM^PEpYlKA1M|w&qDz;d%=SdTuw-;Xr2H{n z`0{j=)JP!(`f5z6?NZTJyFa9kbQ)eHAJ35V5$RYYM|^f~&w@yj)<>vJmKgKHqQ6!7 zP_tLd?8dUhmgn;qHG_!I*TYF)8hz!uf2jJfOM|^(%cajFd|IfofDLaPeQ@7+se-Io zZ64r#l-8Q@w69N|Qf*dr-?XS@?N^M3Zk{;j!Aw^AqCC6*JHvF>QEOpjcEUkkm0~_$ z!de!cizD#b8H^L7h0EM&c~*Fp-KYaj8RytC&K~fcTCYp;qs{PjDI8bIH9WbIIx4@L=0n)QChWU>D51)PtVXKYVcZh zvdAQOWKC!|KA-Ahunn;D-I>4VCiIPsbyLz_-p0ZmY~p~diBirr6VZeug~? zw(=mr{aygDzn|zR86J)ZOY4upfGQvxFlv+UAfvbP1Ty}Z_A z2jJxt)8gpVm)*@SSS;ifq-L*5N6dk|W}cWtn7tPSY#C{?F|MRkA2>5*&ChSBAeBto zSrhm3S`@0FW2xo%qHaTM24rDUY58bbZ5~bwLY|D&31p*q8==JdAA zwttEMCMq8;iMGKNcQvZpOzQa%VAHYcTipTU*%uM0C2jT93Kq`ZCKSZNP*CLas44WU+ppIUO z3}(#27<1EDINckGh*k;g%HknMo$c_XY5#%G>puWaox}~pY;4BJ3xF6g$2VvTG5`)8 zFF}asbqD&9V#9c{;F=>s{~NDptpd$wXmj8r)Keeg+A=00l0rqXMh=?Ijq72}OHLSO z-KD%>G&6d8gFfK>5!usmEb$rE_z;jqpJD-P3Z{UCBC9MePJ8r~LYOsoY<(^~wpTL< zm;edYUtmBLb^uX%`~D~VZ|*&V-?E&Hr>(D?m>+8?Z!7KG{vUw%DfX^|_c8eY_J7mT z$x6kVX2IFR`)u`Svgc#45~n^ki^+IIB`+A7lIFIe3q6NG z&=ZefI&GQ*-JS@yf*?e@lmFc@vP*WMWThM=}>EoK*3m89E*T8)} zmY_^eQ+@JP{LbJHdv6107t?$?_o2uJ^$=IZ|!t|7gdv|Ecw&%gRP2AugIb)(aU#mb_^bM&hx#XBv73#Hd(y(@*xO$t zGs(Z0q|{D+<9H6wNSa%hU+=dZW>NXF-~@SktX8DonN-$Jii?v#W&V#*t_NG~c$K8a zjf&oVbZ_bGa&{_9&(eAD`o#xM(2(DCGuFg!k;wYyJe@wj$?d79e3^SRd@;wW>F8kN o{uq9t$5pDFpYV0WSLt^c7+h%n6&r&DCqN&`H^`^n>*R%h17s`=yZ`_I literal 0 HcmV?d00001 diff --git a/resources/elastic/observability/uptime.png b/resources/elastic/observability/uptime.png new file mode 100644 index 0000000000000000000000000000000000000000..f4e2709d6fe03824c11ebfa56efecc77b8e9d751 GIT binary patch literal 6646 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 ZIUXJzTk3`@R*;XY03A(3Oo;|I>VFf7Rs8?} literal 0 HcmV?d00001 diff --git a/resources/elastic/orchestration/eck.png b/resources/elastic/orchestration/eck.png new file mode 100644 index 0000000000000000000000000000000000000000..b5135efa58a433e2f9149fbb534f120f8986f10b GIT binary patch literal 10381 zcmW++1yoc`8@{_VNF&`KAt~J~Eg~t1ba!`1EFdkV(v5U?!!9D7f^=Sq%UHA$~ysIx6C$?^x|Ggk-mUM4KBbvLSvK-n53ONo7p@k4e7XZ)#in3Cg-t&i63Y4sg;Ct0i)*+()bQ_M65!)f%+U_!jgJ#kRX9MBR483#*6*Ok(%S%d`@Gx z<801Vg0Z;YW+sj^WBE_yA<=!itp-k7#CE5 z0SjGj6>{a(Dm)-=o~@HO*}2+DbIl?oE%*9Sfb9BcS5S?;Nre~09rjE58gQ0~*(=&z zwH{Yr(~0qBt3Xl)zJf;1%A$9zpNaZUS+Zs3M04uyV?PaPZF1>_rvap*IEUerHIwS- zbvrvL7(A$?@GO1Wnv)e|_|C%aRPImy*u9zE`0o&faJRf;q#A4pAz&tIcQ+lG<2E}X zf;LN%@bHlJkMFki(fIx|}Jy28? z<-1ch=;2b{&;pZ=mA_mXIb|kTa98`|Sba}HHs#85IrZqY_xg)xbnX3Q?)4u-4zwX3 zdN3t3X@I_x`7I~>FR8_&`F0OVy)5D#{DyzuV9^heA10M)ChDKc+jaNxuG_ z{6sR_KqGk+BmpHXN!+xmpQjZ7k;)dYT&asy5exk}kR>rNFl!cAUP}iwm)!BleN5r4 zK~L0ELj^tozfc=EK%T>)9QW%&Sf}li{m(HS0j&v*ce@YbZoc)HWGA9pAYtMJGk(KB z$=Atm-7eRsbD4nS?Y!UA5pKf2o>L5#w-uD11f_~_PmyBfZrVTcFNWlk44(1M=)mS7 z$Kr(xZ)k3)tG{DM9ugq7H~8M(JZD&%fw!UbNj@sffG(!Uv05A|UC{f8`If3W?)C;P zo^w94j2ZTC0du22%*Flm9dYkIMX_I8NADubkYy28ja_CiOFrd5}y>%?ev#RnKL>Xme$p6)uY;+jEjs`g(!2?rRR4NJF3UB4YOw>KkDt$j3a zg4y4pD{QUcN!H$#J6Cn`mMui?y&xb{CSlHe}+HN$8&UOhx9aK*B@q0%qpnFL=%`IntL zH1<<~4NF@B;?@S1rg68_f`k~YO6?6NlvM_bUJwmVWXC9-#FOLWtOJ8GP&+VZ7p6Yx zi}pG>EzUBLzmpm8P|9$2&=R1zgHOY9^e^xHE=5HL(1panHqhg_b3SvE!R=r=Oq+Y=aZlr0mQ9n@mt4mldV)? zdip17K;$mW1pXIK&zVH?sa#7b4xvXA!^hN7gDXKuBW!NHcA@FOk3Z;^jHTDM7TqMu z0BSe5DWm>@YIf3(r|8@%ml?45X8Og*W@@4;4S2zRkR99~0w;Cr&oIM)kQu7w-nqrh z1dbr*z(%Xi@T#M4^SBs(5kPC{!2M&v-nQJIz|QKfuU`kg*}jfZ33E8ReqB+TF8Ths z@)N$6@*lRlxS!ih|I<11I+>?0F4lOE>MBF<2aHv{&B75Xt~xeJg_Mo2rm7 zJ~v@PBwSyNRl!QRkylNdFilE)^v99mE0~ZD42VUjUEt`X_hZQ|2SD=b3jW>5G|?|O z>=l3_gW@<*dRO~E1Z^3hrypH{BcC_Xjy@#;L_pY2*SLU(qPDGU;Omr~x`d-YB_voK z)I1>qhWfuPIvUnW__K%(m%e5!TcFv&gRfi$s)FN}wk~4jV)JYtem&qpLythki}so1 zpF~*aQZ5=$ZqoriBCU3I5-)s9ZNQc$@}CP@b={@4F`DiK0TirA)Yqak@H=EfN@^rth-57RME0FOM!uQO;X~&)&`$!SI}IeW z;;;Z_Q$YZwGx?&|{uQ=GpOmOO2KOId&J(eoyppQB`QTql0Qn2E2=B`^JSfTl8LgFW zcBm;5Er0=Od^%?Cv(|dV=pz1a#xL0^dEu|>U;MhG(R)5l3C!`uWHam(oTQ-~vELbc z2H)!ihJJ~-_Al@Dpu%_Qf4iXbd|HMtLjpCC<7fGtE)!~hl4$RE-heXcl=`L55ykpm z8LpaOomnn)C7isM&go@$JIAWc$Mm0TeZ~s?Q^Y0f_YiHJ;O023TQ0kn#wdDPsIo z(^QSpo zbSD^)DkQDvhXWrRerib$J z-7y1Zo8IH6TZ*|1*k?##uuBJ9tDC^rBj=^ykDRsJ&7A2;@6K9r))w|lrIYlNGogr`0oF)4Y%V#93>+41PW2P9Ks8qC* zB{3j$l9l_}z+VZ1f{?1T)Zh)p2f_{V_MIhtaUVD9`K82Vs)&unQ}JUBo6;wxG0EY& zQ(juo4&^18F)r^1TFO8adJpzgUrCdUo{8313P;C559G>5tjg!wb8xaKAV1Zt3wB&j z=L_vTurW>Qk!k-tT${*<;YVbX0`3|9NTNG3G;euILG_KYe_wIfCs z<1s9ewp90-S=Q3(=4TW1i6~DAA@*(iS@U;*W}Hm^@An&6L-GG?i39EZ1N=F*na1B^ zz~z7VYLwXh7T>p^;91y?m%(A>X%qh37qeHZAC2SpBG_VZ5vB$EH z(<|b?Synw(!>u>MLtXW~xZh_8xy;Vin5lv~kr<(bO*E+vaac4|iuw01jlZPwXz%#D z%Wpd`{lNBl7-v2g z2O^>bEN$DLWHmWuSpoz3O4+(vB2BoKwRZYEBqO4tqL#$RL~(`mwC*$NwJxz12%*

NGGW89k0trAEc?DIs{57tY3rFK7RBpMnu<|myD>N z{tUTf3~+F8#QC2Pz}M?6x6036zgDQuKQOYyGy`HKXNz z=Aq6{s=ixrbYa>##baK5y?g7r5I=35OZwQESk)jhZBuzK zTWxS@@BQpmb7kpKX0%mQe_JUJi~(psWN$kWI!)$3JT)ytOP#|LJQ}_91+BV@Z8Nfl z{M)^-Aoocn=t+;sI-C}YC5JZ@dNPj^ar;~GZ)!dr7|(cU!>lk?6LofB?|XH{dMWgs z!nj|*etmT&b}YU66<4G(y_+Qm>>US0@b)Y}TfM+_*{X53ZA#5^X652qG17u<`Yh`Q zdz4MD9V5&nZWHIwkKbn>h?O01-np69%u<(%$jBC!>?u(82}86bk-zReCMeUNwU$a? zi{(~!V|8QU(C=E8 z`*34HFTzsawsj$|R|JtW6?R@M_2JR|x21Pl!T!-#dX@XJAm1?}qaQ+)eKnY+sXF&7 z@PD;#kG_5u7Mou*Uwhz-dkI_GcC?T+ze;>((16fal8Wyu%3%nJSjO!65bEjaWglUv zQr<>*n8{l+A99@8;1LVQx>>$XY^5a4T#KW@@M9y78Rg*Og4v#Ljc8XIcC?m_7f29C zQ(@`9&TVXdTxQ6y7jNy=Gm3WNw%?Mzq2ZHBp9=xpL&y2afh@N)IToR) z7IJbu`QSqfX5#3PuRW$1t6nDVPs`}W1WrzBLLvi(fVrvl+Ya3QQ9{j2D;>{=Yo4C- z_UW^;GvP?tf6HKu^Jw~ne#KJXH+XjuI!vV_*-ey#+ge;toHGFQ*6Xr ze;*$o7y5)76A6!^>^={--{GMACR8};`6}HXW$hVieTp%~%)3wQo?vIemQMRRCq%qh zV9s;9AclU~hmaZPiE^!1j1JzoHJ=C%=CWZ|fCX99?sHX(>r=^xA{Asu?D%seS<1ea zpXKG{?5Xc1$a<;Ei;HIsw6@FkeBdgf+}5I^qRg^%waHW<>e8e=Cs#hvm%_1i>=8(s zS_+ZTM>kl!_*|QBIm2ue3x7Qt{;4F^XS-up{Y@J1IS8Z%czD zYQ?8qGTgjXms)5EqI+=g6Vlv8sQTAig$WMDsl-x^sl^zdMqX|{4_wK-W@BS6-g`!s zs3a;um=P)(<37pu_Vx#X)j!K-6DWFMRaquk{5HVcn&+Jg=hfQ+4U!2rdaj+iL6$xj zPJr`;M%&=vU@TFB67;90!@vR?@L43sY=lUrhF)jvZeRHTYh4_9AZi#VBx^fsL@MPY{y#i7UCyiz8XB%t+*7^lP_iRq z3wRjM@0smYI+Ia}A>Sk$#69nm-O!|n4#}IPhtl0jwltrZnOd(iOqE-u7EbO?)|e-C zX_(`~$NNKpFFxM|_8mwPROh(s(cv^=BcZ@o%$iVF^+h?%ln|?S^KR#HcTqTTos2UIM0Ody#^3ccDSserEoYYpM4I;5 z(g5(S+Q;0-v{A;%atV*=&P9h#n0S)bf8H_;e~QGTVAEZP>i2hGy*Q_4VnvpxVW5lf2p(n>FMPqxb;s8ab@gw29T;3 zzM}P_qFD=yzDUb#rWNK)$F;V#^+j=(u})7c`&i-2uZ`y5c&wDphF ztbe7YPtW_a!}aLfx!=04KT{DaOaC28VV}BSCF$U-=0ElR4N-e}Q9BdDY|5G2SQ9^& zULssoXSUI&7T3+X%KfZ;q0x_Y)q;i#vHD{RtE)mxfXw$l8Tzss<^mheUFB68Kf)1;}5$!vxCI3l6!cVlutC6PmKeHM%B*R^7YcPYo;rLLh zRc5HnNYD_we!xJF#d@M0UV0ZCk^;O))!b;#uoujqoB@}C?IWl08RQr7E{<$%Y<$=f z-u`W9YC1;piw2J{t4(cFi8Yu<FLIgvMO|+bTVwT#D&WR zktDBX&C(5KIs!KO69|LqWH(x*(E<6dq^I9x4(prXhA21*EclPomDEXZ8IN8jIN^OI z41P_2u0PYkb&xqbJKNmjv6Mcsdy#LL;Lj7+cMu&D6QkEStx?Bf+%E>IjE%_S_+_xGFDEIs|6NUK<(xd=Ug6^;FO;hEZQbp0JSi!O zpFts(y~v7LG~J?kUT&lI>gviH;R~f=$!0ugTnz+|e3tuy?qwdd8Y2P9C!5Z6{C6iC z1d`N?v$H9#2G_o0=QtWucK!B8a7$m6YpRsDjJDcUhD%yIR7>;ot&1K@sSvFyyf3dU z^kkpr>h92r4Gi8Z^vNH@Lf? z1$Fg522w%`H0FatL(E7d#d`w~#?_If)z%|UXeTd=?YA;$cLf`7UX^4)RCQ>?7JIG3Q!>F{iwz#;srinP{4S+DFbo3fOOPTQ(ziq}; z?vJh-)JZF!eOwJJ$Knk}Tkb1iYl>SLTp*)@Y_3$htvA zSuKif9wm_73Poqf*NGws9)kXJR+DXd(A`yFWv$~7OLz^|b~+hmx>ngoam3NJ{IPZ? zaHayWbdki!e|J(qa(dnm-u#)cwl7m1gwG@b#oQaD7W_a86ciM!BfPty)}_AjS6pT9 z5s#&%9e=x1736C3J9#}+^9+JjYGQU8heB>ZS5MDqze2Iv$w@g_A7)@Qy*DhOBu{V_;w$u(MKbR~r-%nzrFr7jkOYIL-J87V!9V z(f-C;qKrY^!)FCNKK1BTUg+C+Lx-goC&){>V0Jj)kXgCUX@KY{i=T=smLA$?ZwL$U zw_5=_J3L?;H+U#~jL7k2=8tSn{dGf2_m+|1GHctvxrs@t_b7}g0aj_y)_9JT1OR-x zg61&<&PN4IJ}LioZ7flAMkgy(%qb1@J%%|b02flcfgk5y-uwsirm}twI9X0Zj+6?F z-+nyxSMRzH*gN3wCOzFMgLbqIa;D=UB6lSkPIsA|ga-B2t2AKgC#$DnQt#f3z4wK( zjm@q*!ZRaD2t$oNFMBL?c(DTj|G)}h#P`7}(=+}9B2{anrGnY+{wdBv@xvs28h!5K z&3Q(5b%_kdR&omlClf%B2>ak)u zci=ANw>C&~4BpMA8(!>+^UQN)OGD5L=h+Rpwf=~xpfIAp2OjBvTfZ)p?O2Fd> z4VyF5kewP4HnOopn$w>ovRJVZ*tDF^I3sXI^{{}Ajj0t)({(B^^!K6N;@cRL4JJ*=Zm ziHQEq3HRP^0rR^tG^ewYr(f?kM8g@xhJ!a;ZFQ|W%VNz^PA0-FFVE%TkdL{@ovbIk zyWfz16h&bN&ysnkI;{L552z#mV|OBwd^zomu7IpI=gjjfQvLi?Mp8X6S`)erVo zt>G5t;;#4x(JyVm&6}ZP$e!|+sra~9{T&026ZqPnt-9yowfk4umejP3O^}UhyyMgo zcJq(^>LUJSwK9cekzV8+E@G{AoJEHxBHhmJUmN9sEP`ERwV`xoH86OdzM1F|k9@}j zEZh&I564M=bro-jySW!>3K0N1zmcc;idrExF=o@g=38+$kcA+iqQHZ?&`kuWWFdC= z(=P_>>$%dvzv@Yjk`YokZPT7BC3*U@Lm60pvN13ZATpJW#fC7X$(UA{!1Xo$G>|(r zE3@q}rvmIz;t5T}!k8~ON(X>qyrG7Jbd@@8kl_oSvyd}rM zC=dy#Vy*AY8~%0rRC0QEfA;F7&nme3DAfW^eqIo-@#E^!5Nwn7j9D$PD8bP8&&M$i zk57{*31Cmpl>cO!MWmtm8fiRgORPHo0v*KGV7u#DQU0tM#14WM%`9O)47IcV_>J(H z9HqLU{W7`@?kxz`CG{CxZSP4wb)3c(`fcEECH3ZU@nm6peYx$+tOu2KYzN&rZnhWv z7^p^J=nLg<#N zNk$1}pdh&95^oV)ePI&ukU=snS#lcI;%n}}2Sd(r+*?t54Dr$I$GZ$<7$2InfL{sY zS?Ab2kXPvYR#N-ypFH3JKmrP6u>JLWd|(o+rdN%Z9CuIWOJ!i7YP&h%)^L{g?F0*A zFt?r~n5G>X<--0pV0MQ11w|vl3FhCYpc2LS)G}E8c^f=>OWWkvwm-D@gP?KMw-tl$ z#&^nQ-K>C8p_8mdkZ|H5(hKJ;>)P0znEq9b_P469T@MsKe^CN}q#w%|vjs2K=FqAM zgSyQ4oN@l_%6xC_s++x+&hw9p?+)nC*QY2p)>4 z@;q)-*IeAom02P`P;q90v@pu2kfWvCek^R{o*c#dn`+iyK<0yoW_h+r(7gSec)LR6eE$YRyf) z^@Ks+Y@F}_+o0b`pkwA3ZUyo(BdjU_VCU2en_mhB^*+ZyF6|jk9`#?dmC_(G%Zv=a z#Mn$2N_njWHX~t+`R36RDxe+>ERQg}Cv6iV!5xeN9-K9p>Fa`;%AG<;?d1z^+W?_Q zVfIvewr9G-3`PXNeXali#L1P1;xwx|G-wVq5PKS0QhU(txB86J6@BsXf!!HB4NtCj z6_;*s=U_F~*((ra>_=gXqhp)I3_I(i#Gt|SoD{j&5B0Xz*%g3RV+S9On{TsR(K7S2 zcwIlSQ@HBB-aOTa)fxGk1z<$B&5?avMdTxsjG6j{jA z5mNu&oIylAan9xf%h6LU-*h1+Vu_VP4=Ag3aNqMzT6UyzjcQym)%n|CzO06UDpaA) zfXCL_K9>wLsOLFkg#o$?vX-TDK<*4Z^FaWBK9Uq`H;!R)AJU~dgA<9b(=iaaMN<{W zTMv>jfF=F3eM||#kp~F&V0@9m?^pu*d3p%mD%Rvm5867odHQJt30s%f;B?prh=bd z@OOszJ?Xj7Z6e<^_L+rE+UL)B6x+zt_R&KDfWEOrsu{h6Hu~N`@KAE;gaJ!kfz6S) zltT`o_4!nyLCBzBwf2`583!6#8PCP9dnEZScgwVblNjxE$v>7ced)(dmQx8!{a_;c z(lFc;)PAdcpJkfhWi@7^t@7wc;zU)`rv8m!7j}Em@s-SoJj-9Yg3>;yihTt>jx4gn z7%?WvKPr)r(SJOr#94mE`}|}?RVjuqJ=Bo!uE(M$RW+=jOQm>NPrEaXz6!I9E5!nY z4hhXU;Xn#dZFQ4Bwvm4i)b=32kz8{#%7lfH4|Q99Pgu|}O9nNmJ!{`xAsgZCiW3iy zh$2?vMovfz&kt#0dog2@y+OaWzjAC862T``(1jAhjjuVK>tkc+t5k;*SwFjd*{i$! z1iIIy8y07X`NsSSycysEzT|P>P`K%YuQEg1ysR_rsk z@X)(Sl%V;fd4=39_>p$eI4iw`R1A0-9Lx-`j)(G%Jm#@W@^Zb_*&Lg1@$4lgPR@*W z^@GdwRm%bhsy?t!p?Vp)yvL-KZ=`HLMui)MPOmh0Bu8HWe|P?m?oAlZwXu<2bq%8w zcWls#ii>R&d(~*${?WPHwcqIvE7rLimoK4^qT4g$$eYi!J2k@Tr`LNY+Ul{%g?qvQ z#7BG}(#3DIQ|C!=ww@zeQbt2O9Ay6ci$#n4%{R?;OL` zz({Vc?R$VLD1(Kq)N1=IR^s`hA^y|2FE@_hPv0-XUNE(ci%Ry=6Ala|NtdCg{B{rF z+sfD2?z_@96#;c>BA+l_Kh4ySB6r}=_WAiK@Kz6Rluq3HYvp=(pTobfOXOiE)^&gD zvQmQ5abdkX{`n;YzvIOM<6;;3X|OXjt)7#+p~9x#ds02ah*6_vFrcP4J^Jqx2Tu6U zJGAo);26pL38Kc_&rd|6`eUnQ<~oUvZFso>)ajuU9}&V1zWqYBZeU+%zD|muovtJd z*^+zlM}EtZQ~wfYAyN8pIXT^sB-b=jo6{cII*T7cjq=d_;!J?yzltRzJ#I@SHkl3) zeQ)%9&5xR60^5S1o%EiXa28e$IS-ub-WOo+|7=XiwmUdPv0Z)q-X(>Jtu*diVGGj% z6Yw}kgBSOzW`ULU5xw69qGUqB2;2iaIc41))O}v26MRmV64YxWMC!aFcC4k_KwZ!p%6Z3BD*Rgs z*WJ}kl%6N^ze_ErW4TpgKGzVwY{%3bCO|lcsfCx`sCTjsA7|t_A&Y>kZ7d@NbZy*HxXSB6E}`P8pwq>oqmE7g;tMWYUe4_%F%lL zE7-T#e6Vt$O#^Nu_-j+bgThM`k6zrN$Xe$55wi@^{9iNQp87mI{+&51p$+E%oh4$? zEMXVf3G{3G3jX=^)LT$@4H+li*GCj&(dx%jD&X@%Eb~MNNeM@}{%NUeFPl@@f{kA! zA*lUcZmP9&^lT|%KG{EAa(@#I95SuJ#^zD;Q$J@XB(PIrMYM7zF%IPOp3+)plglUH z17Gc35S4I$Oe`W)q;5!e%;RN{=rOs}wHu2(zF|NUCRx@JSPn&%f32CVQhgnKf`i~s z@GRlOKKDD|zcgRum1Ok{G#3v_#=2_M5x6{pC_s6$H}ZJu9%!un1vmFA(%ehZaBdt6 zqH4Eer?1FSpRcJJpB7Ldy93SpJC9A5wEODE9+W;*-c+i~#wq#bGH2n>xVl&!H*YDe SJQ0P1fTEm=Y^Ahu@c#e``tz6o literal 0 HcmV?d00001 diff --git a/resources/elastic/security/endpoint.png b/resources/elastic/security/endpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..91facf99e13ea01762b3371735091da54090959e GIT binary patch literal 5098 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 WIk3;KN`X^3$XMS@@2!q=^#1|=dukj2 literal 0 HcmV?d00001 diff --git a/resources/elastic/security/security.png b/resources/elastic/security/security.png new file mode 100644 index 0000000000000000000000000000000000000000..ebf98d169d5fd02efcdfd073912c5e8123d2819c GIT binary patch literal 3307 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 VQr>oJZXf}u=xOO|mR`4g`aip!!oC0i literal 0 HcmV?d00001 diff --git a/scripts/generate.py b/scripts/generate.py index a7e04b78..fedee589 100644 --- a/scripts/generate.py +++ b/scripts/generate.py @@ -7,7 +7,7 @@ from jinja2 import Environment, FileSystemLoader, Template import config as cfg from . import app_root_dir, doc_root_dir, resource_dir, template_dir -_usage = "Usage: generate.py " +_usage = "Usage: generate.py " def load_tmpl(tmpl: str) -> Template: diff --git a/scripts/resource.py b/scripts/resource.py index 41e44130..2d171aff 100644 --- a/scripts/resource.py +++ b/scripts/resource.py @@ -98,6 +98,10 @@ def cleaner_saas(f): return f.lower() +def cleaner_elastic(f): + return f.lower() + + cleaners = { "onprem": cleaner_onprem, "aws": cleaner_aws, @@ -109,6 +113,7 @@ cleaners = { "oci": cleaner_oci, "programming": cleaner_programming, "saas": cleaner_saas, + "elastic": cleaner_elastic, } From db27a47f7c84a064d99bff44fcad6459abeebdfc Mon Sep 17 00:00:00 2001 From: Patryk Orwat Date: Sun, 31 May 2020 20:39:05 +0700 Subject: [PATCH 04/10] AWS: Added more DynamoDB and IAM resources (#180) * AWS: Added more DynamoDB and IAM resources * AWS: Added more DynamoDB and IAM resources - code review --- config.py | 6 + diagrams/aws/database.py | 14 + diagrams/aws/security.py | 24 ++ docs/nodes/alibabacloud.md | 140 +++---- docs/nodes/aws.md | 372 +++++++++--------- docs/nodes/gcp.md | 118 +++--- docs/nodes/k8s.md | 80 ++-- docs/nodes/oci.md | 144 +++---- docs/nodes/onprem.md | 126 ++---- resources/aws/database/dynamodb-dax.png | Bin 0 -> 10522 bytes .../dynamodb-global-secondary-index.png | Bin 0 -> 1166 bytes resources/aws/database/dynamodb-table.png | Bin 0 -> 1329 bytes resources/aws/security/detective.png | Bin 0 -> 23415 bytes ...-access-management-iam-access-analyzer.png | Bin 0 -> 650 bytes ...tity-and-access-management-iam-aws-sts.png | Bin 0 -> 3605 bytes ...-and-access-management-iam-permissions.png | Bin 0 -> 2174 bytes ...dentity-and-access-management-iam-role.png | Bin 0 -> 4143 bytes scripts/resource.py | 1 + website/i18n/en.json | 6 + 19 files changed, 525 insertions(+), 506 deletions(-) create mode 100755 resources/aws/database/dynamodb-dax.png create mode 100644 resources/aws/database/dynamodb-global-secondary-index.png create mode 100644 resources/aws/database/dynamodb-table.png create mode 100755 resources/aws/security/detective.png create mode 100644 resources/aws/security/identity-and-access-management-iam-access-analyzer.png create mode 100644 resources/aws/security/identity-and-access-management-iam-aws-sts.png create mode 100644 resources/aws/security/identity-and-access-management-iam-permissions.png create mode 100644 resources/aws/security/identity-and-access-management-iam-role.png diff --git a/config.py b/config.py index ab971c6d..21732c71 100644 --- a/config.py +++ b/config.py @@ -139,6 +139,8 @@ ALIASES = { "database": { "DatabaseMigrationService": "DMS", "DocumentdbMongodbCompatibility": "DocumentDB", + "DynamodbDax": "DAX", + "DynamodbGlobalSecondaryIndex": "DynamodbGSI", "Database": "DB", "Dynamodb": "DDB", "Elasticache": "ElastiCache", @@ -187,6 +189,10 @@ ALIASES = { "Cloudhsm": "CloudHSM", "DirectoryService": "DS", "FirewallManager": "FMS", + "IdentityAndAccessManagementIamAccessAnalyzer": "IAMAccessAnalyzer", + "IdentityAndAccessManagementIamAWSSts": "IAMAWSSts", + "IdentityAndAccessManagementIamPermissions": "IAMPermissions", + "IdentityAndAccessManagementIamRole": "IAMRole", "IdentityAndAccessManagementIam": "IAM", "KeyManagementService": "KMS", "ResourceAccessManager": "RAM", diff --git a/diagrams/aws/database.py b/diagrams/aws/database.py index 84065363..145fcb5d 100644 --- a/diagrams/aws/database.py +++ b/diagrams/aws/database.py @@ -24,6 +24,18 @@ class DocumentdbMongodbCompatibility(_Database): _icon = "documentdb-mongodb-compatibility.png" +class DynamodbDax(_Database): + _icon = "dynamodb-dax.png" + + +class DynamodbGlobalSecondaryIndex(_Database): + _icon = "dynamodb-global-secondary-index.png" + + +class DynamodbTable(_Database): + _icon = "dynamodb-table.png" + + class Dynamodb(_Database): _icon = "dynamodb.png" @@ -60,6 +72,8 @@ class Timestream(_Database): DMS = DatabaseMigrationService DocumentDB = DocumentdbMongodbCompatibility +DAX = DynamodbDax +DynamodbGSI = DynamodbGlobalSecondaryIndex DB = Database DDB = Dynamodb ElastiCache = Elasticache diff --git a/diagrams/aws/security.py b/diagrams/aws/security.py index d03d7175..61da75a9 100644 --- a/diagrams/aws/security.py +++ b/diagrams/aws/security.py @@ -28,6 +28,10 @@ class Cognito(_Security): _icon = "cognito.png" +class Detective(_Security): + _icon = "detective.png" + + class DirectoryService(_Security): _icon = "directory-service.png" @@ -40,6 +44,22 @@ class Guardduty(_Security): _icon = "guardduty.png" +class IdentityAndAccessManagementIamAccessAnalyzer(_Security): + _icon = "identity-and-access-management-iam-access-analyzer.png" + + +class IdentityAndAccessManagementIamAWSSts(_Security): + _icon = "identity-and-access-management-iam-aws-sts.png" + + +class IdentityAndAccessManagementIamPermissions(_Security): + _icon = "identity-and-access-management-iam-permissions.png" + + +class IdentityAndAccessManagementIamRole(_Security): + _icon = "identity-and-access-management-iam-role.png" + + class IdentityAndAccessManagementIam(_Security): _icon = "identity-and-access-management-iam.png" @@ -90,6 +110,10 @@ ACM = CertificateManager CloudHSM = Cloudhsm DS = DirectoryService FMS = FirewallManager +IAMAccessAnalyzer = IdentityAndAccessManagementIamAccessAnalyzer +IAMAWSSts = IdentityAndAccessManagementIamAWSSts +IAMPermissions = IdentityAndAccessManagementIamPermissions +IAMRole = IdentityAndAccessManagementIamRole IAM = IdentityAndAccessManagementIam KMS = KeyManagementService RAM = ResourceAccessManager diff --git a/docs/nodes/alibabacloud.md b/docs/nodes/alibabacloud.md index eb62f5d2..cc274c24 100644 --- a/docs/nodes/alibabacloud.md +++ b/docs/nodes/alibabacloud.md @@ -5,6 +5,54 @@ title: AlibabaCloud Node classes list of alibabacloud provider. +## alibabacloud.analytics + +- **diagrams.alibabacloud.analytics.AnalyticDb** +- **diagrams.alibabacloud.analytics.ClickHouse** +- **diagrams.alibabacloud.analytics.DataLakeAnalytics** +- **diagrams.alibabacloud.analytics.ElaticMapReduce** +- **diagrams.alibabacloud.analytics.OpenSearch** + +## alibabacloud.application + +- **diagrams.alibabacloud.application.ApiGateway** +- **diagrams.alibabacloud.application.BeeBot** +- **diagrams.alibabacloud.application.BlockchainAsAService** +- **diagrams.alibabacloud.application.CloudCallCenter** +- **diagrams.alibabacloud.application.CodePipeline** +- **diagrams.alibabacloud.application.DirectMail** +- **diagrams.alibabacloud.application.LogService**, **SLS** (alias) +- **diagrams.alibabacloud.application.MessageNotificationService**, **MNS** (alias) +- **diagrams.alibabacloud.application.NodeJsPerformancePlatform** +- **diagrams.alibabacloud.application.OpenSearch** +- **diagrams.alibabacloud.application.PerformanceTestingService**, **PTS** (alias) +- **diagrams.alibabacloud.application.RdCloud** +- **diagrams.alibabacloud.application.SmartConversationAnalysis**, **SCA** (alias) +- **diagrams.alibabacloud.application.Yida** + +## alibabacloud.communication + +- **diagrams.alibabacloud.communication.DirectMail** +- **diagrams.alibabacloud.communication.MobilePush** + +## alibabacloud.compute + +- **diagrams.alibabacloud.compute.AutoScaling**, **ESS** (alias) +- **diagrams.alibabacloud.compute.BatchCompute** +- **diagrams.alibabacloud.compute.ContainerRegistry** +- **diagrams.alibabacloud.compute.ContainerService** +- **diagrams.alibabacloud.compute.ElasticComputeService**, **ECS** (alias) +- **diagrams.alibabacloud.compute.ElasticContainerInstance**, **ECI** (alias) +- **diagrams.alibabacloud.compute.ElasticHighPerformanceComputing**, **EHPC** (alias) +- **diagrams.alibabacloud.compute.ElasticSearch** +- **diagrams.alibabacloud.compute.FunctionCompute**, **FC** (alias) +- **diagrams.alibabacloud.compute.OperationOrchestrationService**, **OOS** (alias) +- **diagrams.alibabacloud.compute.ResourceOrchestrationService**, **ROS** (alias) +- **diagrams.alibabacloud.compute.ServerLoadBalancer**, **SLB** (alias) +- **diagrams.alibabacloud.compute.ServerlessAppEngine**, **SAE** (alias) +- **diagrams.alibabacloud.compute.SimpleApplicationServer**, **SAS** (alias) +- **diagrams.alibabacloud.compute.WebAppService**, **WAS** (alias) + ## alibabacloud.database - **diagrams.alibabacloud.database.ApsaradbCassandra** @@ -25,6 +73,25 @@ Node classes list of alibabacloud provider. - **diagrams.alibabacloud.database.HybriddbForMysql** - **diagrams.alibabacloud.database.RelationalDatabaseService**, **RDS** (alias) +## alibabacloud.iot + +- **diagrams.alibabacloud.iot.IotInternetDeviceId** +- **diagrams.alibabacloud.iot.IotLinkWan** +- **diagrams.alibabacloud.iot.IotMobileConnectionPackage** +- **diagrams.alibabacloud.iot.IotPlatform** + +## alibabacloud.network + +- **diagrams.alibabacloud.network.Cdn** +- **diagrams.alibabacloud.network.CloudEnterpriseNetwork**, **CEN** (alias) +- **diagrams.alibabacloud.network.ElasticIpAddress**, **EIP** (alias) +- **diagrams.alibabacloud.network.ExpressConnect** +- **diagrams.alibabacloud.network.NatGateway** +- **diagrams.alibabacloud.network.ServerLoadBalancer**, **SLB** (alias) +- **diagrams.alibabacloud.network.SmartAccessGateway** +- **diagrams.alibabacloud.network.VirtualPrivateCloud**, **VPC** (alias) +- **diagrams.alibabacloud.network.VpnGateway** + ## alibabacloud.security - **diagrams.alibabacloud.security.AntiBotService**, **ABS** (alias) @@ -46,23 +113,6 @@ Node classes list of alibabacloud provider. - **diagrams.alibabacloud.security.SslCertificates** - **diagrams.alibabacloud.security.WebApplicationFirewall**, **WAF** (alias) -## alibabacloud.web - -- **diagrams.alibabacloud.web.Dns** -- **diagrams.alibabacloud.web.Domain** - -## alibabacloud.network - -- **diagrams.alibabacloud.network.Cdn** -- **diagrams.alibabacloud.network.CloudEnterpriseNetwork**, **CEN** (alias) -- **diagrams.alibabacloud.network.ElasticIpAddress**, **EIP** (alias) -- **diagrams.alibabacloud.network.ExpressConnect** -- **diagrams.alibabacloud.network.NatGateway** -- **diagrams.alibabacloud.network.ServerLoadBalancer**, **SLB** (alias) -- **diagrams.alibabacloud.network.SmartAccessGateway** -- **diagrams.alibabacloud.network.VirtualPrivateCloud**, **VPC** (alias) -- **diagrams.alibabacloud.network.VpnGateway** - ## alibabacloud.storage - **diagrams.alibabacloud.storage.CloudStorageGateway** @@ -74,57 +124,7 @@ Node classes list of alibabacloud provider. - **diagrams.alibabacloud.storage.ObjectStorageService**, **OSS** (alias) - **diagrams.alibabacloud.storage.ObjectTableStore**, **OTS** (alias) -## alibabacloud.iot - -- **diagrams.alibabacloud.iot.IotInternetDeviceId** -- **diagrams.alibabacloud.iot.IotLinkWan** -- **diagrams.alibabacloud.iot.IotMobileConnectionPackage** -- **diagrams.alibabacloud.iot.IotPlatform** - -## alibabacloud.compute - -- **diagrams.alibabacloud.compute.AutoScaling**, **ESS** (alias) -- **diagrams.alibabacloud.compute.BatchCompute** -- **diagrams.alibabacloud.compute.ContainerRegistry** -- **diagrams.alibabacloud.compute.ContainerService** -- **diagrams.alibabacloud.compute.ElasticComputeService**, **ECS** (alias) -- **diagrams.alibabacloud.compute.ElasticContainerInstance**, **ECI** (alias) -- **diagrams.alibabacloud.compute.ElasticHighPerformanceComputing**, **EHPC** (alias) -- **diagrams.alibabacloud.compute.ElasticSearch** -- **diagrams.alibabacloud.compute.FunctionCompute**, **FC** (alias) -- **diagrams.alibabacloud.compute.OperationOrchestrationService**, **OOS** (alias) -- **diagrams.alibabacloud.compute.ResourceOrchestrationService**, **ROS** (alias) -- **diagrams.alibabacloud.compute.ServerLoadBalancer**, **SLB** (alias) -- **diagrams.alibabacloud.compute.ServerlessAppEngine**, **SAE** (alias) -- **diagrams.alibabacloud.compute.SimpleApplicationServer**, **SAS** (alias) -- **diagrams.alibabacloud.compute.WebAppService**, **WAS** (alias) - -## alibabacloud.application - -- **diagrams.alibabacloud.application.ApiGateway** -- **diagrams.alibabacloud.application.BeeBot** -- **diagrams.alibabacloud.application.BlockchainAsAService** -- **diagrams.alibabacloud.application.CloudCallCenter** -- **diagrams.alibabacloud.application.CodePipeline** -- **diagrams.alibabacloud.application.DirectMail** -- **diagrams.alibabacloud.application.LogService**, **SLS** (alias) -- **diagrams.alibabacloud.application.MessageNotificationService**, **MNS** (alias) -- **diagrams.alibabacloud.application.NodeJsPerformancePlatform** -- **diagrams.alibabacloud.application.OpenSearch** -- **diagrams.alibabacloud.application.PerformanceTestingService**, **PTS** (alias) -- **diagrams.alibabacloud.application.RdCloud** -- **diagrams.alibabacloud.application.SmartConversationAnalysis**, **SCA** (alias) -- **diagrams.alibabacloud.application.Yida** - -## alibabacloud.communication - -- **diagrams.alibabacloud.communication.DirectMail** -- **diagrams.alibabacloud.communication.MobilePush** - -## alibabacloud.analytics +## alibabacloud.web -- **diagrams.alibabacloud.analytics.AnalyticDb** -- **diagrams.alibabacloud.analytics.ClickHouse** -- **diagrams.alibabacloud.analytics.DataLakeAnalytics** -- **diagrams.alibabacloud.analytics.ElaticMapReduce** -- **diagrams.alibabacloud.analytics.OpenSearch** +- **diagrams.alibabacloud.web.Dns** +- **diagrams.alibabacloud.web.Domain** diff --git a/docs/nodes/aws.md b/docs/nodes/aws.md index e5eff58d..ef5bdec2 100644 --- a/docs/nodes/aws.md +++ b/docs/nodes/aws.md @@ -5,12 +5,65 @@ title: AWS Node classes list of aws provider. +## aws.analytics + +- **diagrams.aws.analytics.Analytics** +- **diagrams.aws.analytics.Athena** +- **diagrams.aws.analytics.CloudsearchSearchDocuments** +- **diagrams.aws.analytics.Cloudsearch** +- **diagrams.aws.analytics.DataPipeline** +- **diagrams.aws.analytics.ElasticsearchService**, **ES** (alias) +- **diagrams.aws.analytics.EMRCluster** +- **diagrams.aws.analytics.EMRHdfsCluster** +- **diagrams.aws.analytics.EMR** +- **diagrams.aws.analytics.GlueCrawlers** +- **diagrams.aws.analytics.GlueDataCatalog** +- **diagrams.aws.analytics.Glue** +- **diagrams.aws.analytics.KinesisDataAnalytics** +- **diagrams.aws.analytics.KinesisDataFirehose** +- **diagrams.aws.analytics.KinesisDataStreams** +- **diagrams.aws.analytics.KinesisVideoStreams** +- **diagrams.aws.analytics.Kinesis** +- **diagrams.aws.analytics.LakeFormation** +- **diagrams.aws.analytics.ManagedStreamingForKafka** +- **diagrams.aws.analytics.Quicksight** +- **diagrams.aws.analytics.RedshiftDenseComputeNode** +- **diagrams.aws.analytics.RedshiftDenseStorageNode** +- **diagrams.aws.analytics.Redshift** + +## aws.compute + +- **diagrams.aws.compute.ApplicationAutoScaling**, **AutoScaling** (alias) +- **diagrams.aws.compute.Batch** +- **diagrams.aws.compute.Compute** +- **diagrams.aws.compute.EC2ContainerRegistry**, **ECR** (alias) +- **diagrams.aws.compute.EC2** +- **diagrams.aws.compute.ElasticBeanstalk**, **EB** (alias) +- **diagrams.aws.compute.ElasticContainerService**, **ECS** (alias) +- **diagrams.aws.compute.ElasticKubernetesService**, **EKS** (alias) +- **diagrams.aws.compute.Fargate** +- **diagrams.aws.compute.Lambda** +- **diagrams.aws.compute.Lightsail** +- **diagrams.aws.compute.Outposts** +- **diagrams.aws.compute.ServerlessApplicationRepository**, **SAR** (alias) +- **diagrams.aws.compute.ThinkboxDeadline** +- **diagrams.aws.compute.ThinkboxDraft** +- **diagrams.aws.compute.ThinkboxFrost** +- **diagrams.aws.compute.ThinkboxKrakatoa** +- **diagrams.aws.compute.ThinkboxSequoia** +- **diagrams.aws.compute.ThinkboxStoke** +- **diagrams.aws.compute.ThinkboxXmesh** +- **diagrams.aws.compute.VmwareCloudOnAWS** + ## aws.database - **diagrams.aws.database.Aurora** - **diagrams.aws.database.DatabaseMigrationService**, **DMS** (alias) - **diagrams.aws.database.Database**, **DB** (alias) - **diagrams.aws.database.DocumentdbMongodbCompatibility**, **DocumentDB** (alias) +- **diagrams.aws.database.DynamodbDax**, **DAX** (alias) +- **diagrams.aws.database.DynamodbGlobalSecondaryIndex**, **DynamodbGSI** (alias) +- **diagrams.aws.database.DynamodbTable** - **diagrams.aws.database.Dynamodb**, **DDB** (alias) - **diagrams.aws.database.Elasticache**, **ElastiCache** (alias) - **diagrams.aws.database.Neptune** @@ -20,27 +73,29 @@ Node classes list of aws provider. - **diagrams.aws.database.Redshift** - **diagrams.aws.database.Timestream** -## aws.security +## aws.devtools -- **diagrams.aws.security.Artifact** -- **diagrams.aws.security.CertificateManager**, **ACM** (alias) -- **diagrams.aws.security.CloudDirectory** -- **diagrams.aws.security.Cloudhsm**, **CloudHSM** (alias) -- **diagrams.aws.security.Cognito** -- **diagrams.aws.security.DirectoryService**, **DS** (alias) -- **diagrams.aws.security.FirewallManager**, **FMS** (alias) -- **diagrams.aws.security.Guardduty** -- **diagrams.aws.security.IdentityAndAccessManagementIam**, **IAM** (alias) -- **diagrams.aws.security.Inspector** -- **diagrams.aws.security.KeyManagementService**, **KMS** (alias) -- **diagrams.aws.security.Macie** -- **diagrams.aws.security.ResourceAccessManager**, **RAM** (alias) -- **diagrams.aws.security.SecretsManager** -- **diagrams.aws.security.SecurityHub** -- **diagrams.aws.security.SecurityIdentityAndCompliance** -- **diagrams.aws.security.Shield** -- **diagrams.aws.security.SingleSignOn** -- **diagrams.aws.security.WAF** +- **diagrams.aws.devtools.CloudDevelopmentKit** +- **diagrams.aws.devtools.Cloud9** +- **diagrams.aws.devtools.Codebuild** +- **diagrams.aws.devtools.Codecommit** +- **diagrams.aws.devtools.Codedeploy** +- **diagrams.aws.devtools.Codepipeline** +- **diagrams.aws.devtools.Codestar** +- **diagrams.aws.devtools.CommandLineInterface**, **CLI** (alias) +- **diagrams.aws.devtools.DeveloperTools**, **DevTools** (alias) +- **diagrams.aws.devtools.ToolsAndSdks** +- **diagrams.aws.devtools.XRay** + +## aws.engagement + +- **diagrams.aws.engagement.Connect** +- **diagrams.aws.engagement.Pinpoint** +- **diagrams.aws.engagement.SimpleEmailServiceSes**, **SES** (alias) + +## aws.game + +- **diagrams.aws.game.Gamelift** ## aws.general @@ -67,82 +122,6 @@ Node classes list of aws provider. - **diagrams.aws.integration.SimpleQueueServiceSqs**, **SQS** (alias) - **diagrams.aws.integration.StepFunctions**, **SF** (alias) -## aws.robotics - -- **diagrams.aws.robotics.RobomakerSimulator** -- **diagrams.aws.robotics.Robomaker** -- **diagrams.aws.robotics.Robotics** - -## aws.network - -- **diagrams.aws.network.APIGateway** -- **diagrams.aws.network.AppMesh** -- **diagrams.aws.network.ClientVpn** -- **diagrams.aws.network.CloudMap** -- **diagrams.aws.network.CloudFront**, **CF** (alias) -- **diagrams.aws.network.DirectConnect** -- **diagrams.aws.network.ElasticLoadBalancing**, **ELB** (alias) -- **diagrams.aws.network.Endpoint** -- **diagrams.aws.network.GlobalAccelerator**, **GAX** (alias) -- **diagrams.aws.network.InternetGateway** -- **diagrams.aws.network.Nacl** -- **diagrams.aws.network.NATGateway** -- **diagrams.aws.network.NetworkingAndContentDelivery** -- **diagrams.aws.network.PrivateSubnet** -- **diagrams.aws.network.Privatelink** -- **diagrams.aws.network.PublicSubnet** -- **diagrams.aws.network.Route53** -- **diagrams.aws.network.RouteTable** -- **diagrams.aws.network.SiteToSiteVpn** -- **diagrams.aws.network.TransitGateway** -- **diagrams.aws.network.VPCPeering** -- **diagrams.aws.network.VPCRouter** -- **diagrams.aws.network.VPC** - -## aws.management - -- **diagrams.aws.management.AutoScaling** -- **diagrams.aws.management.Cloudformation** -- **diagrams.aws.management.Cloudtrail** -- **diagrams.aws.management.Cloudwatch** -- **diagrams.aws.management.Codeguru** -- **diagrams.aws.management.CommandLineInterface** -- **diagrams.aws.management.Config** -- **diagrams.aws.management.ControlTower** -- **diagrams.aws.management.LicenseManager** -- **diagrams.aws.management.ManagedServices** -- **diagrams.aws.management.ManagementConsole** -- **diagrams.aws.management.Opsworks** -- **diagrams.aws.management.Organizations** -- **diagrams.aws.management.ServiceCatalog** -- **diagrams.aws.management.SystemsManagerParameterStore**, **ParameterStore** (alias) -- **diagrams.aws.management.SystemsManager**, **SSM** (alias) -- **diagrams.aws.management.TrustedAdvisor** -- **diagrams.aws.management.WellArchitectedTool** - -## aws.game - -- **diagrams.aws.game.Gamelift** - -## aws.storage - -- **diagrams.aws.storage.Backup** -- **diagrams.aws.storage.CloudendureDisasterRecovery**, **CDR** (alias) -- **diagrams.aws.storage.EFSInfrequentaccessPrimaryBg** -- **diagrams.aws.storage.EFSStandardPrimaryBg** -- **diagrams.aws.storage.ElasticBlockStoreEBS**, **EBS** (alias) -- **diagrams.aws.storage.ElasticFileSystemEFS**, **EFS** (alias) -- **diagrams.aws.storage.FsxForLustre** -- **diagrams.aws.storage.FsxForWindowsFileServer** -- **diagrams.aws.storage.Fsx**, **FSx** (alias) -- **diagrams.aws.storage.S3Glacier** -- **diagrams.aws.storage.SimpleStorageServiceS3**, **S3** (alias) -- **diagrams.aws.storage.SnowballEdge** -- **diagrams.aws.storage.Snowball** -- **diagrams.aws.storage.Snowmobile** -- **diagrams.aws.storage.StorageGateway** -- **diagrams.aws.storage.Storage** - ## aws.iot - **diagrams.aws.iot.Freertos**, **FreeRTOS** (alias) @@ -168,49 +147,54 @@ Node classes list of aws provider. - **diagrams.aws.iot.IotThingsGraph** - **diagrams.aws.iot.IotTopic** -## aws.engagement +## aws.management -- **diagrams.aws.engagement.Connect** -- **diagrams.aws.engagement.Pinpoint** -- **diagrams.aws.engagement.SimpleEmailServiceSes**, **SES** (alias) +- **diagrams.aws.management.AutoScaling** +- **diagrams.aws.management.Cloudformation** +- **diagrams.aws.management.Cloudtrail** +- **diagrams.aws.management.Cloudwatch** +- **diagrams.aws.management.Codeguru** +- **diagrams.aws.management.CommandLineInterface** +- **diagrams.aws.management.Config** +- **diagrams.aws.management.ControlTower** +- **diagrams.aws.management.LicenseManager** +- **diagrams.aws.management.ManagedServices** +- **diagrams.aws.management.ManagementConsole** +- **diagrams.aws.management.Opsworks** +- **diagrams.aws.management.Organizations** +- **diagrams.aws.management.ServiceCatalog** +- **diagrams.aws.management.SystemsManagerParameterStore**, **ParameterStore** (alias) +- **diagrams.aws.management.SystemsManager**, **SSM** (alias) +- **diagrams.aws.management.TrustedAdvisor** +- **diagrams.aws.management.WellArchitectedTool** -## aws.compute +## aws.media -- **diagrams.aws.compute.ApplicationAutoScaling**, **AutoScaling** (alias) -- **diagrams.aws.compute.Batch** -- **diagrams.aws.compute.Compute** -- **diagrams.aws.compute.EC2ContainerRegistry**, **ECR** (alias) -- **diagrams.aws.compute.EC2** -- **diagrams.aws.compute.ElasticBeanstalk**, **EB** (alias) -- **diagrams.aws.compute.ElasticContainerService**, **ECS** (alias) -- **diagrams.aws.compute.ElasticKubernetesService**, **EKS** (alias) -- **diagrams.aws.compute.Fargate** -- **diagrams.aws.compute.Lambda** -- **diagrams.aws.compute.Lightsail** -- **diagrams.aws.compute.Outposts** -- **diagrams.aws.compute.ServerlessApplicationRepository**, **SAR** (alias) -- **diagrams.aws.compute.ThinkboxDeadline** -- **diagrams.aws.compute.ThinkboxDraft** -- **diagrams.aws.compute.ThinkboxFrost** -- **diagrams.aws.compute.ThinkboxKrakatoa** -- **diagrams.aws.compute.ThinkboxSequoia** -- **diagrams.aws.compute.ThinkboxStoke** -- **diagrams.aws.compute.ThinkboxXmesh** -- **diagrams.aws.compute.VmwareCloudOnAWS** +- **diagrams.aws.media.ElasticTranscoder** +- **diagrams.aws.media.ElementalConductor** +- **diagrams.aws.media.ElementalDelta** +- **diagrams.aws.media.ElementalLive** +- **diagrams.aws.media.ElementalMediaconnect** +- **diagrams.aws.media.ElementalMediaconvert** +- **diagrams.aws.media.ElementalMedialive** +- **diagrams.aws.media.ElementalMediapackage** +- **diagrams.aws.media.ElementalMediastore** +- **diagrams.aws.media.ElementalMediatailor** +- **diagrams.aws.media.ElementalServer** -## aws.devtools +## aws.migration -- **diagrams.aws.devtools.CloudDevelopmentKit** -- **diagrams.aws.devtools.Cloud9** -- **diagrams.aws.devtools.Codebuild** -- **diagrams.aws.devtools.Codecommit** -- **diagrams.aws.devtools.Codedeploy** -- **diagrams.aws.devtools.Codepipeline** -- **diagrams.aws.devtools.Codestar** -- **diagrams.aws.devtools.CommandLineInterface**, **CLI** (alias) -- **diagrams.aws.devtools.DeveloperTools**, **DevTools** (alias) -- **diagrams.aws.devtools.ToolsAndSdks** -- **diagrams.aws.devtools.XRay** +- **diagrams.aws.migration.ApplicationDiscoveryService**, **ADS** (alias) +- **diagrams.aws.migration.CloudendureMigration**, **CEM** (alias) +- **diagrams.aws.migration.DatabaseMigrationService**, **DMS** (alias) +- **diagrams.aws.migration.Datasync** +- **diagrams.aws.migration.MigrationAndTransfer**, **MAT** (alias) +- **diagrams.aws.migration.MigrationHub** +- **diagrams.aws.migration.ServerMigrationService**, **SMS** (alias) +- **diagrams.aws.migration.SnowballEdge** +- **diagrams.aws.migration.Snowball** +- **diagrams.aws.migration.Snowmobile** +- **diagrams.aws.migration.TransferForSftp** ## aws.ml @@ -234,56 +218,80 @@ Node classes list of aws provider. - **diagrams.aws.ml.Transcribe** - **diagrams.aws.ml.Translate** -## aws.migration +## aws.network -- **diagrams.aws.migration.ApplicationDiscoveryService**, **ADS** (alias) -- **diagrams.aws.migration.CloudendureMigration**, **CEM** (alias) -- **diagrams.aws.migration.DatabaseMigrationService**, **DMS** (alias) -- **diagrams.aws.migration.Datasync** -- **diagrams.aws.migration.MigrationAndTransfer**, **MAT** (alias) -- **diagrams.aws.migration.MigrationHub** -- **diagrams.aws.migration.ServerMigrationService**, **SMS** (alias) -- **diagrams.aws.migration.SnowballEdge** -- **diagrams.aws.migration.Snowball** -- **diagrams.aws.migration.Snowmobile** -- **diagrams.aws.migration.TransferForSftp** +- **diagrams.aws.network.APIGateway** +- **diagrams.aws.network.AppMesh** +- **diagrams.aws.network.ClientVpn** +- **diagrams.aws.network.CloudMap** +- **diagrams.aws.network.CloudFront**, **CF** (alias) +- **diagrams.aws.network.DirectConnect** +- **diagrams.aws.network.ElasticLoadBalancing**, **ELB** (alias) +- **diagrams.aws.network.Endpoint** +- **diagrams.aws.network.GlobalAccelerator**, **GAX** (alias) +- **diagrams.aws.network.InternetGateway** +- **diagrams.aws.network.Nacl** +- **diagrams.aws.network.NATGateway** +- **diagrams.aws.network.NetworkingAndContentDelivery** +- **diagrams.aws.network.PrivateSubnet** +- **diagrams.aws.network.Privatelink** +- **diagrams.aws.network.PublicSubnet** +- **diagrams.aws.network.Route53** +- **diagrams.aws.network.RouteTable** +- **diagrams.aws.network.SiteToSiteVpn** +- **diagrams.aws.network.TransitGateway** +- **diagrams.aws.network.VPCPeering** +- **diagrams.aws.network.VPCRouter** +- **diagrams.aws.network.VPC** -## aws.analytics +## aws.robotics -- **diagrams.aws.analytics.Analytics** -- **diagrams.aws.analytics.Athena** -- **diagrams.aws.analytics.CloudsearchSearchDocuments** -- **diagrams.aws.analytics.Cloudsearch** -- **diagrams.aws.analytics.DataPipeline** -- **diagrams.aws.analytics.ElasticsearchService**, **ES** (alias) -- **diagrams.aws.analytics.EMRCluster** -- **diagrams.aws.analytics.EMRHdfsCluster** -- **diagrams.aws.analytics.EMR** -- **diagrams.aws.analytics.GlueCrawlers** -- **diagrams.aws.analytics.GlueDataCatalog** -- **diagrams.aws.analytics.Glue** -- **diagrams.aws.analytics.KinesisDataAnalytics** -- **diagrams.aws.analytics.KinesisDataFirehose** -- **diagrams.aws.analytics.KinesisDataStreams** -- **diagrams.aws.analytics.KinesisVideoStreams** -- **diagrams.aws.analytics.Kinesis** -- **diagrams.aws.analytics.LakeFormation** -- **diagrams.aws.analytics.ManagedStreamingForKafka** -- **diagrams.aws.analytics.Quicksight** -- **diagrams.aws.analytics.RedshiftDenseComputeNode** -- **diagrams.aws.analytics.RedshiftDenseStorageNode** -- **diagrams.aws.analytics.Redshift** +- **diagrams.aws.robotics.RobomakerSimulator** +- **diagrams.aws.robotics.Robomaker** +- **diagrams.aws.robotics.Robotics** -## aws.media +## aws.security -- **diagrams.aws.media.ElasticTranscoder** -- **diagrams.aws.media.ElementalConductor** -- **diagrams.aws.media.ElementalDelta** -- **diagrams.aws.media.ElementalLive** -- **diagrams.aws.media.ElementalMediaconnect** -- **diagrams.aws.media.ElementalMediaconvert** -- **diagrams.aws.media.ElementalMedialive** -- **diagrams.aws.media.ElementalMediapackage** -- **diagrams.aws.media.ElementalMediastore** -- **diagrams.aws.media.ElementalMediatailor** -- **diagrams.aws.media.ElementalServer** +- **diagrams.aws.security.Artifact** +- **diagrams.aws.security.CertificateManager**, **ACM** (alias) +- **diagrams.aws.security.CloudDirectory** +- **diagrams.aws.security.Cloudhsm**, **CloudHSM** (alias) +- **diagrams.aws.security.Cognito** +- **diagrams.aws.security.Detective** +- **diagrams.aws.security.DirectoryService**, **DS** (alias) +- **diagrams.aws.security.FirewallManager**, **FMS** (alias) +- **diagrams.aws.security.Guardduty** +- **diagrams.aws.security.IdentityAndAccessManagementIamAccessAnalyzer**, **IAMAccessAnalyzer** (alias) +- **diagrams.aws.security.IdentityAndAccessManagementIamAWSSts**, **IAMAWSSts** (alias) +- **diagrams.aws.security.IdentityAndAccessManagementIamPermissions**, **IAMPermissions** (alias) +- **diagrams.aws.security.IdentityAndAccessManagementIamRole**, **IAMRole** (alias) +- **diagrams.aws.security.IdentityAndAccessManagementIam**, **IAM** (alias) +- **diagrams.aws.security.Inspector** +- **diagrams.aws.security.KeyManagementService**, **KMS** (alias) +- **diagrams.aws.security.Macie** +- **diagrams.aws.security.ResourceAccessManager**, **RAM** (alias) +- **diagrams.aws.security.SecretsManager** +- **diagrams.aws.security.SecurityHub** +- **diagrams.aws.security.SecurityIdentityAndCompliance** +- **diagrams.aws.security.Shield** +- **diagrams.aws.security.SingleSignOn** +- **diagrams.aws.security.WAF** + +## aws.storage + +- **diagrams.aws.storage.Backup** +- **diagrams.aws.storage.CloudendureDisasterRecovery**, **CDR** (alias) +- **diagrams.aws.storage.EFSInfrequentaccessPrimaryBg** +- **diagrams.aws.storage.EFSStandardPrimaryBg** +- **diagrams.aws.storage.ElasticBlockStoreEBS**, **EBS** (alias) +- **diagrams.aws.storage.ElasticFileSystemEFS**, **EFS** (alias) +- **diagrams.aws.storage.FsxForLustre** +- **diagrams.aws.storage.FsxForWindowsFileServer** +- **diagrams.aws.storage.Fsx**, **FSx** (alias) +- **diagrams.aws.storage.S3Glacier** +- **diagrams.aws.storage.SimpleStorageServiceS3**, **S3** (alias) +- **diagrams.aws.storage.SnowballEdge** +- **diagrams.aws.storage.Snowball** +- **diagrams.aws.storage.Snowmobile** +- **diagrams.aws.storage.StorageGateway** +- **diagrams.aws.storage.Storage** diff --git a/docs/nodes/gcp.md b/docs/nodes/gcp.md index 20c56453..91032ce3 100644 --- a/docs/nodes/gcp.md +++ b/docs/nodes/gcp.md @@ -5,53 +5,18 @@ title: GCP Node classes list of gcp provider. -## gcp.database - -- **diagrams.gcp.database.Bigtable**, **BigTable** (alias) -- **diagrams.gcp.database.Datastore** -- **diagrams.gcp.database.Firestore** -- **diagrams.gcp.database.Memorystore** -- **diagrams.gcp.database.Spanner** -- **diagrams.gcp.database.SQL** - -## gcp.security - -- **diagrams.gcp.security.Iam** -- **diagrams.gcp.security.IAP** -- **diagrams.gcp.security.KeyManagementService**, **KMS** (alias) -- **diagrams.gcp.security.ResourceManager** -- **diagrams.gcp.security.SecurityCommandCenter**, **SCC** (alias) -- **diagrams.gcp.security.SecurityScanner** - -## gcp.network - -- **diagrams.gcp.network.Armor** -- **diagrams.gcp.network.CDN** -- **diagrams.gcp.network.DedicatedInterconnect** -- **diagrams.gcp.network.DNS** -- **diagrams.gcp.network.ExternalIpAddresses** -- **diagrams.gcp.network.FirewallRules** -- **diagrams.gcp.network.LoadBalancing** -- **diagrams.gcp.network.NAT** -- **diagrams.gcp.network.Network** -- **diagrams.gcp.network.PartnerInterconnect** -- **diagrams.gcp.network.PremiumNetworkTier** -- **diagrams.gcp.network.Router** -- **diagrams.gcp.network.Routes** -- **diagrams.gcp.network.StandardNetworkTier** -- **diagrams.gcp.network.TrafficDirector** -- **diagrams.gcp.network.VirtualPrivateCloud**, **VPC** (alias) -- **diagrams.gcp.network.VPN** - -## gcp.storage - -- **diagrams.gcp.storage.Filestore** -- **diagrams.gcp.storage.PersistentDisk** -- **diagrams.gcp.storage.Storage**, **GCS** (alias) - -## gcp.iot +## gcp.analytics -- **diagrams.gcp.iot.IotCore** +- **diagrams.gcp.analytics.Bigquery**, **BigQuery** (alias) +- **diagrams.gcp.analytics.Composer** +- **diagrams.gcp.analytics.DataCatalog** +- **diagrams.gcp.analytics.DataFusion** +- **diagrams.gcp.analytics.Dataflow** +- **diagrams.gcp.analytics.Datalab** +- **diagrams.gcp.analytics.Dataprep** +- **diagrams.gcp.analytics.Dataproc** +- **diagrams.gcp.analytics.Genomics** +- **diagrams.gcp.analytics.Pubsub**, **PubSub** (alias) ## gcp.compute @@ -64,6 +29,15 @@ Node classes list of gcp provider. - **diagrams.gcp.compute.KubernetesEngine**, **GKE** (alias) - **diagrams.gcp.compute.Run** +## gcp.database + +- **diagrams.gcp.database.Bigtable**, **BigTable** (alias) +- **diagrams.gcp.database.Datastore** +- **diagrams.gcp.database.Firestore** +- **diagrams.gcp.database.Memorystore** +- **diagrams.gcp.database.Spanner** +- **diagrams.gcp.database.SQL** + ## gcp.devtools - **diagrams.gcp.devtools.Build** @@ -82,6 +56,14 @@ Node classes list of gcp provider. - **diagrams.gcp.devtools.ToolsForPowershell** - **diagrams.gcp.devtools.ToolsForVisualStudio** +## gcp.iot + +- **diagrams.gcp.iot.IotCore** + +## gcp.migration + +- **diagrams.gcp.migration.TransferAppliance** + ## gcp.ml - **diagrams.gcp.ml.AdvancedSolutionsLab** @@ -106,19 +88,37 @@ Node classes list of gcp provider. - **diagrams.gcp.ml.VideoIntelligenceAPI** - **diagrams.gcp.ml.VisionAPI** -## gcp.migration +## gcp.network -- **diagrams.gcp.migration.TransferAppliance** +- **diagrams.gcp.network.Armor** +- **diagrams.gcp.network.CDN** +- **diagrams.gcp.network.DedicatedInterconnect** +- **diagrams.gcp.network.DNS** +- **diagrams.gcp.network.ExternalIpAddresses** +- **diagrams.gcp.network.FirewallRules** +- **diagrams.gcp.network.LoadBalancing** +- **diagrams.gcp.network.NAT** +- **diagrams.gcp.network.Network** +- **diagrams.gcp.network.PartnerInterconnect** +- **diagrams.gcp.network.PremiumNetworkTier** +- **diagrams.gcp.network.Router** +- **diagrams.gcp.network.Routes** +- **diagrams.gcp.network.StandardNetworkTier** +- **diagrams.gcp.network.TrafficDirector** +- **diagrams.gcp.network.VirtualPrivateCloud**, **VPC** (alias) +- **diagrams.gcp.network.VPN** -## gcp.analytics +## gcp.security -- **diagrams.gcp.analytics.Bigquery**, **BigQuery** (alias) -- **diagrams.gcp.analytics.Composer** -- **diagrams.gcp.analytics.DataCatalog** -- **diagrams.gcp.analytics.DataFusion** -- **diagrams.gcp.analytics.Dataflow** -- **diagrams.gcp.analytics.Datalab** -- **diagrams.gcp.analytics.Dataprep** -- **diagrams.gcp.analytics.Dataproc** -- **diagrams.gcp.analytics.Genomics** -- **diagrams.gcp.analytics.Pubsub**, **PubSub** (alias) +- **diagrams.gcp.security.Iam** +- **diagrams.gcp.security.IAP** +- **diagrams.gcp.security.KeyManagementService**, **KMS** (alias) +- **diagrams.gcp.security.ResourceManager** +- **diagrams.gcp.security.SecurityCommandCenter**, **SCC** (alias) +- **diagrams.gcp.security.SecurityScanner** + +## gcp.storage + +- **diagrams.gcp.storage.Filestore** +- **diagrams.gcp.storage.PersistentDisk** +- **diagrams.gcp.storage.Storage**, **GCS** (alias) diff --git a/docs/nodes/k8s.md b/docs/nodes/k8s.md index b0050cbc..d52584d0 100644 --- a/docs/nodes/k8s.md +++ b/docs/nodes/k8s.md @@ -5,31 +5,41 @@ title: K8S Node classes list of k8s provider. -## k8s.rbac +## k8s.clusterconfig -- **diagrams.k8s.rbac.CRole**, **ClusterRole** (alias) -- **diagrams.k8s.rbac.CRB**, **ClusterRoleBinding** (alias) -- **diagrams.k8s.rbac.Group** -- **diagrams.k8s.rbac.RB**, **RoleBinding** (alias) -- **diagrams.k8s.rbac.Role** -- **diagrams.k8s.rbac.SA**, **ServiceAccount** (alias) -- **diagrams.k8s.rbac.User** +- **diagrams.k8s.clusterconfig.HPA**, **HorizontalPodAutoscaler** (alias) +- **diagrams.k8s.clusterconfig.Limits**, **LimitRange** (alias) +- **diagrams.k8s.clusterconfig.Quota** -## k8s.infra +## k8s.compute -- **diagrams.k8s.infra.ETCD** -- **diagrams.k8s.infra.Master** -- **diagrams.k8s.infra.Node** +- **diagrams.k8s.compute.Cronjob** +- **diagrams.k8s.compute.Deploy**, **Deployment** (alias) +- **diagrams.k8s.compute.DS**, **DaemonSet** (alias) +- **diagrams.k8s.compute.Job** +- **diagrams.k8s.compute.Pod** +- **diagrams.k8s.compute.RS**, **ReplicaSet** (alias) +- **diagrams.k8s.compute.STS**, **StatefulSet** (alias) -## k8s.podconfig +## k8s.controlplane -- **diagrams.k8s.podconfig.CM**, **ConfigMap** (alias) -- **diagrams.k8s.podconfig.Secret** +- **diagrams.k8s.controlplane.API**, **APIServer** (alias) +- **diagrams.k8s.controlplane.CCM** +- **diagrams.k8s.controlplane.CM**, **ControllerManager** (alias) +- **diagrams.k8s.controlplane.KProxy**, **KubeProxy** (alias) +- **diagrams.k8s.controlplane.Kubelet** +- **diagrams.k8s.controlplane.Sched**, **Scheduler** (alias) ## k8s.group - **diagrams.k8s.group.NS**, **Namespace** (alias) +## k8s.infra + +- **diagrams.k8s.infra.ETCD** +- **diagrams.k8s.infra.Master** +- **diagrams.k8s.infra.Node** + ## k8s.network - **diagrams.k8s.network.Ep**, **Endpoint** (alias) @@ -42,34 +52,24 @@ Node classes list of k8s provider. - **diagrams.k8s.others.CRD** - **diagrams.k8s.others.PSP** +## k8s.podconfig + +- **diagrams.k8s.podconfig.CM**, **ConfigMap** (alias) +- **diagrams.k8s.podconfig.Secret** + +## k8s.rbac + +- **diagrams.k8s.rbac.CRole**, **ClusterRole** (alias) +- **diagrams.k8s.rbac.CRB**, **ClusterRoleBinding** (alias) +- **diagrams.k8s.rbac.Group** +- **diagrams.k8s.rbac.RB**, **RoleBinding** (alias) +- **diagrams.k8s.rbac.Role** +- **diagrams.k8s.rbac.SA**, **ServiceAccount** (alias) +- **diagrams.k8s.rbac.User** + ## k8s.storage - **diagrams.k8s.storage.PV**, **PersistnetVolume** (alias) - **diagrams.k8s.storage.PVC**, **PersistentVolumeClaim** (alias) - **diagrams.k8s.storage.SC**, **StorageClass** (alias) - **diagrams.k8s.storage.Vol**, **Volume** (alias) - -## k8s.clusterconfig - -- **diagrams.k8s.clusterconfig.HPA**, **HorizontalPodAutoscaler** (alias) -- **diagrams.k8s.clusterconfig.Limits**, **LimitRange** (alias) -- **diagrams.k8s.clusterconfig.Quota** - -## k8s.controlplane - -- **diagrams.k8s.controlplane.API**, **APIServer** (alias) -- **diagrams.k8s.controlplane.CCM** -- **diagrams.k8s.controlplane.CM**, **ControllerManager** (alias) -- **diagrams.k8s.controlplane.KProxy**, **KubeProxy** (alias) -- **diagrams.k8s.controlplane.Kubelet** -- **diagrams.k8s.controlplane.Sched**, **Scheduler** (alias) - -## k8s.compute - -- **diagrams.k8s.compute.Cronjob** -- **diagrams.k8s.compute.Deploy**, **Deployment** (alias) -- **diagrams.k8s.compute.DS**, **DaemonSet** (alias) -- **diagrams.k8s.compute.Job** -- **diagrams.k8s.compute.Pod** -- **diagrams.k8s.compute.RS**, **ReplicaSet** (alias) -- **diagrams.k8s.compute.STS**, **StatefulSet** (alias) diff --git a/docs/nodes/oci.md b/docs/nodes/oci.md index 8f30f99f..568fe9ab 100644 --- a/docs/nodes/oci.md +++ b/docs/nodes/oci.md @@ -5,17 +5,14 @@ title: OCI Node classes list of oci provider. -## oci.database - -- **diagrams.oci.database.DatabaseserviceGrey**, **DBServiceGrey** (alias) -- **diagrams.oci.database.Databaseservice**, **DBService** (alias) - -## oci.devops +## oci.compute -- **diagrams.oci.devops.ApiserviceGrey** -- **diagrams.oci.devops.Apiservice** -- **diagrams.oci.devops.ResourcemgmtGrey** -- **diagrams.oci.devops.Resourcemgmt** +- **diagrams.oci.compute.BmGrey**, **BareMetalGrey** (alias) +- **diagrams.oci.compute.Bm**, **BareMetal** (alias) +- **diagrams.oci.compute.ContainerGrey** +- **diagrams.oci.compute.Container** +- **diagrams.oci.compute.VmGrey**, **VirtualMachineGrey** (alias) +- **diagrams.oci.compute.Vm**, **VirtualMachine** (alias) ## oci.connectivity @@ -30,28 +27,51 @@ Node classes list of oci provider. - **diagrams.oci.connectivity.VpnGrey** - **diagrams.oci.connectivity.Vpn** -## oci.security +## oci.database -- **diagrams.oci.security.AuditGrey** -- **diagrams.oci.security.Audit** -- **diagrams.oci.security.CompartmentsGrey** -- **diagrams.oci.security.Compartments** -- **diagrams.oci.security.DdosGrey** -- **diagrams.oci.security.Ddos** -- **diagrams.oci.security.EncryptionGrey** -- **diagrams.oci.security.Encryption** -- **diagrams.oci.security.GroupsGrey** -- **diagrams.oci.security.Groups** -- **diagrams.oci.security.IdAccessGrey** -- **diagrams.oci.security.IdAccess** -- **diagrams.oci.security.KeymgmtGrey** -- **diagrams.oci.security.Keymgmt** -- **diagrams.oci.security.OcidGrey** -- **diagrams.oci.security.Ocid** -- **diagrams.oci.security.PoliciesGrey** -- **diagrams.oci.security.Policies** -- **diagrams.oci.security.TaggingGrey** -- **diagrams.oci.security.Tagging** +- **diagrams.oci.database.DatabaseserviceGrey**, **DBServiceGrey** (alias) +- **diagrams.oci.database.Databaseservice**, **DBService** (alias) + +## oci.devops + +- **diagrams.oci.devops.ApiserviceGrey** +- **diagrams.oci.devops.Apiservice** +- **diagrams.oci.devops.ResourcemgmtGrey** +- **diagrams.oci.devops.Resourcemgmt** + +## oci.edge + +- **diagrams.oci.edge.CdnGrey** +- **diagrams.oci.edge.Cdn** +- **diagrams.oci.edge.DnsGrey** +- **diagrams.oci.edge.Dns** +- **diagrams.oci.edge.EmaildeliveryGrey** +- **diagrams.oci.edge.Emaildelivery** +- **diagrams.oci.edge.WafGrey** +- **diagrams.oci.edge.Waf** + +## oci.monitoring + +- **diagrams.oci.monitoring.AlarmGrey** +- **diagrams.oci.monitoring.Alarm** +- **diagrams.oci.monitoring.EventGrey** +- **diagrams.oci.monitoring.Event** +- **diagrams.oci.monitoring.HealthcheckGrey** +- **diagrams.oci.monitoring.Healthcheck** +- **diagrams.oci.monitoring.LoggingGrey** +- **diagrams.oci.monitoring.Logging** +- **diagrams.oci.monitoring.NotificationsGrey** +- **diagrams.oci.monitoring.Notifications** +- **diagrams.oci.monitoring.QueuingGrey** +- **diagrams.oci.monitoring.Queuing** +- **diagrams.oci.monitoring.SearchGrey** +- **diagrams.oci.monitoring.Search** +- **diagrams.oci.monitoring.StreamingGrey** +- **diagrams.oci.monitoring.Streaming** +- **diagrams.oci.monitoring.TelemetryGrey** +- **diagrams.oci.monitoring.Telemetry** +- **diagrams.oci.monitoring.WorkflowGrey** +- **diagrams.oci.monitoring.Workflow** ## oci.network @@ -72,16 +92,28 @@ Node classes list of oci provider. - **diagrams.oci.network.VcloudnetworkGrey** - **diagrams.oci.network.Vcloudnetwork** -## oci.edge +## oci.security -- **diagrams.oci.edge.CdnGrey** -- **diagrams.oci.edge.Cdn** -- **diagrams.oci.edge.DnsGrey** -- **diagrams.oci.edge.Dns** -- **diagrams.oci.edge.EmaildeliveryGrey** -- **diagrams.oci.edge.Emaildelivery** -- **diagrams.oci.edge.WafGrey** -- **diagrams.oci.edge.Waf** +- **diagrams.oci.security.AuditGrey** +- **diagrams.oci.security.Audit** +- **diagrams.oci.security.CompartmentsGrey** +- **diagrams.oci.security.Compartments** +- **diagrams.oci.security.DdosGrey** +- **diagrams.oci.security.Ddos** +- **diagrams.oci.security.EncryptionGrey** +- **diagrams.oci.security.Encryption** +- **diagrams.oci.security.GroupsGrey** +- **diagrams.oci.security.Groups** +- **diagrams.oci.security.IdAccessGrey** +- **diagrams.oci.security.IdAccess** +- **diagrams.oci.security.KeymgmtGrey** +- **diagrams.oci.security.Keymgmt** +- **diagrams.oci.security.OcidGrey** +- **diagrams.oci.security.Ocid** +- **diagrams.oci.security.PoliciesGrey** +- **diagrams.oci.security.Policies** +- **diagrams.oci.security.TaggingGrey** +- **diagrams.oci.security.Tagging** ## oci.storage @@ -99,35 +131,3 @@ Node classes list of oci provider. - **diagrams.oci.storage.Objectstorage** - **diagrams.oci.storage.StoragegatewayGrey** - **diagrams.oci.storage.Storagegateway** - -## oci.compute - -- **diagrams.oci.compute.BmGrey**, **BareMetalGrey** (alias) -- **diagrams.oci.compute.Bm**, **BareMetal** (alias) -- **diagrams.oci.compute.ContainerGrey** -- **diagrams.oci.compute.Container** -- **diagrams.oci.compute.VmGrey**, **VirtualMachineGrey** (alias) -- **diagrams.oci.compute.Vm**, **VirtualMachine** (alias) - -## oci.monitoring - -- **diagrams.oci.monitoring.AlarmGrey** -- **diagrams.oci.monitoring.Alarm** -- **diagrams.oci.monitoring.EventGrey** -- **diagrams.oci.monitoring.Event** -- **diagrams.oci.monitoring.HealthcheckGrey** -- **diagrams.oci.monitoring.Healthcheck** -- **diagrams.oci.monitoring.LoggingGrey** -- **diagrams.oci.monitoring.Logging** -- **diagrams.oci.monitoring.NotificationsGrey** -- **diagrams.oci.monitoring.Notifications** -- **diagrams.oci.monitoring.QueuingGrey** -- **diagrams.oci.monitoring.Queuing** -- **diagrams.oci.monitoring.SearchGrey** -- **diagrams.oci.monitoring.Search** -- **diagrams.oci.monitoring.StreamingGrey** -- **diagrams.oci.monitoring.Streaming** -- **diagrams.oci.monitoring.TelemetryGrey** -- **diagrams.oci.monitoring.Telemetry** -- **diagrams.oci.monitoring.WorkflowGrey** -- **diagrams.oci.monitoring.Workflow** diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index 1100283b..7b789db3 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -66,27 +66,50 @@ Node classes list of onprem provider. - **diagrams.onprem.database.Postgresql**, **PostgreSQL** (alias) - **diagrams.onprem.database.Scylla** -## onprem.security +## onprem.etl -- **diagrams.onprem.security.Trivy** -- **diagrams.onprem.security.Vault** +- **diagrams.onprem.etl.Embulk** -## onprem.ci +## onprem.gitops -- **diagrams.onprem.ci.Circleci**, **CircleCI** (alias) -- **diagrams.onprem.ci.Gitlabci**, **GitlabCI** (alias) -- **diagrams.onprem.ci.Jenkins** -- **diagrams.onprem.ci.Teamcity**, **TC** (alias) -- **diagrams.onprem.ci.Travisci**, **TravisCI** (alias) +- **diagrams.onprem.gitops.Argocd**, **ArgoCD** (alias) +- **diagrams.onprem.gitops.Flagger** +- **diagrams.onprem.gitops.Flux** -## onprem.etl +## onprem.iac -- **diagrams.onprem.etl.Embulk** +- **diagrams.onprem.iac.Ansible** +- **diagrams.onprem.iac.Awx** +- **diagrams.onprem.iac.Terraform** + +## onprem.inmemory + +- **diagrams.onprem.inmemory.Aerospike** +- **diagrams.onprem.inmemory.Hazelcast** +- **diagrams.onprem.inmemory.Memcached** +- **diagrams.onprem.inmemory.Redis** + +## onprem.logging + +- **diagrams.onprem.logging.Fluentbit**, **FluentBit** (alias) +- **diagrams.onprem.logging.Fluentd** +- **diagrams.onprem.logging.Logstash**, **LogStash** (alias) +- **diagrams.onprem.logging.Loki** ## onprem.mlops - **diagrams.onprem.mlops.Polyaxon** +## onprem.monitoring + +- **diagrams.onprem.monitoring.Datadog** +- **diagrams.onprem.monitoring.Grafana** +- **diagrams.onprem.monitoring.Kibana** +- **diagrams.onprem.monitoring.Prometheus** +- **diagrams.onprem.monitoring.Sentry** +- **diagrams.onprem.monitoring.Splunk** +- **diagrams.onprem.monitoring.Thanos** + ## onprem.network - **diagrams.onprem.network.Apache** @@ -107,33 +130,23 @@ Node classes list of onprem provider. - **diagrams.onprem.network.Vyos**, **VyOS** (alias) - **diagrams.onprem.network.Zookeeper** -## onprem.inmemory +## onprem.queue -- **diagrams.onprem.inmemory.Aerospike** -- **diagrams.onprem.inmemory.Hazelcast** -- **diagrams.onprem.inmemory.Memcached** -- **diagrams.onprem.inmemory.Redis** +- **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias) +- **diagrams.onprem.queue.Celery** +- **diagrams.onprem.queue.Kafka** +- **diagrams.onprem.queue.Rabbitmq**, **RabbitMQ** (alias) +- **diagrams.onprem.queue.Zeromq**, **ZeroMQ** (alias) ## onprem.search - **diagrams.onprem.search.Elasticsearch** - **diagrams.onprem.search.Solr** -## onprem.container - -- **diagrams.onprem.container.Docker** -- **diagrams.onprem.container.Rkt**, **RKT** (alias) - -## onprem.iac - -- **diagrams.onprem.iac.Ansible** -- **diagrams.onprem.iac.Awx** -- **diagrams.onprem.iac.Terraform** - -## onprem.compute +## onprem.security -- **diagrams.onprem.compute.Nomad** -- **diagrams.onprem.compute.Server** +- **diagrams.onprem.security.Trivy** +- **diagrams.onprem.security.Vault** ## onprem.vcs @@ -147,56 +160,3 @@ Node classes list of onprem provider. - **diagrams.onprem.workflow.Digdag** - **diagrams.onprem.workflow.Kubeflow**, **KubeFlow** (alias) - **diagrams.onprem.workflow.Nifi**, **NiFi** (alias) - -## onprem.queue - -- **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias) -- **diagrams.onprem.queue.Celery** -- **diagrams.onprem.queue.Kafka** -- **diagrams.onprem.queue.Rabbitmq**, **RabbitMQ** (alias) -- **diagrams.onprem.queue.Zeromq**, **ZeroMQ** (alias) - -## onprem.cd - -- **diagrams.onprem.cd.Spinnaker** - -## onprem.gitops - -- **diagrams.onprem.gitops.Argocd**, **ArgoCD** (alias) -- **diagrams.onprem.gitops.Flagger** -- **diagrams.onprem.gitops.Flux** - -## onprem.monitoring - -- **diagrams.onprem.monitoring.Datadog** -- **diagrams.onprem.monitoring.Grafana** -- **diagrams.onprem.monitoring.Kibana** -- **diagrams.onprem.monitoring.Prometheus** -- **diagrams.onprem.monitoring.Sentry** -- **diagrams.onprem.monitoring.Splunk** -- **diagrams.onprem.monitoring.Thanos** - -## onprem.client - -- **diagrams.onprem.client.Client** -- **diagrams.onprem.client.User** -- **diagrams.onprem.client.Users** - -## onprem.logging - -- **diagrams.onprem.logging.Fluentbit**, **FluentBit** (alias) -- **diagrams.onprem.logging.Fluentd** -- **diagrams.onprem.logging.Logstash**, **LogStash** (alias) -- **diagrams.onprem.logging.Loki** - -## onprem.analytics - -- **diagrams.onprem.analytics.Beam** -- **diagrams.onprem.analytics.Flink** -- **diagrams.onprem.analytics.Hadoop** -- **diagrams.onprem.analytics.Hive** -- **diagrams.onprem.analytics.Metabase** -- **diagrams.onprem.analytics.Norikra** -- **diagrams.onprem.analytics.Spark** -- **diagrams.onprem.analytics.Storm** -- **diagrams.onprem.analytics.Tableau** diff --git a/resources/aws/database/dynamodb-dax.png b/resources/aws/database/dynamodb-dax.png new file mode 100755 index 0000000000000000000000000000000000000000..5f923c6f40580fe1b1f54f0c587c9fb931c0b842 GIT binary patch literal 10522 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%0At@k#Py5hvMyK8#m5}m!mm_ z*Tz=+44@Ss>)T^Eg7YhGywsC_t3jjUj!+p~mw+LB?*pZbo$=#?y&$CgNwmWF?R+-6 zXsIkC7V4^c$@{|ZfyQjOowy3bE_x}pODp7<%>%cEW9Au5ss-!&J8>COi&|K)cEXZ< za_m&qsODHJZ)ksx6DZif8@wMVxB>OOxqkFwY4H9%E7YtY82+t(yW6`n1ip0{Q)&b* z9zOGc+Ka7V+hNlBjbMnwU+H^tbr3)&q9|pYn$G@g@Xsx*$`a@5?PZZ|&pSqrb}7Y{ z5u8S88B!%+M3{hF@q6agFF;8eVJMbEM1-p*bzVY*w0S*WmW{-{Y|RYC=|Z(}OJg+_ zza{WiLHgP=xlhb8n4WM440~GoD{GlIFaLs@XEBM9%xZEiVLvpPbFt-ESN( z73B2(@Q}UH({!49?YLmaT`iTRt~Flr4G1yU+4^-VlcT z8QL(~ZAVXh@P~#}Z~n5(9tLCoO*Vun3^G;Z`E%JOgB=NZL^?a*Pkdcv1P$>%{XQ4E za=3Z@j*!J*OUCsKP6+L>l$Mps^yMA~`@SnzjI`;M9!R!4572X(eoTNJ>);M>ftpDGWy)F}?GlgbV!)l*~a*LSJ0|Bko1Wx~6$pV1bo+ z_ZhJN5qD(AQVBoLFwP0rx8Yd(ylnR%+#ZVkq|Ur!8H__PF>t|Cc2A6PZEUqDaj!xa kKXx$e6A!o`kb?vNfmkz7eX~jMn@7m)TLw3AH|)dy2i?p!SpWb4 literal 0 HcmV?d00001 diff --git a/resources/aws/database/dynamodb-global-secondary-index.png b/resources/aws/database/dynamodb-global-secondary-index.png new file mode 100644 index 0000000000000000000000000000000000000000..ca41aebd91e78fe586021c3100d4885425c4de20 GIT binary patch literal 1166 zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST~P>fhE+_#WAE}&YQdbdAG00IXu*; zur5mTceoU}b=9`jMQNUl>0xU^W5Xvci&)c`v#l6(?uNrzCY{axBPOD zJnQDSWxG@D($C3vH$@w$PxGwTXycM|{{=cMZmcSP{_p7a%Eaz@tVv%JUhm64z{T|N_T@dv;r+X|+aI5G zpL<5-?qf2GkBiNdbKltH@I$I2o4?}SN=|JKmPQ8wj+X7~>>unoZnj22fQ8ACNFwpm zd58D>$N5k9ZL%{qzBcE+=l?AaWb}`o=}GElMKR=++57wY7RQ6moLN+M?=1J>oQ(<` zEKLp&g6H0|z1NPfk$?Bzj{ooMnKQFqNL>A{aQ)Ye(!U$_&7Aq_jp3%FO$q`WOpP$2 z_+HkgYst6XhyS``o_24G=kbgp1^(~lt7{H!wU-I6{&(-pZPTw3Hr=nZoQWuov;B3vsd$fwv2mBK7>Y?NZttnz`#{Fq(75~7T))+SErjma zMC%|qwt0Ky`mcts+kfvqxbw`J5a;77_Ob5-`uBB(lEpzYiB~oqU#B{+d5sHnlb_ZH?u6x!V0Wqbwg5Wy>$W3_s5hep-wh z7H1qRhaTkK%dS21>*2q5hcE1(Idf%OUtleNQFnjj?3u1;LEmDTZyNd9@U6dg?K^4X z{98+sO)Mt>10;0cgIn@_*)?y%fnHsC`~WLv5Yf#rv%i(^Q|oHuv<^X`N&953`g zI`2-yy#|lVveTl-UmfpmDX*_L|Em``i9bL7 zDBB~!lxKwp68z78+zZrEJn>moy23e23-jO4{)mGFu9|-5-*<-l`HMh>KDjx&&r27u zG(Na|dCze<+ikPIX39p%^&tm{0~I5Jdhyrz!gu{r>Dx~`Ztt6s!6TA$;{B58|6cpv*Gu5( zIU~f4YTQes_g7nfU%X!W)qh;oWoW=(dimS0a@lDSM0gapk_F$pAHQ1m z_v@D3mtH=daeE#(5LUa_TRyC_Y0nokU~@}DcVfxR@7p=QFJ3=e-A+4^=gf_)?XSNc zwk{CE8WL%{Bmdt7B@F%5tA1tvie2P#`|Pgbean9JVg@%TvD}4VyZAlBzKXV%+ zk{po&lc_P`M6~a+iYb3mLqqNRw!E!Bq?$Bs`E}L*_Zr{q-dN;SdU>Cu;e^?mz@WV1 zds|z;TL+RFaQhZ-;<)hpXd%!@`?u>#c1aZ8o-W+m*u-1;^~G!9cgKr=R52zeq@V}3 z$Mnkm^9$^M?c$vuD{jP=mb3Nt+j-UU3EQxSMHMhC?tsE#dT8ihLtrjh1WXvqzzO3e zFk$E<@Yoom`+=u&^+}QbN%3K!Uw?bt{r<;HV7UZ&DvV^uC^g^SN35+s7^b!M>Z^S)ftBbS(^Oy`*v$Tn{nS~ z{p@XDF2Pt4?-dzn4{nJA}s;hC6s zrmuB(Y6Q;zf0Exyhoe=9C-U!{oVzMw&z^)VXZg>{!0`XS-Gv($_?tK-fJGsLr>mdK II;Vst0B}|(v;Y7A literal 0 HcmV?d00001 diff --git a/resources/aws/security/detective.png b/resources/aws/security/detective.png new file mode 100755 index 0000000000000000000000000000000000000000..9b138ec5ee471ad76dfbf615722f03674d9d1512 GIT binary patch literal 23415 zcmYJabx<43_dT410KtPhq_`HhV!_=C6e(KVDPAZL+_e;Uik1RJi%YTM?nMekio3&` z=kxo{yniJ#$?V?Uy?f=Hvr(Gr3OJY)m;e9(M@dokH2?raegy&`XvhyEw=!!0;H`v` ztdx#V_CY&(HiK@1NO~v=ehYy}8-^hG?9$xcbPHv7@P9xJ0^bMJM_3(NTW>&#I zLmG^@jT1sKH|G(DfZl00BjC8>jWKZ83u7SK2R-fLRz{Bn)jps!a#Kn_jKNi+U7RZMau1!v6c&R2XI!uzCLyvUTFviVsfr07Kj) zq!w;ONSvTh66P5$DkwDDJOo}13d;TnxGx>m(yfz9TukrR%yaL$!f@4T9cDHYV>)b= z2%^e$61oKwv^>Rd4gV4{BM0bjYLHlmz-d813x7&*G$oj0GVG#1?|m(CN9GspD_6KC z@+fF4k)}rkdRw)X5L;A0*$mAOYm7J56Z51=l_TQ#S$svqOeDD0mc%8G~V|f<|$W#rswu1eS%d zpo(~&wFaRT8VsxQ6<_ zJr4p*0_2}B(S2=&&E##cFGbJ~HUJ8&g4obkK+ek^4CDVy>rzz6pYYB= z{H^d5A>_tIRqsqbqQNaQ@Z_GJ53HB!(rjoAN9pG>Uqc1X-ktxGhH~ei9q=$EI#4@8 z2PgjXhQ&?)0|%H{v%N7IXlnIWooYzn#3u>hf_CVl%W!MI9CX#BeG)zkiUk&8@pHF@RL6aFhuSd#vs!%<3K8MgP=7T2v6;>QLtqW(qk83 z$aDVmvpoW1&$Qa^X%u6Sx{CO@Y6U^rM9UpMRP7tC$ zLHuu76<%!$P=%}8k+KpFR)tvkj{zyc!v8y8qc&9-J1$H^wF@n%@)Od>A8q-9a;-qw z!T?I74eRAzq=eja$E~o$pLL@^uw?+b943gZ6j%Q4Em(N z2|?2Lmg1!-!Lc4-On*`^hu$aw93qPAHWM0gPHx6zrml8>zA{YyEp{ECdg=;Q}SzMvj+(AWiS^M1@H^w$*R zEj@(OYGreCX9JXtvmZesdxqsQOAVGLZyvJN4VzoSuXtZdH$jX(2423=kqg>#ld7r+ zcGz+iR)`C=fCrW(LEa5$z-nD23nLQXmrZ?~iX?7e+rO?AOqGGP)|CZycRG4M1p=tH z{;{cXk;quC0ej=ALzd=B_G~D}Tg0aIV*CO}U3|AW1v(USF!=nB%md_lOD^Wk3NkVz ztNFu1#Y=0<-SV z*6Ub)eY6Sx!InH_o20BZI}mF2{EOG<6LYuUWY|f-A0rT>FqM+KJq)qC+75ZxR14Ls z3ZGiZMu9*~s3^g_M`~lR8ow!3f%m+LkE|*T?cqwbl<^oUds_U&qRTZmPs+R>NdrKC z^PZ`UEaYQ2nB;KK@E^=DmP|gPZhTut*b*iG9O~C(%CP@aZ$iTjVAM0gUDMU;;&Ci{ zZw!(OmAHXE4Lk=gBo#f_Fh_M{uK83|ecsW%$OvQjs;goZqznYK(1JO3m-qUFuk~~{ z#E*@1{P*`|uicXt_NHwE4?V%FK9rLQcrwY~R!o7AnhgazRxvEn{0nWN9sw)Nbr1b2 z6`xCr`iJZ4R{&6UNR1Ti?JrD-FwKF`?tLK%(gQ$X;N0>Xy@Ee$M`3<{z(twva@IIk zBN;RLvzqA-U`SZ#U+Z~<&Vq2>^1_T7kH>kL@0bk>`J2g7>Q?;G%Bu{JF*}^M3f~Y)8VEHVr*fgP2 z8vX=-P213qn(JPCSfQ>$M~NSd&xxd#kY4*%Pn?CZm4NXD0Jr&;76Rwt1?q+s1qSM@ z26AP~jB!`jMJc`{H7Zi*cApb_hxXlKprEnwY}ndkZ9nWd_`H1MzN&@F&B|(Lf89&w zC8w0n=&LjBEnH-%*u^Gv6`OFGxbBOaLj!)7*n#VXAUKK+KFt?x4GqIEcD*deO~9)k zNGE?Pln2#@J29yah+Di`;VYRO3359l`fyP0s5`s+G{ef$y5pP@us!V>Phrlw_JaaK zSL?}6*Xkv8b_YxQ{Qi>a@m|Zn$nTn>l%**HVbb{t27eEDQP#+ zG5vKBM>{kcv=h0(()@>4QJuNT_d6l;#7zh-eXYCD-j5Ph`9(FMF27Zg89&Ns8K%df z?-tO96MC@8+t}Sniy7B;8!q@S&-tDtl>NwqrMRx)YPy@J2+fB8pK(dj&(CX3zwFXE zUn^lKSG7`XG&mGwzfwc|Y^M!>56b2{VC@-U-&xp12VL?*(iQW-z=)9TdvYsMBbFr- zKkB64e)ZLpEIpKhg?7ghK55nPJ+-`0zcX2Fg`BO^F7ID*CnK*2l~u4%FNM)?X5L|O zM84Kb=xRNFadO=kNh3@q#P*{8BV+LM9iZcD^;Ygc*8uYF*#=(S&M^MP22p*N>VkrK z{Q=<@?P+-EiRz`8j>7pYM7nyn>;66Oy)BO=>Yp}v+;;6W^rz@9ddw+ELf=#uAOMBIY@OtMHmzkF9Yb^sK?7aDEyR9(8Cw|TJ#8T9iTOEtx8w1&uyqjU4yd*OMT5q(7g;*@aR(VCj&2JC_9yOkm>XsT7TtH{g|YKPDvi)P7Zl2GGw4Qc5{FkOS56mMbRfhDt_NMD?2YGy;dVM^uuu(dO;E-Az zb@744oU+dyQwm$Yo zTo!b(m2|au*e-KY;6tIH6N_l_S4@k6gy{>jlS6NOaSs;Hj`ir!RR;t4gI*;t$ukNv z*SxsBnEvGGv)+1TFY9%HSenX=R!GEN74q|f`cOwvHa<S<)jfxd;KpA}Ea+?FZ9#%yUh<%V|?LTuI~fc#gNj_+}tb#ahBunn{qu z9seLP@m*mX%}rHvatZ3^ySo&8Wbr%k*A!)3di!d9?+q%`XvfL8sw8ZJI5)kju*5^{ zBIZ?ldSRE}m9$|4bMpEbG12a)N$%cR?)JrBrpaS%Geqwig-kTFPojUcB+E|w7vQBr z#=X?CFpv94|3y%E6>7yG6MN#fiZz;*-v9Osm32tAC|WwnyLjFNM``^=n}TBUYU-=u z7Zcx~93`?vjti5k@mHN(CFM%F$guwrnMemt%*)Av>Kn~L2y=ltiK_tUx(lB3y9P6O zK65(Ui<)EK9T(y&f84y&#h!j;L2%=WA^o=TEXTDE462PC95aS=Jm#LL?kw<}82j>c zy?sWOgE1w&Fj$s}X+a1A^|26$%s3VkuoPoIPqs9Z)ZX|!`0|=*X|vDiBPSg+QWom7 zf2adCZ{&uzow3GmJ z^mLem0Gep!CXDuUiiRq1+RI}GPp%bbYO!oCs%jbHYJI zS0W}h27tn6NA4C{;aw+cY|2n5z&G5vKn=fw4O!$ATx7C`?O)R0UlTr}Pi|4=l178U zfY8)$aNECZ8{|i~Hd=_p?*>Q*;wz?3Y(|Uz&pBVH;VaYN4OO+GjRm3H{43yosBQ}% zOe(SiOb){l-w`EDV3QcGmwzCr=*IqxP6%lSXs9)^k{wOSY!|WR0tLM@2Yn~|yUE_X z3o`f6_t{ae@4VMIBP=tbZ$|}NhR#R3Ks0*c1$~{dM|sX;_o=k(6|&Ea}AL zJ-MW?qRpH&NWSHd=K3laMDk@h15t7LWHoO}KXP7L-%#)v*OWgagh^`qzLS^_qDXKn z26Abad7JiLE*V+GO8;PrEuFA)uM;GM?omX5u9=`LaHe%pKVX}?4VD@>ty)%;^ZIjT zyUu^hCQoX=x61(>zUjpun0Ud`yv+vEQW+n$2E8)Y9X$hH_(E%7zk9$s#BOQ=L(V_c zSMKj0Pde`m#ili;BD)&b-|~bY3Sl>^_mPfktTSiXfiH^*ZREdYG-SXV2j^b4kOskD za0BInTqZ$2Hc@H!XcGFt6aAwG`#1Mch$8%8OR1g@iVgn3hApPz^2G3^w$>RCwE7F| z;Q;KdXon!{)}0)TvQuNv-!E^*BuRz99v_+%NynyJf$VoKmY`4kf`3@Y91`UQ-rKIqr43byAYU18Y~ zy83s-he2lPx!Kx3lmtXfMQmJ;t8dlPz@D|5#p=uyqhNqKh9JZP1pbptqTs}-%+(40 zEA$(-x}?JJos140mjDtv_f5fd^i}V_{RTy05Q%>y4G|Wk*8s<%GI<<*{>S(F-#=`Q zsLoDQ7$5whvW1OJ^cR!7^^b>gLnb3fIjqo&_s|IxKq;6KjI86MrO92|>ud`CG-`Zm z>Z}tzWpO%;q>)hV2pTTh+-dJVuxG}CyT9BVQT0tMa7OYyU3)FRZwW7lfuDF`AB!3bM+$)C`dMk!RdF1`-tt2QnjF+5x$K~ z9%B{1)nD?}gmMLc`wqF;jZ#Y2sjl0EbtH6=gZC8X6NPKrGQNT%ao8=!hkET#R0?C59ZY;1oAwD8tGo_pvEf)L{Ac+8<&w2Cb}!{vG6sW98nu zZ&2`spV360(QIk!bmoPl9&&Z4?hV)q6x-@gpl84-01*3`d3aZF2QE1B=zcv*2%R{u zS+3}wq-i={K=4JIC#3*%K7F#M{rMZ_{vI7It-R}{Vd$Joew=8LLW14q#un-q0YqC6 zg2J2ELE%d+?>niga_#jD5$Yq>PcS`Q&z8x$7aEoWxXL;G>7lxaxE!&lu0KN1kB@OW z1h1Xb7Mju#_5KI^y1WjY{y5-DUZ7yAr|>!j4;69KYV4HC%P+rOzC}_*!RiC(4Rb%x zbYD_#lzj`g>G!xH8H@0q%cvJsx9NtTHofpYAnTh$pZ})db57FxkFrcpR&~;v$g+GB z20i|}=N^^dMeP+&rIeNNgIPV)eFmbuGi#u==t=b|bX{Q>YSIaud_;%gks*@5R(}aC za8qj#keMW-TW-XsgmAvaZTOZmj&=tngaIb@mysZ3b%pEIal(`emwex-kiExRVa<2H zeU<8-&Kp`yimc=-eG5y~9`TRD$nLIN)P`i`6Z7QDjvQhEs*>6sQLiab(O|AWkpu15 zujncI{WKp_?`Ccc(a-{_wCLA!c~FkXr`O5c(6*A3)$#nvK1I=pg+eIjI81{E=bZRw zlwSLIb*?!7uo;tGDBgxE+TojI+gg;l8p8B`k)rF zQO63JUqiV4OX-O1=mJjx;ngl7@bC_fpW@a;Y!a7BPB@)f+!~qOE#oXc!`kCh3)vvw z*!~`j2d#!U=><)Mz{l&YD1O-!)jZ`>a2sdCD>{2_SYCLOeppBsI;1=G5UAM6**lIQ+vMnZJiOu8qXvJH{oQ0(^B&GL- z?8yuTcV5JNtmhE9Wbcsq}PM+bQDgE+9Beu^;mqrG16ULEMElS zc&o%Ej6vDThN&YsCK#=$Qh#}295sEUaWKPLPb(SU6|L(k_DH4WCMbI{k}hvv_a-AM zW2^4;>#1=#z29{bA6KoDXiCeSPQvg}#1XZkpO-adGE)ilZ^n9KU)w(ArPm`OZlT3@ zO2x$|#_q&Cc+Wo*>=&a%+h5o%g%It!uc>#pX52n)+sM3riK0k@gpHYaP#e}BymkDK z>PS-RWOeZ!?4^CKO+vkorEG@VTEJ-iN(mSC*sVRB)-hKKPB@1)((J`z*B~{A- z?et<0$sdr3mB|1|eg^_Z*B)~lwY3BlucevHgvTxUf^^y~i~3mP>6BcN$ej0_(Vh0v z(jbs@^*a_&aQpXntVtxO!Y|}-$IGnc{)%vYK|}GtgL+9Lw~*WXc{s3?<0rqWunHxU zFxrKXiO#fvxtX46!tUheRy*D|gP6f5l%;eDvWY)P-1vRs>c+90Ps|PpW=zsakMEJXYT<*9!;r1{YiYoLO^x0bv-kIS!Etx0o

$vLZ+O0lLy)ICa-y_%7GBmX7#&NjV7=0VLJwQQO(0C`%S8uW~bUyVcy?IL(H*6(X znIVjyD~DB|9w~)lN72YGTVAcO??NkolH)yEmwJ)Bfy}Ge%Fv}_KiE2j2}!#e2m_2op*>$w7-f@5A$5@)>lPS$5x^WxLes=5RQnr(p_BSMB5dqu@){PNp8Ppv zMy)hKR_udG{k}&16bwlyN$#90q}-<#V*7~|_8d}Ptqp@Mwy`CLEM70fpAlNU`MOX| zooIJ6Gd8{X2~4Tu;9H_&c(>f`i5?54fY%l2?>f9B<5oMNcYkMCaWsFLSA;CB6n=P` zKC+n)hMRK(L5LA|M<}-h4{qW+bd_dD+V7mSmUTpYapJ<;9f zdEK1LT_kqiVuMH5dIhWXM^}@q;QXdEM<+Eqe(ApbzcJE{~7j^#TJMt2Hz7m1_*=S4hzu&}=PJQ8a10kCGBv(k(k##E_^Kuvf zjy0Jxg2PJwUR(Uc6l`f?h7tS8}IT&bziG$2Q9_SEDl>b}0`ATGRPyd4I=uVhJFC==8tMv{uCA)60 z4H`q>U<<#{6q6dP5a1V37=e+^FopfWp|6HP$G21*(3Mr9#{9-JRi?d=wa2gS^lAiy z7pD_fTj<0;fqGT_a+is4me;sAt?Tf7n{)sv07;@mi6>#Ow+SC|Tc9VgusOG)K0cj` zZlij@XRZK+$iu2Prw^tSoRX%s=RbuSRVbVVYy&`1P2rdI>gd@a=-nb8$@<8Ac1FV- z4r~>PiEl4g2N-KDm?=8$)MPcXCk|}pJ8h+ql`xX#J=y#64s}H4?}1rCXtYwky4U+k z1xs-oL)%LA1nL;pL^0}faz#doAN{d~om2Z&@&^kTq1T7>3h#XO1&6Tm>l>#$@+jiJ zl#oqFV4vE(3j0nPA(QpulC5@PG8j7kEN$^{Xn4-BpES2)=$Ty|We!fR#3& z*xjXiY%0G2Da5eq558lm!2$I%mt;kTAYgZV=LGc*kple5gep}NLb=GmdD7XE?)zpu z<(F$5*_?SPxdZpuhRj~|R+~G^aLv?8?8&Ns3RlACVt&CFb2F-Ad~<^=>iLx^);tRf zITVjKrzfg8*htWnNH7a8f+-9?Pgn{;WLTG40vwj`=hOQ^)q4^% zL&)Cn?OW`?yX^i}I6-%%nP4g@ks*_YbNO|Blby6`jPjBas@?D;6!gib@oUzUG#=1e zAu7?-@Yo^$W2%+%U5Yo22@ZEUWq->2>WPKvHx` z=$M{(!F8bw-KAk#A9?D2c=f-i@;elj38oY|H#_-`emvIh?&nL=$;0)Q%U^3LX3(Le zqLjm?!{31f#LU**?yuV1cQoTAC?t2-`J3wqVzd^VY=8S=8ezKpjvriYPl;l=J@}(t zKt!&u1)RS*HPTl0M?t;at@@@H{6Cz`3mcqWe!YSQJpE-n0xr}FZ9InW^^xwjZ`Z1( zbpFlQvF(S~y|8*1_nl}g8i3xM&@ZKRiCkdcjF~8YzZiQF!ur9k)B?wiNbpNk&a1eS zs~pHTWSe&_mykCBa-X6Qa~W-SIM5%|eQ=t#U{;^tKoiyQzV~Bw;l}g|T_To{$>)oG?ah=7v1|3xRK(`Z`#Y?vHOS&l(V)!uh24p2 zregDLP6+zn0lPHL=)y48(gz@DX>lV~EX|J|V z+~I7|x?UWk&rcMbj7SjX+G(#-iKSB|Y>5uO|IyVIor*d?KYbvD1Q(PK$VJ~PzwMz? z8TKH0CR|&);nUXTT-(_C^}zenJXFYW=6RJF-qj}H4F+c$z5SmFSW@uhG9J{qsvQu3 za@@~mTzZ+(MZ0LMqY)cAm@3@&W@)J`!kUAw<{jfLNp=XD7DJ)?79`We60yFkr(%Gl z*4a4KUv#jRPc0};fBvpr8o8u!bs%@s1(d}LsGMa@TIEPOo_O&#&?Hi_F1_%t0F_{< zA8RG<2It%6H+Q%YSoKdJ^?0pRKBW{)EyXM`_5RI@54CqiT*;$6HnZ<&`%8K#EUCV@ zZGy@P685PMbIa!(8B8=vQuHP6sxH?JI|3Toa|nFcz6Cgi#LIdyh{XBtO8dL}nY^~c zI3(i0NKWQvA`~?)ZQ{Hu{=XB*3;{^8Bg4yY6p$TajDpK*VX-N%vuLL$F z+nu_FCeM?td`QPiS=Dl7ajB$zh6Tr>?l5-)Haf}5HBy~3?2U!0EJrJU-CLK7pAi2@ ztuqx>X+&OcVG%r7;zS&qZD631b#Maz`vmH^WOvdG2|R76=JaxParBwQHXc~#Gh)Q5f%Is?qxlS8r2gfBDtGcyT1|)Cb-= z2oCey)OlUz5CUgTM<`DRZRE86@J${Fsok$?Y~!)*<^w8j-MDLH^+Yzgr1NP5NZ;K%?YQN_#y`LUA+lwHlwJ%iH;i_W%WYS zJBJX&?toDSfm?Oc1aEwY0i~AcB4$p#gQJ_8p$#w#!~m@0Fw%Kc{ICK!>=E zu#qZ{`iZiKxh&Q`vUwdCqEXMJ$XxT?@6L6)*b4Iy#3cD?-Vg72!_olT;h1V&j^6Frwo1Q_q=3pz3*`!4J9S9eFsH&Z!<9rN1mtgff;Ww@}Fe6#C-;=wKNsSajn`6g; zi7@e-QT_i7^p2;#P2z<6m?)?b7|F8VVNR^C2EaQ!Qr|a8GKk)@-v<7)Za8D zBUrxO@Et!nK?m^&C(uC{{P+A2*QXY0Fat(X0$$PHcS&vgmsN@cLoPqitn^GXc-rTR zRAD7u0@m0SPlqwCxD+gGM29XNAy;@3BP?ibF35D@8Ft5{ilBus)XXu%;aawJ2KHV+N|fPLe$q7hbhMkV`*ge^YSTFdv2=>}Eh-aomB@AyUU{ z8lP*1#E!KCi1S)=t~jAeKJ(7?66az%fmuG?2{=e5TG~J4YF*X;?-!n_$HdD|_AjjT zyGu!@pR_G7EvqAVPg>CMg6kSds?259skq_G5)SZZ%L;qtPXB-WjKi^1BEh?-pCbD| zS;=eUe%ahx*2Sup9~Ey;r@$`Qiz?m7<;G>i+IByVbKix|e7sZ$Sbp`ET+ zum2+kSW5X`@4D`W8H+1A zC8o+!vqn=dKW{^O%EW#?k#Akp9c}1kb0kGaQ45<3rFB^WH|hyk$T|EuCy?%kox2;R z#zMaEyn~NHa%ePVwZfs$bIu#|Gxoy5%j4>zjlh5qeSew$xZ0%}&VA*m=lYdkD?Q`* zifS>4f?C5#N>>DJ!G?n5B=6&E^4H;O)-^l$N=9j4XC2t4g60{YYk(Q>dHIJX^3tXwWU|tD-tO5;HxC zrHz<69}n{WM>HtG@AGs3@iAC)=th%U$~uED3Y55T0qSzrIcx!q`Fk~%4naHPyhzR zgxM?)*wp0hrl$ojsi{HSr>VPkmp z*R*LRxTf!wv@kj@eCtGuC2Ftjz%LO6Qez@s`wTdIWX`mnhMQIPgBu--a3sz!L6tk+ zue7}StjccxrR}|vE39uQy7f+Y-D`RkMve@OJ$`dyGY z#3~x7Lb-KW$0QI3P3%G-Wh9G!#dS(`Ml%wmtN&9AMGAAM!0i=)p?-8e<=2T?UbwzC zAyRo~d-Vzk`hMpdjSqwF>J4)Vje(7dHg+MP)*{cj>)NQNcbG-N-CSDMhu2}3ERwh^3zDD+d2ygt=ZyCHknDFJ*-Qvi&@l|H+MJePu|=s z;Op1D{OO)e2soM4_}W7cyY0s<9w$9x^Pe>UWG<~8ekpZ0-@y^z5~H#;sKqaNiOoo*MM3%Lt-k>X zxo0qz;}oT`hX>;m&P=Y{e=*k&-^M#bw)a?GV>lOr74?wQPS%-f=xu^h;n4c@jI0Q z*2U!+E?IuxmK2VAZp&_uWWY7jT14Pf4!Pl?gudzWQm0SOApkw0f;=89%^6kLs zwwVs=fgiCx&l@4zgawtwt4X&R$vbASpv$aD%8lRxQ`)-`u#XihCJw&x_P88Q(U7|h zxv3sUc>h42?9b!pMB2QrmBq5he`y;T61qm#ncT0aS88#(aVUR@D1EoDH%1lWAa5lV`-8UDTA4hnZl9`iXIP)r)aio{`T!e@|o^oyd9x$ zyp%YE2JCRg1Rw(y5tI<2y!o)iwSwfW0=v00x#m`4`4>CTD7hn8>y>{(pZH{OBjHy zDXQ!;!1sg_$p;Ll>dx{oX?MSO`>?KFQGW`yqh>4#FKVU(^*C94qYkQ3yyv76tcG;G zUueMis?Cm}fVCZCok?yWG5_j+H*=ysPmwMnVSOg>nL=&+No_xAmy!3YZ7v+yJ9|5s zwuh6P-;`+JSH;)>`fWe>j7vC0*L>=hMs~yaMs@KWEd#M6sbATpQ|+oHRMcle%h*28 zA~R3nqbaTBl&kuq8xV-bRv_RY&?4!Zvf-(SD>6Ed!uUXMn9~ zhcao$SFS-SFi{{SBS936XcebN#kY;rWpZB@u*-pU_$1J}e^I!``s+$LEJ zyg!SO410cLG?;X0*5O}+)x>lS3;Ac(FuUWDt8$4^CSZ{!?f^hYvC?WgdeG;u4Z=~~ zA+WU6v%_tey>RTrU7YR1;qm0z3YO*{?F8l=)BX5xz4V?-psb7Mk@!O@X+v5s_9 zPz}Who}O<9e@B=$z9Ro_vP`vdz!gZXXr7EndC5^ju1WH=MLh z+)Kgn0Iv>vEJ1D`M9=~rhfmZq2WRyxc-(FT9{#dA8LDW?Cj`McQ5eG%~i2O#I?kr2LXkU=aJ8 z;yIEN3Kc!>pc~J!07+>|!O29#E(KVSN-KqjV z_vOT~&TD)*xy8a;mJB|XGFtssnz%s!H(A692F)+x1njD4uR?ehkC~ z*?SteWUiYfbmrOh&_Wmt0YwxPA!!>{)w@h?oQm>BPj*jia(?F5ODpi5{@Y~~_=Sg1Q&#G)}EK8Mz zbTJi+3eG`K-m5bA{~CH)KIhgcVg)NX-o1FOlcYMJ>vlxk#b|n0utsQbBOgI+ z__#0=tM6abNE58}aqd%H?yP;Ixo)wXJ|n3=2r1z`r;g=2O1nKDny~R?=Tg|4)uVVR zCohI>Zn+j@c}5U$TgZE<&|4iBRaFCK_ZGk|+KXbr9L3K{iXDagw z*13J5_J`{&6JOL%PWn3e3@_#uLQ|2FMsA~A;fQRh$ux#_BPIOP_S! z)Cw}PynhuT0Rh$SsT7Nv5rbzQ_=1EVx%d{0`#UYkgO|N5+v@uOASabH`kDZgd5ZlH z{_fVu#~k?$r$&CKVQ}JkOLCVaU1n#@87`Y z!r(^EuK_0#gR`@9aQNSuAm(W4edZyTXKbX{Y>r!45hr5uY=+PF!=LJG?)?rdklU3( z*ciA?o2lCqEznB8vN&w}p07v4a~l&1X2I=5ee!;09JxLgcSkb{K_5u45wDgV4?NT@ zdz^YCS4mPK$qfrwd&)!u?I{Vnp#u4S-&73Bj+=T8IF*-+7|1Vr&fBVX4Y_tHQ-jqW^-=-CDx;r{GZHb^@BTXe#VwvnD5`DkW|-cUo0Hf&HuXPVx8!PpPBBwY22AR z$$L9H+a2c_@w-w>HfLu}VQuT}mN#rmzgVTOc;$;ynj;009h3Yez;jM;pW}}D=)U9f z>7Z!JD!D^Fnu$h?@fOJZiTRcclJ*MHmyszsADbG5lwwg`8+`92Wj6!8mAE@4>; z^K(j6Zw39yr5jnIsz+o1ik^|WgLq2zi-V?bMj`qtb?dWBCdd5OY0lo2)T|< zzC&?g4hquGah!jv&-V~shrTzQF}sT*7*sKRKA~;cl}J(~P#!ZW6G0n@-}|8fADv1_ zxHYIY^}NnmDIfV_&mB3JW>Rc~5p~2`+78i0ef@!)t}jr@-pi9fkD~hQ(*pf z>spBsh#zZez#9F=*bc}G6v*AtNb%rBHWDXEMZdn6We_nSC6&@|o3yr#awi0>J`=x( zkJM8eH33Tl9^9kZxe45`1K2fGVXNnLrvbA$O)cuCbI(04EVJWYEh!j& zv;M*f6{cXBm)3T_Vy`j*Uq_eZu?As-$IMmNvvMpzr)WwRPvdKL3zT)aoqrcQ3-&f7 z?c?(JgazVQS-50o#k~vu%)N~@kY|z2ir2Jnpz8h5PhNI+hEn!4CbU7t*D}r>q{)W28hlQdPSSCQv~AuY#yZUx!f33eYp635bzwL-OKH{l ziAGiQ8p-vZ=YH2(|K4jwyD}jmoIS33e`ZGd(a4!Ps4i1lO5wk;aaZa9@`}oxz$4Ue zJ1$NFaU(M#XrG0Lf9$xI-CT@rTZx~GWd>ZcAfFr%Lb>6tGjkNBL@FtV9Liiq+qU;-$m~rV}(l1AK-ofx>-~|;#-xArlO?{}-YP1D5?KWDmubbBD zG}SlWz~Low>Z`v#{jdSgRh1frN6}>Af%a6*2pCE6qx!+&2FRl=?-&wwk-7ZsO(ry` zNj8eyLH^ZqZF^4@7rTnesn>B=Z})EVd`U(F1Ef{%k{YiNJb<}R=z3Msw$s*zRNGXq zW;`(Jiz+aW?6ezl(yk6rQ}nAXLE8mgN?|=G7+Y-Rr*8N+V4cGdinxr_@rL1ZjE9rb z`rvUz=BsLi9lzIX8`3!UIpp)!W=F3#-qc3!>W|g|fyt_$5#E3^TJw zZa%$?O0<@f^BI1_|G4d4c0cD0y>X3dR9%51Y3s=VFjB2dIbOPO{}EJM{)ipclTJOT z8;u73W7?-UCJCzy=XmiWfL{G^*T#^9uE0Pki(0WC!!ig?H@GvlJUZ|&bHnHN6uW6X z4%gz(H?M!5%Tlu;$;|T&_YEi>by-Cn!gZ?fyfmB%JdUsp*h+|;oh8qEtt&Si>;LQI zd=(X$CdiRbG<)%c{faXuWP?HwTdqAX3J;W37aYiWfuNu~y83AVn2b`f=o0K_(&(3MLSL7T-R9;IBK`nzp??|D^eNcv@WbW;MWx+^e!YW6b5IJFriP z5I?5Kl(VAa4A$m&vp8&xjub72UhxsNBx69}Fp{DOCITC^xJLB+?pabXNH6JyF!JvM*^*$<033!`7{(8kHu=jxim)?T^@pKRt$W@6AQVWW%j zl@$DQZz}p%wTx3bStccMFXR*`6WF%XG=)3e)AqM^is(>?{2hbe(*;kUJbgVbi0EU3 zKRQL=6_(Q{t&lL~qhFsiKRmbBSA1{c25uMv3jBitkT0?rFure-$Wq<_X~v{NA|(v% z7qaiLJX^`ZNUU{ghEyZv%4?~2hGXGZHby!ai-)Pk7Krxvhq>(OA*WwFkUMhQCRbte zXW+!yL9zDxS+Ql3H4QHK|D?4o$Ns))Ai_p|BvT3ZZbWPNiiT|B@ngp8+We!)5!sTw%lCKK?>A~9zV&z(&nED zI6S!@GaD&41p`(^nh^+&X=g39PQTDUXraj000$+Mtk-7tWZG>ovzGs7fUYX+6oC|g zxQz}oc8m}$_d$>tcy^EY>qo zpC9u-j{$>Ky$m>z(C2d*i|yJExpdKS(f6RX%>gN09p@a?uQMUAE)(1Fde)QJol^9K zhI)IIuub-xGZ2W{3^a2t`6xzFw&OAu7yWfl{Q0-xxJzvfbNkM?NJ&1Dq)eXZ@DMS~ z^Uaiw{XqA-Bm*AEX8z z0ozLoM7C{N#kApVD`zWbcctJJYa1lv?cJX-CQcqsZL@u6bvhS z-KL6VN%F90=c0fjzaLDRz56+tbkFqmgA0oGT4)hgG@|@!GR=rQriBW>*O=_Eom@=o zNL`&tmX|p`H5L-@=Oi+lDOn1ROq&1j(QaCjjTOcnZYSbShit^;j~l{}owDxtPe0l8 zNnjEZu1Vwq)$J}bFQS*~7l&DSAr{}vS;j5)^-|-5PKCRiA{SdQ^{hedp%51~E(Q^g zIMv&Cd}Us^di#zP&!U9OBd=SEPj#1!S(ozUWtn6rk2BP8}5xJ`J%dCi7X)j znOfUFuk$z#Zm;zFLD58qr;IzT$Hg_D(|HHlLye!1@{jk+5ZE>^4^1~MWysJ`Mss^X z^pk0G;OQ~`kTCA_q5m3#fUakTRLYf!sLbM@8!;na>2x(4GAuQViiMQ?q0Sr4uR`uV zn*Wy&%nZEXR+`#TEb}!ps!1ZDh9TH<$SlpxXmaxG^m`72IF;y^OLv}`c*&nEvQ1ti z_pPaQ3BJ?rJAOQM2$@KjE;#s*xs$1qd^7CvOpMXZ`;XuI4Y&qf5z)%i?-BSI6zjPuBgMH(=Sajjd_jzkILju z^RoDDUhDhIuWRD;RM8>@e!N5J#e?fWcQLI+ezf=x9Zx@kP%QVQE{!6-B@1d(#Ww`O3CDzla*u|?4+t;yXsSpKO z_IwSFd?yJeLk>{vSFHA0l5(5MIEnq0h;*2eKwE3(xD6`}6%JkYq{&-ivZyqjH+r*ZTZ^K)EEM_H!w0#K*#nIn(BAIs7BHE3!Z}od2?djeZmFVSnLv9j2%?)Zk_94_Z|O0@=V(DH{Kt-u=(sHirgg)qJOK{`+b zR8N?w(8TKferfxLD{IMtW54-)Su7fE%hgF}pk^WXHY_0o!m*^FcTFfR6UVv6b%iN2 zo)5Cj5(warGUVp!C18$r2;(-rn%FTCT}A`;FG zot5{3&8bI9E0$T)gGw$z;)S`5>hrAUOW}-Ji!!%@vm9UwzC6Cg7O7ZT;B~aLgH8W7 zIs2PlfM{lU5z%Q!feJ@+j$Hu@Xrx5KM~%@O*u3xEi*%s``6XT39JXhx6V&IBYr^jZ@fKe$(KP z+5EZbAOk{pWC)w!AkWiEE>GHMcQGe_8&KBzR^v@+c(Q7avua3xqByhjrT{~9fOW|! zfWKZ@5DI8)Ag|-xY zyC)u6?DU5TFe~_5v2l`6eyT5}($Vpod>}9OVbXV*j#&ud079@}44Xs1(}dA;X3ydM zR@v(0CSCGlZqJAM%|8M=CYPS0e(37%SMS(wBUJosA+P`1*jbCU7T-ufbc={wY=u*_ z{PifRUt@VBcs*?O@_6Tsn{#BGyy5Bc5@LNKqoyJ{td|gq2tJkyFzHXl`%hUsos+mF zFgW#e@TGVs++suI!SW@~{7m02k>~Y3{0K}8Qit)oCwyAksZC);|Lqgp2^A=6FUqdM z-~>)Jg8YR@O7<(OWKZGPnrgd2P=?K=>?c0mE&s)u9`|>9Am@BUXyg8%@(Czdq2!-% z#)I^|i>qD+=9;IOxl6TAr{p88xDcmf3-(&8jM3{lAmcZ`BN1fqD#UTa`L$ZEOS}U$ zRlw3K&$xvi1xevl1rCbVBe(S9U==OgXy!VSgC!jH@cI=bhi`8+ea`C3f4o`jsu zqcX6H<1D2nCU&}fe8$S1Tb7ZzMz-w+fBMSr2HHOKfIxK+u47?&Glv(yZWfnZ%+nD! z@sblNih{*lY#}nn73H9IWyassSxE5JTQjvdv;1`Db3HgKtzUYfoqQT8)5La=;Q_99 zu&w@#=g^rWajnOEDs$SS|SPbMFwa{$q3LjOK*Jt>_K^nGl~K~<_f}}qbght;rb(X&xfN(wULV9 z(hs&uh48OI8%cd|q4s{O9I6mCR1~LTSZ|N^Y{u1dvCdK{{DH7ZKNdPfxs%E6xRvqa zqp}@KKHwG#El^QHc5RFfFfqRtl99NMX;&^h(G78_g0lfzBY_TT`_s|d&$ATXQ%@;$@Sw+P znm5mff)cFgMa{L){h<~-4-ym_4ztJ!0h9?2Q zU1eGG6E{wR^a$Nbj>CesH^cU8B?DlF9eLeX!Vf8tuxN=&eT6e5m0R@Wr^7PV7QTCG z2ablkMxI$x7J1q7&$!V(rXi{ye{fILpg}1$&#gr=w84ig3UVVYzlRJ1m& zx%z2H1KFRcB7$mt;_=>}S^>_`nG=>NUTs8)W)%gQgaV70V48h7(UICTJi+yQ0BPoo z({;N-!@N1!R&~!4svnEIJU~Fu&azTrajB|O=Ybc`tppeqRIo>N5>#n`SoR&J?jdW4 zf^R&<$ICcO8P`rMxBA1wXIcs_#X_+vN8#DWAhDCXOZRo` z0PbP&Oj*;eNm1RY^IhxI>XYrj399t;+>pz#H#bTb_CHxaQ9$&Lt2hP?2KJQ;x2Tmg z1W=lwHX@o4()2_9i8s_E53-y+>9lUa#^oybJ0Z{K>8Km}a;2kS>Hn zmY`5t3x|#H`=QDUY{c}jb@D|(Oc=S{2e*@Yjyyg#XaB*BkRn(qM+cF8-wC5PgL_lj zB!qA}e3`Voymy?ab6* zF;E0vX|M#|a|$%^wH*3@+VFItb^8Mxt3Rur&g1Cyw4~hv@{9lb+WnsTG($YZ<@SSn z{Lbr*+8n+J4LWVyr>(`-W+t0Q{J-^9nQ*UkE@Eu^ZRcA*P(gpLwF716TlHiqC`A^2 z=nV-jCP}D?dkIROE>)RlgmZ*o*0(&s71)R(C#ffG`|q!A_=Ciz zQ0xbHXed6tzCFJm{^TW6?a(5NQ8PFD#pHtO#$n1j7;4Rn?Yd#u-`6Sf1%J_XM zkXrl|i|*0K;Ue)RAw)w-`NH~u+|>3J~M_d8BQ1erZGZcB54DN@kZ!EH9Kh#ym?nWRhZI;5gkIom-WNV)L$# zLP|>F4u;TCobqZciiv``Gs)|re&66h^6eNkg?)$ETK&eY65w$|}&8!A!zEi)d=aTzG^#^HpPH|Vp7tHd$u=cXaGa?gE zl+L5$jb@H}OIe~VEjn-mAY^@+Os3bczyI@8k$`_wE|fpr zKQdBKmc%r*N)G@lefOB}y7#Gz3o)S(Q51v+=ZcG_Y{VyqxP`c~@a=bFTSSTybNUyU z<~Za?CiXqqH<7MW&qivep?1c!%*@Kh>)PESx9<2;I17E2@LzlKojk*P*kus%%I&mC zuHmHxL@a`?$LHa5Hkohc4@)V?W`!+CeT0?ngm#APndSU9`Y{| zelI>WCZ$KT|4OBVjE3tOCTC-6>X-rNmVm4C*@4QBlC)ykWZQ z5&X$VLG0a*7&0`!KW?IN9ox5>nxs9rIpxXbCTf;<8s8&y)3RGha(ln%{1y^7p7JU) zIJ%N;G-zuZ7r1@?fJ|!Hyw$aDzDB%`Jzz}XXFl6HpO*PFT@{lYNZl|gIICasMiW(T zRI5x2qcV?|Kt)LtM)s!#eq|v=I&F3o`hsrbN&)i|-iPPM2)!1< z9+=tBzxV-|a!wLjz#+dQ#hw|!-v3T4!ll=?PCNGX3H^A5g%!v1`n*CzwXIs08alhJ zMo@^@RrFO%6)`Z%o(=Lw!TGWS!D%LrGM14}U1PsJ45>qZ?w@vW!5i0zzQ>u2ny60w zgra$Y)G48kHS-z0|Ch0VK4$koBp}es>yV-Vo0f0;wDJDoNb!YepfY$3R0dyuozliI z2^HK?r1kB;DAuT&G8{`bHpSSOZ+2}yju*_dH-RNn{x;B=SNqm{obWo>m#RjgNwk6= zU?2(6onPJ<&Fc+_S zr3x3{yTxz0^qJsbJqr{Gg{VRy;3RJ0-REWkvHH@C7RF*ek9BQ1v4)KK`lhFC!5tYfF_ z2KdSU*ikS+T_z1AIKkZx)-4acD-HeW41S@J2a@QN!dC=rGtnpj3ws;U57(D@!iv~| z{}1DmAcpSFX**~0;4Z*prexrN1Ht`2s3bcmbOpQ(pcjp;3;`G|@NXAkTi(*aSO6<@ zp4=xtQ5i`QFjaXg-%SWj+Ksa4H z{KxXdHq!PZGHU6#kcH| zdVUcO4MYVim6I62!nFJ8s|;uZ*jCWbrOUT^$!)Ucouq%A{hoSdO%Ti>S3MmT z3WgIT=|PiP|NU5LLXw`BB=p~sBWP>NW24fF$p&_$LqPf*Thm3MTIYp-aQ#KHEjTT* z{lgXo{)gvzqhdPfNeGgU8d-8!NP^a>%T5YnF2=v}ID)%ofe(ocfQ4{|x*jvkIk$1$ zgY9{?t!jYoTLv7oM%$qC^L9kRwEaXSPE>O5Xl*0_y1q7Th?@6=px8$0`~Q8I3SMt16~ZcFw#WU3rUT(7fH4Ih)(?NS7On5ifbLyC zx$qbIStZa2jBG#L8}z%RTzz>eqWB|_+i*T*-?2m)ftdoBzGqhV_z+PxTS@L* zkrZkWTQLZ@?y#)xT7pRa?!+JlsgUcVfTH>lUMdr0@f7~- z+P~Q11KdXN>fSK~WQx*EwM+TLK|C#mPEFI>~%&J8X!k-O>=emvJ~1tiH*V$`|lx!ILjj+@0&| l{!${!9@ub91}tqdIb6z-=p=r}9RRfZ`Eu={tH5f6XyT` literal 0 HcmV?d00001 diff --git a/resources/aws/security/identity-and-access-management-iam-access-analyzer.png b/resources/aws/security/identity-and-access-management-iam-access-analyzer.png new file mode 100644 index 0000000000000000000000000000000000000000..e04ad7c49d53535dd859a6124d6d4e39c2c5eaf6 GIT binary patch literal 650 zcmV;50(Jd~P)0817F$=k_p_S3-SATbPIKZY)uYabK$-e8q0Xkyg~Nbq}UpPfO4idiAfo-6!I(3 zQ!*W*^2UV+9T*s&CM%yRl=C%3qoVW)I+50w*p_-XF=PZV^<@;XN@P&<+O-dr)0bA-Nt9?MV(KH;erJl2b?S(GSn&#edR5hBW6i>gt zb5w!e&^Rm>zepA~`w>wQu%-6J+8y2gP|iI2%a2KRM>>(CBCzj;?>QG%oj=L8vZj~# zhIFD6Vj^HmU9o*YrJRXdNE(OKS&;4yG2a2Uoy;MgOz;RiX8v)mURN47?T2(P#oXAm zI^f@lflG&8eB203g^L4YBkgE$M{b7(5+guIi>u_T?8hsbdxt0o`gCZdrBEo+(hkiN z>(ErZQa$LvNFTG4bZE|1wB>Mohlb9620j0|bZ8{dxkJN$I3a;99h%)w4Z@AINE{+O k_*p8L0^HWW0RRC1|NNHs|B9cP9smFU07*qoM6N<$f)B1Kg8%>k literal 0 HcmV?d00001 diff --git a/resources/aws/security/identity-and-access-management-iam-aws-sts.png b/resources/aws/security/identity-and-access-management-iam-aws-sts.png new file mode 100644 index 0000000000000000000000000000000000000000..d9e35a3ceda11d95819c96a04d689de143effd21 GIT binary patch literal 3605 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 Date: Sun, 31 May 2020 22:41:28 +0900 Subject: [PATCH 05/10] bump: up to version 0.13.0 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 9d2a2e75..b281ce16 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "diagrams" -version = "0.12.0" +version = "0.13.0" description = "Diagram as Code" license = "MIT" authors = ["mingrammer "] From 479d03a9aa9d57e37d36738ff7889057f04ef1fb Mon Sep 17 00:00:00 2001 From: mingrammer Date: Sun, 31 May 2020 22:51:33 +0900 Subject: [PATCH 06/10] docs: add firebase, elastic, and saas categories --- website/i18n/en.json | 3 +++ website/sidebars.json | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/website/i18n/en.json b/website/i18n/en.json index ed67d4d7..eab1b7d1 100644 --- a/website/i18n/en.json +++ b/website/i18n/en.json @@ -32,6 +32,9 @@ "nodes/azure": { "title": "Azure" }, + "nodes/elastic": { + "title": "Elastic" + }, "nodes/firebase": { "title": "Firebase" }, diff --git a/website/sidebars.json b/website/sidebars.json index 3e80df07..91d5d709 100644 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -18,7 +18,10 @@ "nodes/k8s", "nodes/alibabacloud", "nodes/oci", - "nodes/programming" + "nodes/programming", + "nodes/firebase", + "nodes/saas", + "nodes/elastic" ] } } \ No newline at end of file From 8653abcf6fb1cce9b92204066dce64c661e1384c Mon Sep 17 00:00:00 2001 From: MinJae Kwon Date: Sun, 31 May 2020 23:10:13 +0900 Subject: [PATCH 07/10] docs: add a sponsorship link :) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 19499690..c32532b5 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ ![oracle cloud provider](https://img.shields.io/badge/provider-OracleCloud-orange?logo=oracle&color=f80000) ![programming provider](https://img.shields.io/badge/provider-Programming-orange?color=5f87bf) +Buy Me A Coffee + **Diagram as Code**. Diagrams lets you draw the cloud system architecture **in Python code**. It was born for **prototyping** a new system architecture design without any design tools. You can also describe or visualize the existing system architecture as well. Diagrams currently supports six major providers: `AWS`, `Azure`, `GCP`, `Kubernetes`, `Alibaba Cloud` and `Oracle Cloud`. It now also supports `On-Premise` nodes. From 46846261f7bf79a56f0f6fac975a2bbedf16dc8a Mon Sep 17 00:00:00 2001 From: MinJae Kwon Date: Sun, 31 May 2020 23:18:14 +0900 Subject: [PATCH 08/10] docs: add more badges --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index c32532b5..6a5579c40 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,9 @@ ![alibaba cloud provider](https://img.shields.io/badge/provider-AlibabaCloud-orange) ![oracle cloud provider](https://img.shields.io/badge/provider-OracleCloud-orange?logo=oracle&color=f80000) ![programming provider](https://img.shields.io/badge/provider-Programming-orange?color=5f87bf) +![firebase provider](https://img.shields.io/badge/provider-Firebase-orange?logo=firebase&color=FFCA28) +![elastic provider](https://img.shields.io/badge/provider-Elastic-orange?logo=elastic&color=005571) +![saas provider](https://img.shields.io/badge/provider-Saas-orange?color=5f87bf) Buy Me A Coffee From fe1513c02e551906355226f5a69a0cccdfe23b18 Mon Sep 17 00:00:00 2001 From: MinJae Kwon Date: Sun, 31 May 2020 23:20:24 +0900 Subject: [PATCH 09/10] docs: fix Saas to SaaS --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6a5579c40..60a51d5e 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ ![programming provider](https://img.shields.io/badge/provider-Programming-orange?color=5f87bf) ![firebase provider](https://img.shields.io/badge/provider-Firebase-orange?logo=firebase&color=FFCA28) ![elastic provider](https://img.shields.io/badge/provider-Elastic-orange?logo=elastic&color=005571) -![saas provider](https://img.shields.io/badge/provider-Saas-orange?color=5f87bf) +![saas provider](https://img.shields.io/badge/provider-SaaS-orange?color=5f87bf) Buy Me A Coffee From 8cdc5a10dff8df8c7b05ed9d253db44d16616b41 Mon Sep 17 00:00:00 2001 From: mingrammer Date: Mon, 1 Jun 2020 00:03:54 +0900 Subject: [PATCH 10/10] docs(web): add sponsoring --- website/core/Footer.js | 2 +- website/i18n/en.json | 3 ++- website/pages/en/index.js | 15 +++++++++++++++ website/siteConfig.js | 1 + website/static/css/custom.css | 4 ++++ 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/website/core/Footer.js b/website/core/Footer.js index 705188f3..8f1c1759 100644 --- a/website/core/Footer.js +++ b/website/core/Footer.js @@ -51,7 +51,7 @@ class Footer extends React.Component {

More
- +
{this.props.config.copyright}
); diff --git a/website/i18n/en.json b/website/i18n/en.json index eab1b7d1..c6232b39 100644 --- a/website/i18n/en.json +++ b/website/i18n/en.json @@ -61,7 +61,8 @@ "Docs": "Docs", "Guides": "Guides", "Nodes": "Nodes", - "GitHub": "GitHub" + "GitHub": "GitHub", + "Sponsorship": "Sponsorship" }, "categories": { "Getting Started": "Getting Started", diff --git a/website/pages/en/index.js b/website/pages/en/index.js index cc0bdcaa..117ba514 100644 --- a/website/pages/en/index.js +++ b/website/pages/en/index.js @@ -111,6 +111,20 @@ class Index extends React.Component { ); + const Sponsorship = () => ( +
+

Sponsorship

+ + Sponsoring always helps a lot to maintain Diagrams. Thank you :) + + + Buy Me A Coffee + +
+ ); + const Example = () => ( {[ @@ -148,6 +162,7 @@ class Index extends React.Component { + ); diff --git a/website/siteConfig.js b/website/siteConfig.js index aea9355c..16cce1cc 100644 --- a/website/siteConfig.js +++ b/website/siteConfig.js @@ -22,6 +22,7 @@ const siteConfig = { {doc: 'guides/diagram', label: 'Guides'}, {doc: 'nodes/aws', label: 'Nodes'}, {href: 'https://github.com/mingrammer/diagrams', label: 'GitHub'}, + {href: 'https://www.buymeacoffee.com/mingrammer', label: 'Sponsoring'}, ], headerIcon: 'img/diagrams.ico', diff --git a/website/static/css/custom.css b/website/static/css/custom.css index 01aa4ed3..235f6269 100644 --- a/website/static/css/custom.css +++ b/website/static/css/custom.css @@ -20,4 +20,8 @@ } @media only screen and (min-width: 1500px) { +} + +#buymeacoffee { + height: 50px; } \ No newline at end of file