From db27a47f7c84a064d99bff44fcad6459abeebdfc Mon Sep 17 00:00:00 2001 From: Patryk Orwat Date: Sun, 31 May 2020 20:39:05 +0700 Subject: [PATCH] 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 .../database/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 ...y-and-access-management-iam-access-analyzer.png | Bin 0 -> 650 bytes .../identity-and-access-management-iam-aws-sts.png | Bin 0 -> 3605 bytes ...ntity-and-access-management-iam-permissions.png | Bin 0 -> 2174 bytes .../identity-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 ab971c6..21732c7 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 8406536..145fcb5 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 d03d717..61da75a 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 eb62f5d..cc274c2 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 e5eff58..ef5bdec 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 20c5645..91032ce 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 b0050cb..d52584d 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 8f30f99..568fe9a 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 1100283..7b789db 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 zcmXXMcRbYZ|BN~#BN7rSNkWp4vrdX{WR;OEBSrY8JNwMI%xf5xaFVRtAtUQhM1(WX zKHJ%J_Bno!zP~?sJ)h_Eyx-4zug^sp8R&4ZonnJPARM>V>t?TTKmY+ z5Xi;x+cz~$d_OFX=z9t2lqrsxpl7?v8P{;|>QKpZzeOCJM)}^_hR*TbKm7OBQuChJ zF@0_O=tobF$l$Pzd=&O(sCN{jcj*DVQl`R=9#&8 zGXo_YcO<|Cr~Q(NsAI#rId6WpnL!|Iu-EYID_VBy6GDH9nc-ckqAuHkmCnROMrMZvE z<}FiQx0jQ1e(2@j4E8GSE)U)Qu9Vy#x=8(9X}CL6>JL|ASKOWEG!Iu;Vf4fK(Z4Gj zw9|s^;pz+qC12LEZ34mCs6Z>{Pec9;O1Sx)qM!SnQTzGp^i$orTdlIRAi4Bv&mD!( z!q(?y1qUhLPq(DBC*?!bJ@z_pPi}D?jJ6o-&N*ka(%#b&x~e#WgXm*;^Mh2bH5ymU zj#Kx+QEj&&BYuieJ)%rCdeuGB>ucD4*~B#R7BzBAYjSI4Qg2(Ht>9?o74*n8#sE5U zm}O`0A(U}2fREXk(priM*K+5bXB6J-xzA~b-n{*MGk=iulfN%Cc!VYJfuUy! z59Rx5^@y$8nO*8;kGWd(9R&{tH8m>d-7@y4$b2)g`kC|Uk4?yzme(v+$hB@J)Xjz5 zU1Kp`K!6 z_z$05>=;u=-Au+8xVI<*DDQGM?_QOv!An5FHr@T~c1N~-O7YOE6_|f(d6u6{KFDE5 zz$9-3@{PG9bqSswZ#P#Hq9=m-He6}T4jx;BRS8``Y{xOCE(Ps7 z@rlX&n7t+a;Fa<8iq2Ng4Z7FyfF=JHt{xX46J-HR@kdpX2ZuOx|-VU-ZJ$8&n-uK6#*booe9Ve#Nrs1Npm6%mR{A$@$^P5v& zw@C~d4e2o_T320wt=cTHKTu*!mA$t4D;S58k#Rk`UCJdj$Zfj!3(mA(e*OAv;6H{e z2z6djqhuxv+v=!aCX64>oni=vy+rx;`eVSWsJy-6S+P4S9~te?-&(?4PwA~^Gre_O z?RHSF$Uz-f)yICtUBdbAhCUNI8rkWZnmP7FT|_VG9pgYk-qeTB$*}Z zX4e|;;ixd)avQOGk@G{EcHNfb@XEQK5mld;aM9eHla~Y5ADn9t{FD|+IUv|qfIG;J90@0E>mU`V#KbK5C!(RXuC{0>i)AD=KUm1TB~iZpN$ z*2vj?D3|`Bm%y@ro~UzfvlS29`|_ottx!|?S9+s4f4(<*8g>JVfj4cnnobsGWrtTXJJ@<*aE& z2`mP)61_vgZ||tZf0fO;zLxe5zEa*A zCNa2jPxqkY$w$ z`bYZS^q%H@bcIfreZz$O85cf!SJc)f>w1uKt95ER+p{xtl+oo`G53d`%K>7&c9j{? zbw}v?k1GxOpOX*T$G>^AuBW{)i>nyCMtBP0^lh;CNk^Fa$1wW`PwoD!wfQZvSsW7Q zu>Kgw`HHdT7GsTu7iyCI+1PF1d*`&p%a^K-;gu~JYoHG4l1;}Z$*04Z$`Z14)7z6I zlx=-tnf*0RyZE-zVp|{8)io%moHq53?cofD6$h|`8%t`=ixWdpJA0Ii;CRrP(3+dG*J1x)eXQ62g@#D5t}naM3t!~A zLVk!5bsoX2M0yEFA%o(?rrTJifFh258%ETJSZU_X#7w?YZF3oJ%H(-~u2kJ?z&Z+C z`P5%IRi;f7>dljBFti-g=`A(T$wQfRMqDbCN*5BoKx}d|%}OT`Sg@iXsXx}88yY0l zPcrX*tMPW=+kP*Q_Sz9~Nd`b{25xA%b{${kGhg%5M6)7nvl1@5+A$OLf%$gb4bWgg zm=Q3dmLau3a4T+h(4pg$FRaKh*|kRt_)>iM5-Z~Ub66o8H722J1w4I$2a11+=oV_--p1J}Za6tGn{?9rG3YPRs-?Im zpSAodKj;jW{P9w-#BcO1?AQEsM^E~v%?L=91%3EueR;Y}5f?_>XLIdp)_N17tUAhh zd#hBI#n)OIU+W!)>Suq0Hzu)twvm^<&H(c3c;tca_YP+A9&oc>~wiYinl`iDn8 zw+8PN3qp5WJ(4hdvk}w^Vc3p|qE71DDo8rm-}T;5NR?UnsMVX5CtSwcI`49PO4iMe zYebBgJMQeLyzkCjl_#wDg5h>{+Syq*W>_hzeD{5O(pFraO|7qXL6K5W-YFL=##EfI zNXOTMN4L}DqPaEVoRN-q2HwH5W8UliDVNO3?@ew=%{V?$avO{3w!tK=**20oj4SXz z=#`rh_3DRpAM9pTg+Z823tMJ7UNU z{k;T~cWf9)94xiexhEBDKVn2o7xX(w9pxZkVzPGJdR1(=JEHJRfh?xmsB7rT7Z&pf zkbR0kM&ZjCZE~e&Y;^7A`5PMF{<1%SJEB^lz_@pQSLRrh+%L7WL>-)Qf!(cA_2;hV z3R3zTMgv@>`EXjJJZb?^;_H(P(CxvI`LCLo7yI0lKpxY@HBe+?qH8*6fhk{@_Pcd& zo-VA4e;J$|Ju7F75>+BZdUewh?2ehui-xwlIA9jN&a|!?`VI7l8yYu~aZH5c>*_>p zr%&S}>xy|^tqW@Bi90tO1^3S-jW=C|IMi?*n8&o`Op$dIYIiqkTnPsgokf|@@sXw< z8SWKPTAqaRfIC=f&Nn@cxV-6&kS(_KKUWF+yDk`4g5bL7$B)7I;<@-ogT6;CB4&3aFO$xK>Njb1sQdbdq;p^15Jv~y7hl=+ z5x57%hy#P+_8Ri^Ipc*ZI}<-=HIeBbzZ))0?`_j_!Vff!@cD~9IVBivf@%-qzoG1KS z=6ISJ2922>H|*U7iioi4VIf6>_^jjwmJ#E~MvOU_-2F)VP7P7*GmCsXxK{pf_Q|n!&JA=CfS}Qnr9M5)eE~ktOGc2EnrJf}U z#@*iyyx*v#wSO^a#lp8QaSK*QX7{W#z{KM{IfXOgek>`N;GKVH3kFQK$Y>OjU@DjWj9m1UsO4S#I7Wn#TA!F3m<#< z$b?cD{*$oBj}dKbGmnlY?Bwgr|EY3k-h^hf39up_-4;_-jQq!BOZHSE%Jn%xoZhx9 z1QjAZsNq~ZUpVf`D9kocCUswIyE}ZRNeGIiEH0qn3yZrWo)s4J*vV(A;^lz0FnrWkYs!WG&Z4n$wDKvfC^m-X|j^F#t zlx%8~Igz29M0fMNKcl;JsctSSaUuik(&lf|8M?Q{d>k_j4h6jx|5HeOP=JN&oDG%< z(Vd&MS$|z-?E<4PHpP}ifLPvh5|!aaiu#L9MYPQ%k~7R zk}gJMsBHYTIbI?A7g+40)G+Ax!uxEJeR%;D!Uknr_g>9h1t3fxU;W-Xd^I97^Cq9i z^E`m8AKkgaXN5dYfh0br!tUqKTg&={9PgY#zKu?c;-)}0l#eN?-pZ#Ydg>AcA?dCC zGaKqzh*#rC^m!NF^a-WM058tk-B$J_HLB%+6=WsU=j6+_sS#Y?s+QY z!zHD=;AEP$#1L6}=8bjltkD$P$faIC9ts2rj=AR2S+%~jzkx$@E|8!Har1lmN6k|u zLOG3WXB6>yREcAyFhhVK+B#siJZ9%pvlCuK$O)MSL}~GEsM>#dk5vnI2!8Rhc?xNs z&w=Y$*wXd(9xcSR0&QGa(;{@YaoyPROxC>8qOiv3<{ zumP6o^gk&iSCd%|M&Yr42dhthh8?_yL$8M@;(K%2MS-Hxoin9ZdUqZ&3fmh3hBIMg z;5>_lDWvZvvl!q|0f4Miy*pyeu)3fUKbbqo{cE9|g<|fu`NpXln&7Cx-=lUCLiPO7H-+;)q2D)y1gP=?Zc+S5-V6`Rb;T;&pmr;sMDn$PBwR%m_^J|NCYW-YjP z*aF#U0BbR87hg+$=h3cfNnYGj1;w42QUvH!ehF#mE!R;F4=m3IhL|Zy)Ec<7`gE>8 z5)0+Twz)mdR4MFxZ7!LmqXnW%=I1syi#%$$nxUkP`>qh9uz(7X+uc;r_rnH)% zAvCJM2v{(W)CNZ~+oZHWXCVh(#SabgU%8U5cCx};cI%P(Z>ERlm zzdFxtN&h+Mya0r|ak(Lkmwb!>*hHzQflsL+&BOhko<@ zRwD+m0}Cd6&AB{4UUE?H+~pIHaJQ{GTPBW(9U{|za6WYd?6JGss({klIxAs6_b$10 zz|lnkAoCrp_BI@57S2itI=*N{lktdD99$?;2uTAN!zYYL^O2MdP;{XBTS_F%lwvea z`lhFVR5+!d3y1y$YKo6(p?1!H%?HFsxdkD})xTb=TzNED{kj!Eb!-bbb&OkXb8Bl7Jw^=5^CU~&6J}9SJ)8tMkRjY;h>Ys|GiQ~BKUz&6{($KZpj-L<>gMk zrUpYeTUpjJYQ4#i4&v`9<*EluGQxk#hiiwvm>&#~oux;pNq++}FaV~38awF!EvmHQ*uaBx3p zcr%)j#VF|@jM}7ejL;7Q4x51_IMiSESqe#RZbbEuqQYj|v!Tb7mNKAQ<}@zPrq)-o zHOa0bZ>Gs0TStzSY#uq*e6jp88>fwOtAY;5{52;7(kk-vl}B-Go)_O#DGV!TuXY~fn`!ND4BiV zTyFM+Tn*G+!;fJaIW%s8Cs;$5R#Jo|bNZC42=xT8m&V5?+KVe5Ikef%5Xvm0=f=H) zU^Fo9=Q%G7KAJ1i1f7thTYp)ov%l$F!nR@OYNuz&ag{iko?reSeVP`g^G_?c4}is6 zn(A+o$`!xCF&R?g@0*;2DvJv|T?xwY%WLEQ#uUHFj}yxC!R33!xS{6*TVDKCqKJz|3%5LtAo`z%UN&3>HL>h_yNm$HizqfYfQskuc5?Q_a!D9cfko_ zqB{tyLBEXoP70lQeQ$Vi&vvXJn)9y~Dg3QVLMNVx+zb2H8dNaOsZ)6G(NU%1J{i<^0t#a>oEBgQrA!5DqPt+_0x;vmC$z z$vvkli)Hv=aITxarSvBoC{lhq{-Oe6T9q15asw29;q%oG?);yZdg|DzpnGIjeRa1xbSJ0AWUB_sICl= z``O0-XN+)~p*tTA1{1Rpk+=`u?*H+(6<3*YXEEi#a;zX|?wOD^VB~?LXflu+NQ?0D zIMl(O>*9ZeRJxahifEZzre7}C%trq;NQBkGy@r$2+p}98zzI@8eVD^iT80d=c2)K9 zq_o5X6h3jt3VI7MaRi8b`IHS7s8^%FjsbR2gtY6~DjQJy*3hE{XxgqtB)NtQ^Wj#YteKrv)Yl-qERt z&PACxTlax^*CU>7#FTMTp?`YwyO#OU0o57Fq+y0i=fY4AimolVMr=Y3SH`qb#!hQK z96J#cs}IF9)vtlKO>NrA$Oa#$_}2d%X74;h~ZsO4&p7H7)ZN zV0^;dm}jL+7k;=cf9xUbVE?a)AJ{Yv;6Y?Q-+W^Qj9)a6L}a}x?jc227~Eal?Tk|R#VFfWjRzs$WE#@;O(>A*>6~`*L*KRy zV&d?Fv|~2PA3zz82XP=0w+>pKi+F0N$PgoVcmWG3*XDQ?bVkz%kAvzW&$N^bsdvDB87J0#htO>v zR`&^)dsTlD6Mr9?r>e|y8fGX^|5;>4^kuWz{OFyb&C4#CG~dx-g5N_>qMAL}*J;JS zb3Vtr`pH1}g*?L9SGodYBu!^?TpezjQ>#>Wgww1VhDo>5GS}7x9}uEkn$oiq_J!Tgh0;%Otlzh& zx`uGBX7=wmk=I2E0zue3Y3zY)mJ|YXAJ{{^P7WhXLhVt|hu)>Knu8HpLZ$?zC~b$ga2<%iP7#(R*@`@v_yS zAW`T{JA19{y8f%_&9F8{V5$tEqn<8;53_>X!0Z{{J>Tq6%$> zeufwzoyJgLDpMQnyzPehR!^Q#UM)j)n&bh0yVvHptBKvRR%PF{YSi0S6nR<|t9jyz z_dxQHBXV)}*b0?s_`Yc!4HpdoYRKy%n-F3TKjlQ(m!If(>-^UhJpa0kI(H`}WBqJ} zKEYGEamdHfg?biieN0X#DYJ zn^d97@0lhPCLWCt3E|uxlI>6V;uS~bQ3hC~bW>hW_B2w|*d;U0F7n(u0#OUX-(;>h}53-;7k6wW@7K0zrMngAP2C;@dK* zAyd0(qdWJFXf_B+`l7Ht$E0DXG-nIlga#u_fN#c!za>E5f9>-!p3qVn>_K6(GS0xj zpF2erMY~sEP(P#+RZyUB#9w{#Y~&b>cCMn*%@8@x_;NoThK-Za*4=Q0g7P)>gE0?L)t0}qOW(?FJn%>bVTunEni2ygFvTfDc%w4 zIq}Nus5X|Ge4RB|5Y^u_b%Ajo^}Jd)t)S8R4`KKi-s6$sVhYzA_$<5eQ)^CyV33v1 z@zn*_{cxUH+k~hu*`*zED z*Ua*QI(9^$R}s!mzqMxV0RY`WUD@upM84}1`ZwR%Cz%atPm|H_tNCUo!5q04d=8JL zw;tS)wsN>6!SIbfLC0fJp6hO4bzZSsz%(|}(5N=I-xy%Kr_ z5n*To-UePlQ{^8R@K6voCGs_~cq9_hwav4t`f#J> zwPWS|qP_dfVKLl_H?G%;l{2$~5m626CCwk~YtEJ-|H;-i%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 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 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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