Skip to content

Commit

Permalink
feat: add aws neptine managed service
Browse files Browse the repository at this point in the history
  • Loading branch information
tsypuk committed Feb 29, 2024
1 parent 56dcc5f commit 6541b50
Show file tree
Hide file tree
Showing 5 changed files with 175 additions and 0 deletions.
99 changes: 99 additions & 0 deletions docs/docs/aws-components/neptune.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
---
layout: default
title: Amazon Neptune Managed Service
parent: AWS Components
nav_order: 3
date: 2024-02-29
---

# Amazon Neptune Managed Service
{: .d-inline-block .no_toc }

New (v0.3.33)
{: .label .label-green }

## Table of contents
{: .no_toc .text-delta }

1. TOC
{:toc}

---


## Node Type: ``neptune``

## Rendering:

![lambda](output/jpg/neptune.jpg)

## Code Snippet:

```python
{% root_include_snippet ../tests/aws/test_neptune.py %}
```

## drawio neptune vertex:

```xml
<mxCell id="vertex:neptune:arn:aws:rds:us-east-2:123456789012:db:my-neptune-instance-1" parent="1" vertex="1">
<mxGeometry width="78" height="78" as="geometry"/>
</mxCell>
```
---

## Advanced for Geeks:

### Style:
```html
style="sketch=0;outlineConnect=0;gradientColor=#4D72F3;gradientDirection=north;fillColor=#3334B9;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=left;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.neptune;"
```

| attribute | value |
|:----------|:------|
|align| left |
|aspect| fixed |
|dashed| 0 |
|fillColor| #3334B9 |
|fontSize| 12 |
|fontStyle| 0 |
|gradientColor| #4D72F3 |
|gradientDirection| north |
|html| 1 |
|outlineConnect| 0 |
|resIcon| mxgraph.aws4.neptune |
|shape| mxgraph.aws4.resourceIcon |
|sketch| 0 |
|strokeColor| #ffffff |
|verticalAlign| top |
|verticalLabelPosition| bottom |

### Vertex size:

| attribute | value |
|:---------|:-----------|
| width | 78 |
| height |78|

### Full XML dump:
```xml
<mxfile host="multicloud-diagrams" agent="PIP package multicloud-diagrams. Generate resources in draw.io compatible format for Cloud infrastructure. Copyrights @ Roman Tsypuk 2023. MIT license." type="MultiCloud">
<diagram id="diagram_1" name="AWS components">
<mxGraphModel dx="1015" dy="661" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="1">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="vertex:neptune:arn:aws:rds:us-east-2:123456789012:db:my-neptune-instance-1" value="&lt;b&gt;Name&lt;/b&gt;: UsersGraph&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:rds:us-east-2:123456789012:db:my-neptune-instance-1&lt;BR&gt;-----------&lt;BR&gt;&lt;b&gt;data&lt;/b&gt;: 96000&lt;BR&gt;&lt;b&gt;BackupRetentionPeriod&lt;/b&gt;: 123&lt;BR&gt;&lt;b&gt;CharacterSetName&lt;/b&gt;: UTF-8&lt;BR&gt;&lt;b&gt;DatabaseName&lt;/b&gt;: UsersGraph&lt;BR&gt;&lt;b&gt;Endpoint&lt;/b&gt;: my-neptune-instance-1.cluster-ro-123456789012.us-east-1.neptune.amazonaws.com:8182&lt;BR&gt;&lt;b&gt;ReaderEndpoint&lt;/b&gt;: my-neptune-instance-1.cluster-ro-123456789012.us-east-1.neptune.amazonaws.com:8182&lt;BR&gt;&lt;b&gt;MultiAZ&lt;/b&gt;: True&lt;BR&gt;&lt;b&gt;Engine&lt;/b&gt;: Neptune&lt;BR&gt;&lt;b&gt;EngineVersion&lt;/b&gt;: v8&lt;BR&gt;&lt;b&gt;StorageEncrypted&lt;/b&gt;: True&lt;BR&gt;&lt;b&gt;IAMDatabaseAuthenticationEnabled&lt;/b&gt;: True&lt;BR&gt;&lt;b&gt;CopyTagsToSnapshot&lt;/b&gt;: True&lt;BR&gt;&lt;b&gt;DeletionProtection&lt;/b&gt;: False&lt;BR&gt;&lt;b&gt;CrossAccountClone&lt;/b&gt;: False" style="sketch=0;outlineConnect=0;gradientColor=#4D72F3;gradientDirection=north;fillColor=#3334B9;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=left;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.neptune;" parent="1" vertex="1">
<mxGeometry width="78" height="78" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
```

### drawio file:

Download generated ``neptune.drawio``:

[Download](output/drawio/neptune.drawio){: .btn .btn-purple }
13 changes: 13 additions & 0 deletions docs/docs/aws-components/output/drawio/neptune.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<mxfile host="multicloud-diagrams" agent="PIP package multicloud-diagrams. Generate resources in draw.io compatible format for Cloud infrastructure. Copyrights @ Roman Tsypuk 2023. MIT license." type="MultiCloud">
<diagram id="diagram_1" name="AWS components">
<mxGraphModel dx="1015" dy="661" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="1">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="vertex:neptune:arn:aws:rds:us-east-2:123456789012:db:my-neptune-instance-1" value="&lt;b&gt;Name&lt;/b&gt;: UsersGraph&lt;BR&gt;&lt;b&gt;ARN&lt;/b&gt;: arn:aws:rds:us-east-2:123456789012:db:my-neptune-instance-1&lt;BR&gt;-----------&lt;BR&gt;&lt;b&gt;data&lt;/b&gt;: 96000&lt;BR&gt;&lt;b&gt;BackupRetentionPeriod&lt;/b&gt;: 123&lt;BR&gt;&lt;b&gt;CharacterSetName&lt;/b&gt;: UTF-8&lt;BR&gt;&lt;b&gt;DatabaseName&lt;/b&gt;: UsersGraph&lt;BR&gt;&lt;b&gt;Endpoint&lt;/b&gt;: my-neptune-instance-1.cluster-ro-123456789012.us-east-1.neptune.amazonaws.com:8182&lt;BR&gt;&lt;b&gt;ReaderEndpoint&lt;/b&gt;: my-neptune-instance-1.cluster-ro-123456789012.us-east-1.neptune.amazonaws.com:8182&lt;BR&gt;&lt;b&gt;MultiAZ&lt;/b&gt;: True&lt;BR&gt;&lt;b&gt;Engine&lt;/b&gt;: Neptune&lt;BR&gt;&lt;b&gt;EngineVersion&lt;/b&gt;: v8&lt;BR&gt;&lt;b&gt;StorageEncrypted&lt;/b&gt;: True&lt;BR&gt;&lt;b&gt;IAMDatabaseAuthenticationEnabled&lt;/b&gt;: True&lt;BR&gt;&lt;b&gt;CopyTagsToSnapshot&lt;/b&gt;: True&lt;BR&gt;&lt;b&gt;DeletionProtection&lt;/b&gt;: False&lt;BR&gt;&lt;b&gt;CrossAccountClone&lt;/b&gt;: False" style="sketch=0;outlineConnect=0;gradientColor=#4D72F3;gradientDirection=north;fillColor=#3334B9;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=left;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.neptune;" parent="1" vertex="1">
<mxGeometry width="78" height="78" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Binary file added docs/docs/aws-components/output/jpg/neptune.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions multicloud_diagrams/providers/aws.json
Original file line number Diff line number Diff line change
Expand Up @@ -193,5 +193,12 @@
"height": "78",
"version": "0.3.32",
"desc": "Amazon Chime SDK"
},
"neptune": {
"style": "sketch=0;outlineConnect=0;gradientColor=#4D72F3;gradientDirection=north;fillColor=#3334B9;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=left;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.neptune;",
"width": "78",
"height": "78",
"version": "0.3.33",
"desc": "Amazon Neptune Managed Service"
}
}
56 changes: 56 additions & 0 deletions tests/aws/test_neptune.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
from multicloud_diagrams import MultiCloudDiagrams
from utils.templating import TestRendering


class TestAWSVertexInIsolation(TestRendering):

def test_neptune(self):
# docs
self.node_type = 'neptune'

# given
mcd = MultiCloudDiagrams()

# when
neptune_arn = 'arn:aws:rds:us-east-2:123456789012:db:my-neptune-instance-1'
neptune_name = 'UsersGraph'
metadata = {
"data": 96000,
'BackupRetentionPeriod': 123,
'CharacterSetName': 'UTF-8',
'DatabaseName': 'UsersGraph',
'Endpoint': 'my-neptune-instance-1.cluster-ro-123456789012.us-east-1.neptune.amazonaws.com:8182',
'ReaderEndpoint': 'my-neptune-instance-1.cluster-ro-123456789012.us-east-1.neptune.amazonaws.com:8182',
'MultiAZ': True,
'Engine': 'Neptune',
'EngineVersion': 'v8',
'StorageEncrypted': True,
'IAMDatabaseAuthenticationEnabled': True,
'CopyTagsToSnapshot': True,
'DeletionProtection': False,
'CrossAccountClone': False,
}
mcd.add_vertex(node_id=neptune_arn, node_name=neptune_name, node_type='neptune', metadata=metadata)

# then
expected = {'id': 'vertex:neptune:arn:aws:rds:us-east-2:123456789012:db:my-neptune-instance-1',
'parent': '1',
'style': 'sketch=0;outlineConnect=0;gradientColor=#4D72F3;gradientDirection=north;fillColor=#3334B9;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=left;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.neptune;',
'value': '<b>Name</b>: UsersGraph<BR><b>ARN</b>: '
'arn:aws:rds:us-east-2:123456789012:db:my-neptune-instance-1<BR>-----------<BR><b>data</b>: '
'96000<BR><b>BackupRetentionPeriod</b>: '
'123<BR><b>CharacterSetName</b>: UTF-8<BR><b>DatabaseName</b>: '
'UsersGraph<BR><b>Endpoint</b>: '
'my-neptune-instance-1.cluster-ro-123456789012.us-east-1.neptune.amazonaws.com:8182<BR><b>ReaderEndpoint</b>: '
'my-neptune-instance-1.cluster-ro-123456789012.us-east-1.neptune.amazonaws.com:8182<BR><b>MultiAZ</b>: '
'True<BR><b>Engine</b>: Neptune<BR><b>EngineVersion</b>: '
'v8<BR><b>StorageEncrypted</b>: '
'True<BR><b>IAMDatabaseAuthenticationEnabled</b>: '
'True<BR><b>CopyTagsToSnapshot</b>: '
'True<BR><b>DeletionProtection</b>: '
'False<BR><b>CrossAccountClone</b>: False',
'vertex': '1'}
self.verify_resource(expected, mcd.mx_file, 'neptune', self.node_type)

# docs
self.mcd = mcd

0 comments on commit 6541b50

Please sign in to comment.